added "Recently opened files"-menu, fixed several bugs & crashes, removed obsolete plugins from build
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@529 0778d3d1-df1d-0410-868b-ea421aaaa00d
This commit is contained in:
55
ChangeLog
55
ChangeLog
@@ -1,3 +1,58 @@
|
||||
2007-08-19 Tobias Doerffel <tobydox/at/users/dot/sourceforge/dot/net>
|
||||
|
||||
* data/locale/de.ts:
|
||||
* data/locale/de.qm:
|
||||
updated German localization-file
|
||||
|
||||
* Makefile.am:
|
||||
fixed command for updating TS-files
|
||||
|
||||
* include/config_mgr.h:
|
||||
* include/main_window.h:
|
||||
* src/core/config_mgr.cpp:
|
||||
* src/core/main_window.cpp:
|
||||
added support for "Recently opened files"-menu
|
||||
|
||||
* src/core/main_window.cpp:
|
||||
- cleanups
|
||||
- limit x-coordinate of a widget to be >= 0 in
|
||||
mainWindow::restoreWidgetState( ... ) - fixes bug with appearently
|
||||
inacccessible title-bars of piano-roll, song-editor etc. after
|
||||
loading project
|
||||
|
||||
* include/config_mgr.h:
|
||||
* src/core/engine.cpp:
|
||||
also destroy config-manager at engine::destroy()
|
||||
|
||||
* src/audio/audio_jack.cpp:
|
||||
added define for support for per-track audio-ports - almost works
|
||||
except that the buffers of the audio-port are already cleared again at
|
||||
the time the callback fills the buffers - will need an additional
|
||||
buffer in audio-ports or something like that
|
||||
|
||||
* src/core/mixer.cpp:
|
||||
* src/lib/journalling_object.cpp:
|
||||
* src/lib/project_journal.cpp:
|
||||
* src/widgets/knob.cpp:
|
||||
removed debug-out
|
||||
|
||||
* plugins/patman/patman.cpp:
|
||||
set directory of sample-selection-dialog to /usr/share/midi/freepats
|
||||
if it exists
|
||||
|
||||
* plugins/Makefile.am:
|
||||
* plugins/vibed/vibed.cpp:
|
||||
* lib/src/mmp.cpp:
|
||||
replaced obsolete PluckedStringSynth with Vibed
|
||||
|
||||
* plugins/Makefile.am:
|
||||
removed Polyb302 from build as the same results can be achieved either
|
||||
via (improved and maintained) LB302 or TripleOsc+filter - Polyb302
|
||||
just increases redundancy and adds extra maintainance-work
|
||||
|
||||
* plugins/stk/mallets/mallets.cpp:
|
||||
do not crash if Stk-files are missing
|
||||
|
||||
2007-08-18 Tobias Doerffel <tobydox/at/users/dot/sourceforge/dot/net>
|
||||
|
||||
* plugins/lb302/lb302.cpp:
|
||||
|
||||
@@ -35,7 +35,7 @@ AM_CXXFLAGS := $(AM_CXXFLAGS) $(QT_CXXFLAGS)
|
||||
$(MOC) -o $@ $<
|
||||
|
||||
%.ts:
|
||||
$(LUPDATE) $(lmms_SOURCES) `find plugins/ -type f -name *.cpp` -ts data/locale/$@
|
||||
$(LUPDATE) $(lmms_SOURCES) `find plugins/ -type f -name "*.cpp"` -ts data/locale/$@
|
||||
|
||||
%.qm: %.ts
|
||||
$(LRELEASE) $<
|
||||
|
||||
Binary file not shown.
@@ -3,7 +3,54 @@
|
||||
<name>QObject</name>
|
||||
<message>
|
||||
<source>Note detuning</source>
|
||||
<translation>Noten-Verstimmung</translation>
|
||||
<translation type="obsolete">Noten-Verstimmung</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>QWidget</name>
|
||||
<message>
|
||||
<source>Name: </source>
|
||||
<translation> Name: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Maker: </source>
|
||||
<translation>Hersteller: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copyright: </source>
|
||||
<translation>Copyright: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Requires Real Time: </source>
|
||||
<translation>Benötigt Echtzeit: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Yes</source>
|
||||
<translation>Ja</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>No</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Real Time Capable: </source>
|
||||
<translation>Echtzeitfähig: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>In Place Broken: </source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Channels In: </source>
|
||||
<translation>Eingangs-Kanäle: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Channels Out: </source>
|
||||
<translation>Ausgangs-Kanäle: </translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>File: </source>
|
||||
<translation>Datei: </translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@@ -50,10 +97,22 @@ Wenn Sie an der Übersetzung von LMMS in eine andere Sprache interessiert sind o
|
||||
Copyright (c) 2004-2006 LMMS-Developers
|
||||
|
||||
http://lmms.sourceforge.net</source>
|
||||
<translation>LMMS - Ein leistungsfähiges Synthesizer-Studio
|
||||
<translation type="obsolete">LMMS - Ein leistungsfähiges Synthesizer-Studio
|
||||
|
||||
Copyright (c) 2004-2006 LMMS-Entwickler
|
||||
|
||||
http://lmms.sourceforge.net</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>LMMS - A powerful synthesizer-studio
|
||||
|
||||
Copyright (c) 2004-2007 LMMS-Developers
|
||||
|
||||
http://lmms.sourceforge.net</source>
|
||||
<translation>LMMS - Ein leistungsfähiges Synthesizer-Studio
|
||||
|
||||
Copyright (c) 2004-2007 LMMS-Entwickler
|
||||
|
||||
http://lmms.sourceforge.net</translation>
|
||||
</message>
|
||||
</context>
|
||||
@@ -649,6 +708,10 @@ http://lmms.sourceforge.net</translation>
|
||||
<source>END</source>
|
||||
<translation>ENDE</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loop</source>
|
||||
<translation>Wiederholen</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>automatableButton</name>
|
||||
@@ -790,6 +853,49 @@ http://lmms.sourceforge.net</translation>
|
||||
<source>If you click here, move-mode will be activated. In this mode you can move the values you selected in select-mode. You can also press 'Shift+M' on your keyboard to activate this mode.</source>
|
||||
<translation>Wenn Sie hier klicken, wird der Auswahl-Verschieben-Modus aktiviert. In diesem Modus können Sie die markierten Werte verschieben. Sie können auch 'Umschalt+M' auf Ihrer Tastatur drücken, um diesen Modus zu aktivieren.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Note detuning</source>
|
||||
<translation>Noten-Verstimmung</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>bassBoosterControlDialog</name>
|
||||
<message>
|
||||
<source>Frequency</source>
|
||||
<translation>Frequenz</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>FREQ</source>
|
||||
<translation>FREQ</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Frequency:</source>
|
||||
<translation>Frequenz:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Gain</source>
|
||||
<translation>Gain</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>GAIN</source>
|
||||
<translation>GAIN</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Gain:</source>
|
||||
<translation>Gain:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Ratio</source>
|
||||
<translation>Rate</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>RATIO</source>
|
||||
<translation>RATE</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Ratio:</source>
|
||||
<translation>Rate:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>bbEditor</name>
|
||||
@@ -1153,6 +1259,13 @@ installiert sind. Soll der Einrichtungsassistent jetzt gestartet werden?</transl
|
||||
<translation>LMMS-Arbeitsverzeichnis wählen</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>effectList</name>
|
||||
<message>
|
||||
<source>Description</source>
|
||||
<translation>Beschreibung</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>effectSelectDialog</name>
|
||||
<message>
|
||||
@@ -1793,6 +1906,69 @@ Stellen Sie sicher, dass Sie Schreibzugriff auf die gewählte Datei/Gerät haben
|
||||
<translation>FX</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>kickerInstrument</name>
|
||||
<message>
|
||||
<source>Start frequency</source>
|
||||
<translation>Startfrequenz</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>START</source>
|
||||
<translation>START</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Start frequency:</source>
|
||||
<translation>Startfrequenz:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>End frequency</source>
|
||||
<translation>Endfrequenz</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>END</source>
|
||||
<translation>ENDE</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>End frequency:</source>
|
||||
<translation>Endfrequenz:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Decay</source>
|
||||
<translation>Abfallzeit</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>DECAY</source>
|
||||
<translation>ABFALL</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Decay:</source>
|
||||
<translation>Abfallzeit (decay):</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Distortion</source>
|
||||
<translation>Verzerrung</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>DIST</source>
|
||||
<translation>DIST</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Distortion:</source>
|
||||
<translation>Verzerrung:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Gain</source>
|
||||
<translation>Gain</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>GAIN</source>
|
||||
<translation>GAIN</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Gain:</source>
|
||||
<translation>Gain:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>knob</name>
|
||||
<message>
|
||||
@@ -1964,51 +2140,245 @@ Double clicking any of the plugins will bring up information on the ports.</sour
|
||||
<name>ladspaSubPluginDescriptionWidget</name>
|
||||
<message>
|
||||
<source>Description</source>
|
||||
<translation>Beschreibung</translation>
|
||||
<translation type="obsolete">Beschreibung</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Name: </source>
|
||||
<translation> Name:</translation>
|
||||
<translation type="obsolete"> Name:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Maker: </source>
|
||||
<translation> Hersteller:</translation>
|
||||
<translation type="obsolete"> Hersteller:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Copyright: </source>
|
||||
<translation> Copyright:</translation>
|
||||
<translation type="obsolete"> Copyright:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Requires Real Time: Yes</source>
|
||||
<translation>Benötigt Echtzeit: ja</translation>
|
||||
<translation type="obsolete">Benötigt Echtzeit: ja</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Requires Real Time: No</source>
|
||||
<translation>Benötigt Echtzeit: nein</translation>
|
||||
<translation type="obsolete">Benötigt Echtzeit: nein</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Real Time Capable: Yes</source>
|
||||
<translation>Echtzeitfähig: ja</translation>
|
||||
<translation type="obsolete">Echtzeitfähig: ja</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Real Time Capable: No</source>
|
||||
<translation>Echtzeitfähig: nein</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>In Place Broken: Yes</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>In Place Broken: No</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation type="obsolete">Echtzeitfähig: nein</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Channels In: </source>
|
||||
<translation> Eingangs-Kanäle:</translation>
|
||||
<translation type="obsolete"> Eingangs-Kanäle:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Channels Out: </source>
|
||||
<translation> Ausgangs-Kanäle:</translation>
|
||||
<translation type="obsolete"> Ausgangs-Kanäle:</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>lb302Synth</name>
|
||||
<message>
|
||||
<source>VCF Cutoff Frequency</source>
|
||||
<translation>VCF-Kennfrequenz</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Cutoff Freq:</source>
|
||||
<translation>Kennfrequenz:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>CUT</source>
|
||||
<translation>FREQ</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>VCF Resonance</source>
|
||||
<translation>VCF-Resonanz</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Resonance:</source>
|
||||
<translation>Resonanz:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>RES</source>
|
||||
<translation>RES</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>VCF Envelope Mod</source>
|
||||
<translation>VCF-Hüllkurvenintensität</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Env Mod:</source>
|
||||
<translation>Hüllkurven-Modulation:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>ENV MOD</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>VCF Envelope Decay</source>
|
||||
<translation>VCF-Hüllkurvenabfallzeit</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Decay:</source>
|
||||
<translation>Abfallzeit (decay):</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>DEC</source>
|
||||
<translation>DEC</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Slide</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Accent</source>
|
||||
<translation>Betonung</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Dead</source>
|
||||
<translation>Tot</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>303-es-que, 24dB/octave, 3 pole filter</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Slide Decay</source>
|
||||
<translation>Slide-Abfallzeit</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Slide Decay:</source>
|
||||
<translation>Slide-Abfallzeit:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>SLIDE</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Fine detuning of the VCO. Ranged between -100 and 100 centes.</source>
|
||||
<translation>Feinverstimmung des VCOs. Bereich zwischen -100 und 100 Cents.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>VCO Fine Detuning:</source>
|
||||
<translation>VCO Feinverstimmung:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>DETUNE</source>
|
||||
<translation></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Distortion</source>
|
||||
<translation>Verzerrung</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>DIST:</source>
|
||||
<translation>Verzerrung:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>DIST</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Waveform</source>
|
||||
<translation>Wellenform</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>WAVE:</source>
|
||||
<translation type="unfinished">Wellenform:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>WAVE</source>
|
||||
<translation>WELLE</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Sawtooth </source>
|
||||
<translation>Sägezahn </translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Inverted Sawtooth </source>
|
||||
<translation>Invertierter Sägezahn </translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Triangle </source>
|
||||
<translation>Dreieck </translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Square </source>
|
||||
<translation>Rechteck</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Rounded Square </source>
|
||||
<translation>Abgerundetes Reckteck</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Moog </source>
|
||||
<translation>Moog </translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>lb303Synth</name>
|
||||
<message>
|
||||
<source>VCF Cutoff Frequency</source>
|
||||
<translation type="obsolete">VCF-Kennfrequenz</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Cutoff Freq:</source>
|
||||
<translation type="obsolete">Kennfreq.:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>VCF Resonance</source>
|
||||
<translation type="obsolete">VCF-Resonanz</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Resonance:</source>
|
||||
<translation type="obsolete">Resonanz:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>VCF Envelope Mod</source>
|
||||
<translation type="obsolete">VCF-Hüllkurvenintensität</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>VCF Envelope Decay</source>
|
||||
<translation type="obsolete">VCF-Hüllkurvenabfallzeit</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Decay:</source>
|
||||
<translation type="obsolete">Abfallzeit (decay):</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Accent</source>
|
||||
<translation type="obsolete">Betonung</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Dead</source>
|
||||
<translation type="obsolete">Tot</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Slide Decay</source>
|
||||
<translation type="obsolete">Slide-Abfallzeit</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Slide Decay:</source>
|
||||
<translation type="obsolete">Slide-Abfallzeit:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Waveform</source>
|
||||
<translation type="obsolete">Wellenform</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Fine detuning of the VCO. Ranged between -100 and 100 centes.</source>
|
||||
<translation type="obsolete">Feinverstimmung des VCOs. Bereich zwischen -100 und 100 Cents.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>VCO Fine Detuning:</source>
|
||||
<translation type="obsolete">VCO Feinverstimmung:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Distortion</source>
|
||||
<translation type="obsolete">Verzerrung</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@@ -2037,6 +2407,19 @@ Double clicking any of the plugins will bring up information on the ports.</sour
|
||||
<translation>--- Distributions-Dateien ---</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>liveTool</name>
|
||||
<message>
|
||||
<source>This tool is intended to be used in live performances, though you can use it for music production as well.
|
||||
The following keys will work only if this window is active.
|
||||
The spacebar toggles play and pause in the Song Editor.
|
||||
F1-F10 keys mute the first 10 instruments in the Beat+Baseline Editor.</source>
|
||||
<translation>Dieses Werkzeug ist für die Verwendung in Live-Auftritten gedacht, allerdings können Sie es natürlich auch für die Musikproduktion verwenden.
|
||||
Die folgenden Tasten funktionieren nur, wenn dieses Fenster im Vordergrund ist.
|
||||
Leertaste wechselt zwischen Abspielen und Pause im Song-Editor.
|
||||
F1-F10 schalten die ersten 10 Instrumente im Beat+Bassline-Editor stumm bzw. wieder zurück.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>mainWindow</name>
|
||||
<message>
|
||||
@@ -2133,11 +2516,11 @@ Double clicking any of the plugins will bring up information on the ports.</sour
|
||||
</message>
|
||||
<message>
|
||||
<source>Import file</source>
|
||||
<translation>Datei importieren</translation>
|
||||
<translation type="obsolete">Datei importieren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>E&xport</source>
|
||||
<translation>E&xportieren</translation>
|
||||
<translation type="obsolete">E&xportieren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Quit</source>
|
||||
@@ -2235,7 +2618,7 @@ Bitte besuchen Sie http://wiki.mindrules.net für Dokumentationen über LMMS.</t
|
||||
</message>
|
||||
<message>
|
||||
<source>LADSPA Plugins...</source>
|
||||
<translation>LADSPA-Plugins...</translation>
|
||||
<translation type="obsolete">LADSPA-Plugins...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>MultiMedia Project (*.mmp *.mmpz *.xml)</source>
|
||||
@@ -2245,6 +2628,26 @@ Bitte besuchen Sie http://wiki.mindrules.net für Dokumentationen über LMMS.</t
|
||||
<source>MultiMedia Project (*.mmp *.mmpz);;MultiMedia Project Template (*.mpt)</source>
|
||||
<translation>MultiMedia Projekt (*.mmp *.mmpz);;MultiMedia Projekt-Vorlage (*.mpt)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>&Tools</source>
|
||||
<translation>&Werkzeuge</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Online help</source>
|
||||
<translation>Online-Hilfe</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Recently opened projects</source>
|
||||
<translation>Zuletzt geöffnete Projekte</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Import...</source>
|
||||
<translation>Importieren...</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>E&xport...</source>
|
||||
<translation>E&xportieren...</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>mallets</name>
|
||||
@@ -2440,6 +2843,14 @@ Bitte besuchen Sie http://wiki.mindrules.net für Dokumentationen über LMMS.</t
|
||||
<source>Tibetan Bowl</source>
|
||||
<translation>Tibetanische Schüssel</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Missing files</source>
|
||||
<translation>Fehlende Dateien</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Your Stk-installation seems to be incomplete. Please make sure the full Stk-package is installed!</source>
|
||||
<translation>Ihre Stk-Installation scheint unvollständig zu sein. Bitte stellen Sie sicher, dass das volle Stk-Paket installiert ist!</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>meterDialog</name>
|
||||
@@ -2601,6 +3012,53 @@ Bitte besuchen Sie http://wiki.mindrules.net für Dokumentationen über LMMS.</t
|
||||
<translation>Würfeln</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>patmanSynth</name>
|
||||
<message>
|
||||
<source>Open other patch</source>
|
||||
<translation>Andere Patch-Datei öffnen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Click here to open another patch-file. Loop and Tune settings are not reset.</source>
|
||||
<translation>Klicken Sie hier, um eine andere Patch-Datei zu laden. Wiederholungs- und Stimmungseinstellungen werden nicht zurückgesetzt.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loop</source>
|
||||
<translation>Wiederholen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Loop mode</source>
|
||||
<translation>Modus beim Wiederholen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Here you can toggle the Loop mode. If enabled, PatMan will use the loop information available in the file.</source>
|
||||
<translation>Hier können Sie den Wiederholen-Modus (de-)aktivieren. Wenn aktiviert, verwendet PatMan die in der Datei verfügbaren Informationen zum Wiederholen.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Tune</source>
|
||||
<translation>Stimmung</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Tune mode</source>
|
||||
<translation>Stimmungsmodus</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Here you can toggle the Tune mode. If enabled, PatMan will tune the sample to match the note's frequency.</source>
|
||||
<translation>Hier können Sie den Stimmungs-Modus (de-)aktivieren. Wenn aktiviert, wird der Klang automatisch an die Frequenz der Note angepasst.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>No file selected</source>
|
||||
<translation>Keine Datei ausgewählt</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Open patch file</source>
|
||||
<translation>Patch-Datei öffnen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Patch-Files (*.pat)</source>
|
||||
<translation>Patch-Dateien (*.pat)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>pattern</name>
|
||||
<message>
|
||||
@@ -2671,11 +3129,11 @@ Lautstärke eines Steps kann mit Mausrad geändert werden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Pattern muted</source>
|
||||
<translation>Pattern stummgeschaltet</translation>
|
||||
<translation type="obsolete">Pattern stummgeschaltet</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>The track this pattern belongs to or the pattern itself is currently muted therefore freezing makes no sense! Do you still want to continue?</source>
|
||||
<translation>Die Spur, zu der dieser Pattern gehört oder dieser Pattern selbst sind derzeit stummgeschaltet, weshalb das Einfrieren keinen Sinn ergibt. Wollen Sie trotzdem fortfahren?</translation>
|
||||
<translation type="obsolete">Die Spur, zu der dieser Pattern gehört oder dieser Pattern selbst sind derzeit stummgeschaltet, weshalb das Einfrieren keinen Sinn ergibt. Wollen Sie trotzdem fortfahren?</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
@@ -2890,7 +3348,7 @@ Lautstärke eines Steps kann mit Mausrad geändert werden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Rough & Dirty Wavetable Synthesizer.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation>Einfacher & roher Wavetable-Synthesizer.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>You can drag an instrument-plugin into either the Song-Editor, the Beat+Baseline Editor or just into a channel-window or on the corresponding channel-button.</source>
|
||||
@@ -2928,6 +3386,26 @@ Lautstärke eines Steps kann mit Mausrad geändert werden</translation>
|
||||
<source>plugin for using arbitrary VST-effects inside LMMS.</source>
|
||||
<translation>Plugin um beliebige VST-Effekte in LMMS nutzen zu können.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Incomplete monophonic immitation tb303</source>
|
||||
<translation>Unvollständiger monophonischer TB303-Klon</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>versatile kick- & bassdrum-synthesizer</source>
|
||||
<translation>Vielfältiger Kick- & Bassdrum-Synthesizer</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>GUS-compatible patch instrument</source>
|
||||
<translation>GUS-kompatibles Patch-Instrument</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Singer bot to add some basic vocals</source>
|
||||
<translation>Künstlicher Sänger für ein paar einfache Vokale</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Tool for live performance</source>
|
||||
<translation>Werkzeug für Live-Auftritte</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>projectNotes</name>
|
||||
@@ -3104,7 +3582,7 @@ Lautstärke eines Steps kann mit Mausrad geändert werden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Controls</source>
|
||||
<translation type="unfinished">Eigensch.</translation>
|
||||
<translation>Regler</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Effect plugins function as a chained series of effects where the signal will be processed from top to bottom.
|
||||
@@ -3199,12 +3677,20 @@ Wenn es mit anderer VST-software unter Linux funktioniert, kontaktieren Sie bitt
|
||||
</message>
|
||||
<message>
|
||||
<source>All Audio-Files (*.wav *.ogg *.flac *.voc *.aif *.aiff *.au *.raw)</source>
|
||||
<translation>Alle Audio-Dateien (*.wav *.ogg *.flac *.voc *.aif *.aiff *.au *.raw)</translation>
|
||||
<translation type="obsolete">Alle Audio-Dateien (*.wav *.ogg *.flac *.voc *.aif *.aiff *.au *.raw)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>FLAC-Files (*.flac)</source>
|
||||
<translation>FLAC-Dateien (*.flac)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>All Audio-Files (*.wav *.ogg *.flac *.spx *.voc *.aif *.aiff *.au *.raw)</source>
|
||||
<translation>Alle Audio-Dateien (*.wav *.ogg *.flac *.spx *.voc *.aif *.aiff *.au *.raw)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>SPEEX-Files (*.spx)</source>
|
||||
<translation>SPEEX-Dateien (*.spx)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>sampleTCO</name>
|
||||
@@ -3410,7 +3896,7 @@ Latenz: %2 ms</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>SMP-level</source>
|
||||
<translation>SMP-Level</translation>
|
||||
<translation type="obsolete">SMP-Level</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>If you have a machine with more then one processor (e.g. dual-core systems) you should use a parallelizing-level above 1 which means that LMMS will try to split up sound-processing into several threads which should should be run on several cores by the underlaying operating-system.
|
||||
@@ -4377,15 +4863,15 @@ Die LED rechts unterhalb der Wellenform gibt an, ob die Saite aktiviert ist.</tr
|
||||
<name>vstSubPluginDescriptionWidget</name>
|
||||
<message>
|
||||
<source>Description</source>
|
||||
<translation>Beschreibung</translation>
|
||||
<translation type="obsolete">Beschreibung</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Name: </source>
|
||||
<translation> Name:</translation>
|
||||
<translation type="obsolete"> Name:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>File: </source>
|
||||
<translation> Datei:</translation>
|
||||
<translation type="obsolete"> Datei:</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
|
||||
@@ -1,129 +1,132 @@
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE multimedia-project>
|
||||
<multimediaproject creator="Linux MultiMedia Studio (LMMS)" creatorversion="0.0.9beta2" type="song" version="1.0" >
|
||||
<head>
|
||||
<bpm value="130" />
|
||||
<mastervol value="86" />
|
||||
<masterpitch value="0" />
|
||||
</head>
|
||||
<song>
|
||||
<trackcontainer type="songeditor" >
|
||||
<track muted="0" type="1" >
|
||||
<bbtrack name="Beat/Baseline 0" >
|
||||
<trackcontainer type="bbeditor" >
|
||||
<track muted="0" type="0" >
|
||||
<channeltrack surpos="134219776" fxch="0" baseoct="3" vol="25" name="Crystallo" basetone="9" tab="1" >
|
||||
<tripleoscillator userwavefile1="samples/empty.wav" wavetype1="4" coarse1="0" userwavefile2="samples/empty.wav" wavetype2="5" coarse2="12" vol0="80" vol1="90" finel0="0" vol2="100" finel1="0" finel2="0" modalgo1="2" stphdetun0="316" pan0="0" modalgo2="2" stphdetun1="94" pan1="0" stphdetun2="269" pan2="0" phoffset0="0" phoffset1="112" phoffset2="36" finer0="0" finer1="0" finer2="0" userwavefile0="samples/empty.wav" wavetype0="5" coarse0="12" />
|
||||
<eldata fres="2.54" ftype="7" fcut="2172" fwet="1" >
|
||||
<elvol lpdel="0" amt="1" rel="0.359" latt="0" sus="0.286" lspd="0.0917" att="0.043" pdel="0" lamt="0" dec="0.571" x100="0" lshp="0" hold="0" />
|
||||
<elcut lpdel="0" amt="1" rel="0" latt="0" sus="0.999" lspd="0.06" att="0.275" pdel="0" lamt="-1" dec="0.177" x100="0" lshp="2" hold="0" />
|
||||
<elres lpdel="0" amt="0" rel="0.1" latt="0" sus="0.5" lspd="0.01" att="0" pdel="0" lamt="0" dec="0.5" x100="0" lshp="1" hold="0" />
|
||||
</eldata>
|
||||
<arpandchords chordrange="1" arprange="1" chord="0" arpgate="100" arp="0" arptime="100" arpdir="0" />
|
||||
</channeltrack>
|
||||
<pattern type="1" name="Crystallo" pos="0" frozen="0" len="576" >
|
||||
<note tone="8" pan="0" oct="1" vol="100" pos="0" len="16" />
|
||||
<note tone="3" pan="0" oct="3" vol="100" pos="0" len="40" />
|
||||
<note tone="8" pan="0" oct="3" vol="100" pos="8" len="32" />
|
||||
<note tone="3" pan="0" oct="1" vol="100" pos="16" len="16" />
|
||||
<note tone="3" pan="0" oct="4" vol="100" pos="16" len="16" />
|
||||
<note tone="1" pan="0" oct="4" vol="100" pos="24" len="16" />
|
||||
<note tone="3" pan="0" oct="2" vol="100" pos="32" len="16" />
|
||||
<note tone="11" pan="0" oct="3" vol="100" pos="32" len="16" />
|
||||
<note tone="10" pan="0" oct="3" vol="100" pos="40" len="16" />
|
||||
<note tone="8" pan="0" oct="1" vol="100" pos="48" len="16" />
|
||||
<note tone="6" pan="0" oct="3" vol="100" pos="48" len="16" />
|
||||
<note tone="8" pan="0" oct="3" vol="100" pos="56" len="16" />
|
||||
<note tone="3" pan="0" oct="1" vol="100" pos="64" len="16" />
|
||||
<note tone="3" pan="0" oct="3" vol="100" pos="64" len="32" />
|
||||
<note tone="8" pan="0" oct="3" vol="100" pos="72" len="24" />
|
||||
<note tone="8" pan="0" oct="1" vol="100" pos="80" len="16" />
|
||||
<note tone="3" pan="0" oct="3" vol="100" pos="128" len="40" />
|
||||
<note tone="8" pan="0" oct="1" vol="100" pos="128" len="16" />
|
||||
<note tone="8" pan="0" oct="3" vol="100" pos="136" len="32" />
|
||||
<note tone="3" pan="0" oct="4" vol="100" pos="144" len="16" />
|
||||
<note tone="3" pan="0" oct="1" vol="100" pos="144" len="16" />
|
||||
<note tone="1" pan="0" oct="4" vol="100" pos="152" len="16" />
|
||||
<note tone="11" pan="0" oct="3" vol="100" pos="160" len="16" />
|
||||
<note tone="3" pan="0" oct="2" vol="100" pos="160" len="16" />
|
||||
<note tone="10" pan="0" oct="3" vol="100" pos="168" len="16" />
|
||||
<note tone="6" pan="0" oct="3" vol="100" pos="176" len="16" />
|
||||
<note tone="8" pan="0" oct="1" vol="100" pos="176" len="16" />
|
||||
<note tone="8" pan="0" oct="3" vol="100" pos="184" len="16" />
|
||||
<note tone="3" pan="0" oct="3" vol="100" pos="192" len="32" />
|
||||
<note tone="3" pan="0" oct="1" vol="100" pos="192" len="16" />
|
||||
<note tone="8" pan="0" oct="3" vol="100" pos="200" len="24" />
|
||||
<note tone="8" pan="0" oct="1" vol="100" pos="208" len="16" />
|
||||
<note tone="8" pan="0" oct="1" vol="100" pos="256" len="16" />
|
||||
<note tone="8" pan="0" oct="3" vol="100" pos="256" len="16" />
|
||||
<note tone="11" pan="0" oct="3" vol="100" pos="264" len="16" />
|
||||
<note tone="3" pan="0" oct="1" vol="100" pos="272" len="16" />
|
||||
<note tone="3" pan="0" oct="4" vol="100" pos="272" len="16" />
|
||||
<note tone="8" pan="0" oct="4" vol="100" pos="280" len="16" />
|
||||
<note tone="11" pan="0" oct="0" vol="100" pos="288" len="16" />
|
||||
<note tone="8" pan="0" oct="3" vol="100" pos="288" len="16" />
|
||||
<note tone="11" pan="0" oct="3" vol="100" pos="296" len="16" />
|
||||
<note tone="3" pan="0" oct="1" vol="100" pos="304" len="16" />
|
||||
<note tone="3" pan="0" oct="4" vol="100" pos="304" len="16" />
|
||||
<note tone="8" pan="0" oct="4" vol="100" pos="312" len="16" />
|
||||
<note tone="8" pan="0" oct="1" vol="100" pos="320" len="16" />
|
||||
<note tone="8" pan="0" oct="3" vol="100" pos="320" len="16" />
|
||||
<note tone="11" pan="0" oct="3" vol="100" pos="328" len="16" />
|
||||
<note tone="3" pan="0" oct="1" vol="100" pos="336" len="16" />
|
||||
<note tone="3" pan="0" oct="4" vol="100" pos="336" len="16" />
|
||||
<note tone="6" pan="0" oct="4" vol="100" pos="344" len="16" />
|
||||
<note tone="8" pan="0" oct="1" vol="100" pos="352" len="16" />
|
||||
<note tone="8" pan="0" oct="3" vol="100" pos="352" len="16" />
|
||||
<note tone="11" pan="0" oct="3" vol="100" pos="360" len="16" />
|
||||
<note tone="8" pan="0" oct="0" vol="100" pos="368" len="16" />
|
||||
<note tone="3" pan="0" oct="4" vol="100" pos="368" len="16" />
|
||||
<note tone="6" pan="0" oct="4" vol="100" pos="376" len="16" />
|
||||
<note tone="4" pan="0" oct="1" vol="100" pos="384" len="16" />
|
||||
<note tone="8" pan="0" oct="3" vol="100" pos="384" len="16" />
|
||||
<note tone="11" pan="0" oct="3" vol="100" pos="392" len="16" />
|
||||
<note tone="8" pan="0" oct="1" vol="100" pos="400" len="16" />
|
||||
<note tone="3" pan="0" oct="4" vol="100" pos="400" len="16" />
|
||||
<note tone="4" pan="0" oct="4" vol="100" pos="408" len="16" />
|
||||
<note tone="1" pan="0" oct="1" vol="100" pos="416" len="16" />
|
||||
<note tone="8" pan="0" oct="3" vol="100" pos="416" len="16" />
|
||||
<note tone="11" pan="0" oct="3" vol="100" pos="424" len="16" />
|
||||
<note tone="3" pan="0" oct="1" vol="100" pos="432" len="16" />
|
||||
<note tone="3" pan="0" oct="4" vol="100" pos="432" len="16" />
|
||||
<note tone="4" pan="0" oct="4" vol="100" pos="440" len="16" />
|
||||
<note tone="6" pan="0" oct="1" vol="100" pos="448" len="16" />
|
||||
<note tone="6" pan="0" oct="3" vol="100" pos="448" len="16" />
|
||||
<note tone="10" pan="0" oct="3" vol="100" pos="456" len="16" />
|
||||
<note tone="1" pan="0" oct="1" vol="100" pos="464" len="16" />
|
||||
<note tone="1" pan="0" oct="4" vol="100" pos="464" len="16" />
|
||||
<note tone="4" pan="0" oct="4" vol="100" pos="472" len="16" />
|
||||
<note tone="4" pan="0" oct="1" vol="100" pos="480" len="16" />
|
||||
<note tone="6" pan="0" oct="3" vol="100" pos="480" len="16" />
|
||||
<note tone="10" pan="0" oct="3" vol="100" pos="488" len="16" />
|
||||
<note tone="3" pan="0" oct="1" vol="100" pos="496" len="16" />
|
||||
<note tone="1" pan="0" oct="4" vol="100" pos="496" len="16" />
|
||||
<note tone="4" pan="0" oct="4" vol="100" pos="504" len="16" />
|
||||
<note tone="8" pan="0" oct="1" vol="100" pos="512" len="16" />
|
||||
<note tone="3" pan="0" oct="3" vol="100" pos="512" len="16" />
|
||||
<note tone="8" pan="0" oct="3" vol="100" pos="520" len="16" />
|
||||
<note tone="3" pan="0" oct="1" vol="100" pos="528" len="16" />
|
||||
<note tone="11" pan="0" oct="3" vol="100" pos="528" len="16" />
|
||||
<note tone="3" pan="0" oct="4" vol="100" pos="536" len="16" />
|
||||
<note tone="8" pan="0" oct="1" vol="100" pos="544" len="16" />
|
||||
<note tone="3" pan="0" oct="3" vol="100" pos="544" len="16" />
|
||||
<note tone="8" pan="0" oct="3" vol="100" pos="552" len="16" />
|
||||
<note tone="8" pan="0" oct="0" vol="100" pos="560" len="16" />
|
||||
<note tone="11" pan="0" oct="3" vol="100" pos="560" len="16" />
|
||||
<note tone="8" pan="0" oct="3" vol="100" pos="568" len="8" />
|
||||
</pattern>
|
||||
</track>
|
||||
</trackcontainer>
|
||||
</bbtrack>
|
||||
<bbtco name="Beat/Baseline 0" color="4282417407" pos="0" len="576" />
|
||||
<multimedia-project creator="Linux MultiMedia Studio (LMMS)" creatorversion="0.3.0-rc2" type="song" version="1.0" >
|
||||
<head masterpitch="0" bpm="130" mastervol="86" />
|
||||
<song>
|
||||
<trackcontainer width="680" x="54" y="-3" height="300" type="songeditor" visible="1" >
|
||||
<track muted="0" height="32" type="1" >
|
||||
<bbtrack icon="" name="Beat/Baseline 0" >
|
||||
<trackcontainer width="504" x="93" y="259" height="300" type="bbeditor" visible="1" >
|
||||
<track muted="0" height="32" type="0" >
|
||||
<instrumenttrack width="250" x="444" surpos-x="0" y="38" surpos-y="0" fxch="0" height="436" basenote="45" vol="15" name="Crystallo" tab="1" visible="1" >
|
||||
<tripleoscillator userwavefile1="samples/empty.wav" wavetype1="4" coarse1="0" userwavefile2="samples/empty.wav" wavetype2="5" coarse2="12" vol0="80" vol1="90" finel0="0" vol2="100" finel1="0" finel2="0" modalgo1="2" stphdetun0="316" pan0="0" modalgo2="2" stphdetun1="94" pan1="0" stphdetun2="269" pan2="0" phoffset0="0" phoffset1="112" phoffset2="36" finer0="0" finer1="0" finer2="0" userwavefile0="samples/empty.wav" wavetype0="5" coarse0="12" />
|
||||
<eldata fres="2.54" ftype="7" fcut="2172" fwet="1" >
|
||||
<elvol lspd_numerator="1" lpdel="0" amt="1" rel="0.359" ctlenvamt="0" latt="0" syncmode="0" sus="0.286" lspd_denominator="1" lspd="0.0917" att="0.043" pdel="0" lamt="0" dec="0.571" userwavefile="" x100="0" lshp="0" hold="0" />
|
||||
<elcut lspd_numerator="1" lpdel="0" amt="1" rel="0" ctlenvamt="0" latt="0" syncmode="0" sus="0.999" lspd_denominator="1" lspd="0.06" att="0.275" pdel="0" lamt="-0.44" dec="0.177" userwavefile="" x100="0" lshp="1" hold="0" />
|
||||
<elres lspd_numerator="1" lpdel="0" amt="0" rel="0.1" ctlenvamt="0" latt="0" syncmode="0" sus="0.5" lspd_denominator="1" lspd="0.01" att="0" pdel="0" lamt="0" dec="0.5" userwavefile="" x100="0" lshp="1" hold="0" />
|
||||
</eldata>
|
||||
<arpandchords arpmode="0" chordrange="1" arp-enabled="0" arptime_numerator="1" arprange="1" chord-enabled="1" arptime_denominator="1" chord="0" syncmode="0" arpgate="100" arp="0" arptime="100" arpdir="0" />
|
||||
<midi defvelout="0" inputchannel="0" outputchannel="1" receive="0" send="0" defvelin="0" />
|
||||
<fx fxdisabled="1" >
|
||||
<rack numofeffects="0" />
|
||||
</fx>
|
||||
</instrumenttrack>
|
||||
<pattern steps="16" muted="0" type="1" name="Crystallo" pos="0" frozen="0" len="576" >
|
||||
<note tone="8" pan="0" oct="1" detuning="0" vol="100" pos="0" len="16" />
|
||||
<note tone="3" pan="0" oct="3" detuning="0" vol="100" pos="0" len="40" />
|
||||
<note tone="8" pan="0" oct="3" detuning="0" vol="100" pos="8" len="32" />
|
||||
<note tone="3" pan="0" oct="1" detuning="0" vol="100" pos="16" len="16" />
|
||||
<note tone="3" pan="0" oct="4" detuning="0" vol="100" pos="16" len="16" />
|
||||
<note tone="1" pan="0" oct="4" detuning="0" vol="100" pos="24" len="16" />
|
||||
<note tone="3" pan="0" oct="2" detuning="0" vol="100" pos="32" len="16" />
|
||||
<note tone="11" pan="0" oct="3" detuning="0" vol="100" pos="32" len="16" />
|
||||
<note tone="10" pan="0" oct="3" detuning="0" vol="100" pos="40" len="16" />
|
||||
<note tone="8" pan="0" oct="1" detuning="0" vol="100" pos="48" len="16" />
|
||||
<note tone="6" pan="0" oct="3" detuning="0" vol="100" pos="48" len="16" />
|
||||
<note tone="8" pan="0" oct="3" detuning="0" vol="100" pos="56" len="16" />
|
||||
<note tone="3" pan="0" oct="1" detuning="0" vol="100" pos="64" len="16" />
|
||||
<note tone="3" pan="0" oct="3" detuning="0" vol="100" pos="64" len="32" />
|
||||
<note tone="8" pan="0" oct="3" detuning="0" vol="100" pos="72" len="24" />
|
||||
<note tone="8" pan="0" oct="1" detuning="0" vol="100" pos="80" len="16" />
|
||||
<note tone="3" pan="0" oct="3" detuning="0" vol="100" pos="128" len="40" />
|
||||
<note tone="8" pan="0" oct="1" detuning="0" vol="100" pos="128" len="16" />
|
||||
<note tone="8" pan="0" oct="3" detuning="0" vol="100" pos="136" len="32" />
|
||||
<note tone="3" pan="0" oct="4" detuning="0" vol="100" pos="144" len="16" />
|
||||
<note tone="3" pan="0" oct="1" detuning="0" vol="100" pos="144" len="16" />
|
||||
<note tone="1" pan="0" oct="4" detuning="0" vol="100" pos="152" len="16" />
|
||||
<note tone="11" pan="0" oct="3" detuning="0" vol="100" pos="160" len="16" />
|
||||
<note tone="3" pan="0" oct="2" detuning="0" vol="100" pos="160" len="16" />
|
||||
<note tone="10" pan="0" oct="3" detuning="0" vol="100" pos="168" len="16" />
|
||||
<note tone="6" pan="0" oct="3" detuning="0" vol="100" pos="176" len="16" />
|
||||
<note tone="8" pan="0" oct="1" detuning="0" vol="100" pos="176" len="16" />
|
||||
<note tone="8" pan="0" oct="3" detuning="0" vol="100" pos="184" len="16" />
|
||||
<note tone="3" pan="0" oct="3" detuning="0" vol="100" pos="192" len="32" />
|
||||
<note tone="3" pan="0" oct="1" detuning="0" vol="100" pos="192" len="16" />
|
||||
<note tone="8" pan="0" oct="3" detuning="0" vol="100" pos="200" len="24" />
|
||||
<note tone="8" pan="0" oct="1" detuning="0" vol="100" pos="208" len="16" />
|
||||
<note tone="8" pan="0" oct="1" detuning="0" vol="100" pos="256" len="16" />
|
||||
<note tone="8" pan="0" oct="3" detuning="0" vol="100" pos="256" len="16" />
|
||||
<note tone="11" pan="0" oct="3" detuning="0" vol="100" pos="264" len="16" />
|
||||
<note tone="3" pan="0" oct="1" detuning="0" vol="100" pos="272" len="16" />
|
||||
<note tone="3" pan="0" oct="4" detuning="0" vol="100" pos="272" len="16" />
|
||||
<note tone="8" pan="0" oct="4" detuning="0" vol="100" pos="280" len="16" />
|
||||
<note tone="11" pan="0" oct="0" detuning="0" vol="100" pos="288" len="16" />
|
||||
<note tone="8" pan="0" oct="3" detuning="0" vol="100" pos="288" len="16" />
|
||||
<note tone="11" pan="0" oct="3" detuning="0" vol="100" pos="296" len="16" />
|
||||
<note tone="3" pan="0" oct="1" detuning="0" vol="100" pos="304" len="16" />
|
||||
<note tone="3" pan="0" oct="4" detuning="0" vol="100" pos="304" len="16" />
|
||||
<note tone="8" pan="0" oct="4" detuning="0" vol="100" pos="312" len="16" />
|
||||
<note tone="8" pan="0" oct="1" detuning="0" vol="100" pos="320" len="16" />
|
||||
<note tone="8" pan="0" oct="3" detuning="0" vol="100" pos="320" len="16" />
|
||||
<note tone="11" pan="0" oct="3" detuning="0" vol="100" pos="328" len="16" />
|
||||
<note tone="3" pan="0" oct="1" detuning="0" vol="100" pos="336" len="16" />
|
||||
<note tone="3" pan="0" oct="4" detuning="0" vol="100" pos="336" len="16" />
|
||||
<note tone="6" pan="0" oct="4" detuning="0" vol="100" pos="344" len="16" />
|
||||
<note tone="8" pan="0" oct="1" detuning="0" vol="100" pos="352" len="16" />
|
||||
<note tone="8" pan="0" oct="3" detuning="0" vol="100" pos="352" len="16" />
|
||||
<note tone="11" pan="0" oct="3" detuning="0" vol="100" pos="360" len="16" />
|
||||
<note tone="8" pan="0" oct="0" detuning="0" vol="100" pos="368" len="16" />
|
||||
<note tone="3" pan="0" oct="4" detuning="0" vol="100" pos="368" len="16" />
|
||||
<note tone="6" pan="0" oct="4" detuning="0" vol="100" pos="376" len="16" />
|
||||
<note tone="4" pan="0" oct="1" detuning="0" vol="100" pos="384" len="16" />
|
||||
<note tone="8" pan="0" oct="3" detuning="0" vol="100" pos="384" len="16" />
|
||||
<note tone="11" pan="0" oct="3" detuning="0" vol="100" pos="392" len="16" />
|
||||
<note tone="8" pan="0" oct="1" detuning="0" vol="100" pos="400" len="16" />
|
||||
<note tone="3" pan="0" oct="4" detuning="0" vol="100" pos="400" len="16" />
|
||||
<note tone="4" pan="0" oct="4" detuning="0" vol="100" pos="408" len="16" />
|
||||
<note tone="1" pan="0" oct="1" detuning="0" vol="100" pos="416" len="16" />
|
||||
<note tone="8" pan="0" oct="3" detuning="0" vol="100" pos="416" len="16" />
|
||||
<note tone="11" pan="0" oct="3" detuning="0" vol="100" pos="424" len="16" />
|
||||
<note tone="3" pan="0" oct="1" detuning="0" vol="100" pos="432" len="16" />
|
||||
<note tone="3" pan="0" oct="4" detuning="0" vol="100" pos="432" len="16" />
|
||||
<note tone="4" pan="0" oct="4" detuning="0" vol="100" pos="440" len="16" />
|
||||
<note tone="6" pan="0" oct="1" detuning="0" vol="100" pos="448" len="16" />
|
||||
<note tone="6" pan="0" oct="3" detuning="0" vol="100" pos="448" len="16" />
|
||||
<note tone="10" pan="0" oct="3" detuning="0" vol="100" pos="456" len="16" />
|
||||
<note tone="1" pan="0" oct="1" detuning="0" vol="100" pos="464" len="16" />
|
||||
<note tone="1" pan="0" oct="4" detuning="0" vol="100" pos="464" len="16" />
|
||||
<note tone="4" pan="0" oct="4" detuning="0" vol="100" pos="472" len="16" />
|
||||
<note tone="4" pan="0" oct="1" detuning="0" vol="100" pos="480" len="16" />
|
||||
<note tone="6" pan="0" oct="3" detuning="0" vol="100" pos="480" len="16" />
|
||||
<note tone="10" pan="0" oct="3" detuning="0" vol="100" pos="488" len="16" />
|
||||
<note tone="3" pan="0" oct="1" detuning="0" vol="100" pos="496" len="16" />
|
||||
<note tone="1" pan="0" oct="4" detuning="0" vol="100" pos="496" len="16" />
|
||||
<note tone="4" pan="0" oct="4" detuning="0" vol="100" pos="504" len="16" />
|
||||
<note tone="8" pan="0" oct="1" detuning="0" vol="100" pos="512" len="16" />
|
||||
<note tone="3" pan="0" oct="3" detuning="0" vol="100" pos="512" len="16" />
|
||||
<note tone="8" pan="0" oct="3" detuning="0" vol="100" pos="520" len="16" />
|
||||
<note tone="3" pan="0" oct="1" detuning="0" vol="100" pos="528" len="16" />
|
||||
<note tone="11" pan="0" oct="3" detuning="0" vol="100" pos="528" len="16" />
|
||||
<note tone="3" pan="0" oct="4" detuning="0" vol="100" pos="536" len="16" />
|
||||
<note tone="8" pan="0" oct="1" detuning="0" vol="100" pos="544" len="16" />
|
||||
<note tone="3" pan="0" oct="3" detuning="0" vol="100" pos="544" len="16" />
|
||||
<note tone="8" pan="0" oct="3" detuning="0" vol="100" pos="552" len="16" />
|
||||
<note tone="8" pan="0" oct="0" detuning="0" vol="100" pos="560" len="16" />
|
||||
<note tone="11" pan="0" oct="3" detuning="0" vol="100" pos="560" len="16" />
|
||||
<note tone="8" pan="0" oct="3" detuning="0" vol="100" pos="568" len="8" />
|
||||
</pattern>
|
||||
</track>
|
||||
</trackcontainer>
|
||||
<projectnotes><![CDATA[<html><head><meta name="qrichtext" content="1" /></head><body style="font-size:11pt;font-family:Bitstream Vera Sans">
|
||||
</trackcontainer>
|
||||
</bbtrack>
|
||||
<bbtco muted="0" name="Beat/Baseline 0" color="4282417407" pos="0" len="576" />
|
||||
</track>
|
||||
</trackcontainer>
|
||||
<pianoroll width="640" x="447" y="378" height="480" visible="0" />
|
||||
<automation-editor width="640" x="471" y="422" height="480" visible="0" />
|
||||
<projectnotes width="369" x="342" y="321" height="200" visible="1" ><![CDATA[<html><head><meta name="qrichtext" content="1" /></head><body style="font-size:9pt;font-family:Sans Serif">
|
||||
<p><span style="color:#00aaff">Some mystic gis-minor sounds...</span></p>
|
||||
</body></html>
|
||||
]]></projectnotes>
|
||||
</song>
|
||||
</multimediaproject>
|
||||
<timeline lp1pos="64" lp0pos="0" lpstate="0" />
|
||||
</song>
|
||||
</multimedia-project>
|
||||
|
||||
@@ -169,6 +169,13 @@ public:
|
||||
}
|
||||
#endif
|
||||
|
||||
inline const QStringList & recentlyOpenedProjects( void ) const
|
||||
{
|
||||
return( m_recentlyOpenedProjects );
|
||||
}
|
||||
|
||||
void addRecentlyOpenedProject( const QString & _file );
|
||||
|
||||
const QString & value( const QString & _class,
|
||||
const QString & _attribute ) const;
|
||||
void setValue( const QString & _class, const QString & _attribute,
|
||||
@@ -227,6 +234,8 @@ private:
|
||||
#ifdef HAVE_STK_H
|
||||
QString m_stkDir;
|
||||
#endif
|
||||
QStringList m_recentlyOpenedProjects;
|
||||
|
||||
|
||||
typedef vvector<QPair<QString, QString> > stringPairVector;
|
||||
typedef QMap<QString, stringPairVector> settingsMap;
|
||||
@@ -257,6 +266,9 @@ private:
|
||||
QHBoxLayout * m_mainLayout;
|
||||
QVBoxLayout * m_contentLayout;
|
||||
|
||||
|
||||
friend class engine;
|
||||
|
||||
} ;
|
||||
|
||||
#endif
|
||||
|
||||
@@ -110,14 +110,15 @@ public slots:
|
||||
}
|
||||
void createNewProject( void );
|
||||
void createNewProjectFromTemplate( QAction * _idx );
|
||||
void createNewProjectFromTemplate( int _idx );
|
||||
void createNewProjectFromTemplate( int _id );
|
||||
void openProject( void );
|
||||
void updateRecentlyOpenedProjectsMenu( void );
|
||||
void openRecentlyOpenedProject( int );
|
||||
bool saveProject( void );
|
||||
bool saveProjectAs( void );
|
||||
void showSettingsDialog( void );
|
||||
void aboutLMMS( void );
|
||||
void help( void );
|
||||
// void ladspaPluginBrowser( void );
|
||||
void toggleAutomationEditorWin( void );
|
||||
void toggleBBEditorWin( void );
|
||||
void toggleSongEditorWin( void );
|
||||
@@ -151,6 +152,7 @@ private:
|
||||
QGridLayout * m_toolBarLayout;
|
||||
|
||||
QMenu * m_templatesMenu;
|
||||
QMenu * m_recentlyOpenedProjectsMenu;
|
||||
int m_custom_templates_count;
|
||||
|
||||
struct keyModifiers
|
||||
|
||||
@@ -26,8 +26,6 @@ SUBDIRS = \
|
||||
midi_import \
|
||||
organic \
|
||||
patman \
|
||||
plucked_string_synth \
|
||||
polyb302 \
|
||||
$(SINGERBOT_DIR) \
|
||||
$(STK_DIR) \
|
||||
triple_oscillator \
|
||||
|
||||
@@ -372,7 +372,15 @@ void patmanSynth::openFile( void )
|
||||
|
||||
if( m_patchFile == "" )
|
||||
{
|
||||
ofd.setDirectory( configManager::inst()->userSamplesDir() );
|
||||
if( QDir( "/usr/share/midi/freepats" ).exists() )
|
||||
{
|
||||
ofd.setDirectory( "/usr/share/midi/freepats" );
|
||||
}
|
||||
else
|
||||
{
|
||||
ofd.setDirectory(
|
||||
configManager::inst()->userSamplesDir() );
|
||||
}
|
||||
}
|
||||
else if( QFileInfo( m_patchFile ).isRelative() )
|
||||
{
|
||||
|
||||
@@ -32,6 +32,8 @@
|
||||
#else
|
||||
|
||||
#include <qdom.h>
|
||||
#include <qmessagebox.h>
|
||||
#include <qdir.h>
|
||||
|
||||
#endif
|
||||
|
||||
@@ -70,24 +72,40 @@ plugin::descriptor malletsstk_plugin_descriptor =
|
||||
}
|
||||
|
||||
|
||||
mallets::mallets( instrumentTrack * _channel_track ) :
|
||||
instrument( _channel_track, &malletsstk_plugin_descriptor )
|
||||
mallets::mallets( instrumentTrack * _instrument_track ) :
|
||||
instrument( _instrument_track, &malletsstk_plugin_descriptor ),
|
||||
m_filesMissing( TRUE )
|
||||
{
|
||||
m_modalBarWidget = setupModalBarControls( this, _channel_track );
|
||||
m_filesMissing =
|
||||
!QDir( configManager::inst()->stkDir() ).exists() ||
|
||||
!QFileInfo( configManager::inst()->stkDir()+QDir::separator()
|
||||
+ "sinewave.raw" ).exists();
|
||||
#if 0
|
||||
// for some reason this crashes...???
|
||||
if( m_filesMissing )
|
||||
{
|
||||
QMessageBox::information( 0, tr( "Missing files" ),
|
||||
tr( "Your Stk-installation seems to be "
|
||||
"incomplete. Please make sure "
|
||||
"the full Stk-package is installed!" ),
|
||||
QMessageBox::Ok );
|
||||
}
|
||||
#endif
|
||||
m_modalBarWidget = setupModalBarControls( this, _instrument_track );
|
||||
setWidgetBackground( m_modalBarWidget, "artwork" );
|
||||
|
||||
m_tubeBellWidget = setupTubeBellControls( this, _channel_track );
|
||||
m_tubeBellWidget = setupTubeBellControls( this, _instrument_track );
|
||||
setWidgetBackground( m_tubeBellWidget, "artwork" );
|
||||
m_tubeBellWidget->hide();
|
||||
|
||||
m_bandedWGWidget = setupBandedWGControls( this, _channel_track );
|
||||
m_bandedWGWidget = setupBandedWGControls( this, _instrument_track );
|
||||
setWidgetBackground( m_bandedWGWidget, "artwork" );
|
||||
m_bandedWGWidget->hide();
|
||||
|
||||
m_presets = setupPresets( this, _channel_track );
|
||||
m_presets = setupPresets( this, _instrument_track );
|
||||
|
||||
m_spread = new knob( knobBright_26, this, tr( "Spread" ),
|
||||
_channel_track );
|
||||
_instrument_track );
|
||||
m_spread->setLabel( tr( "Spread" ) );
|
||||
m_spread->setRange( 0, 255, 1 );
|
||||
m_spread->setInitValue( 0 );
|
||||
@@ -390,6 +408,11 @@ QString mallets::nodeName( void ) const
|
||||
|
||||
void mallets::playNote( notePlayHandle * _n, bool )
|
||||
{
|
||||
if( m_filesMissing )
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
int p = m_presets->value();
|
||||
|
||||
const float freq = _n->frequency();
|
||||
|
||||
@@ -172,7 +172,9 @@ private:
|
||||
|
||||
vvector<sample_t> m_scalers;
|
||||
sampleFrame * m_buffer;
|
||||
};
|
||||
bool m_filesMissing;
|
||||
|
||||
} ;
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
@@ -480,7 +480,8 @@ void vibed::loadSettings( const QDomElement & _this )
|
||||
name = "active" + QString::number( i );
|
||||
m_editors[i]->setOn( _this.attribute( name ).toInt() );
|
||||
|
||||
if( m_editors[i]->isOn() )
|
||||
if( m_editors[i]->isOn() &&
|
||||
_this.hasAttribute( "volume" + QString::number( i ) ) )
|
||||
{
|
||||
name = "volume" + QString::number( i );
|
||||
m_volumeKnobs[i]->loadSettings( _this, name );
|
||||
|
||||
@@ -279,8 +279,8 @@ void audioJACK::stopProcessing( void )
|
||||
|
||||
void audioJACK::registerPort( audioPort * _port )
|
||||
{
|
||||
return;
|
||||
/* // make sure, port is not already registered
|
||||
#ifdef AUDIO_PORT_SUPPORT
|
||||
// make sure, port is not already registered
|
||||
unregisterPort( _port );
|
||||
const QString name[2] = { _port->name() + " L",
|
||||
_port->name() + " R" } ;
|
||||
@@ -296,7 +296,8 @@ void audioJACK::registerPort( audioPort * _port )
|
||||
#endif
|
||||
JACK_DEFAULT_AUDIO_TYPE,
|
||||
JackPortIsOutput, 0 );
|
||||
}*/
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@@ -304,8 +305,8 @@ void audioJACK::registerPort( audioPort * _port )
|
||||
|
||||
void audioJACK::unregisterPort( audioPort * _port )
|
||||
{
|
||||
return;
|
||||
/* if( m_portMap.contains( _port ) )
|
||||
#ifdef AUDIO_PORT_SUPPORT
|
||||
if( m_portMap.contains( _port ) )
|
||||
{
|
||||
for( Uint8 ch = 0; ch < DEFAULT_CHANNELS; ++ch )
|
||||
{
|
||||
@@ -316,7 +317,8 @@ void audioJACK::unregisterPort( audioPort * _port )
|
||||
}
|
||||
}
|
||||
m_portMap.erase( m_portMap.find( _port ) );
|
||||
}*/
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@@ -324,8 +326,8 @@ void audioJACK::unregisterPort( audioPort * _port )
|
||||
|
||||
void audioJACK::renamePort( audioPort * _port )
|
||||
{
|
||||
return;
|
||||
/* if( m_portMap.contains( _port ) )
|
||||
#ifdef AUDIO_PORT_SUPPORT
|
||||
if( m_portMap.contains( _port ) )
|
||||
{
|
||||
const QString name[2] = { _port->name() + " L",
|
||||
_port->name() + " R" };
|
||||
@@ -340,7 +342,8 @@ void audioJACK::renamePort( audioPort * _port )
|
||||
#endif
|
||||
) ;
|
||||
}
|
||||
}*/
|
||||
}
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@@ -368,12 +371,13 @@ int audioJACK::processCallback( jack_nframes_t _nframes, void * _udata )
|
||||
_this->m_outputPorts[chnl], _nframes );
|
||||
}
|
||||
|
||||
/* const Uint32 frames = tMin<Uint32>( _nframes,
|
||||
getMixer()->framesPerPeriod() );
|
||||
#ifdef AUDIO_PORT_SUPPORT
|
||||
const Uint32 frames = tMin<Uint32>( _nframes,
|
||||
_this->getMixer()->framesPerPeriod() );
|
||||
for( jackPortMap::iterator it = _this->m_portMap.begin();
|
||||
it != _this->m_portMap.end(); ++it )
|
||||
{
|
||||
for( Uint8 ch = 0; ch < DEFAULT_CHANNELS; ++ch )
|
||||
for( Uint8 ch = 0; ch < _this->channels(); ++ch )
|
||||
{
|
||||
if( it.data().ports[ch] == NULL )
|
||||
{
|
||||
@@ -385,10 +389,11 @@ int audioJACK::processCallback( jack_nframes_t _nframes, void * _udata )
|
||||
_nframes );
|
||||
for( Uint32 frame = 0; frame < frames; ++frame )
|
||||
{
|
||||
buf[frame] = it.key()->firstBuffer()[ch][frame];
|
||||
buf[frame] = it.key()->firstBuffer()[frame][ch];
|
||||
}
|
||||
}
|
||||
}*/
|
||||
}
|
||||
#endif
|
||||
|
||||
jack_nframes_t done = 0;
|
||||
while( done < _nframes && _this->m_stopped == FALSE )
|
||||
@@ -465,7 +470,7 @@ audioJACK::setupWidget::setupWidget( QWidget * _parent ) :
|
||||
audioDevice::setupWidget( audioJACK::name(), _parent )
|
||||
{
|
||||
QString cn = configManager::inst()->value( "audiojack", "clientname" );
|
||||
if( cn == "" )
|
||||
if( cn.isEmpty() )
|
||||
{
|
||||
cn = "lmms";
|
||||
}
|
||||
|
||||
@@ -729,6 +729,25 @@ void configManager::addPage( QWidget * _w, const QString & _title )
|
||||
|
||||
|
||||
|
||||
void configManager::addRecentlyOpenedProject( const QString & _file )
|
||||
{
|
||||
if( m_recentlyOpenedProjects.size() > 15 )
|
||||
{
|
||||
m_recentlyOpenedProjects.remove(
|
||||
m_recentlyOpenedProjects.last() );
|
||||
}
|
||||
QStringList::iterator it;
|
||||
while( ( it = m_recentlyOpenedProjects.find( _file ) ) !=
|
||||
m_recentlyOpenedProjects.end() )
|
||||
{
|
||||
m_recentlyOpenedProjects.remove( it );
|
||||
}
|
||||
m_recentlyOpenedProjects.push_front( _file );
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
const QString & configManager::value( const QString & _class,
|
||||
const QString & _attribute ) const
|
||||
{
|
||||
@@ -845,6 +864,22 @@ bool configManager::loadConfigFile( void )
|
||||
}
|
||||
m_settings[node.nodeName()] = attr;
|
||||
}
|
||||
else if( node.nodeName() == "recentfiles" )
|
||||
{
|
||||
m_recentlyOpenedProjects.clear();
|
||||
QDomNode n = node.firstChild();
|
||||
while( !n.isNull() )
|
||||
{
|
||||
if( n.isElement() &&
|
||||
n.toElement().hasAttributes() )
|
||||
{
|
||||
m_recentlyOpenedProjects <<
|
||||
n.toElement().
|
||||
attribute( "path" );
|
||||
}
|
||||
n = n.nextSibling();
|
||||
}
|
||||
}
|
||||
node = node.nextSibling();
|
||||
}
|
||||
|
||||
@@ -965,6 +1000,17 @@ void configManager::saveConfigFile( void )
|
||||
lmms_config.appendChild( n );
|
||||
}
|
||||
|
||||
QDomElement recent_files = doc.createElement( "recentfiles" );
|
||||
|
||||
for( QStringList::iterator it = m_recentlyOpenedProjects.begin();
|
||||
it != m_recentlyOpenedProjects.end(); ++it )
|
||||
{
|
||||
QDomElement n = doc.createElement( "file" );
|
||||
n.setAttribute( "path", *it );
|
||||
recent_files.appendChild( n );
|
||||
}
|
||||
lmms_config.appendChild( recent_files );
|
||||
|
||||
#if QT_VERSION >= 0x030100
|
||||
QString xml = "<?xml version=\"1.0\"?>\n" + doc.toString( 2 );
|
||||
#else
|
||||
|
||||
@@ -27,6 +27,7 @@
|
||||
|
||||
#include "automation_editor.h"
|
||||
#include "bb_editor.h"
|
||||
#include "config_mgr.h"
|
||||
#include "project_journal.h"
|
||||
#include "engine.h"
|
||||
#include "main_window.h"
|
||||
@@ -118,6 +119,8 @@ void engine::destroy( void )
|
||||
delete s_projectJournal;
|
||||
s_projectJournal = NULL;
|
||||
s_mainWindow = NULL;
|
||||
|
||||
delete configManager::inst();
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -81,6 +81,7 @@
|
||||
#include "tool_button.h"
|
||||
#include "project_journal.h"
|
||||
#include "automation_editor.h"
|
||||
#include "templates.h"
|
||||
|
||||
|
||||
#if QT_VERSION >= 0x030100
|
||||
@@ -98,6 +99,7 @@ mainWindow::mainWindow( void ) :
|
||||
),
|
||||
m_workspace( NULL ),
|
||||
m_templatesMenu( NULL ),
|
||||
m_recentlyOpenedProjectsMenu( NULL ),
|
||||
m_tools_menu( NULL )
|
||||
{
|
||||
#ifdef QT4
|
||||
@@ -217,20 +219,7 @@ mainWindow::mainWindow( void ) :
|
||||
|
||||
mainWindow::~mainWindow()
|
||||
{
|
||||
/* // first make sure, there're no mixing/audio-device-threads any more
|
||||
engine::getMixer()->stopProcessing();
|
||||
|
||||
// destroy editors with all their children
|
||||
delete engine::getSongEditor();
|
||||
delete engine::getBBEditor();
|
||||
|
||||
|
||||
|
||||
// destroy mixer
|
||||
delete engine::getMixer();
|
||||
|
||||
// destroy config-manager (which automatically saves config-file)
|
||||
*/
|
||||
// destroy engine which will do further cleanups etc.
|
||||
engine::destroy();
|
||||
}
|
||||
|
||||
@@ -436,6 +425,10 @@ void mainWindow::finalize( void )
|
||||
m_toolBarLayout->setColumnStretch( 100, 1 );
|
||||
|
||||
|
||||
m_recentlyOpenedProjectsMenu = new QMenu( NULL );
|
||||
connect( m_recentlyOpenedProjectsMenu, SIGNAL( activated( int ) ),
|
||||
this, SLOT( openRecentlyOpenedProject( int ) ) );
|
||||
updateRecentlyOpenedProjectsMenu();
|
||||
|
||||
// project-popup-menu
|
||||
QMenu * project_menu = new QMenu( this );
|
||||
@@ -454,6 +447,10 @@ void mainWindow::finalize( void )
|
||||
this, SLOT( openProject() ),
|
||||
Qt::CTRL + Qt::Key_O );
|
||||
|
||||
project_menu->addAction( embed::getIconPixmap( "project_open" ),
|
||||
tr( "Recently opened projects" ),
|
||||
m_recentlyOpenedProjectsMenu );
|
||||
|
||||
project_menu->addAction( embed::getIconPixmap( "project_save" ),
|
||||
tr( "&Save" ),
|
||||
this, SLOT( saveProject() ),
|
||||
@@ -469,16 +466,11 @@ void mainWindow::finalize( void )
|
||||
project_menu->insertSeparator();
|
||||
#endif
|
||||
project_menu->addAction( /*embed::getIconPixmap( "project_import" ),*/
|
||||
tr( "Import file" ),
|
||||
tr( "Import..." ),
|
||||
engine::getSongEditor(),
|
||||
SLOT( importProject() ) );
|
||||
#ifdef QT4
|
||||
project_menu->addSeparator();
|
||||
#else
|
||||
project_menu->insertSeparator();
|
||||
#endif
|
||||
project_menu->addAction( embed::getIconPixmap( "project_export" ),
|
||||
tr( "E&xport" ),
|
||||
tr( "E&xport..." ),
|
||||
engine::getSongEditor(),
|
||||
SLOT( exportProject() ),
|
||||
Qt::CTRL + Qt::Key_E );
|
||||
@@ -577,19 +569,6 @@ void mainWindow::finalize( void )
|
||||
tr( "What's this?" ),
|
||||
this, SLOT( enterWhatsThisMode() ) );
|
||||
|
||||
#if 0
|
||||
#ifdef LADSPA_SUPPORT
|
||||
#ifdef QT4
|
||||
help_menu->addSeparator();
|
||||
#else
|
||||
help_menu->insertSeparator();
|
||||
#endif
|
||||
help_menu->addAction( embed::getIconPixmap( "help" ), tr( "LADSPA Plugins..." ),
|
||||
this, SLOT( ladspaPluginBrowser() ) );
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef QT4
|
||||
help_menu->addSeparator();
|
||||
#else
|
||||
@@ -702,7 +681,8 @@ void mainWindow::saveWidgetState( QWidget * _w, QDomElement & _de )
|
||||
|
||||
void mainWindow::restoreWidgetState( QWidget * _w, const QDomElement & _de )
|
||||
{
|
||||
QRect r( _de.attribute( "x" ).toInt(), _de.attribute( "y" ).toInt(),
|
||||
QRect r( tMax( 0, _de.attribute( "x" ).toInt() ),
|
||||
tMax( 0, _de.attribute( "y" ).toInt() ),
|
||||
_de.attribute( "width" ).toInt(),
|
||||
_de.attribute( "height" ).toInt() );
|
||||
if( !r.isNull() && _w->parentWidget() != NULL )
|
||||
@@ -792,6 +772,9 @@ void mainWindow::openProject( void )
|
||||
{
|
||||
engine::getSongEditor()->loadProject(
|
||||
ofd.selectedFiles()[0] );
|
||||
configManager::inst()->addRecentlyOpenedProject(
|
||||
ofd.selectedFiles()[0] );
|
||||
updateRecentlyOpenedProjectsMenu();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -799,6 +782,30 @@ void mainWindow::openProject( void )
|
||||
|
||||
|
||||
|
||||
void mainWindow::updateRecentlyOpenedProjectsMenu( void )
|
||||
{
|
||||
m_recentlyOpenedProjectsMenu->clear();
|
||||
QStringList rup = configManager::inst()->recentlyOpenedProjects();
|
||||
for( QStringList::iterator it = rup.begin(); it != rup.end(); ++it )
|
||||
{
|
||||
m_recentlyOpenedProjectsMenu->addAction( *it );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void mainWindow::openRecentlyOpenedProject( int _id )
|
||||
{
|
||||
const QString & f = m_recentlyOpenedProjectsMenu->text( _id );
|
||||
engine::getSongEditor()->loadProject( f );
|
||||
configManager::inst()->addRecentlyOpenedProject( f );
|
||||
updateRecentlyOpenedProjectsMenu();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
bool mainWindow::saveProject( void )
|
||||
{
|
||||
if( engine::getSongEditor()->projectFileName() == "" )
|
||||
@@ -858,6 +865,9 @@ bool mainWindow::saveProjectAs( void )
|
||||
#else
|
||||
engine::getSongEditor()->saveProjectAs( sfd.selectedFile() );
|
||||
#endif
|
||||
configManager::inst()->addRecentlyOpenedProject(
|
||||
sfd.selectedFiles()[0] );
|
||||
updateRecentlyOpenedProjectsMenu();
|
||||
return( TRUE );
|
||||
}
|
||||
return( FALSE );
|
||||
@@ -896,19 +906,6 @@ void mainWindow::help( void )
|
||||
|
||||
|
||||
|
||||
#if 0
|
||||
void mainWindow::ladspaPluginBrowser( void )
|
||||
{
|
||||
// moc for Qt 3.x doesn't recognize preprocessor directives,
|
||||
// so we can't just block the whole thing out.
|
||||
#ifdef LADSPA_SUPPORT
|
||||
ladspaBrowser lb;
|
||||
lb.exec();
|
||||
#endif
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
void mainWindow::toggleBBEditorWin( void )
|
||||
{
|
||||
@@ -1167,8 +1164,8 @@ void mainWindow::browseHelp( void )
|
||||
}
|
||||
else if( pid == 0 )
|
||||
{
|
||||
QString url = "http://wiki.mindrules.net/doku.php?id="
|
||||
+ tr( "start", "doku.php id" );
|
||||
// TODO: use QDesktopService with Qt4
|
||||
QString url = "http://lmms.sf.net/wiki/index.php?title=Main_Page";
|
||||
execlp( "x-www-browser", "x-www-browser", url.
|
||||
#ifdef QT4
|
||||
toAscii().constData(),
|
||||
|
||||
@@ -288,7 +288,7 @@ const surroundSampleFrame * mixer::renderNextBuffer( void )
|
||||
|
||||
// clear last audio-buffer
|
||||
clearAudioBuffer( m_writeBuf, m_framesPerPeriod );
|
||||
printf("---------------------------next period\n");
|
||||
//printf("---------------------------next period\n");
|
||||
// if( criticalXRuns() == FALSE )
|
||||
{
|
||||
engine::getSongEditor()->processNextBuffer();
|
||||
@@ -745,7 +745,7 @@ void mixer::processBuffer( const surroundSampleFrame * _buf,
|
||||
for( ch_cnt_t chnl = 0; chnl < m_audioDev->channels(); ++chnl )
|
||||
{
|
||||
m_writeBuf[frame][chnl] += _buf[frame][chnl];
|
||||
|
||||
|
||||
if( m_scaleClip )
|
||||
{
|
||||
scaleClip( frame, chnl );
|
||||
|
||||
@@ -68,7 +68,6 @@ journallingObject::~journallingObject()
|
||||
|
||||
void journallingObject::undo( void )
|
||||
{
|
||||
printf("undo: %d\n", id() );
|
||||
if( m_journalEntries.empty() == TRUE )
|
||||
{
|
||||
return;
|
||||
@@ -85,7 +84,6 @@ void journallingObject::undo( void )
|
||||
|
||||
void journallingObject::redo( void )
|
||||
{
|
||||
printf("undo: %d\n", id() );
|
||||
if( m_journalEntries.empty() == TRUE )
|
||||
{
|
||||
return;
|
||||
|
||||
@@ -537,7 +537,7 @@ void multimediaProject::upgrade( void )
|
||||
{
|
||||
el.setAttribute( "chord-enabled", TRUE );
|
||||
el.setAttribute( "arp-enabled",
|
||||
el.attribute( "arpdir" ).toInt() != 0 );
|
||||
el.attribute( "arpdir" ).toInt() != 0 );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -594,6 +594,24 @@ void multimediaProject::upgrade( void )
|
||||
}
|
||||
}
|
||||
|
||||
if( version < "0.3.0" )
|
||||
{
|
||||
QDomNodeList list = elementsByTagName( "pluckedstringsynth" );
|
||||
for( int i = 0; !list.item( i ).isNull(); ++i )
|
||||
{
|
||||
QDomElement el = list.item( i ).toElement();
|
||||
el.setTagName( "vibedstrings" );
|
||||
el.setAttribute( "active0", 1 );
|
||||
}
|
||||
|
||||
list = elementsByTagName( "lb303" );
|
||||
for( int i = 0; !list.item( i ).isNull(); ++i )
|
||||
{
|
||||
QDomElement el = list.item( i ).toElement();
|
||||
el.setTagName( "lb302" );
|
||||
}
|
||||
}
|
||||
|
||||
if( !m_head.hasAttribute( "mastervol" ) )
|
||||
{
|
||||
m_head.setAttribute( "mastervol", 100 );
|
||||
|
||||
@@ -103,7 +103,6 @@ void projectJournal::journalEntryAdded( const jo_id_t _id )
|
||||
m_journalEntries.push_back( _id );
|
||||
m_currentJournalEntry = m_journalEntries.end();
|
||||
engine::getSongEditor()->setModified();
|
||||
printf("history size: %d\n", m_journalEntries.size() );
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -411,13 +411,13 @@ void knob::dropEvent( QDropEvent * _de )
|
||||
QString val = stringPairDrag::decodeValue( _de );
|
||||
if( type == "float_value" )
|
||||
{
|
||||
printf("set val\n");
|
||||
//printf("set val\n");
|
||||
setValue( val.toFloat() );
|
||||
_de->accept();
|
||||
}
|
||||
else if( type == "link_object" )
|
||||
{
|
||||
printf("link!\n");
|
||||
//printf("link!\n");
|
||||
knob * obj = (knob *)( val.toULong() );
|
||||
linkObjects( this, obj );
|
||||
obj->setValue( value() );
|
||||
|
||||
Reference in New Issue
Block a user