Procedures

ProcedureLocationProcedure TypeDescription
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
add_karplus_strong_stretched signals Subroutine
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
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_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:

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:

initialize_frequencies shepard_risset_glissando Subroutine
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.

mix_tracks tape_recorder_class Subroutine

Tracks 1 to tracks-1 are mixed on track 0.

new tape_recorder_class Subroutine
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.

call~~graph~~CallGraph proc~add_bell add_bell proc~fit_exp fit_exp proc~add_bell->proc~fit_exp proc~add_broken_chord add_broken_chord proc~add_karplus_strong add_karplus_strong proc~add_broken_chord->proc~add_karplus_strong proc~add_chord add_chord proc~add_note add_note proc~add_chord->proc~add_note proc~add_geiger_ping add_geiger_ping proc~add_karplus_strong_drum add_karplus_strong_drum proc~add_karplus_strong_drum_stretched add_karplus_strong_drum_stretched proc~add_karplus_strong_stretched add_karplus_strong_stretched proc~add_misc_signal add_misc_signal proc~add_morse_code add_morse_code proc~add_sine_wave add_sine_wave proc~add_morse_code->proc~add_sine_wave proc~add_noise add_noise proc~adsr_level ADSR_envelope%ADSR_level proc~add_noise->proc~adsr_level proc~add_note->proc~add_sine_wave proc~add_sawtooth_wave add_sawtooth_wave proc~add_sawtooth_wave->proc~adsr_level proc~add_sine_wave->proc~adsr_level proc~add_square_wave add_square_wave proc~add_square_wave->proc~adsr_level proc~add_triangle_wave add_triangle_wave proc~add_triangle_wave->proc~adsr_level proc~add_weierstrass add_weierstrass proc~add_weierstrass->proc~adsr_level proc~weierstrass weierstrass proc~add_weierstrass->proc~weierstrass proc~adsr_new ADSR_envelope%ADSR_new proc~amplitude amplitude proc~linear1 linear1 proc~amplitude->proc~linear1 proc~linear2 linear2 proc~amplitude->proc~linear2 proc~apply_autopan_effect apply_autopan_effect proc~apply_delay_effect apply_delay_effect proc~apply_fade_in apply_fade_in proc~apply_fade_out apply_fade_out proc~apply_fuzz_effect apply_fuzz_effect proc~apply_reverse_effect apply_reverse_effect proc~apply_tremolo_effect apply_tremolo_effect proc~auto_finalize auto_finalize proc~clear_tracks tape_recorder%clear_tracks proc~close_wav_file WAV_file%close_WAV_file proc~finalize tape_recorder%finalize proc~close_wav_file->proc~finalize proc~write_normalized_data WAV_file%write_normalized_data proc~close_wav_file->proc~write_normalized_data proc~copy_section tape_recorder%copy_section proc~create_wav_file WAV_file%create_WAV_file proc~new tape_recorder%new proc~create_wav_file->proc~new proc~write_header WAV_file%write_header proc~create_wav_file->proc~write_header proc~fr fr proc~get_name WAV_file%get_name proc~initialize_frequencies initialize_frequencies proc~mix_tracks tape_recorder%mix_tracks proc~new->proc~clear_tracks proc~string_to_morse string_to_morse proc~test_the_machine test_the_machine proc~the_solution the_solution proc~write_amplitude_envelope write_amplitude_envelope proc~write_amplitude_envelope->proc~amplitude program~all_signals all_signals program~all_signals->proc~add_karplus_strong program~all_signals->proc~add_karplus_strong_stretched program~all_signals->proc~add_noise program~all_signals->proc~add_sawtooth_wave program~all_signals->proc~add_sine_wave program~all_signals->proc~add_square_wave program~all_signals->proc~add_triangle_wave program~all_signals->proc~add_weierstrass program~all_signals->proc~adsr_new program~all_signals->proc~close_wav_file program~all_signals->proc~create_wav_file program~all_signals->proc~fr program~all_signals->proc~get_name program~all_signals->proc~mix_tracks program~arpeggios arpeggios program~arpeggios->proc~add_broken_chord program~arpeggios->proc~add_karplus_strong program~arpeggios->proc~apply_fade_out program~arpeggios->proc~close_wav_file program~arpeggios->proc~create_wav_file program~arpeggios->proc~fr program~arpeggios->proc~get_name program~arpeggios->proc~mix_tracks program~blues blues program~blues->proc~add_karplus_strong program~blues->proc~apply_tremolo_effect program~blues->proc~close_wav_file program~blues->proc~create_wav_file program~blues->proc~fr program~blues->proc~get_name program~blues->proc~mix_tracks program~chords_and_melody chords_and_melody program~chords_and_melody->proc~add_chord program~chords_and_melody->proc~add_karplus_strong program~chords_and_melody->proc~adsr_new program~chords_and_melody->proc~apply_delay_effect program~chords_and_melody->proc~close_wav_file program~chords_and_melody->proc~copy_section program~chords_and_melody->proc~create_wav_file program~chords_and_melody->proc~fr program~chords_and_melody->proc~get_name program~chords_and_melody->proc~mix_tracks program~demo_effects demo_effects program~demo_effects->proc~add_chord program~demo_effects->proc~adsr_new program~demo_effects->proc~apply_autopan_effect program~demo_effects->proc~apply_delay_effect program~demo_effects->proc~apply_fuzz_effect program~demo_effects->proc~apply_tremolo_effect program~demo_effects->proc~close_wav_file program~demo_effects->proc~copy_section program~demo_effects->proc~create_wav_file program~demo_effects->proc~fr program~demo_effects->proc~get_name program~demo_effects->proc~mix_tracks program~doppler_effect doppler_effect program~doppler_effect->proc~close_wav_file program~doppler_effect->proc~create_wav_file program~doppler_effect->proc~get_name program~doppler_effect->proc~mix_tracks program~doppler_effect->proc~the_solution program~drone_music drone_music program~drone_music->proc~apply_fade_in program~drone_music->proc~apply_fade_out program~drone_music->proc~close_wav_file program~drone_music->proc~create_wav_file program~drone_music->proc~get_name program~drone_music->proc~mix_tracks program~drum_machine drum_machine program~drum_machine->proc~add_karplus_strong_drum program~drum_machine->proc~add_karplus_strong_drum_stretched program~drum_machine->proc~close_wav_file program~drum_machine->proc~create_wav_file program~drum_machine->proc~get_name program~drum_machine->proc~mix_tracks program~misc_sounds misc_sounds program~misc_sounds->proc~add_misc_signal program~misc_sounds->proc~close_wav_file program~misc_sounds->proc~create_wav_file program~misc_sounds->proc~fr program~misc_sounds->proc~get_name program~misc_sounds->proc~mix_tracks program~multiplication_bells multiplication_bells program~multiplication_bells->proc~add_bell program~multiplication_bells->proc~close_wav_file program~multiplication_bells->proc~create_wav_file program~multiplication_bells->proc~get_name program~multiplication_bells->proc~mix_tracks program~radioactivity radioactivity program~radioactivity->proc~add_chord program~radioactivity->proc~add_geiger_ping program~radioactivity->proc~add_morse_code program~radioactivity->proc~adsr_new program~radioactivity->proc~close_wav_file program~radioactivity->proc~create_wav_file program~radioactivity->proc~fr program~radioactivity->proc~get_name program~radioactivity->proc~mix_tracks program~radioactivity->proc~string_to_morse program~shepard_risset_glissando shepard_risset_glissando program~shepard_risset_glissando->proc~amplitude program~shepard_risset_glissando->proc~apply_fade_in program~shepard_risset_glissando->proc~apply_fade_out program~shepard_risset_glissando->proc~close_wav_file program~shepard_risset_glissando->proc~create_wav_file program~shepard_risset_glissando->proc~get_name program~shepard_risset_glissando->proc~initialize_frequencies program~shepard_risset_glissando->proc~mix_tracks program~shepard_scale shepard_scale program~shepard_scale->proc~apply_reverse_effect program~shepard_scale->proc~close_wav_file program~shepard_scale->proc~create_wav_file program~shepard_scale->proc~get_name program~shepard_scale->proc~mix_tracks
Help