added mute-attribute to TCOs and fixed other small things
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@134 0778d3d1-df1d-0410-868b-ea421aaaa00d
This commit is contained in:
24
ChangeLog
24
ChangeLog
@@ -1,3 +1,21 @@
|
||||
2006-05-20 Tobias Doerffel <tobydox/at/users/dot/sourceforge/dot/net>
|
||||
|
||||
* data/locale/de.ts:
|
||||
updated German translation
|
||||
|
||||
* src/core/bb_editor.cpp:
|
||||
added button in bb-editor for adding new beat/bassline
|
||||
|
||||
* include/track.h:
|
||||
* src/core/track.cpp:
|
||||
* src/tracks/bb_track.cpp:
|
||||
* src/tracks/instrument_track.cpp:
|
||||
* src/tracks/pattern.cpp:
|
||||
* src/tracks/sample_track.cpp:
|
||||
added "muted"-property to track-content-objects for being able to mute
|
||||
single patterns, samples etc. either via context-menu or using <Ctrl>
|
||||
and middle mousebutton
|
||||
|
||||
2006-05-19 Tobias Doerffel <tobydox/at/users/dot/sourceforge/dot/net>
|
||||
|
||||
* src/core/track_container.cpp:
|
||||
@@ -1901,7 +1919,7 @@
|
||||
2005-12-08 Tobias Doerffel <tobydox/at/users/dot/sourceforge/dot/net>
|
||||
|
||||
* src/core/midi_tab_widget.cpp:
|
||||
- always un-check items in port-menus when disabling receceiving or
|
||||
- always un-check items in port-menus when disabling receiving or
|
||||
sending MIDI-events
|
||||
- small GUI improvements
|
||||
|
||||
@@ -2087,8 +2105,8 @@
|
||||
added so called audio-ports which are important for transporting sound
|
||||
from it's origin through the mixer and the effect-board (the latter
|
||||
one isn't existing yet but coming quite soon) - another important
|
||||
point is ability of having output-ports for each channel/sample-track
|
||||
with JACK
|
||||
point is the ability of having output-ports for each channel/sample-
|
||||
track with JACK
|
||||
|
||||
* src/tracks/channel_track.cpp:
|
||||
translate default-channel-name "Default"
|
||||
|
||||
8
TODO
8
TODO
@@ -1,5 +1,5 @@
|
||||
- add/remove-steps button in bb-editor for adding/removing according number of steps to/from all patterns of visible beat/baseline
|
||||
- replace rest of wizard by simple directory-selection-dialog for working-dir when running the first time
|
||||
- do REAL release in envelopes (can't be precalculated as it depends on key-press-duration/rest of envelope)
|
||||
- correctly load steps/dots from FLP-files
|
||||
- convert FL-Plucked!-parameters to Vibed-parameters
|
||||
- in flp-import-filter: merge play-list-items if possible
|
||||
@@ -11,11 +11,10 @@
|
||||
- undo/redo-support in note/track etc.
|
||||
- save tco-settings in trackContentWidget::saveSettings() etc. instead of track::...
|
||||
- restore stacking-order of windows when loading project
|
||||
- bristol-bindings
|
||||
- bristol-bindings?
|
||||
- resample sample-track-tcos when using hq-mode
|
||||
- add support for panes-interface (like blender) (instead of MDI etc.)
|
||||
- message to user when importing unsupported MIDI-file (track-count = 0)
|
||||
- volume-knobs for each sample-track
|
||||
- AMS/OMS-bindings
|
||||
- remove binary-embed-system
|
||||
- recording-functionality
|
||||
@@ -38,8 +37,6 @@
|
||||
- speed up painting of sampleTCO
|
||||
- solve problems with different keyboard-layouts when playing channel-track with pc-keyboard -> use tr()
|
||||
- panning env+lfo
|
||||
- plucked-string-synth: knob for metallic -> use noise as wave-shape
|
||||
- finish qt4-port and make LMMS usable when compiling with Qt4
|
||||
- rewrite export-project-dialog using layout-mechanism
|
||||
- dynamic pitch-change
|
||||
- make piano-roll use the global clipboard??
|
||||
@@ -53,7 +50,6 @@
|
||||
- effect-board -> live-fx from input
|
||||
- chord-editor?
|
||||
- WAVE/OGG/MP3-Import -> FFT-analysis -> write notes
|
||||
- FLP-Import
|
||||
- classical note-edit-window -> also ability of printing and maybe later scanning & recognition of notes
|
||||
- add FLAC as export-format?
|
||||
|
||||
|
||||
Binary file not shown.
@@ -649,6 +649,10 @@ http://lmms.sourceforge.net</translation>
|
||||
<source>Beat+Baseline Editor</source>
|
||||
<translation>Beat+Baseline Editor</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Add beat/bassline</source>
|
||||
<translation>Beat/Bassline hinzufügen</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>bbTCO</name>
|
||||
@@ -842,28 +846,28 @@ Bitte wählen Sie ein Verzeichnis:</translation>
|
||||
<source>For using the ready presets and samples of LMMS and enjoying the demo-songs the according files have to be copied or linked into your LMMS-working-directory.
|
||||
When copying files, you can modify them, but they need additional space in your working-directory. If you link files, you cannot modify them, but they need no extra space. So it's recommended to copy presets and demo-projects and link samples, which are bigger in size.
|
||||
</source>
|
||||
<translation>Damit Sie die fertigen Presets und Samples von LMMS nutzen können und mit den Demo-Songs herumspielen können, müssen die entsprechenden Dateien in Ihr LMMS-Arbeitsverzeichnis kopiert oder verknüpft werden.
|
||||
<translation type="obsolete">Damit Sie die fertigen Presets und Samples von LMMS nutzen können und mit den Demo-Songs herumspielen können, müssen die entsprechenden Dateien in Ihr LMMS-Arbeitsverzeichnis kopiert oder verknüpft werden.
|
||||
Kopierte Dateien können Sie ändern, aber gleichzeitig belegen diese auch zusätzlichen Speicherplatz in Ihrem Arbeitsverzeichnis. Wenn Sie Dateien verknüpfen, können Sie diese nicht verändern, brauchen dafür aber auch keinen extra Speicherplatz. Deshalb wird empfohlen, Presets und Demo-Projekte zu kopieren und die Samples zu verknüpfen, da letztere doch eine gewisse Größe haben.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>samples:</source>
|
||||
<translation>Samples:</translation>
|
||||
<translation type="obsolete">Samples:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>copy</source>
|
||||
<translation>Kopieren</translation>
|
||||
<translation type="obsolete">Kopieren</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>link</source>
|
||||
<translation>Verknüpfen</translation>
|
||||
<translation type="obsolete">Verknüpfen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>presets:</source>
|
||||
<translation>Presets:</translation>
|
||||
<translation type="obsolete">Presets:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>demo projects:</source>
|
||||
<translation>Demo Projekte:</translation>
|
||||
<translation type="obsolete">Demo Projekte:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Welcome to LMMS</source>
|
||||
@@ -875,7 +879,7 @@ Kopierte Dateien können Sie ändern, aber gleichzeitig belegen diese auch zusä
|
||||
</message>
|
||||
<message>
|
||||
<source>Copy or link files</source>
|
||||
<translation>Dateien kopieren oder verknüpfen</translation>
|
||||
<translation type="obsolete">Dateien kopieren oder verknüpfen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Directory not existing</source>
|
||||
@@ -1533,6 +1537,10 @@ Stellen Sie sicher, dass Sie Schreibzugriff auf die gewählte Datei/Gerät haben
|
||||
<source>Please wait, loading sample for preview...</source>
|
||||
<translation>Bitte warten, Sample wird für Vorschau geladen....</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>--- Factory files ---</source>
|
||||
<translation type="unfinished"></translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>mainWindow</name>
|
||||
@@ -1763,6 +1771,14 @@ Bitte besuchen Sie http://wiki.mindrules.net für Dokumentationen über LMMS.</t
|
||||
<source>Send MIDI-events</source>
|
||||
<translation>MIDI-Ereignisse senden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Default velocity for all input-events</source>
|
||||
<translation>Standardlautstärke für alle einkommenden Ereignisse</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Default velocity for all output-events</source>
|
||||
<translation>Standardlautstärke für alle ausgehende Ereignisse</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>mixer</name>
|
||||
@@ -1884,11 +1900,11 @@ Bitte besuchen Sie http://wiki.mindrules.net für Dokumentationen über LMMS.</t
|
||||
</message>
|
||||
<message>
|
||||
<source>Channel muted</source>
|
||||
<translation>Kanal stumm geschalten</translation>
|
||||
<translation type="obsolete">Kanal stumm geschalten</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>The channel this pattern belongs to is currently muted therefore freezing makes no sense! Do you still want to continue?</source>
|
||||
<translation>Der Kanal, zu dem dieser Pattern gehört, ist derzeit stumm geschaltet, weshalb das Einfrieren keinen Sinn ergibt! Wollen Sie trotzdem fortfahren?</translation>
|
||||
<translation type="obsolete">Der Kanal, zu dem dieser Pattern gehört, ist derzeit stumm geschaltet, weshalb das Einfrieren keinen Sinn ergibt! Wollen Sie trotzdem fortfahren?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Add steps</source>
|
||||
@@ -1912,6 +1928,14 @@ use mouse wheel to set volume of a step</source>
|
||||
<translation>Doppelklick, um diesen Pattern im Piano-Roll zu öffnen
|
||||
Lautstärke eines Steps kann mit Mausrad geändert werden</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Pattern muted</source>
|
||||
<translation>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>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>patternFreezeStatusDialog</name>
|
||||
@@ -2104,6 +2128,10 @@ Lautstärke eines Steps kann mit Mausrad geändert werden</translation>
|
||||
<source>simple sampler with various settings for using samples (e.g. drums) in an instrument-track</source>
|
||||
<translation>Einfacher Sampler mit verschiedenen Einstellungen zur Nutzung von Samples (z.B. Drums) in einer Instrument-Spur</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Filter for importing FL Studio projects into LMMS</source>
|
||||
<translation>Filter für Import von FL Studio Projekten in LMMS</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>projectNotes</name>
|
||||
@@ -2283,6 +2311,22 @@ Lautstärke eines Steps kann mit Mausrad geändert werden</translation>
|
||||
<source>Sample track</source>
|
||||
<translation>Sample-Spur</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Channel volume</source>
|
||||
<translation>Kanal Lautstärke</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Channel volume:</source>
|
||||
<translation>Kanal Lautstärke:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>VOL</source>
|
||||
<translation>LAUT</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>With this knob you can set the volume of the opened channel.</source>
|
||||
<translation>Mit diesem Knopf können Sie die Lautstärke des geöffneten Kanals ändern.</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>setupDialog</name>
|
||||
@@ -2420,6 +2464,18 @@ Latenz: %2 ms</translation>
|
||||
<source>Choose artwork-theme directory</source>
|
||||
<translation>Artwork-Verzeichnis wählen</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Display volume as dbV </source>
|
||||
<translation>Lautstärke als in dbV anzeigen </translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>FL Studio installation directory</source>
|
||||
<translation>FL Studio Installationsverzeichnis</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Choose FL Studio installation directory</source>
|
||||
<translation>FL Studio Installationsverzeichnis wählen</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>setupWidget</name>
|
||||
@@ -2558,7 +2614,7 @@ Wollen Sie diese überschreiben?</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>MIDI-files (*.mid)</source>
|
||||
<translation>MIDI-Dateien (*.mid)</translation>
|
||||
<translation type="obsolete">MIDI-Dateien (*.mid)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>TEMPO/BPM</source>
|
||||
@@ -2620,6 +2676,10 @@ Bitte stellen Sie sicher, dass Sie Schreibrechte auf diese Datei besitzen und ve
|
||||
<source>Edit mode (select and move)</source>
|
||||
<translation>Editier-Modus (auswählen und verschieben)</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Auto limiter</source>
|
||||
<translation>Autolimiter</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>surroundArea</name>
|
||||
@@ -2794,7 +2854,7 @@ Bitte stellen Sie sicher, dass Sie Schreibrechte auf diese Datei und das Verzeic
|
||||
<message>
|
||||
<source>Couldn't find a filter for importing file %1.
|
||||
You should convert this file into a format supported by LMMS using another software. </source>
|
||||
<translation>Konnte keinen Filter finden, um die Datei %1 zu importieren.
|
||||
<translation type="obsolete">Konnte keinen Filter finden, um die Datei %1 zu importieren.
|
||||
Sie sollten diese Datei mit Hilfe einer anderen Software in ein Format konvertieren, das von LMMS unterstützt wird.</translation>
|
||||
</message>
|
||||
<message>
|
||||
@@ -2807,6 +2867,16 @@ Please make sure you have read-permission to the file and the directory containi
|
||||
<translation>Konnte Datei %1 nicht zum Lesen öffnen.
|
||||
Bitte stellen Sie sicher, dass Sie Lese-Rechte auf diese Datei sowie das Verzeichnis besitzen und probieren es erneut!</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Couldn't find a filter for importing file %1.
|
||||
You should convert this file into a format supported by LMMS using another software.</source>
|
||||
<translation>Es konnte kein Filter gefunden werden, um die Datei %1 zu importieren.
|
||||
Sie sollten diese Datei mit Hilfe anderer Software in ein von LMMS unterstützes Format umwandeln.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Importing FLP-file...</source>
|
||||
<translation>Importiere FLP-Datei...</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>trackContentObject</name>
|
||||
@@ -2850,6 +2920,10 @@ Bitte stellen Sie sicher, dass Sie Lese-Rechte auf diese Datei sowie das Verzeic
|
||||
<source>Press <Ctrl> for free resizing.</source>
|
||||
<translation>Drücken Sie <Strg> für freie Größenänderung.</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Mute/unmute (<Ctrl> + middle click)</source>
|
||||
<translation>Stumm/Laut schalten (<Strg> + Mittelklick)</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>trackOperationsWidget</name>
|
||||
@@ -3274,4 +3348,15 @@ Die LED rechts unterhalb der Wellenform gibt an, ob die Saite aktiviert ist.</tr
|
||||
<translation>klicken, um Visualisierung des Masterausgangs an-/auszuschalten</translation>
|
||||
</message>
|
||||
</context>
|
||||
<context>
|
||||
<name>volumeKnob</name>
|
||||
<message>
|
||||
<source>Please enter a new value between -96.0 dbV and 6.0 dbV:</source>
|
||||
<translation>Bitte geben Sie einen Wert zwischen -96.0 dbV und 6.0 dbV ein:</translation>
|
||||
</message>
|
||||
<message>
|
||||
<source>Please enter a new value between %1 and %2:</source>
|
||||
<translation>Bitte geben Sie einen neuen Wert zwischen %1 und %2 ein:</translation>
|
||||
</message>
|
||||
</context>
|
||||
</TS>
|
||||
|
||||
17
data/presets/TripleOscillator/SawReso.cs.xml
Normal file
17
data/presets/TripleOscillator/SawReso.cs.xml
Normal file
@@ -0,0 +1,17 @@
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE multimedia-project>
|
||||
<multimediaproject creator="Linux MultiMedia Studio (LMMS)" creatorversion="0.1.4-cvs20060414" type="instrumenttracksettings" version="1.0" >
|
||||
<head/>
|
||||
<instrumenttracksettings>
|
||||
<instrumenttrack width="250" x="611" y="0" surpos="135792566" fxch="0" height="436" baseoct="4" vol="100" name="Saw Reso" basetone="9" tab="1" visible="1" >
|
||||
<tripleoscillator userwavefile1="" wavetype1="2" coarse1="0" userwavefile2="" wavetype2="2" coarse2="-12" vol0="100" vol1="53" finel0="8" vol2="37" finel1="-9" finel2="0" modalgo1="2" stphdetun0="0" pan0="0" modalgo2="2" stphdetun1="0" pan1="0" stphdetun2="0" pan2="0" phoffset0="0" phoffset1="0" phoffset2="0" finer0="8" finer1="-9" finer2="0" userwavefile0="" wavetype0="2" coarse0="0" />
|
||||
<eldata fres="2.62" ftype="7" fcut="5490" fwet="1" >
|
||||
<elvol lfosyncmode="0" lpdel="0" amt="1" rel="0.469" ctlenvamt="0" latt="0" sus="0" lspd="0.1" att="0.118" pdel="0.001" lamt="0" dec="0.534" userwavefile="" x100="0" lshp="0" hold="0.287" />
|
||||
<elcut lfosyncmode="0" lpdel="0" amt="1" rel="0.375" ctlenvamt="0" latt="0" sus="0" lspd="0.1" att="0.444" pdel="0.001" lamt="0" dec="0.416" userwavefile="" x100="0" lshp="0" hold="0.244" />
|
||||
<elres lfosyncmode="0" lpdel="0" amt="0" rel="0.244" ctlenvamt="0" latt="0" sus="0" lspd="0.1" att="0.244" pdel="0.001" lamt="0" dec="0.366" userwavefile="" x100="0" lshp="0" hold="0.244" />
|
||||
</eldata>
|
||||
<arpandchords arpmode="0" chordrange="1" arprange="3" arpdisabled="1" chord="0" chorddisabled="1" arpgate="100" arp="0" arpsyncmode="0" arptime="128" arpdir="1" />
|
||||
<midi defvelout="0" inputchannel="0" outputchannel="1" receive="0" send="0" defvelin="0" />
|
||||
</instrumenttrack>
|
||||
</instrumenttracksettings>
|
||||
</multimediaproject>
|
||||
17
data/presets/Vibed/Harpsichord.cs.xml
Normal file
17
data/presets/Vibed/Harpsichord.cs.xml
Normal file
@@ -0,0 +1,17 @@
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE multimedia-project>
|
||||
<multimediaproject creator="Linux MultiMedia Studio (LMMS)" creatorversion="0.1.4-cvs20060519" type="instrumenttracksettings" version="1.0" >
|
||||
<head/>
|
||||
<instrumenttracksettings>
|
||||
<instrumenttrack width="250" x="0" y="0" surpos="134219776" fxch="0" height="436" baseoct="3" vol="100" name="Harpsichord" basetone="9" tab="1" visible="1" >
|
||||
<vibedstrings volume0="100" volume1="100" graph0="Hy7JPF+Xgb3iRCy+6mpAvhAfkrz8dYA+/RjkPlWeuj4+hog9ryWgvoHjCb//SBa/V3DyvuZGmr6hNdO9KAblPXfOmz78kPM+6KkQPxQoGz9epRM/Y83xPhegcT73NgW++6/9vm6QO79Zu0W/Fr8vvyCR976EYEe+5WfePX0IgT7cCUk+DyarPYtPnj2CBB4+rDQpPmv7gT17R6+9QuRovv5L1r7Q/CW/s1FKv9mqLL+UDJi+750VPiNq2z50LtY+2GMmPnQPdb4uyiS/KcttvwAAgL/oWWq/1ARLv4v8Pr/uizS/x2Efv3O6+r6aMMi+S4SevqVzJ74r+qA9rS6xPhVBBj87gB0/C2srP56+Nj9Jjyc/DF/UPhTR3Txq3qO+NgHnvkiYm75p6Fq7AOF4Prlkmj5Zm1Q+4l4dPgndSj6Nr5A+AyFYPpDxmDxtIoS+qjz5vi6sM79uWkm/gTIvvxlfw754rLu9y64Svbpqbb6IZgW/XYYov8ueIr/weOm+6XKFvu/4JjwhR28+aAzWPhg2zT5f4ZE+CDWXPWavmL0bO3K+lhbHvh+5FL/cNy+/NFwwv/uzGL/4sAK/nGncvrn2uL4xbIy+CTk5vu7xyb3dJKe99zRfvuT37745qDq/jjpRvzHaOL9NFui+FPLXvdRQkD5ghwk/Q1X7PrHrnD0=" detune0="0" stiffness0="0" volume2="100" graph1="AACAvCW0375hkTq/E9pfv8uFa78neWu/AABovwAAZL8AAGC/AABcvwAAWL8AAFS/AABQvwAATL8AAEi/AABEvwAAQL8AADy/AAA4vwAANL8AADC/AAAsvwAAKL8AACS/AAAgvwAAHL8AABi/AAAUvwAAEL8AAAy/AAAIvwAABL8AAAC/AAD4vgAA8L4AAOi+AADgvgAA2L4AANC+rE/IvoQwwr4cxsC+DXLIvleG3L7kXPu+C8cOvyVDHL9IOSK/m6Efv3gsFr/mYwi/z77wvkyOzr59TKu+dGyHvt+iRb7UdPO9jYYlvQX3Lj2cawM+x6dYPiXfkj5tH7M+WUvMPv3V3j7FDew+DHf1Ps2H/D4PLgE/euADPxeaBj8Jjwk/3+YMP1y+ED+BFRU/VNoZP3T1Hj9/WCQ/re8pPw2OLz+06zQ/fcs5PwsfPj+AEUI/nNpFP7ejST9wSk0/QS9QP9O1UD8gpEw/lSxCP8fuMT/jQx8/wQEPPwqJBD/TfwA/5x8BPy8pBD8AAAg/AAAMPwAAED8AABQ/AAAYPwAAHD8AACA/AAAkPwAAKD8AACw/AAAwPwAAND8AADg/AAA8PwAAQD8AAEQ/AABIPwAATD8AAFA/AABUPwAAWD8AAFw/AABgPwAAZD9De2c/tJdnP6sqXD8chzc/VRXcPgAAfDw=" detune1="0" stiffness1="0" graph2="AACAvwAAfL8AAHi/AAB0vwAAcL8AAGy/AABovwAAZL8AAGC/AABcvwAAWL8AAFS/AABQvwAATL8AAEi/AABEvwAAQL8AADy/AAA4vwAANL8AADC/AAAsvwAAKL8AACS/AAAgvwAAHL8AABi/AAAUvwAAEL8AAAy/AAAIvwAABL8AAAC/AAD4vgAA8L4fheu+PQrXvlyPwr57FK6+uB6Fvq5HYb7sUTi+hetRv4XrUb+F61G/hetRvxSuR79cj0K/7FE4vwrXI79SuB6/cT0Kv7geBb+uR+G+7FG4vnsUrr64HoW+KVwPvo/Cdb2PwnU97FE4PpqZmT49Ctc+cT0KP1K4Hj8zMzM/hetRP2ZmZj9I4Xo/AACgPQAAwD0AAOA9AAAAPgAAED4AACA+AAAwPgAAQD5I4Xo/ZmZmP4XrUT+kcD0/UrgeP3E9Cj8fhes+exSuPrgehT7sUTg+zczMPQrXozwK16O8zczMvSlcD77sUTi+7FE4vgAA8D4AAPg+AAAAPwAABD8AAAg/AAAMPwAAED8AABQ/AAAYPwAAHD8AACA/AAAkPwAAKD8AACw/AAAwPwAAND8AADg/AAA8PwAAQD8AAEQ/AABIPwAATD8AAFA/AABUPwAAWD8AAFw/AABgPwAAZD8AAGg/AABsPwAAcD8AAHQ/AAB4PwAAfD8=" detune2="0" stiffness2="0" slap0="0.75" active0="1" slap1="0" active1="1" pickup0="0.05" slap2="0" active2="1" pickup1="0.325" pan0="0" active3="0" pickup2="0.43" pan1="0" active4="0" pan2="-1" active5="0" octave0="2" version="0.1" active6="0" octave1="1" impulse0="0" length0="8" active7="0" octave2="1" impulse1="0" length1="3" pick0="0" active8="0" impulse2="0" length2="1" pick1="0" pick2="0" />
|
||||
<eldata fres="1.53" ftype="0" fcut="700" fwet="0" >
|
||||
<elvol lfosyncmode="0" lpdel="0" amt="1" rel="0.414" ctlenvamt="0" latt="0" sus="0" lspd="0.1" att="0" pdel="0" lamt="0" dec="0" userwavefile="" x100="0" lshp="0" hold="0" />
|
||||
<elcut lfosyncmode="4" lpdel="0" amt="1" rel="0" ctlenvamt="1" latt="0.1" sus="0.999" lspd="0.0208" att="0.532" pdel="0" lamt="1" dec="0.999" userwavefile="" x100="0" lshp="0" hold="0" />
|
||||
<elres lfosyncmode="0" lpdel="0" amt="0" rel="0.1" ctlenvamt="0" latt="0" sus="0.499" lspd="0.1" att="0" pdel="0" lamt="0" dec="0.499" userwavefile="" x100="0" lshp="0" hold="0.499" />
|
||||
</eldata>
|
||||
<arpandchords arpmode="1" chordrange="2" arprange="1" arpdisabled="1" chord="0" chorddisabled="0" arpgate="100" arp="0" arpsyncmode="0" arptime="366" arpdir="1" />
|
||||
<midi defvelout="0" inputchannel="0" outputchannel="1" receive="1" send="0" defvelin="0" inports="24:0 CS46XX:CS46XX" />
|
||||
</instrumenttrack>
|
||||
</instrumenttracksettings>
|
||||
</multimediaproject>
|
||||
17
data/presets/Vibed/SadPad.cs.xml
Normal file
17
data/presets/Vibed/SadPad.cs.xml
Normal file
@@ -0,0 +1,17 @@
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE multimedia-project>
|
||||
<multimediaproject creator="Linux MultiMedia Studio (LMMS)" creatorversion="0.1.4-cvs20060519" type="instrumenttracksettings" version="1.0" >
|
||||
<head/>
|
||||
<instrumenttracksettings>
|
||||
<instrumenttrack width="250" x="0" y="0" surpos="134219776" fxch="0" height="436" baseoct="3" vol="100" name="Sad Pad (play with Filter-Reso!!)" basetone="9" tab="1" visible="1" >
|
||||
<vibedstrings volume0="100" volume1="100" graph0="Hy7JPF+Xgb3iRCy+6mpAvhAfkrz8dYA+/RjkPlWeuj4+hog9ryWgvoHjCb//SBa/V3DyvuZGmr6hNdO9KAblPXfOmz78kPM+6KkQPxQoGz9epRM/Y83xPhegcT73NgW++6/9vm6QO79Zu0W/Fr8vvyCR976EYEe+5WfePX0IgT7cCUk+DyarPYtPnj2CBB4+rDQpPmv7gT17R6+9QuRovv5L1r7Q/CW/s1FKv9mqLL+UDJi+750VPiNq2z50LtY+2GMmPnQPdb4uyiS/KcttvwAAgL/oWWq/1ARLv4v8Pr/uizS/x2Efv3O6+r6aMMi+S4SevqVzJ74r+qA9rS6xPhVBBj87gB0/C2srP56+Nj9Jjyc/DF/UPhTR3Txq3qO+NgHnvkiYm75p6Fq7AOF4Prlkmj5Zm1Q+4l4dPgndSj6Nr5A+AyFYPpDxmDxtIoS+qjz5vi6sM79uWkm/gTIvvxlfw754rLu9y64Svbpqbb6IZgW/XYYov8ueIr/weOm+6XKFvu/4JjwhR28+aAzWPhg2zT5f4ZE+CDWXPWavmL0bO3K+lhbHvh+5FL/cNy+/NFwwv/uzGL/4sAK/nGncvrn2uL4xbIy+CTk5vu7xyb3dJKe99zRfvuT37745qDq/jjpRvzHaOL9NFui+FPLXvdRQkD5ghwk/Q1X7PrHrnD0=" detune0="0" stiffness0="0" volume2="100" graph1="AACAvCW0375hkTq/E9pfv8uFa78neWu/AABovwAAZL8AAGC/AABcvwAAWL8AAFS/AABQvwAATL8AAEi/AABEvwAAQL8AADy/AAA4vwAANL8AADC/AAAsvwAAKL8AACS/AAAgvwAAHL8AABi/AAAUvwAAEL8AAAy/AAAIvwAABL8AAAC/AAD4vgAA8L4AAOi+AADgvgAA2L4AANC+rE/IvoQwwr4cxsC+DXLIvleG3L7kXPu+C8cOvyVDHL9IOSK/m6Efv3gsFr/mYwi/z77wvkyOzr59TKu+dGyHvt+iRb7UdPO9jYYlvQX3Lj2cawM+x6dYPiXfkj5tH7M+WUvMPv3V3j7FDew+DHf1Ps2H/D4PLgE/euADPxeaBj8Jjwk/3+YMP1y+ED+BFRU/VNoZP3T1Hj9/WCQ/re8pPw2OLz+06zQ/fcs5PwsfPj+AEUI/nNpFP7ejST9wSk0/QS9QP9O1UD8gpEw/lSxCP8fuMT/jQx8/wQEPPwqJBD/TfwA/5x8BPy8pBD8AAAg/AAAMPwAAED8AABQ/AAAYPwAAHD8AACA/AAAkPwAAKD8AACw/AAAwPwAAND8AADg/AAA8PwAAQD8AAEQ/AABIPwAATD8AAFA/AABUPwAAWD8AAFw/AABgPwAAZD9De2c/tJdnP6sqXD8chzc/VRXcPgAAfDw=" detune1="0" stiffness1="0" graph2="AACAvwAAfL8AAHi/AAB0vwAAcL8AAGy/AABovwAAZL8AAGC/AABcvwAAWL8AAFS/AABQvwAATL8AAEi/AABEvwAAQL8AADy/AAA4vwAANL8AADC/AAAsvwAAKL8AACS/AAAgvwAAHL8AABi/AAAUvwAAEL8AAAy/AAAIvwAABL8AAAC/AAD4vgAA8L4fheu+PQrXvlyPwr57FK6+uB6Fvq5HYb7sUTi+hetRv4XrUb+F61G/hetRvxSuR79cj0K/7FE4vwrXI79SuB6/cT0Kv7geBb+uR+G+7FG4vnsUrr64HoW+KVwPvo/Cdb2PwnU97FE4PpqZmT49Ctc+cT0KP1K4Hj8zMzM/hetRP2ZmZj9I4Xo/AACgPQAAwD0AAOA9AAAAPgAAED4AACA+AAAwPgAAQD5I4Xo/ZmZmP4XrUT+kcD0/UrgeP3E9Cj8fhes+exSuPrgehT7sUTg+zczMPQrXozwK16O8zczMvSlcD77sUTi+7FE4vgAA8D4AAPg+AAAAPwAABD8AAAg/AAAMPwAAED8AABQ/AAAYPwAAHD8AACA/AAAkPwAAKD8AACw/AAAwPwAAND8AADg/AAA8PwAAQD8AAEQ/AABIPwAATD8AAFA/AABUPwAAWD8AAFw/AABgPwAAZD8AAGg/AABsPwAAcD8AAHQ/AAB4PwAAfD8=" detune2="0" stiffness2="0" slap0="0.75" active0="1" slap1="0" active1="1" pickup0="0.05" slap2="0" active2="1" pickup1="0.325" pan0="0" active3="0" pickup2="0.43" pan1="0" active4="0" pan2="-1" active5="0" octave0="2" version="0.1" active6="0" octave1="1" impulse0="0" length0="8" active7="0" octave2="1" impulse1="0" length1="3" pick0="0" active8="0" impulse2="0" length2="1" pick1="0" pick2="0" />
|
||||
<eldata fres="1.61" ftype="0" fcut="560" fwet="1" >
|
||||
<elvol lfosyncmode="0" lpdel="0" amt="1" rel="0.414" ctlenvamt="0" latt="0" sus="0" lspd="0.1" att="0" pdel="0" lamt="0" dec="0" userwavefile="" x100="0" lshp="0" hold="0" />
|
||||
<elcut lfosyncmode="4" lpdel="0" amt="1" rel="0" ctlenvamt="1" latt="0.1" sus="0.999" lspd="0.0208" att="0.532" pdel="0" lamt="1" dec="0.999" userwavefile="" x100="0" lshp="0" hold="0" />
|
||||
<elres lfosyncmode="0" lpdel="0" amt="0" rel="0.1" ctlenvamt="0" latt="0" sus="0.499" lspd="0.1" att="0" pdel="0" lamt="0" dec="0.499" userwavefile="" x100="0" lshp="0" hold="0.499" />
|
||||
</eldata>
|
||||
<arpandchords arpmode="1" chordrange="2" arprange="1" arpdisabled="1" chord="0" chorddisabled="0" arpgate="100" arp="0" arpsyncmode="0" arptime="366" arpdir="1" />
|
||||
<midi defvelout="0" inputchannel="0" outputchannel="1" receive="1" send="0" defvelin="0" inports="24:0 CS46XX:CS46XX" />
|
||||
</instrumenttrack>
|
||||
</instrumenttracksettings>
|
||||
</multimediaproject>
|
||||
BIN
data/themes/default/muted.png
Normal file
BIN
data/themes/default/muted.png
Normal file
Binary file not shown.
@@ -103,6 +103,11 @@ public:
|
||||
return( m_length );
|
||||
}
|
||||
|
||||
bool muted( void ) const
|
||||
{
|
||||
return( m_muted );
|
||||
}
|
||||
|
||||
bool fixedTCOs( void );
|
||||
|
||||
virtual void FASTCALL movePosition( const midiTime & _pos );
|
||||
@@ -137,6 +142,7 @@ protected slots:
|
||||
void cut( void );
|
||||
void copy( void );
|
||||
void paste( void );
|
||||
void toggleMute( void );
|
||||
|
||||
|
||||
private:
|
||||
@@ -154,6 +160,8 @@ private:
|
||||
bool m_autoResize;
|
||||
Sint16 m_initialMouseX;
|
||||
|
||||
bool m_muted;
|
||||
|
||||
textFloat * m_hint;
|
||||
|
||||
midiTime m_oldTime;// used for undo/redo while mouse-button is pressed
|
||||
|
||||
@@ -114,6 +114,12 @@ bbEditor::bbEditor( engine * _engine ) :
|
||||
tr( "Stop playing of current beat/bassline (Space)" ),
|
||||
this, SLOT( stop() ), m_toolBar );
|
||||
|
||||
toolButton * add_bb_track = new toolButton(
|
||||
embed::getIconPixmap( "add_bb_track" ),
|
||||
tr( "Add beat/bassline" ),
|
||||
eng()->getSongEditor(), SLOT( addBBTrack() ),
|
||||
m_toolBar );
|
||||
|
||||
|
||||
#ifdef QT4
|
||||
m_playButton->setWhatsThis(
|
||||
@@ -144,6 +150,8 @@ bbEditor::bbEditor( engine * _engine ) :
|
||||
tb_layout->addWidget( m_stopButton );
|
||||
tb_layout->addSpacing( 20 );
|
||||
tb_layout->addWidget( m_bbComboBox );
|
||||
tb_layout->addSpacing( 10 );
|
||||
tb_layout->addWidget( add_bb_track );
|
||||
tb_layout->addStretch();
|
||||
tb_layout->addWidget( l );
|
||||
tb_layout->addSpacing( 15 );
|
||||
@@ -198,7 +206,7 @@ void bbEditor::setCurrentBB( int _bb )
|
||||
tact bbEditor::lengthOfBB( csize _bb )
|
||||
{
|
||||
midiTime max_length;
|
||||
|
||||
|
||||
trackVector tv = tracks();
|
||||
for( trackVector::iterator it = tv.begin(); it != tv.end(); ++it )
|
||||
{
|
||||
|
||||
@@ -154,16 +154,16 @@ bool mixer::criticalXRuns( void ) const
|
||||
void mixer::setClipScaling( bool _state )
|
||||
{
|
||||
m_mixMutex.lock();
|
||||
|
||||
|
||||
m_scaleClip = _state;
|
||||
|
||||
|
||||
if( _state )
|
||||
{
|
||||
m_poolDepth = 3;
|
||||
m_readBuffer = 0;
|
||||
m_analBuffer = m_readBuffer + 1;
|
||||
m_writeBuffer = m_poolDepth - 1;
|
||||
|
||||
|
||||
for( ch_cnt_t chnl=0; chnl < m_audioDev->channels(); ++chnl )
|
||||
{
|
||||
m_clipped[chnl] = FALSE;
|
||||
@@ -172,6 +172,9 @@ void mixer::setClipScaling( bool _state )
|
||||
m_previousSample[chnl] = 0.0;
|
||||
m_newBuffer[chnl] = FALSE;
|
||||
}
|
||||
// FIXME: why assign buffer-ptr to m_readBuf just for calling
|
||||
// another method?
|
||||
// clearAudioBuffer(m_bufferPool[i],...) would do as well
|
||||
for( Uint8 i = 0; i < 3; i++ )
|
||||
{
|
||||
m_readBuf = m_bufferPool[i];
|
||||
@@ -185,7 +188,7 @@ void mixer::setClipScaling( bool _state )
|
||||
m_writeBuffer = 1;
|
||||
m_analBuffer = 1;
|
||||
}
|
||||
|
||||
|
||||
m_mixMutex.unlock();
|
||||
}
|
||||
|
||||
@@ -239,16 +242,16 @@ const surroundSampleFrame * mixer::renderNextBuffer( void )
|
||||
// qSwap( m_curBuf, m_nextBuf );
|
||||
m_writeBuffer++;
|
||||
m_writeBuffer %= m_poolDepth;
|
||||
|
||||
|
||||
m_readBuffer++;
|
||||
m_readBuffer %= m_poolDepth;
|
||||
|
||||
|
||||
m_analBuffer++;
|
||||
m_analBuffer %= m_poolDepth;
|
||||
|
||||
|
||||
m_writeBuf = m_bufferPool[m_writeBuffer];
|
||||
m_readBuf = m_bufferPool[m_readBuffer];
|
||||
|
||||
|
||||
// clear last audio-buffer
|
||||
clearAudioBuffer( m_writeBuf, m_framesPerAudioBuffer );
|
||||
|
||||
@@ -280,9 +283,8 @@ const surroundSampleFrame * mixer::renderNextBuffer( void )
|
||||
{
|
||||
if( ( *it )->m_bufferUsage != audioPort::NONE )
|
||||
{
|
||||
processBuffer(
|
||||
( *it )->firstBuffer(),
|
||||
( *it )->nextFxChannel() );
|
||||
processBuffer( ( *it )->firstBuffer(),
|
||||
( *it )->nextFxChannel() );
|
||||
( *it )->nextPeriod();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -95,6 +95,7 @@ trackContentObject::trackContentObject( track * _track ) :
|
||||
m_action( NONE ),
|
||||
m_autoResize( FALSE ),
|
||||
m_initialMouseX( 0 ),
|
||||
m_muted( FALSE ),
|
||||
m_hint( NULL )
|
||||
{
|
||||
if( s_textFloat == NULL )
|
||||
@@ -225,6 +226,7 @@ void trackContentObject::mousePressEvent( QMouseEvent * _me )
|
||||
if( m_track->getTrackContainer()->allowRubberband() == TRUE &&
|
||||
_me->button() == Qt::LeftButton )
|
||||
{
|
||||
// if rubberband is active, we can be selected
|
||||
if( m_track->getTrackContainer()->rubberBandActive() == FALSE )
|
||||
{
|
||||
if(
|
||||
@@ -246,11 +248,13 @@ void trackContentObject::mousePressEvent( QMouseEvent * _me )
|
||||
}
|
||||
else if( getTrack()->eng()->getMainWindow()->isShiftPressed() == TRUE )
|
||||
{
|
||||
// add/remove object to/from selection
|
||||
selectableObject::mousePressEvent( _me );
|
||||
}
|
||||
else if( _me->button() == Qt::LeftButton &&
|
||||
getTrack()->eng()->getMainWindow()->isCtrlPressed() == TRUE )
|
||||
{
|
||||
// start drag-action
|
||||
multimediaProject mmp( multimediaProject::DRAG_N_DROP_DATA );
|
||||
saveState( mmp, mmp.content() );
|
||||
#ifdef QT4
|
||||
@@ -272,6 +276,7 @@ void trackContentObject::mousePressEvent( QMouseEvent * _me )
|
||||
/* eng()->getMainWindow()->isShiftPressed() == FALSE &&*/
|
||||
fixedTCOs() == FALSE )
|
||||
{
|
||||
// move or resize
|
||||
setJournalling( FALSE );
|
||||
|
||||
m_initialMouseX = _me->x();
|
||||
@@ -307,12 +312,17 @@ void trackContentObject::mousePressEvent( QMouseEvent * _me )
|
||||
mouseMoveEvent( _me );
|
||||
s_textFloat->show();
|
||||
}
|
||||
else if( ( _me->button() == Qt::MidButton/* ||
|
||||
( _me->button() == Qt::LeftButton &&
|
||||
eng()->getMainWindow()->isShiftPressed() == TRUE )*/ ) &&
|
||||
fixedTCOs() == FALSE )
|
||||
else if( _me->button() == Qt::MidButton )
|
||||
{
|
||||
close();
|
||||
if( getTrack()->eng()->getMainWindow()->isCtrlPressed() )
|
||||
{
|
||||
toggleMute();
|
||||
}
|
||||
else if( fixedTCOs() == FALSE )
|
||||
{
|
||||
// delete ourself
|
||||
close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -464,9 +474,10 @@ void trackContentObject::contextMenuEvent( QContextMenuEvent * _cme )
|
||||
tr( "Copy" ), this, SLOT( copy() ) );
|
||||
contextMenu.addAction( embed::getIconPixmap( "edit_paste" ),
|
||||
tr( "Paste" ), this, SLOT( paste() ) );
|
||||
//contextMenu.insertSeparator();
|
||||
//contextMenu.insertItem( tr( "&Help" ), this, SLOT( displayHelp() ) );
|
||||
|
||||
contextMenu.insertSeparator();
|
||||
contextMenu.addAction( embed::getIconPixmap( "muted" ),
|
||||
tr( "Mute/unmute (<Ctrl> + middle click)" ),
|
||||
this, SLOT( toggleMute() ) );
|
||||
constructContextMenu( &contextMenu );
|
||||
|
||||
contextMenu.exec( QCursor::pos() );
|
||||
@@ -559,6 +570,15 @@ void trackContentObject::paste( void )
|
||||
|
||||
|
||||
|
||||
void trackContentObject::toggleMute( void )
|
||||
{
|
||||
m_muted = !m_muted;
|
||||
update();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
void trackContentObject::setAutoResizeEnabled( bool _e )
|
||||
{
|
||||
m_autoResize = _e;
|
||||
@@ -1215,8 +1235,7 @@ void trackWidget::changePosition( const midiTime & _new_pos )
|
||||
|
||||
for( csize i = 0; i < tcos; ++i )
|
||||
{
|
||||
trackContentObject * tco =
|
||||
m_trackContentWidget.getTCO( i );
|
||||
trackContentObject * tco = m_trackContentWidget.getTCO( i );
|
||||
tco->changeLength( tco->length() );
|
||||
Sint32 ts = tco->startPosition();
|
||||
Sint32 te = tco->endPosition();
|
||||
|
||||
@@ -135,7 +135,7 @@ void bbTCO::mouseDoubleClickEvent( QMouseEvent * )
|
||||
void bbTCO::paintEvent( QPaintEvent * )
|
||||
{
|
||||
QColor col = m_color;
|
||||
if( getTrack()->muted() )
|
||||
if( getTrack()->muted() || muted() )
|
||||
{
|
||||
col = QColor( 160, 160, 160 );
|
||||
}
|
||||
@@ -189,7 +189,13 @@ void bbTCO::paintEvent( QPaintEvent * )
|
||||
|
||||
p.setFont( pointSize<7>( p.font() ) );
|
||||
p.setPen( QColor( 0, 0, 0 ) );
|
||||
p.drawText( 2, QFontMetrics( p.font() ).height() - 1, m_name );
|
||||
p.drawText( 2, p.fontMetrics().height() - 1, m_name );
|
||||
|
||||
if( muted() )
|
||||
{
|
||||
p.drawPixmap( 3, p.fontMetrics().height() + 1,
|
||||
embed::getIconPixmap( "muted", 16, 16 ) );
|
||||
}
|
||||
|
||||
#ifndef QT4
|
||||
bitBlt( this, rect().topLeft(), &pm );
|
||||
@@ -211,6 +217,7 @@ void bbTCO::saveSettings( QDomDocument & _doc, QDomElement & _this )
|
||||
_this.setAttribute( "pos", startPosition() );
|
||||
}
|
||||
_this.setAttribute( "len", length() );
|
||||
_this.setAttribute( "muted", muted() );
|
||||
_this.setAttribute( "color", m_color.rgb() );
|
||||
}
|
||||
|
||||
@@ -225,6 +232,11 @@ void bbTCO::loadSettings( const QDomElement & _this )
|
||||
movePosition( _this.attribute( "pos" ).toInt() );
|
||||
}
|
||||
changeLength( _this.attribute( "len" ).toInt() );
|
||||
if( _this.attribute( "muted" ).toInt() != muted() )
|
||||
{
|
||||
toggleMute();
|
||||
}
|
||||
|
||||
if( _this.attribute( "color" ).toUInt() != 0 )
|
||||
{
|
||||
m_color.setRgb( _this.attribute( "color" ).toUInt() );
|
||||
@@ -384,7 +396,8 @@ bool FASTCALL bbTrack::play( const midiTime & _start,
|
||||
for( vlist<trackContentObject *>::iterator it = tcos.begin();
|
||||
it != tcos.end(); ++it )
|
||||
{
|
||||
if( ( *it )->startPosition() >= lastPosition )
|
||||
if( !( *it )->muted() &&
|
||||
( *it )->startPosition() >= lastPosition )
|
||||
{
|
||||
lastPosition = ( *it )->startPosition();
|
||||
lastLen = ( *it )->length();
|
||||
|
||||
@@ -891,7 +891,8 @@ bool FASTCALL instrumentTrack::play( const midiTime & _start,
|
||||
it != tcos.end(); ++it )
|
||||
{
|
||||
pattern * p = dynamic_cast<pattern *>( *it );
|
||||
if( p == NULL )
|
||||
// everything which is not a pattern or muted won't be played
|
||||
if( p == NULL || ( *it )->muted() )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -132,7 +132,7 @@ pattern::~pattern()
|
||||
// us before
|
||||
if( eng()->getSongEditor()->playing() &&
|
||||
eng()->getSongEditor()->playMode() ==
|
||||
songEditor::PLAY_PATTERN )
|
||||
songEditor::PLAY_PATTERN )
|
||||
{
|
||||
eng()->getSongEditor()->playPattern( NULL );
|
||||
}
|
||||
@@ -427,6 +427,7 @@ void pattern::saveSettings( QDomDocument & _doc, QDomElement & _this )
|
||||
_this.setAttribute( "pos", startPosition() );
|
||||
}
|
||||
_this.setAttribute( "len", length() );
|
||||
_this.setAttribute( "muted", muted() );
|
||||
_this.setAttribute( "steps", m_steps );
|
||||
_this.setAttribute( "frozen", m_frozenPattern != NULL );
|
||||
|
||||
@@ -456,6 +457,10 @@ void pattern::loadSettings( const QDomElement & _this )
|
||||
movePosition( _this.attribute( "pos" ).toInt() );
|
||||
}
|
||||
changeLength( midiTime( _this.attribute( "len" ).toInt() ) );
|
||||
if( _this.attribute( "muted" ).toInt() != muted() )
|
||||
{
|
||||
toggleMute();
|
||||
}
|
||||
|
||||
clearNotes();
|
||||
|
||||
@@ -556,7 +561,7 @@ void pattern::freeze( void )
|
||||
QMessageBox::Ok );
|
||||
return;
|
||||
}
|
||||
if( m_instrumentTrack->muted() )
|
||||
if( m_instrumentTrack->muted() || muted() )
|
||||
{
|
||||
if( QMessageBox::
|
||||
#if QT_VERSION >= 0x030200
|
||||
@@ -565,9 +570,10 @@ void pattern::freeze( void )
|
||||
information
|
||||
#endif
|
||||
|
||||
( 0, tr( "Channel muted" ),
|
||||
tr( "The channel this pattern "
|
||||
"belongs to is "
|
||||
( 0, tr( "Pattern muted" ),
|
||||
tr( "The track this pattern "
|
||||
"belongs to or the "
|
||||
"pattern itself is "
|
||||
"currently muted "
|
||||
"therefore "
|
||||
"freezing makes no "
|
||||
@@ -786,11 +792,6 @@ void pattern::mouseDoubleClickEvent( QMouseEvent * _me )
|
||||
|
||||
void pattern::mousePressEvent( QMouseEvent * _me )
|
||||
{
|
||||
/* if( _me->button() != Qt::LeftButton )
|
||||
{
|
||||
return;
|
||||
}*/
|
||||
|
||||
if( _me->button() == Qt::LeftButton &&
|
||||
m_patternType == pattern::BEAT_PATTERN &&
|
||||
( pixelsPerTact() >= 192 ||
|
||||
@@ -1001,7 +1002,7 @@ void pattern::paintEvent( QPaintEvent * )
|
||||
height() - 2 *
|
||||
TCO_BORDER_WIDTH );
|
||||
}
|
||||
if( getTrack()->muted() )
|
||||
if( getTrack()->muted() || muted() )
|
||||
{
|
||||
p.setPen( QColor( 160, 160, 160 ) );
|
||||
}
|
||||
@@ -1110,9 +1111,21 @@ void pattern::paintEvent( QPaintEvent * )
|
||||
}
|
||||
|
||||
p.setFont( pointSize<7>( p.font() ) );
|
||||
p.setPen( QColor( 32, 240, 32 ) );
|
||||
p.drawText( 2, 9, m_name );
|
||||
if( m_frozenPattern != NULL )
|
||||
if( muted() || getTrack()->muted() )
|
||||
{
|
||||
p.setPen( QColor( 192, 192, 192 ) );
|
||||
}
|
||||
else
|
||||
{
|
||||
p.setPen( QColor( 32, 240, 32 ) );
|
||||
}
|
||||
p.drawText( 2, p.fontMetrics().height() - 1, m_name );
|
||||
if( muted() )
|
||||
{
|
||||
p.drawPixmap( 3, p.fontMetrics().height() + 1,
|
||||
embed::getIconPixmap( "muted", 16, 16 ) );
|
||||
}
|
||||
else if( m_frozenPattern != NULL )
|
||||
{
|
||||
p.setPen( QColor( 0, 224, 255 ) );
|
||||
p.drawRect( 0, 0, width(), height() - 1 );
|
||||
|
||||
@@ -192,7 +192,7 @@ void sampleTCO::paintEvent( QPaintEvent * _pe )
|
||||
{
|
||||
#ifdef QT4
|
||||
QPainter p( this );
|
||||
// TODO: set according brush/pen for gradient!
|
||||
#warning TODO: set according brush for gradient!
|
||||
p.fillRect( _pe->rect(), QColor( 64, 64, 64 ) );
|
||||
#else
|
||||
// create pixmap for our widget
|
||||
@@ -218,7 +218,7 @@ void sampleTCO::paintEvent( QPaintEvent * _pe )
|
||||
|
||||
p.setPen( QColor( 0, 0, 0 ) );
|
||||
p.drawRect( 0, 0, width(), height() );
|
||||
if( getTrack()->muted() )
|
||||
if( getTrack()->muted() || muted() )
|
||||
{
|
||||
p.setPen( QColor( 128, 128, 128 ) );
|
||||
}
|
||||
@@ -236,6 +236,13 @@ void sampleTCO::paintEvent( QPaintEvent * _pe )
|
||||
p.drawLine( r.x() + r.width(), r.y() + r.height() / 2,
|
||||
width() - 2, r.y() + r.height() / 2 );
|
||||
}
|
||||
|
||||
p.translate( 0, 0 );
|
||||
if( muted() )
|
||||
{
|
||||
p.drawPixmap( 3, 8, embed::getIconPixmap( "muted", 16, 16 ) );
|
||||
}
|
||||
|
||||
#ifndef QT4
|
||||
bitBlt( this, _pe->rect().topLeft(), &pm );
|
||||
#endif
|
||||
@@ -266,6 +273,7 @@ void FASTCALL sampleTCO::saveSettings( QDomDocument & _doc,
|
||||
_this.setAttribute( "pos", startPosition() );
|
||||
}
|
||||
_this.setAttribute( "len", length() );
|
||||
_this.setAttribute( "muted", muted() );
|
||||
_this.setAttribute( "src", sampleFile() );
|
||||
if( sampleFile() == "" )
|
||||
{
|
||||
@@ -290,6 +298,10 @@ void FASTCALL sampleTCO::loadSettings( const QDomElement & _this )
|
||||
m_sampleBuffer.loadFromBase64( _this.attribute( "data" ) );
|
||||
}
|
||||
changeLength( _this.attribute( "len" ).toInt() );
|
||||
if( _this.attribute( "muted" ).toInt() != muted() )
|
||||
{
|
||||
toggleMute();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -451,7 +463,7 @@ bool FASTCALL sampleTrack::play( const midiTime & _start,
|
||||
it != tcos.end(); ++it )
|
||||
{
|
||||
sampleTCO * st = dynamic_cast<sampleTCO *>( *it );
|
||||
if( st != NULL )
|
||||
if( st != NULL && !st->muted() )
|
||||
{
|
||||
st->play( buf, _start_frame +
|
||||
static_cast<Uint32>( _start.getTact() *
|
||||
|
||||
Reference in New Issue
Block a user