ptttl package
Submodules
ptttl.audio module
- ptttl.audio.ptttl_to_mp3(ptttl_data, mp3_filename, amplitude=0.5, wavetype=0)
Convert a PTTTLData object to audio data and write it to an .mp3 file (requires the LAME audio mp3 encoder to be installed and in your system path).
- Parameters:
ptttl_data (str) – PTTTL/RTTTL source text
mp3_filename (str) – Filename for output .mp3 file
amplitude (float) – Output signal amplitude, between 0.0 and 1.0.
wavetype (int) – Waveform type for output signal. Must be one of tones.SINE_WAVE, tones.SQUARE_WAVE, tones.TRIANGLE_WAVE, or tones.SAWTOOTH_WAVE.
- ptttl.audio.ptttl_to_samples(ptttl_data, amplitude=0.5, wavetype=0)
Convert a PTTTLData object to a list of audio samples.
- Parameters:
ptttl_data (PTTTLData) – PTTTL/RTTTL source text
amplitude (float) – Output signal amplitude, between 0.0 and 1.0.
wavetype (int) – Waveform type for output signal. Must be one of tones.SINE_WAVE, tones.SQUARE_WAVE, tones.TRIANGLE_WAVE, or tones.SAWTOOTH_WAVE.
- Returns:
list of audio samples
- Return type:
tones.tone.Samples
- ptttl.audio.ptttl_to_wav(ptttl_data, wav_filename, amplitude=0.5, wavetype=0)
Convert a PTTTLData object to audio data and write it to a .wav file.
- Parameters:
ptttl_data (str) – PTTTL/RTTTL source text
wav_filename (str) – Filename for output .wav file
amplitude (float) – Output signal amplitude, between 0.0 and 1.0.
wavetype (int) – Waveform type for output signal. Must be one of tones.SINE_WAVE, tones.SQUARE_WAVE, tones.TRIANGLE_WAVE, or tones.SAWTOOTH_WAVE.
- ptttl.audio.ptttl_to_wav_samples(ptttl_data, amplitude=0.5, wavetype=0)
Convert a PTTTLData object to a list of audio samples, packed into string and ready for writing to .wav files.
- Parameters:
ptttl_data (str) – PTTTL/RTTTL source text
amplitude (float) – Output signal amplitude, between 0.0 and 1.0.
wavetype (int) – Waveform type for output signal. Must be one of tones.SINE_WAVE, tones.SQUARE_WAVE, tones.TRIANGLE_WAVE, or tones.SAWTOOTH_WAVE.
- Returns:
list of audio samples
- Return type:
str
ptttl.parser module
- class ptttl.parser.PTTTLData(bpm=123, default_octave=4, default_duration=8, default_vibrato_freq=7.0, default_vibrato_var=20.0)
Bases:
object
Represents song data extracted from a PTTTL/RTTTL file. May contain multiple tracks, where each track is a list of PTTTLNote objects.
- Variables:
tracks ([[PTTTLNote]]) – List of tracks. Each track is a list of PTTTLNote objects.
bpm (float) – playback speed in BPM (beats per minute).
default_octave (int) – Default octave to use when none is specified
default_duration (int) – Default note duration to use when none is specified
default_vibrato_freq (float) – Default vibrato frequency when none is specified, in Hz
default_vibrato_var (float) – Default vibrato variance when none is specified, in Hz
- add_track(notes)
- class ptttl.parser.PTTTLNote(pitch, duration, vfreq=None, vvar=None)
Bases:
object
Represents a single musical note, with a pitch and duration
- Variables:
pitch (float) – Note pitch in Hz
duration (float) – Note duration in seconds
vfreq (float) – Vibrato frequency in Hz
vvar (float) – Vibrato variance from main pitch in Hz
- has_vibrato()
Returns True if vibrato frequency and variance are non-zero
- Returns:
True if vibrato is non-zero
- Return type:
bool
- class ptttl.parser.PTTTLParser
Bases:
object
Converts PTTTL/RTTTL source text to a PTTTLData object.
- exception ptttl.parser.PTTTLSyntaxError
Bases:
Exception
Raised by PTTTLParser when ptttl data is malformed and cannot be parsed
- exception ptttl.parser.PTTTLValueError
Bases:
Exception
Raised by PTTTLParser when ptttl data parsing completes, but an invalid configuration value or note value was seen.