Procedure | Location | Procedure Type | Description |
---|---|---|---|
add_bell | signals | Subroutine | Adds a Risset bell sound on the track at t1. Jean-Claude Risset, An Introductory Catalogue Of Computer Synthesized Sounds, Bell Telephone Laboratories Murray Hill, New Jersey, 1969. |
add_broken_chord | music | Subroutine | Writes a broken chord using an array containing the intervals (see the music_common module). It uses plucked strings (Karplus-Strong). For the moment, each note has the same duration. https://en.wikipedia.org/wiki/Arpeggio |
add_chord | music | Subroutine | Writes a chord using an array containing the intervals (see the music_common module) |
add_geiger_ping | radioactivity | Subroutine | Adds the signal of a radioactive decay heard with a Geiger counter. |
add_karplus_strong | signals | Subroutine | Karplus and Strong algorithm (1983), for plucked-string http://crypto.stanford.edu/~blynn/sound/karplusstrong.html https://en.wikipedia.org/wiki/Karplus%E2%80%93Strong_string_synthesis |
add_karplus_strong_drum | signals | Subroutine | Karplus and Strong (1983) algorithm for obtaining a percussion sound. Typically, P is taken to be between 150 and 1000. Caution: this algorithm overwrites what may have existed on the track at the chosen location. You may also want to modify the b parameter to make some weird sounds, somewhere between percussion and guitar... http://crypto.stanford.edu/~blynn/sound/karplusstrong.html https://en.wikipedia.org/wiki/Karplus%E2%80%93Strong_string_synthesis |
add_karplus_strong_drum_stretched | signals | Subroutine | Karplus and Strong (1983) stretched algorithm for obtaining a percussion sound. |
add_karplus_strong_stretched | signals | Subroutine | Karplus and Strong stretched algorithm (1983), for plucked-string. |
add_misc_signal | misc_sounds | Subroutine | Add on the track a signal choosen by its number: |
add_morse_code | morse_code | Subroutine | Adds on the specified track a Morse code translation of the string, starting at time t1. The frequency f must correspond to a high tone, for example 880 Hz. |
add_noise | signals | Subroutine | Add white noise on the track: |
add_note | music | Subroutine | A note of fundamental frequency f with harmonics, based on sine waves. https://en.wikipedia.org/wiki/Harmonic |
add_sawtooth_wave | signals | Subroutine | Adds on the track a sawtooth wave with an ADSR envelope: |
add_sine_wave | signals | Subroutine | Adds on the track a sine wave with an ADSR envelope: |
add_square_wave | signals | Subroutine | Adds on the track a square wave with an ADSR envelope: |
add_triangle_wave | signals | Subroutine | Adds on the track a triangle wave with an ADSR envelope: |
add_weierstrass | signals | Subroutine | Add a fractal signal on the track with an envelope: |
ADSR_level | envelopes | Function | Returns the level in [0, 1] of the ADSR envelope at time t1 < t < t2 |
ADSR_new | envelopes | Subroutine | Create a new ADSR envelope object. |
amplitude | shepard_risset_glissando | Function | Envelope of the glissando. A gaussian, plus linear sections at the extremities, to reach the 0 level. |
apply_autopan_effect | audio_effects | Subroutine | Make the sound move from one channel to the other one at a frequency f and with an amplitude AmpLFO in [0 ; 1]. |
apply_delay_effect | audio_effects | Subroutine | Add the sound from "delay" seconds before, and multiply by Amp<1 for dampening. |
apply_dynamic_effect | audio_effects | Subroutine | A basic dynamic effect with hard knee, and only two parameters : the threshold > 0 expressed linearly (not in dB) and the ratio. It is a compressor if the ratio is > 1. It can also be used as a limiter with a ratio >= 10. Or an upward expander with a ratio < 1. By default, the ratio is applied above the threshold, but the "below" optional parameter can be used to reverse it and obtain: - an upward compressor with ratio < 1 - a (downward) expander with ratio > 1. There are no attack and release parameters at this time. https://en.wikipedia.org/wiki/Dynamic_range_compression |
apply_fade_in | envelopes | Subroutine | A linear fade in, from relative level 0 to 1: |
apply_fade_out | envelopes | Subroutine | A linear fade out, from relative level 1 to 0: |
apply_fuzz_effect | audio_effects | Subroutine | Apply distorsion with hard clipping https://en.wikipedia.org/wiki/Distortion_(music) |
apply_reverse_effect | audio_effects | Subroutine | Copy the samples at the same t1 but in reverse order: |
apply_tremolo_effect | audio_effects | Subroutine | A sinusoidal modulation of the amplitude of a signal (tremolo) : f : tremolo frequency (typically a few Hz) AmpLFO : tremolo amplitude in [0 ; 1] https://en.wikipedia.org/wiki/Vibrato#Vibrato_and_tremolo/ |
auto_finalize | tape_recorder_class | Subroutine | An automatic finalizer, by security. |
clear_tracks | tape_recorder_class | Subroutine | Erase all tracks on all the channels of the tape. |
close_WAV_file | wav_file_class | Subroutine | Must be called at the end. It normalizes the channels, writes them in the WAV file and closes it. It also deallocate the tape arrays. |
copy_section | tape_recorder_class | Subroutine | Copy section t1...t2 at t3, either on the same track or another one. The content already present at t3 is overwritten. The code suppose that t1 < t2 < t3. |
create_WAV_file | wav_file_class | Subroutine | Create a WAV file with a header: |
dB_to_linear | acoustics | Function | This function converts dB to an amplitude. At 0 dB, our amplitude reference value is 1. -6 dB is approximately 1/2 (~0.50118...). -20 dB is 1/10. https://en.wikipedia.org/wiki/Decibel |
finalize | tape_recorder_class | Subroutine | Called by the close_WAV_file() method. |
fit_exp | envelopes | Function | Returns an exponential interpolation y(x) between (x1,y1) and (x2,y2). Useful for computing an exponentially decreasing enveloppe. |
fr | music | Function | Returns the frequency of the note. The note name is composed of two or three characters, for example "A4", "A#4", "Ab4", where the final character is the octave. |
get_name | wav_file_class | Function | Returns the name of the WAV file: |
linear1 | shepard_risset_glissando | Function | Returns an amplitude rising from 0 to 1, from f1 to f2. And 0 outside. |
linear2 | shepard_risset_glissando | Function | Returns an amplitude falling from 1 to 0, from f1 to f2. And 0 outside. |
linear_to_dB | acoustics | Function | This function converts an amplitude (>=0) to dB. https://en.wikipedia.org/wiki/Decibel |
mix_tracks | tape_recorder_class | Subroutine | Tracks 1 to tracks-1 are mixed on track 0. |
new | tape_recorder_class | Subroutine | Create a tape object with N tracks. The duration is expressed in seconds. |
print_copyright | sonify | Subroutine | |
print_options | sonify | Subroutine | |
read_argument | sonify | Function | Returns the argument number i of the command line. |
sonify_from_array | sonification | Subroutine | Convert an array of reals to a WAV file, using RATE samples per second (44,100 by default). - If your signal is not centered around zero, you can use the autocenter option. - Downsampling allows to take only each Mth sample and can be used to make a low tone higher. - The repetitions argument allows to repeat the signal N times, which can be interesting if it is too short. |
sonify_from_file | sonification | Subroutine | Read a text file containing only one column of reals, without header, and convert it to a WAV file. If your file contains several fields (columns), you must extract the field to sonify. In Unix-like systems, it can be easily done, for example: $ cut -f 4 -d " " data.txt > column.txt The file should contain several 100,000 lines as the WAV will use generally 44,100 samples per second. - If your signal is not centered around zero, you can use the autocenter option. - Downsampling allows to take only each Mth sample and can be used to make a low tone higher. - The repetitions argument allows to repeat the signal N times, which can be interesting if it is too short. |
string_to_morse | morse_code | Function | This function receives a string and returns its Morse code translation. The input string can contain only alphabetic characters in upper or lower case, digits 0..9 and spaces. All other characters will be considered as spaces. Characters inside words are separated by one space, and words by two spaces. |
test_the_machine | forsynth | Subroutine | A WAV file contains 64, 32 and 16 bits data or metadata, so we need those kinds. |
the_solution | doppler_effect | Function | We solve the Quadratic equation, but physically one and only one solution can exist: we know the sound was emitted before we hear it!> |
weierstrass | signals | Function | https://en.wikipedia.org/wiki/Weierstrass_function |
write_amplitude_envelope | shepard_risset_glissando | Subroutine | Useful for debugging and setting the envelope parameters: |
write_header | wav_file_class | Subroutine | Creates the 44 bytes WAV header and prints some information: |
write_normalized_data | wav_file_class | Subroutine | This method normalizes the sound amplitude on track 0, before saving the left and right channels in the WAV file. |