diff options
Diffstat (limited to 'TamTamSynthLab.activity/SynthLab/SynthLabConstants.py')
-rwxr-xr-x | TamTamSynthLab.activity/SynthLab/SynthLabConstants.py | 374 |
1 files changed, 374 insertions, 0 deletions
diff --git a/TamTamSynthLab.activity/SynthLab/SynthLabConstants.py b/TamTamSynthLab.activity/SynthLab/SynthLabConstants.py new file mode 100755 index 0000000..a16ffe3 --- /dev/null +++ b/TamTamSynthLab.activity/SynthLab/SynthLabConstants.py @@ -0,0 +1,374 @@ +from gettext import gettext as _ + +class SynthLabConstants: + + PIC_SIZE = 80 + HALF_SIZE = PIC_SIZE // 2 + PIC_SIZE_HIGHLIGHT = PIC_SIZE + 4 + + GT_CONTROL_OUTPUT = 0 + GT_CONTROL_INPUT = 1 + GT_SOUND_OUTPUT = 2 + GT_SOUND_INPUT = 3 + # GATE_POINT[objecttype][gatetype][gatenum] = (x,y) + # relative to object center + GATE_POINT = [ [ [ (-1,33) ] ], + [ [], [ (-24,-34),(-9,-34),(8,-34),(24,-34) ], [ (-1,33) ] ], + [ [], [ (31,-20),(31,-6),(31,6),(31,19) ], [ (-3,33) ], [ (-3,-34) ] ], + [ [], [], [], [ (2,-35) ] ] ] + # GATE_MAP[objecttype][gatetype][gatenum] = [ sx, sy, ex, ey, (wireX,wireY) ] + # gate locations relative to object center + GATE_MAP = [ [ [ [-7,26,4,39] ] ], + [ [], [[-30,-40,-19,-28], [-15,-40,-3,-28], [3,-40,14,-28], [19,-40,28,-28]], [[-6,28,5,40]] ], + [ [], [[25,-25,37,-14], [25,-12,37,-1], [25,1,37,12], [25,13,37,25]], [[-8,27,3,40]], [[-8,-40,3,-27]] ], + [ [], [], [], [[-4,-40,7,-29]] ] ] + # insert wire locations into map + GATE_OFFSET = 15 + for oT in GATE_MAP: + for gT in oT: + for m in gT: + x = (m[2]+m[0])//2 + y = (m[3]+m[1])//2 + # snap to edges + if x < -HALF_SIZE+GATE_OFFSET: x = m[0] + elif x > HALF_SIZE-GATE_OFFSET: x = m[2] + if y < -HALF_SIZE+GATE_OFFSET: y = m[1] + elif y > HALF_SIZE-GATE_OFFSET: y = m[3] + m.append( ( x, y ) ) + + OBJ_Y_LOC = 710 + INIT_LOCATIONS = [ [450,OBJ_Y_LOC], [450,OBJ_Y_LOC], [450,OBJ_Y_LOC], + [450, OBJ_Y_LOC], [225,OBJ_Y_LOC], [225,OBJ_Y_LOC], + [225,OBJ_Y_LOC], [225, OBJ_Y_LOC], [675,OBJ_Y_LOC], + [675,OBJ_Y_LOC], [675,OBJ_Y_LOC], [675, OBJ_Y_LOC], + [450, 625]] + + FLOAT1 = [.1, 1] + FLOAT = [.01, 2] + INTEGER = [1, 0] + + # s1 s2 s3 s4 s1min s1max s2min s2max s3min s3max s4min s4max [s1step s1digits] [s2step s2digits] [s3step s3digits] + TYPES = { 'lfo': [.5, 1, 0, 0, 0, 1, 0, 20, 0, 5, 0, 1, FLOAT, FLOAT, INTEGER], + 'rand': [.5, 1.5, 2, 0, 0, 2, 0, 2, 0, 20, 0, 1, FLOAT, FLOAT, FLOAT], + 'adsr': [.02, .05, .8, .1, 0, 1, 0, 1, 0, 1, 0, 1, FLOAT, FLOAT, FLOAT], + 'trackpadX': [0, 1, 0, 0, -1, 1, 0, 2, 0, 1, 0, 1, FLOAT, FLOAT, INTEGER], + 'trackpadY': [0, 1, 0, 0, -1, 1, 0, 2, 0, 1, 0, 1, FLOAT, FLOAT, INTEGER], + 'fm': [1, .5, 5, 1, 0, 2, 0, 2, 0, 10, 0, 2, FLOAT, FLOAT, FLOAT], + 'buzz': [1, 30, .85, 1, 0, 2, 0, 40, 0, 1, 0, 2, FLOAT, INTEGER, FLOAT], + 'vco': [1, 1, .2, 1, 0, 2, 0, 2, 0, .5, 0, 2, FLOAT, INTEGER, FLOAT], + 'pluck': [1, 5000, 0, 1, 0, 2, 100, 8000, 0, 8, 0, 2, FLOAT, INTEGER, FLOAT], + 'noise': [0, 3000, 4000, 1, 0, 2, 0, 8000, 0, 6000, 0, 2, INTEGER, INTEGER,INTEGER], + 'sample': [1, 5, 5000, 1, 0, 2, 0, 99, 100, 8000, 0, 2, FLOAT, INTEGER, INTEGER], + 'voice': [1, 3, 5, 1, 0, 2, 0, 8, 1, 10, 0, 2, FLOAT, INTEGER, FLOAT], + 'grain': [1, 4, 1, 1, 0, 2, 0, 99, 0, 1, 0, 2, FLOAT, INTEGER, FLOAT], + 'addSynth': [1, .005, 5, 1, 0, 2, 0, 20, 0, 9, 0, 2, FLOAT, FLOAT, INTEGER], + 'wguide': [100, 3000, .8, 1, 0, 200, 100, 5000, 0, 1, 0, 2, FLOAT1, INTEGER, FLOAT], + 'distort': [800, .7, .7, 1, 0, 1000, 0, 1, 0, 1, 0, 2, INTEGER, FLOAT, FLOAT], + 'filter': [1000, .6, 0, 1, 200, 5000, 0, 1, 0, 2, 0, 2, INTEGER, FLOAT, INTEGER], + 'ring': [500, 1, 0, 1, 0, 1000, 0, 1, 0, 5, 0, 2, INTEGER, FLOAT, INTEGER], + 'reverb': [1.5, 3000, .5, 1, 0, 4, 100, 7000, 0, 1, 0, 2, FLOAT, INTEGER, FLOAT], + 'harmon': [1.25, .04, .5, 1, 0, 2, 0, 1, 0, 1, 0, 2, FLOAT, FLOAT, FLOAT], + 'eq4band': [1., 1., 1., 1., 0, 2, 0, 2, 0, 2, 0, 2, FLOAT, FLOAT, FLOAT], + 'chorus': [.5, 1., 5., .5, 0, 3, 0, 10, 0, 30, 0, 1, FLOAT, FLOAT, FLOAT]} + + CONTROL_TYPES = ['lfo', 'rand', 'adsr', 'trackpadX', 'trackpadY'] + CONTROL_TYPES_SEL = [type + 'sel' for type in CONTROL_TYPES] + CONTROL_TYPES_PLUS = [type + '+' for type in CONTROL_TYPES] + SOURCE_TYPES = ['fm', 'buzz', 'vco', 'pluck', 'noise', 'sample', 'voice', 'grain', 'addSynth'] + SOURCE_TYPES_SEL = [type + 'sel' for type in SOURCE_TYPES] + SOURCE_TYPES_PLUS = [type + '+' for type in SOURCE_TYPES] + FX_TYPES = ['wguide', 'distort','filter', 'ring', 'reverb', 'harmon', 'eq4band', 'chorus'] + FX_TYPES_SEL = [type + 'sel' for type in FX_TYPES] + FX_TYPES_PLUS = [type + '+' for type in FX_TYPES] + OUTPUT_TYPE = ['adsr'] + OUTPUT_TYPE_SEL = ['adsrsel'] + CHOOSE_TYPE = [CONTROL_TYPES, SOURCE_TYPES, FX_TYPES, OUTPUT_TYPE] + CHOOSE_TYPE2 = [CONTROL_TYPES_SEL, SOURCE_TYPES_SEL, FX_TYPES_SEL, OUTPUT_TYPE_SEL] + CHOOSE_TYPE_PLUS = [CONTROL_TYPES_PLUS, SOURCE_TYPES_PLUS, FX_TYPES_PLUS] + +# SynthLab Tooltips + SOURCE = _('Source') + EFFECT = _('Effect') + CONTROL = _('Control') + SOUNDOUT = _('Sound Output') + + #Controls + LFO = _('LFO') + AMP = _('Amplitude') + FREQ = _('Frequency') + WAVEFORM = _('Waveform') + LFO_WAVEFORMS = [_('Sine'), _('Triangle'), _('Bi-Square'), _('Uni-Square'), _('Sawtooth'), _('Sawtooth-down')] + OFFSET = _('Offset') + LFO_INFO = _('A low frequency oscillation (LFO) is a signal usually below 20 Hz which creates a pulsating rythm rather than a audible tone. This signal is commonly used to control sound parameters.') + LFO_PARA1 = _('The amplitude (volume) of the LFO signal. More amplitude means the effect will be more noticeable.') + LFO_PARA2 = _('The speed of the signal beteen 0 Hz and 20 hz.') + LFO_PARA3 = _('The type of waveform that will be used for the LFO.') + LFO_PARA4 = _('Offset: ') + + RANDOM = _('Random') + MIN = _('Minimum') + MAX = _('Maximum') + FREQ = FREQ + SEED = _('Seed') + RANDOM_INFO = _('A random number generator is a computational device designed to generate a sequence of numbers that lack any pattern.') + RANDOM_PARA1 = _('') + RANDOM_PARA2 = _('The minimum value that can be generated.') + RANDOM_PARA3 = _('The maximum value that can be generated.') + RANDOM_PARA4 = _('') + + ADSR = _('Envelope') + ATTACK = _('Attack') + DECAY = _('Decay') + SUSTAIN = _('Sustain') + RELEASE = _('Release') + ADSR_INFO = _("An ADSR envelope is a component of many sythesizers, samplers, and other electronic musical instruments. Its function is to modulate some aspect of the instrument's sound - often its volume - over time.") + ADSR_PARA1 = _('How quickly the sound reaches full volume after the sound is activated.') + ADSR_PARA2 = _('How quickly the sound drops to the sustain level after the initial peak.') + ADSR_PARA3= _('The "constant" volume that the sound takes after decay until the note is released.') + ADSR_PARA4 = _('How quickly the sound fades when a note ends.') + + TRACKPADX = _('Trackpad X') + MIN = MIN + MAX = MAX + SCALING = _('Scaling') + SCALING_TYPES = [_('Lin'), _('Log')] + POLL = _('Poll time') + TRACKPADX_INFO = _('The XO trackpad can be used to control sound parameters. This is the x axis, from left to right.') + TRACKPADX_PARA1 = _('The minimum value the trackpad will send.') + TRACKPADX_PARA2 = _('The maximum value de trackpad will send.') + TRACKPADX_PARA3 = _('The type of scaling, logarithmic or linear.') + TRACKPADX_PARA4= _('The time interval between each event coming from the trackpad.') + + TRACKPADY = _('Trackpad Y') + MIN = MIN + MAX = MAX + SCALING = SCALING + SCALING_TYPES = SCALING_TYPES + POLL = POLL + TRACKPADY_INFO = _('The XO trackpad can be used to control sound parameters. This is the y axis, from top to bottom.') + TRACKPADY_PARA1 = _('The minimum value the trackpad will send.') + TRACKPADY_PARA2 = _('The maximum value de trackpad will send.') + TRACKPADY_PARA3 = _('The type of scaling, logarithmic or linear.') + TRACKPADY_PARA4 = _('The time interval between each event coming from the trackpad.') + + #Source + FM = _('FM') + CAR = _('Carrier Frequency') + MOD = _('Modulator Frequency') + INDEX = _('Index') + GAIN = _('Gain') + FM_INFO = _('Frequency modulation synthesis is a form of audio synthesis where the timbre of a simple waveform is changed by frequency modulating it with a modulating frequency that is also in the audio range, resulting in a more complex waveform and a different-sounding tone.') + FM_PARA1 = _('The main waveform frequency.') + FM_PARA2 = _('The frequency of the waveform that will modulate the Carrier waveform.') + FM_PARA3 = _('The variation in frequency of the Carrier waveform.') + FM_PARA4 = _('The overall gain (volume) of the sound source.') + + BUZZ = _('Buzz') + FREQ = FREQ + NHARM = _('Number of harmonics') + FSLOPE = _('Filter Slope') + GAIN = GAIN + BUZZ_INFO = _('') + BUZZ_PARA1 = _('') + BUZZ_PARA2 = _('') + BUZZ_PARA3 = _('') + BUZZ_PARA4 = _('The overall gain (volume) of the sound source.') + + VCO = _('VCO') + FREQ = FREQ + WAVEFORM = WAVEFORM + VCO_WAVEFORMS = [_('Sawtooth'), _('Square'), _('Triangle')] + FSLOPE = FSLOPE + GAIN = GAIN + VCO_INFO = _('') + VCO_PARA1 = _('') + VCO_PARA2 = _('') + VCO_PARA3 = _('') + VCO_PARA4 = _('The overall gain (volume) of the sound source.') + + PLUCK = _('Pluck') + FREQ = FREQ + LFILTER = _('Lowpass Filter') + VIBRATO = _('Vibrato') + GAIN = GAIN + PLUCK_INFO = _('') + PLUCK_PARA1 = _('') + PLUCK_PARA2 = _('') + PLUCK_PARA3 = _('') + PLUCK_PARA4 = _('The overall gain (volume) of the sound source.') + + NOISE = _('Noise') + NOISETYPE = _('Type') + NOISE_TYPES = [_('White'), _('Pink'), _('Gauss')] + FREQ = FREQ + BANDWITH = _('Bandwith') + GAIN = GAIN + NOISE_INFO = _('') + NOISE_PARA1 = _('') + NOISE_PARA2 = _('') + NOISE_PARA3 = _('') + NOISE_PARA4 = _('The overall gain (volume) of the sound source.') + + SAMPLE = _('Sound Sample') + FREQ = FREQ + SAMPLEN = _('Sample Number') + SAMPLE_NAMES = _('Sample name') + LFILTER = LFILTER + GAIN = GAIN + SAMPLE_INFO = _('') + SAMPLE_PARA1 = _('') + SAMPLE_PARA2 = _('') + SAMPLE_PARA3 = _('') + SAMPLE_PARA4 = _('The overall gain (volume) of the sound source.') + + VOICE = _('Voice') + FREQ = FREQ + VOWEL = _('Vowel') + VOWEL_TYPES = ['i', 'e', 'ee', 'a', 'u', 'o1', 'o2', 'oa', 'oe'] + VIBRATO = VIBRATO + GAIN = GAIN + VOICE_INFO = _('') + VOICE_PARA1 = _('') + VOICE_PARA2 = _('') + VOICE_PARA3 = _('') + VOICE_PARA4 = _('The overall gain (volume) of the sound source.') + + GRAIN = _('Grain') + FREQ = FREQ + SAMPLEN = SAMPLEN + INDEX = _('Index') + GAIN = GAIN + GRAIN_INFO = _('') + GRAIN_PARA1 = _('') + GRAIN_PARA2 = _('') + GRAIN_PARA3 = _('') + GRAIN_PARA4 = _('The overall gain (volume) of the sound source.') + + ADDSYNTH = _('Additive Synthesis') + FREQ = FREQ + SPREAD = _('Spread') + WAVE = _('Waveform') + GAIN = GAIN + ADDSYNTH_INFO = _('') + ADDSYNTH_PARA1 = _('') + ADDSYNTH_PARA2 = _('') + ADDSYNTH_PARA3 = _('') + ADDSYNTH_PARA4 = _('The overall gain (volume) of the sound source.') + + #Effects + DELAY = _('Delay') + FREQ = FREQ + LFILTER = LFILTER + FEEDBACK = _('Feedback') + GAIN = GAIN + DELAY_INFO = _('') + DELAY_PARA1 = _('') + DELAY_PARA2 = _('') + DELAY_PARA3 = _('') + DELAY_PARA4 = _('The overall gain (volume) of the sound source.') + + DIST = _('Distortion') + FREQ = FREQ + RESON = _('Resonance') + DISTL = _('Distotion Level') + GAIN = GAIN + DIST_INFO = _('') + DIST_PARA1 = _('') + DIST_PARA2 = _('') + DIST_PARA3 = _('') + DIST_PARA4 = _('The overall gain (volume) of the sound source.') + + FILTER = _('Filter') + FREQ = FREQ + FSLOPE = FSLOPE + FTYPE = _('Type') + FILTER_TYPES = [_('Lowpass'), _('Highpass'), _('Bandpass')] + GAIN = GAIN + FILTER_INFO = _('') + FILTER_PARA1 = _('') + FILTER_PARA2 = _('') + FILTER_PARA3 = _('') + FILTER_PARA4 = _('The overall gain (volume) of the sound source.') + + RINGMOD = _('Ring Modulator') + FREQ = FREQ + MIX = _('Mix') + WAVEFORM = WAVEFORM + LFO_WAVEFORMS = LFO_WAVEFORMS + GAIN = GAIN + RINGMOD_INFO = _('') + RINGMOD_PARA1 = _('') + RINGMOD_PARA2 = _('') + RINGMOD_PARA3 = _('') + RINGMOD_PARA4 = _('The overall gain (volume) of the sound source.') + + REVERB = _('Reverb') + REVERBD = _('Length') + REVERBF = _('Lowpass Filter') + REVERBL = _('Reverb Level') + GAIN = GAIN + REVERB_INFO = _('Reverberation is the persistence od sound in a particular space after the original sound is removed.') + REVERB_PARA1 = _('') + REVERB_PARA2 = _('') + REVERB_PARA3 = _('') + REVERB_PARA4 = _('The overall gain (volume) of the sound source.') + + HARMON = _('Harmonizer') + FREQ = FREQ + DRYDELAY = _('Dry delay') + MIX = MIX + GAIN = GAIN + HARMON_INFO = _('') + HARMON_PARA1 = _('') + HARMON_PARA2 = _('') + HARMON_PARA3 = _('') + HARMON_PARA4 = _('The overall gain (volume) of the sound source.') + + EQ4BAND = _('Equalizer 4 bands') + FREQ1 = _('Band one gain') + FREQ2 = _('Band two gain') + FREQ3 = _('Band three gain') + FREQ4 = _('Band four gain') + EQ4BAND_INFO = _('A 4 band equalizer is an effect that splits the spectrum into 4 bands and allows the bands to be set at different levels.') + EQ4BAND_PARA1 = _('The gain (volume) of band 1.') + EQ4BAND_PARA2 = _('The gain (volume) of band 2.') + EQ4BAND_PARA3 = _('The gain (volume) of band 3.') + EQ4BAND_PARA4 = _('The gain (volume) of band 4.') + + CHORUS = _('Chorus') + LFODEPTH = _('LFO Depth') + LFOFREQ = _('LFO Frequency') + DELAY = _('Delay') + FEEDBACK = FEEDBACK + CHORUS_INFO = _('A chorus effect is a condition in the way people perceive similar sounds coming from multiple sources.') + CHORUS_PARA1 = _('LFO Depth: The amplitude of the LFO signal.') + CHORUS_PARA2 = _('LFO Frequency: the frequency of the LFO signal.') + CHORUS_PARA3 = _('Delay: The amount of delay between the two signals.') + CHORUS_PARA4 = _('The overall gain (volume) of the sound source.') + + SYNTHTYPES = [[LFO, RANDOM, ADSR, TRACKPADX, TRACKPADY], + [FM, BUZZ, VCO, PLUCK, NOISE, SAMPLE, VOICE, GRAIN, ADDSYNTH], + [DELAY, DIST, FILTER, RINGMOD, REVERB, HARMON, EQ4BAND, CHORUS], [ADSR]] + + SYNTHPARA = { _('lfo'): [AMP, FREQ, WAVEFORM, OFFSET, LFO_INFO, LFO_PARA1, LFO_PARA2, LFO_PARA3, LFO_PARA4], + _('rand'): [MIN, MAX, FREQ, SEED, RANDOM_INFO, RANDOM_PARA1, RANDOM_PARA2, RANDOM_PARA3, RANDOM_PARA4], + _('adsr'): [ATTACK, DECAY, SUSTAIN, RELEASE, ADSR_INFO, ADSR_PARA1, ADSR_PARA2, ADSR_PARA3, ADSR_PARA4], + _('trackpadX'): [MIN, MAX, SCALING, POLL, TRACKPADX_INFO, TRACKPADX_PARA1, TRACKPADX_PARA2, TRACKPADX_PARA3, TRACKPADX_PARA4], + _('trackpadY'): [MIN, MAX, SCALING, POLL, TRACKPADY_INFO, TRACKPADY_PARA1, TRACKPADY_PARA2, TRACKPADY_PARA3, TRACKPADY_PARA4], + _('fm'): [CAR, MOD, INDEX, GAIN, FM_INFO, FM_PARA1, FM_PARA2, FM_PARA3, FM_PARA4], + _('buzz'): [FREQ, NHARM, FSLOPE, GAIN, BUZZ_INFO, BUZZ_PARA1, BUZZ_PARA2, BUZZ_PARA3, BUZZ_PARA4], + _('vco'): [FREQ, WAVEFORM, FSLOPE, GAIN, VCO_INFO, VCO_PARA1, VCO_PARA2, VCO_PARA3, VCO_PARA4], + _('pluck'): [FREQ, LFILTER, VIBRATO, GAIN, PLUCK_INFO, PLUCK_PARA1, PLUCK_PARA2, PLUCK_PARA3, PLUCK_PARA4], + _('noise'): [NOISETYPE, FREQ, BANDWITH, GAIN, NOISE_INFO, NOISE_PARA1, NOISE_PARA2, NOISE_PARA3, NOISE_PARA4], + _('sample'): [FREQ, SAMPLEN, LFILTER, GAIN, SAMPLE_INFO, SAMPLE_PARA1, SAMPLE_PARA2, SAMPLE_PARA3, SAMPLE_PARA4], + _('voice'): [FREQ, VOWEL, VIBRATO, GAIN, VOICE_INFO, VOICE_PARA1, VOICE_PARA2, VOICE_PARA3, VOICE_PARA4], + _('grain'): [FREQ, SAMPLEN, INDEX, GAIN, GRAIN_INFO, GRAIN_PARA1, GRAIN_PARA2, GRAIN_PARA3, GRAIN_PARA4], + _('addSynth'): [FREQ, SPREAD, WAVE, GAIN, ADDSYNTH_INFO, ADDSYNTH_PARA1, ADDSYNTH_PARA2, ADDSYNTH_PARA3, ADDSYNTH_PARA4], + _('wguide'): [FREQ, LFILTER, FEEDBACK, GAIN, DELAY_INFO, DELAY_PARA1, DELAY_PARA2, DELAY_PARA3, DELAY_PARA4], + _('distort'): [FREQ, RESON, DISTL, GAIN, DIST_INFO, DIST_PARA1, DIST_PARA2, DIST_PARA3, DIST_PARA4], + _('filter'): [FREQ, FSLOPE, FTYPE, GAIN, FILTER_INFO, FILTER_PARA1, FILTER_PARA2, FILTER_PARA3, FILTER_PARA4], + _('ring'): [FREQ, MIX, WAVEFORM, GAIN, RINGMOD_INFO, RINGMOD_PARA1, RINGMOD_PARA2, RINGMOD_PARA3, RINGMOD_PARA4], + _('reverb'): [REVERBD, REVERBF, REVERBL, GAIN, REVERB_INFO, REVERB_PARA1, REVERB_PARA2, REVERB_PARA3, REVERB_PARA4], + _('harmon'): [FREQ, DRYDELAY, MIX, GAIN, HARMON_INFO, HARMON_PARA1, HARMON_PARA2, HARMON_PARA3, HARMON_PARA4], + _('eq4band'): [FREQ1, FREQ2, FREQ3, FREQ4, EQ4BAND_INFO, EQ4BAND_PARA1, EQ4BAND_PARA2, EQ4BAND_PARA3, EQ4BAND_PARA4], + _('chorus'): [LFODEPTH, LFOFREQ, DELAY, FEEDBACK, CHORUS_INFO, CHORUS_PARA1, CHORUS_PARA2, CHORUS_PARA3, CHORUS_PARA4]} |