Programs

ProgramSource FileDescription
all_signals all_signals.f90

Plays sequentially each type of available signal.

arpeggios arpeggios.f90

Arpeggios played in various ways using the circles of fifths https://en.wikipedia.org/wiki/Arpeggio

blues blues.f90

A random walk on a blues scale.

chords_and_melody chords_and_melody.f90

A sequence of synth chords is repeated, and the corresponding notes are played randomly by plucked strings.

demo_effects demo_effects.f90

All available audio effects are applied sequentially on a chord sequence.

doppler_effect doppler_effect.f90

A simulation of Doppler effect, with a car passing in front of you. https://fr.wikipedia.org/wiki/Effet_Doppler The Observer is static at the origin, the car is Moving along x at a constant velocity v ^ y | *M*y0**> | ----x0-----------------O-------------------> x | The frequency perceived by the observer (Doppler effect) is fobs = f / (1 - vr/c) but we don't need to compute it. The signal heard by the observer at tobs was emitted earlier by the car at t, from a distance r(t): tobs = t + r(t) / c By developing r(t) we can finally obtain a quadratic equation: (c*2-v2) * t2 - (2tobsc2 + 2x0v) t + (tobs2 * c2 - x02 - y*2) = 0 The time t is the unique physical solution of that equation:

Read more…
drone_music drone_music.f90

Experimental drone music.

drum_machine drum_machine.f90

A rhythm following a pattern stored in an array.

four_thirty_three four_thirty_three.f90

A minimalist Forsynth file! And a double tribute to John Cage and Joy Division.

misc_sounds misc_sounds.f90

Miscellaneous signals, especially obtained by frequency or phase modulation. A WAV file is created for each sound.

multiplication_bells multiplication_bells.f90

An example with a lot of bells, either periodic or random. https://en.wikipedia.org/wiki/Campanology

radioactivity radioactivity.f90

Radioactive decay of a population of atoms. A tribute to Kraftwerk. Chords are played on a 2nd track and Morse code on a third track.

shepard_risset_glissando shepard_risset_glissando.f90

A Shepard-Risset glissando, giving the illusion of an ever increasing or decreasing pitch. It is the continuous version of the Shepard scale. Obtaining a good glissando is not easy, as you need to understand that each sin(omega * t) is in fact sin(omega(t) * t). Using a common time for all causes problems as t increases. In this version, each new component has its own time: sin(omega(tj) * tj). https://en.wikipedia.org/wiki/Shepard_tone

shepard_scale shepard_scale.f90

A Shepard scale, giving the illusion of an ever increasing pitch in the first half of the tape and an ever decreasing pitch in the 2nd half. Shepard, Roger N. "Circularity in Judgments of Relative Pitch", The Journal of the Acoustical Society of America 36, no. 12, (December 1, 1964): 2346–53. https://doi.org/10.1121/1.1919362. https://en.wikipedia.org/wiki/Shepard_tone

sonify sonify.f90

A command to sonify a data file. Example: $ fpm run sonify -- -i mydata.txt (supposing the file is in the main directory of ForSynth) You can get help by typing: $ fpm run sonify -- --help