From 143f535abcf66b6bb16ac3ae2be33f53233411c9 Mon Sep 17 00:00:00 2001 From: Oli Date: Mon, 30 Jul 2007 05:04:35 +0000 Subject: Merge branch 'master' of git+ssh://olipet@dev.laptop.org/git/projects/tamtam --- diff --git a/.gitignore b/.gitignore index d024028..1d01f1c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ *pyc *~ *.kpf +*.xo \ No newline at end of file diff --git a/Edit/EditToolbars.py b/Edit/EditToolbars.py new file mode 100644 index 0000000..67bf1ce --- /dev/null +++ b/Edit/EditToolbars.py @@ -0,0 +1,221 @@ +#!/usr/bin/env python + +import gtk +import Config + +from sugar.graphics.toolbutton import ToolButton +from sugar.graphics.toggletoolbutton import ToggleToolButton +from sugar.graphics.palette import Palette +from sugar.graphics.icon import Icon +from Util.ThemeWidgets import * +from gettext import gettext as _ + +class mainToolbar(gtk.Toolbar): + def __init__(self,toolbox, edit): + gtk.Toolbar.__init__(self) + + def _insertSeparator(x = 1): + for i in range(x): + self.separator = gtk.SeparatorToolItem() + self.separator.set_draw(True) + self.insert(self.separator,-1) + self.separator.show() + + self.toolbox = toolbox + self.edit = edit + + self.tooltips = gtk.Tooltips() + + #Play button + self._playPalette = playPalette(_('Play / Stop'), self.edit) + self.playButton = ToggleToolButton('play') + self.playButton.set_palette(self._playPalette) + #self.playButton.connect(None) + self.insert(self.playButton, -1) + self.playButton.show() + + #Rewind button + self.rewindButton = ToggleToolButton('rewind') + #self.rewindButton.connect(None) + self.insert(self.rewindButton, -1) + self.rewindButton.show() + + #Record button + self._generationPalette = generationPalette(_('Generation'), self.edit) + self.recordButton = ToggleToolButton('record') + #self.recordButton.connect(None) + self.recordButton.set_palette(self._generationPalette) + self.insert(self.recordButton, -1) + self.recordButton.show() + + _insertSeparator(2) + + #Pencil button + self._pencilPalette = pencilPalette(_('Draw Tool'), self.edit) + self.pencilButton = ToggleToolButton('pencil') + self.pencilButton.set_palette(self._pencilPalette) + #self.pencilButton.connect(None) + self.insert(self.pencilButton, -1) + self.pencilButton.show() + + _insertSeparator(4) + + #Volume / Tempo button + self._volumeTempoPalette = volumeTempoPalette(_('Volume / Tempo'), self.edit) + self.volumeTempoButton = ToggleToolButton('voltemp') + self.volumeTempoButton.set_palette(self._volumeTempoPalette) + #self.volumeTempoButton.connect(None) + self.insert(self.volumeTempoButton, -1) + self.volumeTempoButton.show() + + #Properties button + self._propsPalette = propsPalette(_('Properties'), self.edit) + self.propsButton = ToggleToolButton('props') + self.propsButton.set_palette(self._propsPalette) + #self.propsButton.connect(None) + self.insert(self.propsButton, -1) + self.propsButton.show() + +class playPalette(Palette): + def __init__(self, label, edit): + Palette.__init__(self, label) + + self.edit = edit + +class pencilPalette(Palette): + def __init__(self, label, edit): + Palette.__init__(self, label) + + self.edit = edit + + self.pencilBox = gtk.VBox() + + self.checkbox = gtk.CheckButton(label = _('Non-continuous')) + + self.timeSigHBox = gtk.HBox() + self.timeSigImage = gtk.Image() + self.timeSigImage.set_from_file(Config.TAM_TAM_ROOT + '/icons/notedur.svg') + self.timeSigBox = gtk.combo_box_new_text() + self.timeSigBox.append_text(_('1/2')) + self.timeSigBox.append_text(_('1/4')) + self.timeSigBox.append_text(_('1/8')) + self.timeSigBox.append_text(_('1/16')) + self.timeSigBox.append_text(_('1/32')) + self.timeSigBox.set_active(0) + self.timeSigHBox.pack_start(self.timeSigImage, False, False, padding = 5) + self.timeSigHBox.pack_start(self.timeSigBox, False, False, padding = 5) + + self.pencilBox.pack_start(self.checkbox, False, False, padding = 5) + self.pencilBox.pack_start(self.timeSigHBox, False, False, padding = 5) + self.pencilBox.show_all() + + self.set_content(self.pencilBox) + + +class volumeTempoPalette(Palette): + def __init__(self, label, edit): + Palette.__init__(self, label) + + self.edit = edit + + self.volumeTempoBox = gtk.VBox() + + self.volumeSliderBox = gtk.HBox() + self.volumeSliderLabel = gtk.Label(_('Volume')) + self.volumeSliderAdj = gtk .Adjustment(value=0, lower=0, upper=1, step_incr=0.1, page_incr=0, page_size=0) + self.volumeSlider = gtk.HScale(adjustment = self.volumeSliderAdj) + self.volumeSlider.set_size_request(250,15) + self.volumeSlider.set_inverted(False) + self.volumeSlider.set_draw_value(False) + self.volumeSliderBox.pack_start(self.volumeSliderLabel, False, False, padding = 5) + self.volumeSliderBox.pack_end(self.volumeSlider, False, False, padding = 5) + + self.tempoSliderBox = gtk.HBox() + self.tempoSliderLabel = gtk.Label(_('Tempo')) + self.tempoSliderAdj = gtk.Adjustment(value=0, lower=0, upper=1, step_incr=0.1, page_incr=0, page_size=0) + self.tempoSlider = gtk.HScale(adjustment = self.tempoSliderAdj) + self.tempoSlider.set_size_request(250,15) + self.tempoSlider.set_inverted(False) + self.tempoSlider.set_draw_value(False) + self.tempoSliderBox.pack_start(self.tempoSliderLabel, False, False, padding = 5) + self.tempoSliderBox.pack_end(self.tempoSlider, False, False, padding = 5) + + self.volumeTempoBox.pack_start(self.volumeSliderBox, padding = 5) + self.volumeTempoBox.pack_start(self.tempoSliderBox, padding = 5) + self.volumeTempoBox.show_all() + + self.set_content(self.volumeTempoBox) + +class propsPalette(Palette): + def __init__(self, label, edit): + Palette.__init__(self, label) + + self.edit = edit + +class generationPalette(Palette): + def __init__(self, label, edit): + Palette.__init__(self, label) + + self.edit = edit + + self.mainBox = gtk.VBox() + self.slidersBox = gtk.HBox() + self.scaleModeBox = gtk.HBox() + self.decisionBox = gtk.HBox() + + self.XYSliderBox1 = RoundFixed(fillcolor = '#CCCCCC', bordercolor = '#000000') + self.XYSliderBox1.set_size_request(200,200) + self.XYButton1 = ImageToggleButton( Config.TAM_TAM_ROOT + '/icons/XYBut.svg', Config.TAM_TAM_ROOT + '/icons/XYButDown.svg') + self.XAdjustment1 = gtk.Adjustment( 1, 0, 100, 1, 1, 1 ) + self.YAdjustment1 = gtk.Adjustment( 1, 0, 100, 1, 1, 1 ) + self.XYSlider1 = XYSlider( self.XYSliderBox1, self.XYButton1, self.XAdjustment1, self.YAdjustment1, False, True ) + + self.XYSliderBox2 = RoundFixed(fillcolor = '#CCCCCC', bordercolor = '#000000') + self.XYSliderBox2.set_size_request(200,200) + self.XYButton2 = ImageToggleButton( Config.TAM_TAM_ROOT + '/icons/XYBut.svg', Config.TAM_TAM_ROOT + '/icons/XYButDown.svg') + self.XAdjustment2 = gtk.Adjustment( 1, 0, 100, 1, 1, 1 ) + self.YAdjustment2 = gtk.Adjustment( 1, 0, 100, 1, 1, 1 ) + self.XYSlider2 = XYSlider( self.XYSliderBox2, self.XYButton2, self.XAdjustment2, self.YAdjustment2, False, True ) + + self.XYSliderBox3 = RoundFixed(fillcolor = '#CCCCCC', bordercolor = '#000000') + self.XYSliderBox3.set_size_request(200,200) + self.XYButton3 = ImageToggleButton( Config.TAM_TAM_ROOT + '/icons/XYBut.svg', Config.TAM_TAM_ROOT + '/icons/XYButDown.svg') + self.XAdjustment3 = gtk.Adjustment( 1, 0, 100, 1, 1, 1 ) + self.YAdjustment3 = gtk.Adjustment( 1, 0, 100, 1, 1, 1 ) + self.XYSlider3 = XYSlider( self.XYSliderBox3, self.XYButton3, self.XAdjustment3, self.YAdjustment3, False, True ) + + self.slidersBox.pack_start(self.XYSlider1, False, False, padding = 5) + self.slidersBox.pack_start(self.XYSlider2, False, False, padding = 5) + self.slidersBox.pack_start(self.XYSlider3, False, False, padding = 5) + + self.scaleBoxLabel = gtk.Label(_('Scale: ')) + self.scaleBox = gtk.combo_box_new_text() + for scale in [_('Major scale'), _('Harmonic minor scale'), _('Natural minor scale'), _('Phrygian scale'), _('Dorian scale'), _('Lydian scale'), _('Myxolidian scale')]: + self.scaleBox.append_text(scale) + self.scaleBox.set_active(0) + + self.modeBoxLabel = gtk.Label(_('Mode: ')) + self.modeBox = gtk.combo_box_new_text() + for mode in [_('Drunk'), _('Drone and Jump'), _('Repeater'), _('Loop segments')]: + self.modeBox.append_text(mode) + self.modeBox.set_active(0) + + self.scaleModeBox.pack_start(self.scaleBoxLabel, False, False, padding = 10) + self.scaleModeBox.pack_start(self.scaleBox, False, False, padding = 10) + self.scaleModeBox.pack_start(self.modeBoxLabel, False, False, padding = 10) + self.scaleModeBox.pack_start(self.modeBox, False, False, padding = 10) + + self.acceptButton = Icon('stock-accept') + self.cancelButton = Icon('activity-stop') + self.decisionBox.pack_start(self.cancelButton, False, False, padding = 5) + self.decisionBox.pack_start(self.acceptButton, False, False, padding = 5) + + self.mainBox.pack_start(self.slidersBox, False, False, padding = 5) + self.mainBox.pack_start(self.scaleModeBox, False, False, padding = 5) + self.mainBox.pack_start(self.decisionBox, False, False, padding = 5) + self.mainBox.show_all() + + + self.set_content(self.mainBox) + + diff --git a/Edit/MainWindow.py b/Edit/MainWindow.py index efb1ebc..9c268de 100644 --- a/Edit/MainWindow.py +++ b/Edit/MainWindow.py @@ -13,6 +13,8 @@ from Util.CSoundClient import new_csound_client from Util.InstrumentPanel import InstrumentPanel from Util.InstrumentPanel import DrumPanel from Util.CSoundNote import CSoundNote +from EditToolbars import mainToolbar +from gettext import gettext as _ from subprocess import Popen import time import os @@ -43,12 +45,20 @@ KEY_MAP_PIANO = Config.KEY_MAP_PIANO #----------------------------------- class MainWindow( SubActivity ): - def __init__( self, set_mode ): + def __init__( self, activity, set_mode ): self.csnd = new_csound_client() self.tooltips = gtk.Tooltips() + self.activity = activity for i in [6,7,8,9,10]: self.csnd.setTrackVolume(100, i) self.trackCount = 6 + + # Toolbar + self.activity.activity_toolbar.keep.show() + self._mainToolbar = mainToolbar(self.activity.toolbox, self) + self.activity.toolbox.add_toolbar(_('Compose'), self._mainToolbar) + self.activity.toolbox.set_current_toolbar(1) + self._mainToolbar.show() def init_data( ): TP.ProfileBegin("init_data") @@ -977,8 +987,8 @@ class MainWindow( SubActivity ): self.displayPage( id ) def handleClose(self,widget): - self.set_mode('quit') - + self.activity.close() + def onTimeout(self): self.updateFPS() @@ -1064,7 +1074,7 @@ class MainWindow( SubActivity ): self.csnd.setTrackVolume(self._data["track_volume"][i], i) def handleTrackVolume( self, widget, track ): - self._data["track_volume"][track] = round( widget.get_value() ) + self._data["track_volume"][track] = round( widget.get_value() ) self.csnd.setTrackVolume(self._data["track_volume"][track], track) def getTrackInstrument( self, track ): diff --git a/Resources/tooltips_en.py b/Resources/tooltips_en.py index 8fe201f..d974a76 100644 --- a/Resources/tooltips_en.py +++ b/Resources/tooltips_en.py @@ -1,172 +1,174 @@ +from gettext import gettext as _ + class Tooltips: def __init__(self): # Edit self.Edit = {} # tools - self.Edit["2toolPointerButton"] = 'Select tool' - self.Edit["2toolPencilButton"] = 'Draw tool' - self.Edit["2toolBrushButton"] = 'Paint tool' + self.Edit["2toolPointerButton"] = _('Select tool') + self.Edit["2toolPencilButton"] = _('Draw tool') + self.Edit["2toolBrushButton"] = _('Paint tool') # create tune - self.Edit["2generateBtn"] = 'Generate new tune' + self.Edit["2generateBtn"] = _('Generate new tune') # page - self.Edit["2pageGenerateButton"] = 'Generate page' - self.Edit["2pagePropertiesButton"] = 'Page properties' - self.Edit["2pageDeleteButton"] = 'Delete page(s)' - self.Edit["2pageDuplicateButton"] = 'Duplicate page(s)' - self.Edit["2pageNewButton"] = 'Add page' - self.Edit["2pageBeatsButton"] = 'Beats per page' - self.Edit["2saveButton"] = 'Save tune' - self.Edit["2loadButton"] = 'Load tune' + self.Edit["2pageGenerateButton"] = _('Generate page') + self.Edit["2pagePropertiesButton"] = _('Page properties') + self.Edit["2pageDeleteButton"] = _('Delete page(s)') + self.Edit["2pageDuplicateButton"] = _('Duplicate page(s)') + self.Edit["2pageNewButton"] = _('Add page') + self.Edit["2pageBeatsButton"] = _('Beats per page') + self.Edit["2saveButton"] = _('Save tune') + self.Edit["2loadButton"] = _('Load tune') # track - self.Edit["2trackGenerateButton"] = 'Generate track' - self.Edit["2trackPropertiesButton"] = 'Track properties' - self.Edit["2trackDeleteButton"] = 'Clear track' - self.Edit["2trackDuplicateButton"] = 'Duplicate track' + self.Edit["2trackGenerateButton"] = _('Generate track') + self.Edit["2trackPropertiesButton"] = _('Track properties') + self.Edit["2trackDeleteButton"] = _('Clear track') + self.Edit["2trackDuplicateButton"] = _('Duplicate track') # note - self.Edit["2notePropertiesButton"] = 'Note(s) properties' - self.Edit["2noteDeleteButton"] = 'Delete note(s)' - self.Edit["2noteDuplicateButton"] = 'Duplicate note(s)' - self.Edit["2noteOnsetMinusButton"] = 'Move note in time' - self.Edit["2noteOnsetPlusButton"] = 'Move note in time' - self.Edit["2notePitchMinusButton"] = 'Lower pitch' - self.Edit["2notePitchPlusButton"] = 'Raise pitch' - self.Edit["2noteDurationMinusButton"] = 'Modify duration' - self.Edit["2noteDurationPlusButton"] = 'Modify duration' - self.Edit["2noteVolumeMinusButton"] = 'Lower volume' - self.Edit["2noteVolumePlusButton"] = 'Raise volume' + self.Edit["2notePropertiesButton"] = _('Note(s) properties') + self.Edit["2noteDeleteButton"] = _('Delete note(s)') + self.Edit["2noteDuplicateButton"] = _('Duplicate note(s)') + self.Edit["2noteOnsetMinusButton"] = _('Move note in time') + self.Edit["2noteOnsetPlusButton"] = _('Move note in time') + self.Edit["2notePitchMinusButton"] = _('Lower pitch') + self.Edit["2notePitchPlusButton"] = _('Raise pitch') + self.Edit["2noteDurationMinusButton"] = _('Modify duration') + self.Edit["2noteDurationPlusButton"] = _('Modify duration') + self.Edit["2noteVolumeMinusButton"] = _('Lower volume') + self.Edit["2noteVolumePlusButton"] = _('Raise volume') # transport - self.Edit["2playButton"] = 'Play' - self.Edit["2pauseButton"] = 'Pause' - self.Edit["2stopButton"] = 'Stop' - self.Edit["2keyRecordButton"] = 'Keyboard recording' - self.Edit["2recordButton"] = 'Save as .ogg' - self.Edit["2rewindButton"] = 'Rewind' - self.Edit["2closeButton"] = 'Save to journal and quit' + self.Edit["2playButton"] = _('Play') + self.Edit["2pauseButton"] = _('Pause') + self.Edit["2stopButton"] = _('Stop') + self.Edit["2keyRecordButton"] = _('Keyboard recording') + self.Edit["2recordButton"] = _('Save as .ogg') + self.Edit["2rewindButton"] = _('Rewind') + self.Edit["2closeButton"] = _('Save to journal and quit') # volume and tempo - self.Edit["2volumeSlider"] = 'Master volume' - self.Edit["2tempoSlider"] = 'Tempo' + self.Edit["2volumeSlider"] = _('Master volume') + self.Edit["2tempoSlider"] = _('Tempo') #InstrumentBox - self.Edit["2instrument1muteButton"] = "Left click to mute, right click to solo" - self.Edit["2instrument2muteButton"] = "Left click to mute, right click to solo" - self.Edit["2instrument3muteButton"] = "Left click to mute, right click to solo" - self.Edit["2instrument4muteButton"] = "Left click to mute, right click to solo" - self.Edit["2drumMuteButton"] = "Left click to mute, right click to solo" + self.Edit["2instrument1muteButton"] = _("Left click to mute, right click to solo") + self.Edit["2instrument2muteButton"] = _("Left click to mute, right click to solo") + self.Edit["2instrument3muteButton"] = _("Left click to mute, right click to solo") + self.Edit["2instrument4muteButton"] = _("Left click to mute, right click to solo") + self.Edit["2drumMuteButton"] = _("Left click to mute, right click to solo") self.ALGO = {} - self.ALGO["XYButton1"] = '-- Rythm density, | Rythm regularity' - self.ALGO["XYButton2"] = '-- Pitch regularity, | Pitch maximum step' - self.ALGO["XYButton3"] = '-- Average duration, | Silence probability' - self.ALGO["drunk"] = 'Drunk' - self.ALGO["droneJump"] = 'Drone and Jump' - self.ALGO["repeat"] = 'Repeater' - self.ALGO["loopSeg"] = 'Loop segments' - self.ALGO["majorKey"] = 'Major scale' - self.ALGO["minorHarmKey"] = 'Harmonic minor scale' - self.ALGO["minorKey"] = 'Natural minor scale' - self.ALGO["phrygienKey"] = 'Phrygian scale' - self.ALGO["dorienKey"] = 'Dorian scale' - self.ALGO["lydienKey"] = 'Lydian scale' - self.ALGO["myxoKey"] = 'Myxolydian scale' - self.ALGO["saveButton"] = 'Save preset' - self.ALGO["loadButton"] = 'Load preset' - self.ALGO["checkButton"] = 'Generate' - self.ALGO["cancelButton"] = 'Close' + self.ALGO["XYButton1"] = _('-- Rythm density, | Rythm regularity' ) + self.ALGO["XYButton2"] = _('-- Pitch regularity, | Pitch maximum step' ) + self.ALGO["XYButton3"] = _('-- Average duration, | Silence probability') + self.ALGO["drunk"] = _('Drunk') + self.ALGO["droneJump"] = _('Drone and Jump') + self.ALGO["repeat"] = _('Repeater') + self.ALGO["loopSeg"] = _('Loop segments') + self.ALGO["majorKey"] = _('Major scale') + self.ALGO["minorHarmKey"] = _('Harmonic minor scale') + self.ALGO["minorKey"] = _('Natural minor scale') + self.ALGO["phrygienKey"] = _('Phrygian scale') + self.ALGO["dorienKey"] = _('Dorian scale') + self.ALGO["lydienKey"] = _('Lydian scale') + self.ALGO["myxoKey"] = _('Myxolydian scale') + self.ALGO["saveButton"] = _('Save preset') + self.ALGO["loadButton"] = _('Load preset') + self.ALGO["checkButton"] = _('Generate') + self.ALGO["cancelButton"] = _('Close') self.PROP = {} - self.PROP['pitchUp'] = 'Transpose up' - self.PROP['pitchDown'] = 'Transpose down' - self.PROP['volumeUp'] = 'Volume up' - self.PROP['volumeDown'] = 'Volume down' - self.PROP['panSlider'] = 'Panoramisation' - self.PROP['reverbSlider'] = 'Reverb' - self.PROP['attackSlider'] = 'Attack duration' - self.PROP['decaySlider'] = 'Decay duration' - self.PROP['filterTypeLowButton'] = 'Lowpass filter' - self.PROP['filterTypeHighButton'] = 'Highpass filter' - self.PROP['filterTypeBandButton'] = 'Bandpass filter' - self.PROP['cutoffSlider'] = 'Filter cutoff' - self.PROP['pitchGen'] = 'Open algorithmic generator' - self.PROP['volumeGen'] = 'Open algorithmic generator' - self.PROP['panGen'] = 'Open algorithmic generator' - self.PROP['reverbGen'] = 'Open algorithmic generator' - self.PROP['attackGen'] = 'Open algorithmic generator' - self.PROP['decayGen'] = 'Open algorithmic generator' - self.PROP['cutoffGen'] = 'Open algorithmic generator' - self.PROP['line'] = 'Line' - self.PROP['drunk'] = 'Drunk' - self.PROP['droneJump'] = 'Drone and jump' - self.PROP['repeater'] = 'Repeater' - self.PROP['loopseg'] = 'Loop segments' - self.PROP['minSlider'] = 'Minimum value' - self.PROP['maxSlider'] = 'Maximum value' - self.PROP['paraSlider'] = 'Specific parameter' - self.PROP['checkButton'] = 'Apply generator' - self.PROP['cancelButton'] = 'Cancel' + self.PROP['pitchUp'] = _('Transpose up') + self.PROP['pitchDown'] = _('Transpose down') + self.PROP['volumeUp'] = _('Volume up') + self.PROP['volumeDown'] = _('Volume down') + self.PROP['panSlider'] = _('Panoramisation') + self.PROP['reverbSlider'] = _('Reverb') + self.PROP['attackSlider'] = _('Attack duration') + self.PROP['decaySlider'] = _('Decay duration') + self.PROP['filterTypeLowButton'] = _('Lowpass filter') + self.PROP['filterTypeHighButton'] = _('Highpass filter') + self.PROP['filterTypeBandButton'] = _('Bandpass filter') + self.PROP['cutoffSlider'] = _('Filter cutoff') + self.PROP['pitchGen'] = _('Open algorithmic generator') + self.PROP['volumeGen'] = _('Open algorithmic generator') + self.PROP['panGen'] = _('Open algorithmic generator') + self.PROP['reverbGen'] = _('Open algorithmic generator') + self.PROP['attackGen'] = _('Open algorithmic generator') + self.PROP['decayGen'] = _('Open algorithmic generator') + self.PROP['cutoffGen'] = _('Open algorithmic generator') + self.PROP['line'] = _('Line') + self.PROP['drunk'] = _('Drunk') + self.PROP['droneJump'] = _('Drone and jump') + self.PROP['repeater'] = _('Repeater') + self.PROP['loopseg'] = _('Loop segments') + self.PROP['minSlider'] = _('Minimum value') + self.PROP['maxSlider'] = _('Maximum value') + self.PROP['paraSlider'] = _('Specific parameter') + self.PROP['checkButton'] = _('Apply generator') + self.PROP['cancelButton'] = _('Cancel') #miniTamTam - VOL = 'Volume' - BAL = 'Balance' - REV = 'Reverb' - PLAY = 'Play / Stop' - STOP = 'Stop' - SEQ = 'Left click to record, right click to record on top' - GEN = 'Generate' - COMPL = 'Complexity of beat' - BEAT = 'Beats per bar' - TEMPO = 'Tempo' - JAZZ = 'Jazz / Rock Kit' - AFRI = 'African Kit' - ARAB = 'Arabic Kit' - BRES = 'South American Kit' - ELEC = 'Electronic Kit' - RECMIC = 'Record with the microphone' - RECLAB = 'Open SynthLab to create noise' - MT_RECORDBUTTONS = ['Record mic into slot 1', 'Record mic into slot 2', 'Record mic into slot 3', 'Record mic into slot 4'] + VOL = _('Volume') + BAL = _('Balance') + REV = _('Reverb') + PLAY = _('Play / Stop') + STOP = _('Stop') + SEQ = _('Left click to record, right click to record on top') + GEN = _('Generate') + COMPL = _('Complexity of beat') + BEAT = _('Beats per bar') + TEMPO = _('Tempo') + JAZZ = _('Jazz / Rock Kit') + AFRI = _('African Kit') + ARAB = _('Arabic Kit') + BRES = _('South American Kit') + ELEC = _('Electronic Kit') + RECMIC = _('Record with the microphone') + RECLAB = _('Open SynthLab to create noise') + MT_RECORDBUTTONS = [_('Record mic into slot 1'), _('Record mic into slot 2'), _('Record mic into slot 3'), _('Record mic into slot 4')] #Synthlab - SOURCE = 'Source' - EFFECT = 'Effect' - CONTROL = 'Control' - SOUNDOUT = 'Sound Output' - SOUNDDUR = 'Sound Duration' - SL_RECORDBUTTONS = ['Record into slot 1', 'Record into slot 2', 'Record into slot 3', 'Record into slot 4', 'Record into slot 5', 'Record into slot 6'] - SAVE = 'Save' - LOAD = 'Load' - SAVEMINI = 'Save to miniTamTam' - CLOSE = 'Save to journal and quit' - RESET = 'Reset' + SOURCE = _('Source') + EFFECT = _('Effect') + CONTROL = _('Control') + SOUNDOUT = _('Sound Output') + SOUNDDUR = _('Sound Duration') + SL_RECORDBUTTONS = [_('Record into slot 1'), _('Record into slot 2'), _('Record into slot 3'), _('Record into slot 4'), _('Record into slot 5'), _('Record into slot 6')] + SAVE = _('Save') + LOAD = _('Load') + SAVEMINI = _('Save to miniTamTam') + CLOSE = _('Save to journal and quit') + RESET = _('Reset') #Controls - LFO = 'LFO' - AMP = 'Amplitude' - FREQ = 'Frequency' - WAVEFORM = 'Waveform' - LFO_WAVEFORMS = ['Sine', 'Triangle', 'Bi-Square', 'Uni-Square', 'Sawtooth', 'Sawtooth-down'] - OFFSET = 'Offset' + LFO = _('LFO') + AMP = _('Amplitude') + FREQ = _('Frequency') + WAVEFORM = _('Waveform') + LFO_WAVEFORMS = [_('Sine'), _('Triangle'), _('Bi-Square'), _('Uni-Square'), _('Sawtooth'), _('Sawtooth-down')] + OFFSET = _('Offset') - RANDOM = 'Random' - MIN = 'Minimum' - MAX = 'Maximum' + RANDOM = _('Random') + MIN = _('Minimum') + MAX = _('Maximum') FREQ = FREQ - SEED = 'Seed' + SEED = _('Seed') - ADSR = 'Envelope' - ATTACK = 'Attack' - DECAY = 'Decay' - SUSTAIN = 'Sustain' - RELEASE = 'Release' + ADSR = _('Envelope') + ATTACK = _('Attack') + DECAY = _('Decay') + SUSTAIN = _('Sustain') + RELEASE = _('Release') - TRACKPADX = 'Trackpad X' + TRACKPADX = _('Trackpad X') MIN = MIN MAX = MAX - SCALING = 'Scaling' - SCALING_TYPES = ['Lin', 'Log'] - POLL = 'Poll time' + SCALING = _('Scaling') + SCALING_TYPES = [_('Lin'), _('Log')] + POLL = _('Poll time') - TRACKPADY = 'Trackpad Y' + TRACKPADY = _('Trackpad Y') MIN = MIN MAX = MAX SCALING = SCALING @@ -174,136 +176,136 @@ class Tooltips: POLL = POLL #Source - FM = 'FM' - CAR = 'Carrier Frequency' - MOD = 'Modulator Frequency' - INDEX = 'Index' - GAIN = 'Gain' + FM = _('FM') + CAR = _('Carrier Frequency') + MOD = _('Modulator Frequency') + INDEX = _('Index') + GAIN = _('Gain') - BUZZ = 'Buzz' + BUZZ = _('Buzz') FREQ = FREQ - NHARM = 'Number of harmonics' - FSLOPE = 'Filter Slope' + NHARM = _('Number of harmonics') + FSLOPE = _('Filter Slope') GAIN = GAIN - VCO = 'VCO' + VCO = _('VCO') FREQ = FREQ WAVEFORM = WAVEFORM - VCO_WAVEFORMS = ['Sawtooth', 'Square', 'Triangle'] + VCO_WAVEFORMS = [_('Sawtooth'), _('Square'), _('Triangle')] FSLOPE = FSLOPE GAIN = GAIN - PLUCK = 'Pluck' + PLUCK = _('Pluck') FREQ = FREQ - LFILTER = 'Lowpass Filter' - VIBRATO = 'Vibrato' + LFILTER = _('Lowpass Filter') + VIBRATO = _('Vibrato') GAIN = GAIN - NOISE = 'Noise' - NOISETYPE = 'Type' - NOISE_TYPES = ['White', 'Pink', 'Gauss'] + NOISE = _('Noise') + NOISETYPE = _('Type') + NOISE_TYPES = [_('White'), _('Pink'), _('Gauss')] FREQ = FREQ - BANDWITH = 'Bandwith' + BANDWITH = _('Bandwith') GAIN = GAIN - SAMPLE = 'Sound Sample' + SAMPLE = _('Sound Sample') FREQ = FREQ - SAMPLEN = 'Sample Number' - SAMPLE_NAMES = 'Sample name' + SAMPLEN = _('Sample Number') + SAMPLE_NAMES = _('Sample name') LFILTER = LFILTER GAIN = GAIN - VOICE = 'Voice' + VOICE = _('Voice') FREQ = FREQ - VOWEL = 'Vowel' + VOWEL = _('Vowel') VOWEL_TYPES = ['i', 'e', 'ee', 'a', 'u', 'o1', 'o2', 'oa', 'oe'] VIBRATO = VIBRATO GAIN = GAIN - GRAIN = 'grain' + GRAIN = _('grain') FREQ = FREQ SAMPLEN = SAMPLEN - INDEX = 'index' + INDEX = _('index') GAIN = GAIN - ADDSYNTH = 'addSynth' + ADDSYNTH = _('addSynth') FREQ = FREQ - SPREAD = 'spread' - WAVE = 'waveform' + SPREAD = _('spread') + WAVE = _('waveform') GAIN = GAIN #Effects - DELAY = 'Delay' + DELAY = _('Delay') FREQ = FREQ LFILTER = LFILTER - FEEDBACK = 'Feedback' + FEEDBACK = _('Feedback') GAIN = GAIN - DIST = 'Distortion' + DIST = _('Distortion') FREQ = FREQ - RESON = 'Resonance' - DISTL = 'Distotion Level' + RESON = _('Resonance') + DISTL = _('Distotion Level') GAIN = GAIN - FILTER = 'Filter' + FILTER = _('Filter') FREQ = FREQ FSLOPE = FSLOPE - FTYPE = 'Type' - FILTER_TYPES = ['Lowpass', 'Highpass', 'Bandpass'] + FTYPE = _('Type') + FILTER_TYPES = [_('Lowpass'), _('Highpass'), _('Bandpass')] GAIN = GAIN - RINGMOD = 'Ring Modulator' + RINGMOD = _('Ring Modulator') FREQ = FREQ - MIX = 'Mix' + MIX = _('Mix') WAVEFORM = WAVEFORM LFO_WAVEFORMS = LFO_WAVEFORMS GAIN = GAIN - REVERB = 'Reverb' - REVERBD = 'Length' - REVERBF = 'Lowpass Filter' - REVERBL = 'Reverb Level' + REVERB = _('Reverb') + REVERBD = _('Length') + REVERBF = _('Lowpass Filter') + REVERBL = _('Reverb Level') GAIN = GAIN - HARMON = 'Harmonizer' + HARMON = _('Harmonizer') FREQ = FREQ - DRYDELAY = 'Dry delay' + DRYDELAY = _('Dry delay') MIX = MIX GAIN = GAIN - EQ4BAND = 'Equalizer 4 bands' - FREQ1 = 'Band one gain' - FREQ2 = 'Band two gain' - FREQ3 = 'Band three gain' - FREQ4 = 'Band four gain' + EQ4BAND = _('Equalizer 4 bands') + FREQ1 = _('Band one gain') + FREQ2 = _('Band two gain') + FREQ3 = _('Band three gain') + FREQ4 = _('Band four gain') - CHORUS = 'Chorus' - LFODEPTH = 'LFO Depth' - LFOFREQ = 'LFO Frequency' - DELAY = 'Delay' + CHORUS = _('Chorus') + LFODEPTH = _('LFO Depth') + LFOFREQ = _('LFO Frequency') + DELAY = _('Delay') FEEDBACK = FEEDBACK 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], - 'rand': [MIN, MAX, FREQ, SEED], - 'adsr': [ATTACK, DECAY, SUSTAIN, RELEASE], - 'trackpadX': [MIN, MAX, SCALING, POLL], - 'trackpadY': [MIN, MAX, SCALING, POLL], - 'fm': [CAR, MOD, INDEX, GAIN], - 'buzz': [FREQ, NHARM, FSLOPE, GAIN], - 'vco': [FREQ, WAVEFORM, FSLOPE, GAIN], - 'pluck': [FREQ, LFILTER, VIBRATO, GAIN], - 'noise': [NOISETYPE, FREQ, BANDWITH, GAIN], - 'sample': [FREQ, SAMPLEN, LFILTER, GAIN], - 'voice': [FREQ, VOWEL, VIBRATO, GAIN], - 'grain': [FREQ, SAMPLEN, INDEX, GAIN], - 'addSynth': [FREQ, SPREAD, WAVE, GAIN], - 'wguide': [FREQ, LFILTER, FEEDBACK, GAIN], - 'distort': [FREQ, RESON, DISTL, GAIN], - 'filter': [FREQ, FSLOPE, FTYPE, GAIN], - 'ring': [FREQ, MIX, WAVEFORM, GAIN], - 'reverb': [REVERBD, REVERBF, REVERBL, GAIN], - 'harmon': [FREQ, DRYDELAY, MIX, GAIN], - 'eq4band': [FREQ1, FREQ2, FREQ3, FREQ4], - 'chorus': [LFODEPTH, LFOFREQ, DELAY, FEEDBACK]} + SYNTHPARA = { _('lfo'): [AMP, FREQ, WAVEFORM, OFFSET], + _('rand'): [MIN, MAX, FREQ, SEED], + _('adsr'): [ATTACK, DECAY, SUSTAIN, RELEASE], + _('trackpadX'): [MIN, MAX, SCALING, POLL], + _('trackpadY'): [MIN, MAX, SCALING, POLL], + _('fm'): [CAR, MOD, INDEX, GAIN], + _('buzz'): [FREQ, NHARM, FSLOPE, GAIN], + _('vco'): [FREQ, WAVEFORM, FSLOPE, GAIN], + _('pluck'): [FREQ, LFILTER, VIBRATO, GAIN], + _('noise'): [NOISETYPE, FREQ, BANDWITH, GAIN], + _('sample'): [FREQ, SAMPLEN, LFILTER, GAIN], + _('voice'): [FREQ, VOWEL, VIBRATO, GAIN], + _('grain'): [FREQ, SAMPLEN, INDEX, GAIN], + _('addSynth'): [FREQ, SPREAD, WAVE, GAIN], + _('wguide'): [FREQ, LFILTER, FEEDBACK, GAIN], + _('distort'): [FREQ, RESON, DISTL, GAIN], + _('filter'): [FREQ, FSLOPE, FTYPE, GAIN], + _('ring'): [FREQ, MIX, WAVEFORM, GAIN], + _('reverb'): [REVERBD, REVERBF, REVERBL, GAIN], + _('harmon'): [FREQ, DRYDELAY, MIX, GAIN], + _('eq4band'): [FREQ1, FREQ2, FREQ3, FREQ4], + _('chorus'): [LFODEPTH, LFOFREQ, DELAY, FEEDBACK]} diff --git a/SynthLab/SynthLabWindow.py b/SynthLab/SynthLabWindow.py index e8e8dfc..a3435c3 100644 --- a/SynthLab/SynthLabWindow.py +++ b/SynthLab/SynthLabWindow.py @@ -471,7 +471,7 @@ class SynthLabWindow(SubActivity): def handleClose( self, widget, data ): if self.journalCalled: - self.set_mode('quit') + self.activity.close() return self.set_mode('welcome') if as_window: diff --git a/TamTam.py b/TamTam.py index 4984b42..10bd33f 100755 --- a/TamTam.py +++ b/TamTam.py @@ -109,13 +109,10 @@ class TamTam(Activity): def doNothing(): #a callback function to appease SynthLab pass + def set_mode(self, mode, arg = None): if Config.DEBUG: print 'DEBUG: TamTam::set_mode from', self.mode, 'to', mode - if mode == 'quit': - self.close() # Save and cleanup - self.destroy() - if self.mode != None: self.modeList[ self.mode ].onDeactivate() if FAKE_ACTIVITY: @@ -154,7 +151,7 @@ class TamTam(Activity): self.toolbox.hide() if not (mode in self.modeList): self.metadata['title'] = 'TamTam Edit' - self.modeList[mode] = MainWindow(self.set_mode) + self.modeList[mode] = MainWindow(self, self.set_mode) if self.instrumentPanel in self.preloadList: self.instrumentPanel.load() # finish loading self.modeList[mode].setInstrumentPanel( self.instrumentPanel ) @@ -202,13 +199,14 @@ class TamTam(Activity): return elif key == 49:#39: s #self.set_mode('synth') - self.keyboardWindow.hide_all() - l = os.spawnlp(os.P_NOWAIT,'/usr/share/activities/TamTam.activity/cnee','/usr/share/activities/TamTam.activity/cnee', '--record', '--keyboard', '--mouse', '--stop-key', 'h', '--out-file', '/home/olpc/test.xnl') + #self.keyboardWindow.hide_all() + #l = os.spawnlp(os.P_NOWAIT,'/usr/share/activities/TamTam.activity/cnee','/usr/share/activities/TamTam.activity/cnee', '--record', '--keyboard', '--mouse', '--stop-key', 'h', '--out-file', '/home/olpc/test.xnl') return - elif key == 10:#25: w + elif key == 25: #w + self.toolbox.show() #self.set_mode('welcome') - self.keyboardWindow.show_all() - l = os.spawnlp(os.P_NOWAIT,'/usr/share/activities/TamTam.activity/cnee','/usr/share/activities/TamTam.activity/cnee', '--replay', '--keyboard', '--mouse', '--file', '/home/olpc/test.xnl') + #self.keyboardWindow.show_all() + #l = os.spawnlp(os.P_NOWAIT,'/usr/share/activities/TamTam.activity/cnee','/usr/share/activities/TamTam.activity/cnee', '--replay', '--keyboard', '--mouse', '--file', '/home/olpc/test.xnl') return elif key == 53: #x self.destroy() diff --git a/icons/XYBut.svg b/icons/XYBut.svg new file mode 100644 index 0000000..ca4cb2d --- /dev/null +++ b/icons/XYBut.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + diff --git a/icons/XYButDown.svg b/icons/XYButDown.svg new file mode 100644 index 0000000..64bae75 --- /dev/null +++ b/icons/XYButDown.svg @@ -0,0 +1,14 @@ + + + + + + + + + + + diff --git a/icons/keyrec.svg b/icons/keyrec.svg index b904387..90d9fe8 100644 --- a/icons/keyrec.svg +++ b/icons/keyrec.svg @@ -2,12 +2,12 @@ - - + width="55px" height="55px" viewBox="0 0 55 55" enable-background="new 0 0 55 55" xml:space="preserve"> + + - + - + diff --git a/icons/loop.svg b/icons/loop.svg index f790bac..c085ee6 100644 --- a/icons/loop.svg +++ b/icons/loop.svg @@ -2,11 +2,12 @@ - - - - - - + width="55px" height="55px" viewBox="0 0 55 55" enable-background="new 0 0 55 55" xml:space="preserve"> + + + + + + diff --git a/icons/micrec1.svg b/icons/micrec1.svg new file mode 100644 index 0000000..38f1b2b --- /dev/null +++ b/icons/micrec1.svg @@ -0,0 +1,11 @@ + + + + + + + + + + diff --git a/icons/micrec2.svg b/icons/micrec2.svg new file mode 100644 index 0000000..505347e --- /dev/null +++ b/icons/micrec2.svg @@ -0,0 +1,13 @@ + + + + + + + + + + diff --git a/icons/micrec3.svg b/icons/micrec3.svg new file mode 100644 index 0000000..d203fdf --- /dev/null +++ b/icons/micrec3.svg @@ -0,0 +1,15 @@ + + + + + + + + + + diff --git a/icons/micrec4.svg b/icons/micrec4.svg new file mode 100644 index 0000000..1e63c67 --- /dev/null +++ b/icons/micrec4.svg @@ -0,0 +1,13 @@ + + + + + + + + + + diff --git a/icons/micrec5.svg b/icons/micrec5.svg new file mode 100644 index 0000000..b5c7b21 --- /dev/null +++ b/icons/micrec5.svg @@ -0,0 +1,14 @@ + + + + + + + + + + diff --git a/icons/micrec6.svg b/icons/micrec6.svg new file mode 100644 index 0000000..6b0ccc0 --- /dev/null +++ b/icons/micrec6.svg @@ -0,0 +1,15 @@ + + + + + + + + + + diff --git a/icons/minusrec.svg b/icons/minusrec.svg index 242cfa2..fb6463c 100644 --- a/icons/minusrec.svg +++ b/icons/minusrec.svg @@ -2,14 +2,14 @@ - - + width="55px" height="55px" viewBox="0 0 55 55" enable-background="new 0 0 55 55" xml:space="preserve"> + + - + - -- - + +- + diff --git a/icons/notedur.svg b/icons/notedur.svg new file mode 100644 index 0000000..cd11aae --- /dev/null +++ b/icons/notedur.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + diff --git a/icons/overrec.svg b/icons/overrec.svg index d3b95f2..bf11488 100644 --- a/icons/overrec.svg +++ b/icons/overrec.svg @@ -2,14 +2,14 @@ - - + width="55px" height="55px" viewBox="0 0 55 55" enable-background="new 0 0 55 55" xml:space="preserve"> + + - + - -+ - + ++ + diff --git a/icons/pencil.svg b/icons/pencil.svg new file mode 100644 index 0000000..cb17e04 --- /dev/null +++ b/icons/pencil.svg @@ -0,0 +1,17 @@ + + + + + + + + diff --git a/icons/play.svg b/icons/play.svg index 5d38855..0b52488 100644 --- a/icons/play.svg +++ b/icons/play.svg @@ -2,14 +2,14 @@ + width="55px" height="55px" viewBox="0 0 55 55" enable-background="new 0 0 55 55" xml:space="preserve"> - - + + - + diff --git a/icons/preset1.svg b/icons/preset1.svg index a7b61fe..90caf4b 100644 --- a/icons/preset1.svg +++ b/icons/preset1.svg @@ -3,10 +3,11 @@ - - + + - + diff --git a/icons/preset10.svg b/icons/preset10.svg index 85c0250..28e7082 100644 --- a/icons/preset10.svg +++ b/icons/preset10.svg @@ -2,14 +2,14 @@ - - + width="55px" height="55px" viewBox="0 0 55 55" enable-background="new 0 0 55 55" xml:space="preserve"> + + - - + + diff --git a/icons/preset2.svg b/icons/preset2.svg index 8b31394..f376c67 100644 --- a/icons/preset2.svg +++ b/icons/preset2.svg @@ -2,13 +2,13 @@ - - + width="55px" height="55px" viewBox="0 0 55 55" enable-background="new 0 0 55 55" xml:space="preserve"> + + - + diff --git a/icons/preset3.svg b/icons/preset3.svg index 55b923a..a22bb3c 100644 --- a/icons/preset3.svg +++ b/icons/preset3.svg @@ -2,15 +2,15 @@ - - + width="55px" height="55px" viewBox="0 0 55 55" enable-background="new 0 0 55 55" xml:space="preserve"> + + - + diff --git a/icons/preset4.svg b/icons/preset4.svg index d56061f..e6cf5e9 100644 --- a/icons/preset4.svg +++ b/icons/preset4.svg @@ -2,12 +2,13 @@ - - + width="55px" height="55px" viewBox="0 0 55 55" enable-background="new 0 0 55 55" xml:space="preserve"> + + - + diff --git a/icons/preset5.svg b/icons/preset5.svg index 68c7eb0..53f5b08 100644 --- a/icons/preset5.svg +++ b/icons/preset5.svg @@ -2,12 +2,12 @@ - - - + width="55px" height="55px" viewBox="0 0 55 55" enable-background="new 0 0 55 55" xml:space="preserve"> + + + diff --git a/icons/preset6.svg b/icons/preset6.svg index a5543e3..4c2493c 100644 --- a/icons/preset6.svg +++ b/icons/preset6.svg @@ -2,16 +2,16 @@ - - + width="55px" height="55px" viewBox="0 0 55 55" enable-background="new 0 0 55 55" xml:space="preserve"> + + - + diff --git a/icons/preset7.svg b/icons/preset7.svg index 28611d9..d6de26c 100644 --- a/icons/preset7.svg +++ b/icons/preset7.svg @@ -2,11 +2,12 @@ - - + width="55px" height="55px" viewBox="0 0 55 55" enable-background="new 0 0 55 55" xml:space="preserve"> + + - + diff --git a/icons/preset8.svg b/icons/preset8.svg index 4f5f030..5c4a17f 100644 --- a/icons/preset8.svg +++ b/icons/preset8.svg @@ -2,16 +2,16 @@ - - + width="55px" height="55px" viewBox="0 0 55 55" enable-background="new 0 0 55 55" xml:space="preserve"> + + - + diff --git a/icons/preset9.svg b/icons/preset9.svg index ef71766..4b803e9 100644 --- a/icons/preset9.svg +++ b/icons/preset9.svg @@ -2,16 +2,16 @@ - - + width="55px" height="55px" viewBox="0 0 55 55" enable-background="new 0 0 55 55" xml:space="preserve"> + + - + diff --git a/icons/props.svg b/icons/props.svg new file mode 100644 index 0000000..18f6622 --- /dev/null +++ b/icons/props.svg @@ -0,0 +1,25 @@ + + + + + + + + + + diff --git a/icons/rec1.svg b/icons/rec1.svg index f4f59e6..4a88eec 100644 --- a/icons/rec1.svg +++ b/icons/rec1.svg @@ -2,10 +2,10 @@ - - + width="55px" height="55px" viewBox="0 0 55 55" enable-background="new 0 0 55 55" xml:space="preserve"> + + - + diff --git a/icons/rec2.svg b/icons/rec2.svg index 170548b..108ea7e 100644 --- a/icons/rec2.svg +++ b/icons/rec2.svg @@ -2,12 +2,12 @@ - - + width="55px" height="55px" viewBox="0 0 55 55" enable-background="new 0 0 55 55" xml:space="preserve"> + + - + diff --git a/icons/rec3.svg b/icons/rec3.svg index c20650b..2c64c70 100644 --- a/icons/rec3.svg +++ b/icons/rec3.svg @@ -2,14 +2,14 @@ - - + width="55px" height="55px" viewBox="0 0 55 55" enable-background="new 0 0 55 55" xml:space="preserve"> + + - + diff --git a/icons/rec4.svg b/icons/rec4.svg index 75f42f0..14b2d0a 100644 --- a/icons/rec4.svg +++ b/icons/rec4.svg @@ -2,12 +2,12 @@ - - + width="55px" height="55px" viewBox="0 0 55 55" enable-background="new 0 0 55 55" xml:space="preserve"> + + - + diff --git a/icons/rec5.svg b/icons/rec5.svg index 6512474..b5c7b21 100644 --- a/icons/rec5.svg +++ b/icons/rec5.svg @@ -2,13 +2,13 @@ - - + width="55px" height="55px" viewBox="0 0 55 55" enable-background="new 0 0 55 55" xml:space="preserve"> + + - + diff --git a/icons/rec6.svg b/icons/rec6.svg index 1758bb9..6b0ccc0 100644 --- a/icons/rec6.svg +++ b/icons/rec6.svg @@ -2,14 +2,14 @@ - - + width="55px" height="55px" viewBox="0 0 55 55" enable-background="new 0 0 55 55" xml:space="preserve"> + + - + diff --git a/icons/record.svg b/icons/record.svg new file mode 100644 index 0000000..2440bf7 --- /dev/null +++ b/icons/record.svg @@ -0,0 +1,10 @@ + + + + + + + diff --git a/icons/reset.svg b/icons/reset.svg index a0bac5a..833e85b 100644 --- a/icons/reset.svg +++ b/icons/reset.svg @@ -2,12 +2,12 @@ - - - - - - + width="55px" height="55px" viewBox="0 0 55 55" enable-background="new 0 0 55 55" xml:space="preserve"> + + + + + + diff --git a/icons/rewind.svg b/icons/rewind.svg new file mode 100644 index 0000000..00dbf9d --- /dev/null +++ b/icons/rewind.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + diff --git a/icons/stop.svg b/icons/stop.svg new file mode 100644 index 0000000..d945237 --- /dev/null +++ b/icons/stop.svg @@ -0,0 +1,9 @@ + + + + + + + + diff --git a/icons/voltemp.svg b/icons/voltemp.svg new file mode 100644 index 0000000..a7a0a7a --- /dev/null +++ b/icons/voltemp.svg @@ -0,0 +1,16 @@ + + + + + + + + + + + diff --git a/miniTamTam/miniTamTamMain.py b/miniTamTam/miniTamTamMain.py index 871d9f5..c1725ac 100644 --- a/miniTamTam/miniTamTamMain.py +++ b/miniTamTam/miniTamTamMain.py @@ -106,7 +106,6 @@ class miniTamTamMain(SubActivity): self.drawInstrumentButtons() - #self.drawSliders() self.drawGeneration() self.show_all() if 'a good idea' == True: @@ -169,71 +168,6 @@ class miniTamTamMain(SubActivity): self.network.setMode( Net.MD_WAIT ) #self.activity.activity_toolbar.share.hide() - def drawSliders( self ): - mainLowBox = gtk.HBox() - mainSliderBox = RoundHBox(fillcolor = Config.PANEL_COLOR, bordercolor = Config.PANEL_BCK_COLOR, radius = Config.PANEL_RADIUS) - mainSliderBox.set_border_width(Config.PANEL_SPACING) - - reverbSliderBox = gtk.HBox() - self.reverbSliderBoxImgTop = gtk.Image() - self.reverbSliderBoxImgTop.set_from_file(Config.IMAGE_ROOT + 'reverb0.png') - reverbAdjustment = gtk.Adjustment(value=self.reverb, lower=0, upper=1, step_incr=0.1, page_incr=0, page_size=0) - reverbSlider = ImageHScale( Config.IMAGE_ROOT + "sliderbutred.png", reverbAdjustment, 7 ) - reverbSlider.set_inverted(False) - reverbSlider.set_size_request(250,15) - reverbAdjustment.connect("value_changed" , self.handleReverbSlider) - reverbSliderBox.pack_start(reverbSlider, True, 20) - reverbSliderBox.pack_start(self.reverbSliderBoxImgTop, False, padding=0) - self.tooltips.set_tip(reverbSlider,Tooltips.REV) - - balSliderBox = gtk.HBox() - self.balSliderBoxImgBot = gtk.Image() - self.balSliderBoxImgTop = gtk.Image() - self.balSliderBoxImgBot.set_from_file(Config.IMAGE_ROOT + 'dru2.png') - self.balSliderBoxImgTop.set_from_file(Config.IMAGE_ROOT + 'instr2.png') - balAdjustment = gtk.Adjustment(value=self.instVolume, lower=0, upper=100, step_incr=1, page_incr=0, page_size=0) - balSlider = ImageHScale( Config.IMAGE_ROOT + "sliderbutviolet.png", balAdjustment, 7 ) - balSlider.set_inverted(False) - balSlider.set_size_request(250,15) - balAdjustment.connect("value_changed" , self.handleBalanceSlider) - balSliderBox.pack_start(self.balSliderBoxImgBot, False, padding=0) - balSliderBox.pack_start(balSlider, True, 20) - balSliderBox.pack_start(self.balSliderBoxImgTop, False, padding=0) - self.tooltips.set_tip(balSlider,Tooltips.BAL) - - micRecordBox = gtk.HBox() - for i in [1,2,3,4]: - recordButton = ImageButton(Config.IMAGE_ROOT + 'synthRecord' + str(i) + '.png', Config.IMAGE_ROOT + 'synthRecord' + str(i) + 'Down.png', Config.IMAGE_ROOT + 'synthRecord' + str(i) + 'Over.png') - target = 'mic' + str(i) - recordButton.connect("clicked", self.micRec, target) - micRecordBox.pack_start(recordButton, False, False, 2) - self.tooltips.set_tip(recordButton, Tooltips.MT_RECORDBUTTONS[i-1]) - - #Transport Button Box - transportBox = RoundHBox(fillcolor = Config.PANEL_COLOR, bordercolor = Config.PANEL_BCK_COLOR, radius = Config.PANEL_RADIUS) - transportBox.set_border_width(Config.PANEL_SPACING) - self.seqRecordButton = ImageToggleButton(Config.IMAGE_ROOT + 'krecord.png', Config.IMAGE_ROOT + 'krecordDown.png', Config.IMAGE_ROOT + 'krecordOver.png') - self.seqRecordButton.connect('button-press-event', self.sequencer.handleRecordButton ) - - self.playStopButton = ImageToggleButton(Config.IMAGE_ROOT + 'miniplay.png', Config.IMAGE_ROOT + 'stop.png') - self.playStopButton.connect('clicked' , self.handlePlayButton) - transportBox.pack_start(self.seqRecordButton) - transportBox.pack_start(self.playStopButton) - closeButton = ImageButton(Config.IMAGE_ROOT + 'close.png') - closeButton.connect('pressed',self.handleClose) - transportBox.pack_start(closeButton) - self.tooltips.set_tip(self.seqRecordButton,Tooltips.SEQ) - self.tooltips.set_tip(self.playStopButton,Tooltips.PLAY) - - mainSliderBox.pack_start(balSliderBox, padding = 5) - mainSliderBox.pack_start(reverbSliderBox, padding = 5) - mainSliderBox.pack_start(micRecordBox, padding = 5) - - mainLowBox.pack_start(mainSliderBox) - mainLowBox.pack_start(transportBox) - - self.masterVBox.pack_start(mainLowBox) - def drawGeneration( self ): slidersBox = RoundVBox(fillcolor = Config.PANEL_COLOR, bordercolor = Config.PANEL_BCK_COLOR, radius = Config.PANEL_RADIUS) @@ -494,7 +428,7 @@ class miniTamTamMain(SubActivity): self.playStopButton.set_active(False) self.sequencer.clearSequencer() self.csnd.loopClear() - self.set_mode('quit') + self.activity.close() def handleGenerationSlider(self, adj): img = int(adj.value * 7)+1 diff --git a/miniTamTam/miniToolbars.py b/miniTamTam/miniToolbars.py index 92a1afc..a55d571 100644 --- a/miniTamTam/miniToolbars.py +++ b/miniTamTam/miniToolbars.py @@ -5,6 +5,7 @@ import Config from sugar.graphics.toolbutton import ToolButton from sugar.graphics.toggletoolbutton import ToggleToolButton +from sugar.graphics.palette import Palette from gettext import gettext as _ class playToolbar(gtk.Toolbar): @@ -147,4 +148,5 @@ class recordToolbar(gtk.Toolbar): self.loopSetButton.connect('clicked', self.miniTamTam.handleLoopSettingsBtn) self.insert(self.loopSetButton, -1) self.loopSetButton.show() - self.loopSetButton.set_tooltip(_('Add new sound')) \ No newline at end of file + self.loopSetButton.set_tooltip(_('Add new sound')) + \ No newline at end of file diff --git a/po/TamTam.pot b/po/TamTam.pot new file mode 100644 index 0000000..13ca615 --- /dev/null +++ b/po/TamTam.pot @@ -0,0 +1,997 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2007-07-27 11:05-0400\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: Edit/EditToolbars.py:29 Resources/tooltips_en.py:114 +#: miniTamTam/miniToolbars.py:31 +msgid "Play / Stop" +msgstr "" + +#: Edit/EditToolbars.py:51 +msgid "Draw Tool" +msgstr "" + +#: Edit/EditToolbars.py:61 +msgid "Volume / Tempo" +msgstr "" + +#: Edit/EditToolbars.py:69 +msgid "Properties" +msgstr "" + +#: Edit/EditToolbars.py:90 +msgid "Non-continuous" +msgstr "" + +#: Edit/EditToolbars.py:96 +msgid "1/2" +msgstr "" + +#: Edit/EditToolbars.py:97 +msgid "1/4" +msgstr "" + +#: Edit/EditToolbars.py:98 +msgid "1/8" +msgstr "" + +#: Edit/EditToolbars.py:99 +msgid "1/16" +msgstr "" + +#: Edit/EditToolbars.py:100 +msgid "1/32" +msgstr "" + +#: Edit/EditToolbars.py:121 Resources/tooltips_en.py:111 +msgid "Volume" +msgstr "" + +#: Edit/EditToolbars.py:131 Resources/tooltips_en.py:49 +#: Resources/tooltips_en.py:120 +msgid "Tempo" +msgstr "" + +#: Edit/MainWindow.py:59 +msgid "Compose" +msgstr "" + +#: Resources/tooltips_en.py:8 +msgid "Select tool" +msgstr "" + +#: Resources/tooltips_en.py:9 +msgid "Draw tool" +msgstr "" + +#: Resources/tooltips_en.py:10 +msgid "Paint tool" +msgstr "" + +#: Resources/tooltips_en.py:12 +msgid "Generate new tune" +msgstr "" + +#: Resources/tooltips_en.py:14 +msgid "Generate page" +msgstr "" + +#: Resources/tooltips_en.py:15 +msgid "Page properties" +msgstr "" + +#: Resources/tooltips_en.py:16 +msgid "Delete page(s)" +msgstr "" + +#: Resources/tooltips_en.py:17 +msgid "Duplicate page(s)" +msgstr "" + +#: Resources/tooltips_en.py:18 +msgid "Add page" +msgstr "" + +#: Resources/tooltips_en.py:19 +msgid "Beats per page" +msgstr "" + +#: Resources/tooltips_en.py:20 +msgid "Save tune" +msgstr "" + +#: Resources/tooltips_en.py:21 +msgid "Load tune" +msgstr "" + +#: Resources/tooltips_en.py:23 +msgid "Generate track" +msgstr "" + +#: Resources/tooltips_en.py:24 +msgid "Track properties" +msgstr "" + +#: Resources/tooltips_en.py:25 +msgid "Clear track" +msgstr "" + +#: Resources/tooltips_en.py:26 +msgid "Duplicate track" +msgstr "" + +#: Resources/tooltips_en.py:28 +msgid "Note(s) properties" +msgstr "" + +#: Resources/tooltips_en.py:29 +msgid "Delete note(s)" +msgstr "" + +#: Resources/tooltips_en.py:30 +msgid "Duplicate note(s)" +msgstr "" + +#: Resources/tooltips_en.py:31 Resources/tooltips_en.py:32 +msgid "Move note in time" +msgstr "" + +#: Resources/tooltips_en.py:33 +msgid "Lower pitch" +msgstr "" + +#: Resources/tooltips_en.py:34 +msgid "Raise pitch" +msgstr "" + +#: Resources/tooltips_en.py:35 Resources/tooltips_en.py:36 +msgid "Modify duration" +msgstr "" + +#: Resources/tooltips_en.py:37 +msgid "Lower volume" +msgstr "" + +#: Resources/tooltips_en.py:38 +msgid "Raise volume" +msgstr "" + +#: Resources/tooltips_en.py:40 miniTamTam/miniTamTamMain.py:149 +msgid "Play" +msgstr "" + +#: Resources/tooltips_en.py:41 +msgid "Pause" +msgstr "" + +#: Resources/tooltips_en.py:42 Resources/tooltips_en.py:115 +msgid "Stop" +msgstr "" + +#: Resources/tooltips_en.py:43 +msgid "Keyboard recording" +msgstr "" + +#: Resources/tooltips_en.py:44 +msgid "Save as .ogg" +msgstr "" + +#: Resources/tooltips_en.py:45 +msgid "Rewind" +msgstr "" + +#: Resources/tooltips_en.py:46 Resources/tooltips_en.py:141 +msgid "Save to journal and quit" +msgstr "" + +#: Resources/tooltips_en.py:48 +msgid "Master volume" +msgstr "" + +#: Resources/tooltips_en.py:51 Resources/tooltips_en.py:52 +#: Resources/tooltips_en.py:53 Resources/tooltips_en.py:54 +#: Resources/tooltips_en.py:55 +msgid "Left click to mute, right click to solo" +msgstr "" + +#: Resources/tooltips_en.py:58 +msgid "-- Rythm density, | Rythm regularity" +msgstr "" + +#: Resources/tooltips_en.py:59 +msgid "-- Pitch regularity, | Pitch maximum step" +msgstr "" + +#: Resources/tooltips_en.py:60 +msgid "-- Average duration, | Silence probability" +msgstr "" + +#: Resources/tooltips_en.py:61 Resources/tooltips_en.py:98 +msgid "Drunk" +msgstr "" + +#: Resources/tooltips_en.py:62 +msgid "Drone and Jump" +msgstr "" + +#: Resources/tooltips_en.py:63 Resources/tooltips_en.py:100 +msgid "Repeater" +msgstr "" + +#: Resources/tooltips_en.py:64 Resources/tooltips_en.py:101 +msgid "Loop segments" +msgstr "" + +#: Resources/tooltips_en.py:65 +msgid "Major scale" +msgstr "" + +#: Resources/tooltips_en.py:66 +msgid "Harmonic minor scale" +msgstr "" + +#: Resources/tooltips_en.py:67 +msgid "Natural minor scale" +msgstr "" + +#: Resources/tooltips_en.py:68 +msgid "Phrygian scale" +msgstr "" + +#: Resources/tooltips_en.py:69 +msgid "Dorian scale" +msgstr "" + +#: Resources/tooltips_en.py:70 +msgid "Lydian scale" +msgstr "" + +#: Resources/tooltips_en.py:71 +msgid "Myxolydian scale" +msgstr "" + +#: Resources/tooltips_en.py:72 +msgid "Save preset" +msgstr "" + +#: Resources/tooltips_en.py:73 +msgid "Load preset" +msgstr "" + +#: Resources/tooltips_en.py:74 Resources/tooltips_en.py:117 +msgid "Generate" +msgstr "" + +#: Resources/tooltips_en.py:75 +msgid "Close" +msgstr "" + +#: Resources/tooltips_en.py:78 +msgid "Transpose up" +msgstr "" + +#: Resources/tooltips_en.py:79 +msgid "Transpose down" +msgstr "" + +#: Resources/tooltips_en.py:80 +msgid "Volume up" +msgstr "" + +#: Resources/tooltips_en.py:81 +msgid "Volume down" +msgstr "" + +#: Resources/tooltips_en.py:82 +msgid "Panoramisation" +msgstr "" + +#: Resources/tooltips_en.py:83 Resources/tooltips_en.py:113 +#: Resources/tooltips_en.py:264 miniTamTam/miniToolbars.py:83 +msgid "Reverb" +msgstr "" + +#: Resources/tooltips_en.py:84 +msgid "Attack duration" +msgstr "" + +#: Resources/tooltips_en.py:85 +msgid "Decay duration" +msgstr "" + +#: Resources/tooltips_en.py:86 +msgid "Lowpass filter" +msgstr "" + +#: Resources/tooltips_en.py:87 +msgid "Highpass filter" +msgstr "" + +#: Resources/tooltips_en.py:88 +msgid "Bandpass filter" +msgstr "" + +#: Resources/tooltips_en.py:89 +msgid "Filter cutoff" +msgstr "" + +#: Resources/tooltips_en.py:90 Resources/tooltips_en.py:91 +#: Resources/tooltips_en.py:92 Resources/tooltips_en.py:93 +#: Resources/tooltips_en.py:94 Resources/tooltips_en.py:95 +#: Resources/tooltips_en.py:96 +msgid "Open algorithmic generator" +msgstr "" + +#: Resources/tooltips_en.py:97 +msgid "Line" +msgstr "" + +#: Resources/tooltips_en.py:99 +msgid "Drone and jump" +msgstr "" + +#: Resources/tooltips_en.py:102 +msgid "Minimum value" +msgstr "" + +#: Resources/tooltips_en.py:103 +msgid "Maximum value" +msgstr "" + +#: Resources/tooltips_en.py:104 +msgid "Specific parameter" +msgstr "" + +#: Resources/tooltips_en.py:105 +msgid "Apply generator" +msgstr "" + +#: Resources/tooltips_en.py:106 +msgid "Cancel" +msgstr "" + +#: Resources/tooltips_en.py:112 miniTamTam/miniToolbars.py:60 +msgid "Balance" +msgstr "" + +#: Resources/tooltips_en.py:116 +msgid "Left click to record, right click to record on top" +msgstr "" + +#: Resources/tooltips_en.py:118 +msgid "Complexity of beat" +msgstr "" + +#: Resources/tooltips_en.py:119 +msgid "Beats per bar" +msgstr "" + +#: Resources/tooltips_en.py:121 +msgid "Jazz / Rock Kit" +msgstr "" + +#: Resources/tooltips_en.py:122 +msgid "African Kit" +msgstr "" + +#: Resources/tooltips_en.py:123 +msgid "Arabic Kit" +msgstr "" + +#: Resources/tooltips_en.py:124 +msgid "South American Kit" +msgstr "" + +#: Resources/tooltips_en.py:125 +msgid "Electronic Kit" +msgstr "" + +#: Resources/tooltips_en.py:126 +msgid "Record with the microphone" +msgstr "" + +#: Resources/tooltips_en.py:127 +msgid "Open SynthLab to create noise" +msgstr "" + +#: Resources/tooltips_en.py:128 +msgid "Record mic into slot 1" +msgstr "" + +#: Resources/tooltips_en.py:128 +msgid "Record mic into slot 2" +msgstr "" + +#: Resources/tooltips_en.py:128 +msgid "Record mic into slot 3" +msgstr "" + +#: Resources/tooltips_en.py:128 +msgid "Record mic into slot 4" +msgstr "" + +#: Resources/tooltips_en.py:132 +msgid "Source" +msgstr "" + +#: Resources/tooltips_en.py:133 +msgid "Effect" +msgstr "" + +#: Resources/tooltips_en.py:134 +msgid "Control" +msgstr "" + +#: Resources/tooltips_en.py:135 +msgid "Sound Output" +msgstr "" + +#: Resources/tooltips_en.py:136 +msgid "Sound Duration" +msgstr "" + +#: Resources/tooltips_en.py:137 +msgid "Record into slot 1" +msgstr "" + +#: Resources/tooltips_en.py:137 +msgid "Record into slot 2" +msgstr "" + +#: Resources/tooltips_en.py:137 +msgid "Record into slot 3" +msgstr "" + +#: Resources/tooltips_en.py:137 +msgid "Record into slot 4" +msgstr "" + +#: Resources/tooltips_en.py:137 +msgid "Record into slot 5" +msgstr "" + +#: Resources/tooltips_en.py:137 +msgid "Record into slot 6" +msgstr "" + +#: Resources/tooltips_en.py:138 +msgid "Save" +msgstr "" + +#: Resources/tooltips_en.py:139 +msgid "Load" +msgstr "" + +#: Resources/tooltips_en.py:140 +msgid "Save to miniTamTam" +msgstr "" + +#: Resources/tooltips_en.py:142 +msgid "Reset" +msgstr "" + +#: Resources/tooltips_en.py:145 +msgid "LFO" +msgstr "" + +#: Resources/tooltips_en.py:146 +msgid "Amplitude" +msgstr "" + +#: Resources/tooltips_en.py:147 +msgid "Frequency" +msgstr "" + +#: Resources/tooltips_en.py:148 +msgid "Waveform" +msgstr "" + +#: Resources/tooltips_en.py:149 +msgid "Sine" +msgstr "" + +#: Resources/tooltips_en.py:149 Resources/tooltips_en.py:194 +msgid "Triangle" +msgstr "" + +#: Resources/tooltips_en.py:149 +msgid "Bi-Square" +msgstr "" + +#: Resources/tooltips_en.py:149 +msgid "Uni-Square" +msgstr "" + +#: Resources/tooltips_en.py:149 Resources/tooltips_en.py:194 +msgid "Sawtooth" +msgstr "" + +#: Resources/tooltips_en.py:149 +msgid "Sawtooth-down" +msgstr "" + +#: Resources/tooltips_en.py:150 +msgid "Offset" +msgstr "" + +#: Resources/tooltips_en.py:152 +msgid "Random" +msgstr "" + +#: Resources/tooltips_en.py:153 +msgid "Minimum" +msgstr "" + +#: Resources/tooltips_en.py:154 +msgid "Maximum" +msgstr "" + +#: Resources/tooltips_en.py:156 +msgid "Seed" +msgstr "" + +#: Resources/tooltips_en.py:158 +msgid "Envelope" +msgstr "" + +#: Resources/tooltips_en.py:159 +msgid "Attack" +msgstr "" + +#: Resources/tooltips_en.py:160 +msgid "Decay" +msgstr "" + +#: Resources/tooltips_en.py:161 +msgid "Sustain" +msgstr "" + +#: Resources/tooltips_en.py:162 +msgid "Release" +msgstr "" + +#: Resources/tooltips_en.py:164 +msgid "Trackpad X" +msgstr "" + +#: Resources/tooltips_en.py:167 +msgid "Scaling" +msgstr "" + +#: Resources/tooltips_en.py:168 +msgid "Lin" +msgstr "" + +#: Resources/tooltips_en.py:168 +msgid "Log" +msgstr "" + +#: Resources/tooltips_en.py:169 +msgid "Poll time" +msgstr "" + +#: Resources/tooltips_en.py:171 +msgid "Trackpad Y" +msgstr "" + +#: Resources/tooltips_en.py:179 +msgid "FM" +msgstr "" + +#: Resources/tooltips_en.py:180 +msgid "Carrier Frequency" +msgstr "" + +#: Resources/tooltips_en.py:181 +msgid "Modulator Frequency" +msgstr "" + +#: Resources/tooltips_en.py:182 +msgid "Index" +msgstr "" + +#: Resources/tooltips_en.py:183 +msgid "Gain" +msgstr "" + +#: Resources/tooltips_en.py:185 +msgid "Buzz" +msgstr "" + +#: Resources/tooltips_en.py:187 +msgid "Number of harmonics" +msgstr "" + +#: Resources/tooltips_en.py:188 +msgid "Filter Slope" +msgstr "" + +#: Resources/tooltips_en.py:191 +msgid "VCO" +msgstr "" + +#: Resources/tooltips_en.py:194 +msgid "Square" +msgstr "" + +#: Resources/tooltips_en.py:198 +msgid "Pluck" +msgstr "" + +#: Resources/tooltips_en.py:200 Resources/tooltips_en.py:266 +msgid "Lowpass Filter" +msgstr "" + +#: Resources/tooltips_en.py:201 +msgid "Vibrato" +msgstr "" + +#: Resources/tooltips_en.py:204 +msgid "Noise" +msgstr "" + +#: Resources/tooltips_en.py:205 Resources/tooltips_en.py:253 +msgid "Type" +msgstr "" + +#: Resources/tooltips_en.py:206 +msgid "White" +msgstr "" + +#: Resources/tooltips_en.py:206 +msgid "Pink" +msgstr "" + +#: Resources/tooltips_en.py:206 +msgid "Gauss" +msgstr "" + +#: Resources/tooltips_en.py:208 +msgid "Bandwith" +msgstr "" + +#: Resources/tooltips_en.py:211 +msgid "Sound Sample" +msgstr "" + +#: Resources/tooltips_en.py:213 +msgid "Sample Number" +msgstr "" + +#: Resources/tooltips_en.py:214 +msgid "Sample name" +msgstr "" + +#: Resources/tooltips_en.py:218 +msgid "Voice" +msgstr "" + +#: Resources/tooltips_en.py:220 +msgid "Vowel" +msgstr "" + +#: Resources/tooltips_en.py:225 Resources/tooltips_en.py:301 +msgid "grain" +msgstr "" + +#: Resources/tooltips_en.py:228 +msgid "index" +msgstr "" + +#: Resources/tooltips_en.py:231 Resources/tooltips_en.py:302 +msgid "addSynth" +msgstr "" + +#: Resources/tooltips_en.py:233 +msgid "spread" +msgstr "" + +#: Resources/tooltips_en.py:234 +msgid "waveform" +msgstr "" + +#: Resources/tooltips_en.py:238 Resources/tooltips_en.py:285 +msgid "Delay" +msgstr "" + +#: Resources/tooltips_en.py:241 +msgid "Feedback" +msgstr "" + +#: Resources/tooltips_en.py:244 +msgid "Distortion" +msgstr "" + +#: Resources/tooltips_en.py:246 +msgid "Resonance" +msgstr "" + +#: Resources/tooltips_en.py:247 +msgid "Distotion Level" +msgstr "" + +#: Resources/tooltips_en.py:250 +msgid "Filter" +msgstr "" + +#: Resources/tooltips_en.py:254 +msgid "Lowpass" +msgstr "" + +#: Resources/tooltips_en.py:254 +msgid "Highpass" +msgstr "" + +#: Resources/tooltips_en.py:254 +msgid "Bandpass" +msgstr "" + +#: Resources/tooltips_en.py:257 +msgid "Ring Modulator" +msgstr "" + +#: Resources/tooltips_en.py:259 +msgid "Mix" +msgstr "" + +#: Resources/tooltips_en.py:265 +msgid "Length" +msgstr "" + +#: Resources/tooltips_en.py:267 +msgid "Reverb Level" +msgstr "" + +#: Resources/tooltips_en.py:270 +msgid "Harmonizer" +msgstr "" + +#: Resources/tooltips_en.py:272 +msgid "Dry delay" +msgstr "" + +#: Resources/tooltips_en.py:276 +msgid "Equalizer 4 bands" +msgstr "" + +#: Resources/tooltips_en.py:277 +msgid "Band one gain" +msgstr "" + +#: Resources/tooltips_en.py:278 +msgid "Band two gain" +msgstr "" + +#: Resources/tooltips_en.py:279 +msgid "Band three gain" +msgstr "" + +#: Resources/tooltips_en.py:280 +msgid "Band four gain" +msgstr "" + +#: Resources/tooltips_en.py:282 +msgid "Chorus" +msgstr "" + +#: Resources/tooltips_en.py:283 +msgid "LFO Depth" +msgstr "" + +#: Resources/tooltips_en.py:284 +msgid "LFO Frequency" +msgstr "" + +#: Resources/tooltips_en.py:289 +msgid "lfo" +msgstr "" + +#: Resources/tooltips_en.py:290 +msgid "rand" +msgstr "" + +#: Resources/tooltips_en.py:291 +msgid "adsr" +msgstr "" + +#: Resources/tooltips_en.py:292 +msgid "trackpadX" +msgstr "" + +#: Resources/tooltips_en.py:293 +msgid "trackpadY" +msgstr "" + +#: Resources/tooltips_en.py:294 +msgid "fm" +msgstr "" + +#: Resources/tooltips_en.py:295 +msgid "buzz" +msgstr "" + +#: Resources/tooltips_en.py:296 +msgid "vco" +msgstr "" + +#: Resources/tooltips_en.py:297 +msgid "pluck" +msgstr "" + +#: Resources/tooltips_en.py:298 +msgid "noise" +msgstr "" + +#: Resources/tooltips_en.py:299 +msgid "sample" +msgstr "" + +#: Resources/tooltips_en.py:300 +msgid "voice" +msgstr "" + +#: Resources/tooltips_en.py:303 +msgid "wguide" +msgstr "" + +#: Resources/tooltips_en.py:304 +msgid "distort" +msgstr "" + +#: Resources/tooltips_en.py:305 +msgid "filter" +msgstr "" + +#: Resources/tooltips_en.py:306 +msgid "ring" +msgstr "" + +#: Resources/tooltips_en.py:307 +msgid "reverb" +msgstr "" + +#: Resources/tooltips_en.py:308 +msgid "harmon" +msgstr "" + +#: Resources/tooltips_en.py:309 +msgid "eq4band" +msgstr "" + +#: Resources/tooltips_en.py:310 +msgid "chorus" +msgstr "" + +#: SynthLab/SynthLabToolbars.py:27 +msgid "Duration: " +msgstr "" + +#: SynthLab/SynthLabToolbars.py:43 +msgid "Duration" +msgstr "" + +#: SynthLab/SynthLabToolbars.py:51 +msgid "Record Synth sound into slot 1" +msgstr "" + +#: SynthLab/SynthLabToolbars.py:57 +msgid "Record Synth sound into slot 2" +msgstr "" + +#: SynthLab/SynthLabToolbars.py:63 +msgid "Record Synth sound into slot 3" +msgstr "" + +#: SynthLab/SynthLabToolbars.py:69 +msgid "Record Synth sound into slot 4" +msgstr "" + +#: SynthLab/SynthLabToolbars.py:75 +msgid "Record Synth sound into slot 5" +msgstr "" + +#: SynthLab/SynthLabToolbars.py:81 +msgid "Record Synth sound into slot 6" +msgstr "" + +#: SynthLab/SynthLabToolbars.py:89 +msgid "Reset the worktable" +msgstr "" + +#: SynthLab/SynthLabToolbars.py:109 +msgid "Preset 1" +msgstr "" + +#: SynthLab/SynthLabToolbars.py:115 +msgid "Preset 2" +msgstr "" + +#: SynthLab/SynthLabToolbars.py:121 +msgid "Preset 3" +msgstr "" + +#: SynthLab/SynthLabToolbars.py:127 +msgid "Preset 4" +msgstr "" + +#: SynthLab/SynthLabToolbars.py:133 +msgid "Preset 5" +msgstr "" + +#: SynthLab/SynthLabToolbars.py:139 +msgid "Preset 6" +msgstr "" + +#: SynthLab/SynthLabToolbars.py:145 +msgid "Preset 7" +msgstr "" + +#: SynthLab/SynthLabToolbars.py:151 +msgid "Preset 8" +msgstr "" + +#: SynthLab/SynthLabToolbars.py:157 +msgid "Preset 9" +msgstr "" + +#: SynthLab/SynthLabToolbars.py:163 +msgid "Preset 10" +msgstr "" + +#: SynthLab/SynthLabWindow.py:61 +msgid "Main" +msgstr "" + +#: SynthLab/SynthLabWindow.py:62 +msgid "Presets" +msgstr "" + +#: Welcome.py:32 +msgid "Help" +msgstr "" + +#: miniTamTam/miniTamTamMain.py:150 +msgid "Record" +msgstr "" + +#: miniTamTam/miniToolbars.py:104 +msgid "Record microphone into slot 1" +msgstr "" + +#: miniTamTam/miniToolbars.py:110 +msgid "Record microphone into slot 2" +msgstr "" + +#: miniTamTam/miniToolbars.py:116 +msgid "Record microphone into slot 3" +msgstr "" + +#: miniTamTam/miniToolbars.py:130 +msgid "Click to record a loop" +msgstr "" + +#: miniTamTam/miniToolbars.py:136 +msgid "Click to add a loop" +msgstr "" + +#: miniTamTam/miniToolbars.py:143 +msgid "Click to clear all loops" +msgstr "" + +#: miniTamTam/miniToolbars.py:151 +msgid "Add new sound" +msgstr "" -- cgit v0.9.1