diff --git a/CMakeLists.txt b/CMakeLists.txt
index a5971a1f4..aa2611f63 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -15,7 +15,7 @@ INCLUDE(FindPkgConfig)
SET(VERSION_MAJOR "1")
SET(VERSION_MINOR "0")
-SET(VERSION_PATCH "92")
+SET(VERSION_PATCH "93")
#SET(VERSION_SUFFIX "")
SET(VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCH}")
IF(VERSION_SUFFIX)
diff --git a/README b/README
index 8b87d4e0f..987178872 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-LMMS 1.0.92
+LMMS 1.0.93
===========
Copyright (c) 2004-2014 by LMMS developers
diff --git a/data/presets/AudioFileProcessor/Bass-Mania.xpf b/data/presets/AudioFileProcessor/Bass-Mania.xpf
index bb5304b32..4a92c0028 100644
--- a/data/presets/AudioFileProcessor/Bass-Mania.xpf
+++ b/data/presets/AudioFileProcessor/Bass-Mania.xpf
@@ -1,17 +1,18 @@
-
+
-
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
diff --git a/data/presets/AudioFileProcessor/Erazor.xpf b/data/presets/AudioFileProcessor/Erazor.xpf
index 2312f1de2..f106c27f8 100644
--- a/data/presets/AudioFileProcessor/Erazor.xpf
+++ b/data/presets/AudioFileProcessor/Erazor.xpf
@@ -1,6 +1,6 @@
-
+
-
+
@@ -8,9 +8,9 @@
-
-
-
+
+
+
diff --git a/data/presets/AudioFileProcessor/Fat-Reversed-Kick.xpf b/data/presets/AudioFileProcessor/Fat-Reversed-Kick.xpf
index 40396720d..f9f11ef8b 100644
--- a/data/presets/AudioFileProcessor/Fat-Reversed-Kick.xpf
+++ b/data/presets/AudioFileProcessor/Fat-Reversed-Kick.xpf
@@ -1,17 +1,18 @@
-
+
-
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
+
+
+
diff --git a/data/presets/AudioFileProcessor/Kick-4-your-Subwoofer.xpf b/data/presets/AudioFileProcessor/Kick-4-your-Subwoofer.xpf
index 08d756aa5..6a9da93ce 100644
--- a/data/presets/AudioFileProcessor/Kick-4-your-Subwoofer.xpf
+++ b/data/presets/AudioFileProcessor/Kick-4-your-Subwoofer.xpf
@@ -1,17 +1,18 @@
-
+
-
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
+
+
+
diff --git a/data/presets/AudioFileProcessor/SString.xpf b/data/presets/AudioFileProcessor/SString.xpf
index 0dead6956..1def1d719 100644
--- a/data/presets/AudioFileProcessor/SString.xpf
+++ b/data/presets/AudioFileProcessor/SString.xpf
@@ -1,6 +1,6 @@
-
+
-
+
@@ -8,9 +8,9 @@
-
-
-
+
+
+
diff --git a/data/presets/AudioFileProcessor/orion.xpf b/data/presets/AudioFileProcessor/orion.xpf
index 33d2030bb..101286b29 100644
--- a/data/presets/AudioFileProcessor/orion.xpf
+++ b/data/presets/AudioFileProcessor/orion.xpf
@@ -1,6 +1,6 @@
-
+
-
+
@@ -8,9 +8,9 @@
-
-
-
+
+
+
diff --git a/data/presets/BitInvader/alien_strings.xpf b/data/presets/BitInvader/alien_strings.xpf
index 62c5163f8..d29fdca10 100644
--- a/data/presets/BitInvader/alien_strings.xpf
+++ b/data/presets/BitInvader/alien_strings.xpf
@@ -1,17 +1,18 @@
-
+
-
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
diff --git a/data/presets/BitInvader/beehive.xpf b/data/presets/BitInvader/beehive.xpf
index a4c5840e4..b03ba92f5 100644
--- a/data/presets/BitInvader/beehive.xpf
+++ b/data/presets/BitInvader/beehive.xpf
@@ -1,17 +1,18 @@
-
+
-
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
diff --git a/data/presets/BitInvader/bell.xpf b/data/presets/BitInvader/bell.xpf
index ce2abec88..a5346e212 100644
--- a/data/presets/BitInvader/bell.xpf
+++ b/data/presets/BitInvader/bell.xpf
@@ -1,17 +1,18 @@
-
+
-
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
diff --git a/data/presets/BitInvader/cello.xpf b/data/presets/BitInvader/cello.xpf
index 44990bb68..50ef327d9 100644
--- a/data/presets/BitInvader/cello.xpf
+++ b/data/presets/BitInvader/cello.xpf
@@ -1,17 +1,18 @@
-
+
-
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
diff --git a/data/presets/BitInvader/drama.xpf b/data/presets/BitInvader/drama.xpf
index 7ed801dff..fc564fa58 100644
--- a/data/presets/BitInvader/drama.xpf
+++ b/data/presets/BitInvader/drama.xpf
@@ -1,17 +1,18 @@
-
+
-
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
diff --git a/data/presets/BitInvader/epiano.xpf b/data/presets/BitInvader/epiano.xpf
index c6e6e22e0..e2ed18dee 100644
--- a/data/presets/BitInvader/epiano.xpf
+++ b/data/presets/BitInvader/epiano.xpf
@@ -1,17 +1,18 @@
-
+
-
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
diff --git a/data/presets/BitInvader/pluck.xpf b/data/presets/BitInvader/pluck.xpf
index 37409049c..b71974e4e 100644
--- a/data/presets/BitInvader/pluck.xpf
+++ b/data/presets/BitInvader/pluck.xpf
@@ -1,17 +1,18 @@
-
+
-
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
diff --git a/data/presets/BitInvader/soft_pad.xpf b/data/presets/BitInvader/soft_pad.xpf
index c82e0510f..63803acb8 100644
--- a/data/presets/BitInvader/soft_pad.xpf
+++ b/data/presets/BitInvader/soft_pad.xpf
@@ -1,17 +1,18 @@
-
+
-
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
diff --git a/data/presets/BitInvader/spacefx.xpf b/data/presets/BitInvader/spacefx.xpf
index 8e7b93fcb..b10f47377 100644
--- a/data/presets/BitInvader/spacefx.xpf
+++ b/data/presets/BitInvader/spacefx.xpf
@@ -1,17 +1,18 @@
-
+
-
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
diff --git a/data/presets/BitInvader/subbass.xpf b/data/presets/BitInvader/subbass.xpf
index d4d93734f..50ebb46c6 100644
--- a/data/presets/BitInvader/subbass.xpf
+++ b/data/presets/BitInvader/subbass.xpf
@@ -1,17 +1,18 @@
-
+
-
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
diff --git a/data/presets/BitInvader/sweep_pad.xpf b/data/presets/BitInvader/sweep_pad.xpf
index e4f4ee48c..c2e6a5c52 100644
--- a/data/presets/BitInvader/sweep_pad.xpf
+++ b/data/presets/BitInvader/sweep_pad.xpf
@@ -1,17 +1,18 @@
-
+
-
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
diff --git a/data/presets/BitInvader/toy_piano.xpf b/data/presets/BitInvader/toy_piano.xpf
index 3976affe3..0fed791d1 100644
--- a/data/presets/BitInvader/toy_piano.xpf
+++ b/data/presets/BitInvader/toy_piano.xpf
@@ -1,17 +1,18 @@
-
+
-
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
diff --git a/data/presets/BitInvader/wah_synth.xpf b/data/presets/BitInvader/wah_synth.xpf
index ee8877b7c..e8e68c538 100644
--- a/data/presets/BitInvader/wah_synth.xpf
+++ b/data/presets/BitInvader/wah_synth.xpf
@@ -1,17 +1,18 @@
-
+
-
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
diff --git a/data/presets/Kicker/Clap.xpf b/data/presets/Kicker/Clap.xpf
index 4b3394228..d354051ce 100644
--- a/data/presets/Kicker/Clap.xpf
+++ b/data/presets/Kicker/Clap.xpf
@@ -1,16 +1,16 @@
-
+
-
+
-
+
-
-
-
+
+
+
diff --git a/data/presets/Kicker/HihatClosed.xpf b/data/presets/Kicker/HihatClosed.xpf
index 72ee5b9bd..66dd8e7ac 100644
--- a/data/presets/Kicker/HihatClosed.xpf
+++ b/data/presets/Kicker/HihatClosed.xpf
@@ -1,16 +1,16 @@
-
+
-
+
-
+
-
-
-
+
+
+
diff --git a/data/presets/Kicker/HihatOpen.xpf b/data/presets/Kicker/HihatOpen.xpf
index 1e0c9b3a9..c0f0aa692 100644
--- a/data/presets/Kicker/HihatOpen.xpf
+++ b/data/presets/Kicker/HihatOpen.xpf
@@ -1,16 +1,16 @@
-
+
-
+
-
+
-
-
-
+
+
+
diff --git a/data/presets/Kicker/Shaker.xpf b/data/presets/Kicker/Shaker.xpf
index 452047aa3..13eee953e 100644
--- a/data/presets/Kicker/Shaker.xpf
+++ b/data/presets/Kicker/Shaker.xpf
@@ -1,16 +1,16 @@
-
+
-
+
-
+
-
-
-
+
+
+
diff --git a/data/presets/Kicker/SnareLong.xpf b/data/presets/Kicker/SnareLong.xpf
index bcccb4172..b8b2f9d88 100644
--- a/data/presets/Kicker/SnareLong.xpf
+++ b/data/presets/Kicker/SnareLong.xpf
@@ -1,16 +1,16 @@
-
+
-
+
-
+
-
-
-
+
+
+
diff --git a/data/presets/LB302/GoodOldTimes.xpf b/data/presets/LB302/GoodOldTimes.xpf
index 70ef45beb..45fb67102 100644
--- a/data/presets/LB302/GoodOldTimes.xpf
+++ b/data/presets/LB302/GoodOldTimes.xpf
@@ -1,21 +1,21 @@
-
+
-
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
diff --git a/data/presets/LB302/Oh Synth.xpf b/data/presets/LB302/Oh Synth.xpf
index 5b548c16c..5241fe5fd 100644
--- a/data/presets/LB302/Oh Synth.xpf
+++ b/data/presets/LB302/Oh Synth.xpf
@@ -1,20 +1,19 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/data/presets/LB302/STrash.xpf b/data/presets/LB302/STrash.xpf
index f001b9b55..bd928e63c 100644
--- a/data/presets/LB302/STrash.xpf
+++ b/data/presets/LB302/STrash.xpf
@@ -1,49 +1,49 @@
-
+
-
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
diff --git a/data/presets/Nescaline/Chomp.xpf b/data/presets/Nescaline/Chomp.xpf
index af89b1645..9dea1898e 100644
--- a/data/presets/Nescaline/Chomp.xpf
+++ b/data/presets/Nescaline/Chomp.xpf
@@ -1,16 +1,16 @@
-
+
-
+
-
+
-
-
-
+
+
+
diff --git a/data/presets/Nescaline/Detune_lead.xpf b/data/presets/Nescaline/Detune_lead.xpf
index d9fd507a6..cc06165ff 100644
--- a/data/presets/Nescaline/Detune_lead.xpf
+++ b/data/presets/Nescaline/Detune_lead.xpf
@@ -1,16 +1,16 @@
-
+
-
+
-
+
-
-
-
+
+
+
diff --git a/data/presets/Nescaline/Engine_overheats.xpf b/data/presets/Nescaline/Engine_overheats.xpf
index 0c3c0fdf2..49176aef6 100644
--- a/data/presets/Nescaline/Engine_overheats.xpf
+++ b/data/presets/Nescaline/Engine_overheats.xpf
@@ -1,16 +1,16 @@
-
+
-
+
-
+
-
-
-
+
+
+
diff --git a/data/presets/Nescaline/Fireball_flick.xpf b/data/presets/Nescaline/Fireball_flick.xpf
index f50746e9b..b61c17375 100644
--- a/data/presets/Nescaline/Fireball_flick.xpf
+++ b/data/presets/Nescaline/Fireball_flick.xpf
@@ -1,16 +1,16 @@
-
+
-
+
-
+
-
-
-
+
+
+
diff --git a/data/presets/Nescaline/Mega_weapon.xpf b/data/presets/Nescaline/Mega_weapon.xpf
index c52af1a8c..f5f0c26ae 100644
--- a/data/presets/Nescaline/Mega_weapon.xpf
+++ b/data/presets/Nescaline/Mega_weapon.xpf
@@ -1,16 +1,16 @@
-
+
-
+
-
+
-
-
-
+
+
+
diff --git a/data/presets/OpulenZ/Bagpipe.xpf b/data/presets/OpulenZ/Bagpipe.xpf
index 15aae06ac..e572498f4 100644
--- a/data/presets/OpulenZ/Bagpipe.xpf
+++ b/data/presets/OpulenZ/Bagpipe.xpf
@@ -1,16 +1,16 @@
-
+
-
+
-
+
-
-
-
+
+
+
diff --git a/data/presets/OpulenZ/Bells.xpf b/data/presets/OpulenZ/Bells.xpf
index aade9bd6c..e7279a7fe 100644
--- a/data/presets/OpulenZ/Bells.xpf
+++ b/data/presets/OpulenZ/Bells.xpf
@@ -1,16 +1,16 @@
-
+
-
+
-
+
-
-
-
+
+
+
diff --git a/data/presets/OpulenZ/Brass.xpf b/data/presets/OpulenZ/Brass.xpf
index f995fb96e..553bdb5bc 100644
--- a/data/presets/OpulenZ/Brass.xpf
+++ b/data/presets/OpulenZ/Brass.xpf
@@ -1,16 +1,16 @@
-
+
-
+
-
+
-
-
-
+
+
+
diff --git a/data/presets/OpulenZ/Bubbly_days.xpf b/data/presets/OpulenZ/Bubbly_days.xpf
index 97aa93e83..92e008284 100644
--- a/data/presets/OpulenZ/Bubbly_days.xpf
+++ b/data/presets/OpulenZ/Bubbly_days.xpf
@@ -1,16 +1,16 @@
-
+
-
+
-
+
-
-
-
+
+
+
diff --git a/data/presets/OpulenZ/Cheesy_synth.xpf b/data/presets/OpulenZ/Cheesy_synth.xpf
index d30fce903..2c6d47306 100644
--- a/data/presets/OpulenZ/Cheesy_synth.xpf
+++ b/data/presets/OpulenZ/Cheesy_synth.xpf
@@ -1,16 +1,16 @@
-
+
-
+
-
+
-
-
-
+
+
+
diff --git a/data/presets/OpulenZ/Clarinet.xpf b/data/presets/OpulenZ/Clarinet.xpf
index ec3357c53..3301318a2 100644
--- a/data/presets/OpulenZ/Clarinet.xpf
+++ b/data/presets/OpulenZ/Clarinet.xpf
@@ -1,16 +1,16 @@
-
+
-
+
-
+
-
-
-
+
+
+
diff --git a/data/presets/OpulenZ/Combo_organ.xpf b/data/presets/OpulenZ/Combo_organ.xpf
index 92550e15c..21e2d8a62 100644
--- a/data/presets/OpulenZ/Combo_organ.xpf
+++ b/data/presets/OpulenZ/Combo_organ.xpf
@@ -1,16 +1,16 @@
-
+
-
+
-
+
-
-
-
+
+
+
diff --git a/data/presets/OpulenZ/Epiano.xpf b/data/presets/OpulenZ/Epiano.xpf
index cbfa3ea9a..dea947763 100644
--- a/data/presets/OpulenZ/Epiano.xpf
+++ b/data/presets/OpulenZ/Epiano.xpf
@@ -1,16 +1,16 @@
-
+
-
+
-
+
-
-
-
+
+
+
diff --git a/data/presets/OpulenZ/Funky.xpf b/data/presets/OpulenZ/Funky.xpf
index e1c2baa47..166537fbd 100644
--- a/data/presets/OpulenZ/Funky.xpf
+++ b/data/presets/OpulenZ/Funky.xpf
@@ -1,16 +1,16 @@
-
+
-
+
-
+
-
-
-
+
+
+
diff --git a/data/presets/OpulenZ/Halo_pad.xpf b/data/presets/OpulenZ/Halo_pad.xpf
index d3769abe2..a20fa050f 100644
--- a/data/presets/OpulenZ/Halo_pad.xpf
+++ b/data/presets/OpulenZ/Halo_pad.xpf
@@ -1,16 +1,16 @@
-
+
-
+
-
+
-
-
-
+
+
+
diff --git a/data/presets/OpulenZ/Harp.xpf b/data/presets/OpulenZ/Harp.xpf
index e5c686d93..75b54d303 100644
--- a/data/presets/OpulenZ/Harp.xpf
+++ b/data/presets/OpulenZ/Harp.xpf
@@ -1,16 +1,16 @@
-
+
-
+
-
+
-
-
-
+
+
+
diff --git a/data/presets/OpulenZ/Organ_leslie.xpf b/data/presets/OpulenZ/Organ_leslie.xpf
index 9f46ffed0..a1c5c024e 100644
--- a/data/presets/OpulenZ/Organ_leslie.xpf
+++ b/data/presets/OpulenZ/Organ_leslie.xpf
@@ -1,16 +1,16 @@
-
+
-
+
-
+
-
-
-
+
+
+
diff --git a/data/presets/OpulenZ/Pad.xpf b/data/presets/OpulenZ/Pad.xpf
index 636ce3628..f35911cc1 100644
--- a/data/presets/OpulenZ/Pad.xpf
+++ b/data/presets/OpulenZ/Pad.xpf
@@ -1,16 +1,16 @@
-
+
-
+
-
+
-
-
-
+
+
+
diff --git a/data/presets/OpulenZ/Square.xpf b/data/presets/OpulenZ/Square.xpf
index 8c40992e4..ad0aaca52 100644
--- a/data/presets/OpulenZ/Square.xpf
+++ b/data/presets/OpulenZ/Square.xpf
@@ -1,16 +1,16 @@
-
+
-
+
-
+
-
-
-
+
+
+
diff --git a/data/presets/OpulenZ/Vibraphone.xpf b/data/presets/OpulenZ/Vibraphone.xpf
index b41cd40e6..c0e3ad55e 100644
--- a/data/presets/OpulenZ/Vibraphone.xpf
+++ b/data/presets/OpulenZ/Vibraphone.xpf
@@ -1,16 +1,16 @@
-
+
-
+
-
+
-
-
-
+
+
+
diff --git a/data/presets/Organic/organ_blues.xpf b/data/presets/Organic/organ_blues.xpf
index 4f102cc04..a35bbfda8 100644
--- a/data/presets/Organic/organ_blues.xpf
+++ b/data/presets/Organic/organ_blues.xpf
@@ -1,17 +1,18 @@
-
+
-
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
diff --git a/data/presets/Organic/organ_risingsun.xpf b/data/presets/Organic/organ_risingsun.xpf
index 346b59562..b5dc75906 100644
--- a/data/presets/Organic/organ_risingsun.xpf
+++ b/data/presets/Organic/organ_risingsun.xpf
@@ -1,17 +1,18 @@
-
+
-
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
diff --git a/data/presets/Organic/organ_swish.xpf b/data/presets/Organic/organ_swish.xpf
index 3917962bc..569230f5b 100644
--- a/data/presets/Organic/organ_swish.xpf
+++ b/data/presets/Organic/organ_swish.xpf
@@ -1,17 +1,18 @@
-
+
-
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
diff --git a/data/presets/Organic/pad_ethereal.xpf b/data/presets/Organic/pad_ethereal.xpf
index e0aa2854d..a40168882 100644
--- a/data/presets/Organic/pad_ethereal.xpf
+++ b/data/presets/Organic/pad_ethereal.xpf
@@ -1,17 +1,18 @@
-
+
-
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
diff --git a/data/presets/Organic/pad_rich.xpf b/data/presets/Organic/pad_rich.xpf
index 62d8de950..b59501600 100644
--- a/data/presets/Organic/pad_rich.xpf
+++ b/data/presets/Organic/pad_rich.xpf
@@ -1,17 +1,18 @@
-
+
-
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
diff --git a/data/presets/Organic/pad_sweep.xpf b/data/presets/Organic/pad_sweep.xpf
index ed2c7f87e..9b000e499 100644
--- a/data/presets/Organic/pad_sweep.xpf
+++ b/data/presets/Organic/pad_sweep.xpf
@@ -1,17 +1,18 @@
-
+
-
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
diff --git a/data/presets/Organic/puresine.xpf b/data/presets/Organic/puresine.xpf
index 3e0d6c0f6..0c77ca9ca 100644
--- a/data/presets/Organic/puresine.xpf
+++ b/data/presets/Organic/puresine.xpf
@@ -1,17 +1,18 @@
-
+
-
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
diff --git a/data/presets/Organic/sequencer_64.xpf b/data/presets/Organic/sequencer_64.xpf
index 3d3fab9fe..c1f8fc223 100644
--- a/data/presets/Organic/sequencer_64.xpf
+++ b/data/presets/Organic/sequencer_64.xpf
@@ -1,17 +1,18 @@
-
+
-
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
diff --git a/data/presets/TripleOscillator/AmazingBubbles.xpf b/data/presets/TripleOscillator/AmazingBubbles.xpf
index 3201f3d49..b0dad2024 100644
--- a/data/presets/TripleOscillator/AmazingBubbles.xpf
+++ b/data/presets/TripleOscillator/AmazingBubbles.xpf
@@ -1,18 +1,19 @@
-
+
-
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
diff --git a/data/presets/TripleOscillator/AnalogDreamz.xpf b/data/presets/TripleOscillator/AnalogDreamz.xpf
index cdec62d94..84d4e0af5 100644
--- a/data/presets/TripleOscillator/AnalogDreamz.xpf
+++ b/data/presets/TripleOscillator/AnalogDreamz.xpf
@@ -1,18 +1,19 @@
-
+
-
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
diff --git a/data/presets/TripleOscillator/AnalogTimes.xpf b/data/presets/TripleOscillator/AnalogTimes.xpf
index 48d257122..f2a59e0d6 100644
--- a/data/presets/TripleOscillator/AnalogTimes.xpf
+++ b/data/presets/TripleOscillator/AnalogTimes.xpf
@@ -1,18 +1,19 @@
-
+
-
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
diff --git a/data/presets/TripleOscillator/AnalogTimes2.xpf b/data/presets/TripleOscillator/AnalogTimes2.xpf
index 0be1051f9..6c8b73910 100644
--- a/data/presets/TripleOscillator/AnalogTimes2.xpf
+++ b/data/presets/TripleOscillator/AnalogTimes2.xpf
@@ -1,21 +1,21 @@
-
+
-
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
diff --git a/data/presets/TripleOscillator/Analogous.xpf b/data/presets/TripleOscillator/Analogous.xpf
index 7091d8288..200820acc 100644
--- a/data/presets/TripleOscillator/Analogous.xpf
+++ b/data/presets/TripleOscillator/Analogous.xpf
@@ -1,18 +1,19 @@
-
+
-
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
diff --git a/data/presets/TripleOscillator/ArpKing.xpf b/data/presets/TripleOscillator/ArpKing.xpf
index c8bf6d19a..af1b28958 100644
--- a/data/presets/TripleOscillator/ArpKing.xpf
+++ b/data/presets/TripleOscillator/ArpKing.xpf
@@ -1,17 +1,18 @@
-
+
-
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
diff --git a/data/presets/TripleOscillator/Arpeggio_1.xpf b/data/presets/TripleOscillator/Arpeggio_1.xpf
index 51fc3e83d..0b5f888be 100644
--- a/data/presets/TripleOscillator/Arpeggio_1.xpf
+++ b/data/presets/TripleOscillator/Arpeggio_1.xpf
@@ -1,21 +1,21 @@
-
+
-
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
diff --git a/data/presets/TripleOscillator/Arpeggio_2.xpf b/data/presets/TripleOscillator/Arpeggio_2.xpf
index 5e12cee81..32300966f 100644
--- a/data/presets/TripleOscillator/Arpeggio_2.xpf
+++ b/data/presets/TripleOscillator/Arpeggio_2.xpf
@@ -1,16 +1,17 @@
-
+
-
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
+
+
+
+
diff --git a/data/presets/TripleOscillator/Bell.xpf b/data/presets/TripleOscillator/Bell.xpf
index 41e6a992b..e3d7d7bbe 100644
--- a/data/presets/TripleOscillator/Bell.xpf
+++ b/data/presets/TripleOscillator/Bell.xpf
@@ -1,18 +1,19 @@
-
+
-
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
diff --git a/data/presets/TripleOscillator/Bell_2.xpf b/data/presets/TripleOscillator/Bell_2.xpf
index 300249f96..22d326648 100644
--- a/data/presets/TripleOscillator/Bell_2.xpf
+++ b/data/presets/TripleOscillator/Bell_2.xpf
@@ -1,18 +1,19 @@
-
+
-
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
diff --git a/data/presets/TripleOscillator/ChurchOrgan.xpf b/data/presets/TripleOscillator/ChurchOrgan.xpf
index 1c3c9ee3b..ac7a54f13 100644
--- a/data/presets/TripleOscillator/ChurchOrgan.xpf
+++ b/data/presets/TripleOscillator/ChurchOrgan.xpf
@@ -1,21 +1,21 @@
-
+
-
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
diff --git a/data/presets/TripleOscillator/DeathBass.xpf b/data/presets/TripleOscillator/DeathBass.xpf
index 2364e614f..1315983a0 100644
--- a/data/presets/TripleOscillator/DeathBass.xpf
+++ b/data/presets/TripleOscillator/DeathBass.xpf
@@ -1,26 +1,34 @@
-
+
-
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
diff --git a/data/presets/TripleOscillator/Distorted-FM-Bass.xpf b/data/presets/TripleOscillator/Distorted-FM-Bass.xpf
index 0ce86c465..36260145e 100644
--- a/data/presets/TripleOscillator/Distorted-FM-Bass.xpf
+++ b/data/presets/TripleOscillator/Distorted-FM-Bass.xpf
@@ -1,18 +1,19 @@
-
+
-
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
diff --git a/data/presets/TripleOscillator/Dull-Bell-Arp.xpf b/data/presets/TripleOscillator/Dull-Bell-Arp.xpf
index 790484a85..bf9593286 100644
--- a/data/presets/TripleOscillator/Dull-Bell-Arp.xpf
+++ b/data/presets/TripleOscillator/Dull-Bell-Arp.xpf
@@ -1,18 +1,19 @@
-
+
-
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
diff --git a/data/presets/TripleOscillator/E-Organ.xpf b/data/presets/TripleOscillator/E-Organ.xpf
index f42320e3d..b04ba010d 100644
--- a/data/presets/TripleOscillator/E-Organ.xpf
+++ b/data/presets/TripleOscillator/E-Organ.xpf
@@ -1,21 +1,21 @@
-
+
-
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
diff --git a/data/presets/TripleOscillator/E-Organ2.xpf b/data/presets/TripleOscillator/E-Organ2.xpf
index 469646b04..4ef8e1ac5 100644
--- a/data/presets/TripleOscillator/E-Organ2.xpf
+++ b/data/presets/TripleOscillator/E-Organ2.xpf
@@ -1,23 +1,27 @@
-
+
-
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
diff --git a/data/presets/TripleOscillator/Erazzor.xpf b/data/presets/TripleOscillator/Erazzor.xpf
index 73e449850..5619b1e7a 100644
--- a/data/presets/TripleOscillator/Erazzor.xpf
+++ b/data/presets/TripleOscillator/Erazzor.xpf
@@ -1,16 +1,16 @@
-
+
-
+
-
+
-
-
-
+
+
+
diff --git a/data/presets/TripleOscillator/Fat-FMish-Bells.xpf b/data/presets/TripleOscillator/Fat-FMish-Bells.xpf
index 0c9b4b45a..5d0797c6f 100644
--- a/data/presets/TripleOscillator/Fat-FMish-Bells.xpf
+++ b/data/presets/TripleOscillator/Fat-FMish-Bells.xpf
@@ -1,18 +1,19 @@
-
+
-
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
diff --git a/data/presets/TripleOscillator/Fat-TB303-Arp.xpf b/data/presets/TripleOscillator/Fat-TB303-Arp.xpf
index 570fab565..0ed09990b 100644
--- a/data/presets/TripleOscillator/Fat-TB303-Arp.xpf
+++ b/data/presets/TripleOscillator/Fat-TB303-Arp.xpf
@@ -1,17 +1,18 @@
-
+
-
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
+
+
+
diff --git a/data/presets/TripleOscillator/Fat.xpf b/data/presets/TripleOscillator/Fat.xpf
index c15f67f53..af22b06dc 100644
--- a/data/presets/TripleOscillator/Fat.xpf
+++ b/data/presets/TripleOscillator/Fat.xpf
@@ -1,16 +1,17 @@
-
+
-
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
+
+
+
+
diff --git a/data/presets/TripleOscillator/FatCheese.xpf b/data/presets/TripleOscillator/FatCheese.xpf
index 523463971..4f3d12a68 100644
--- a/data/presets/TripleOscillator/FatCheese.xpf
+++ b/data/presets/TripleOscillator/FatCheese.xpf
@@ -1,16 +1,17 @@
-
+
-
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
+
+
+
+
diff --git a/data/presets/TripleOscillator/Freaky-Bass.xpf b/data/presets/TripleOscillator/Freaky-Bass.xpf
index 9368fcad5..9930927f1 100644
--- a/data/presets/TripleOscillator/Freaky-Bass.xpf
+++ b/data/presets/TripleOscillator/Freaky-Bass.xpf
@@ -1,18 +1,19 @@
-
+
-
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
diff --git a/data/presets/TripleOscillator/FutureBass.xpf b/data/presets/TripleOscillator/FutureBass.xpf
index 9c4b432fc..ca61efc6e 100644
--- a/data/presets/TripleOscillator/FutureBass.xpf
+++ b/data/presets/TripleOscillator/FutureBass.xpf
@@ -1,17 +1,18 @@
-
+
-
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
diff --git a/data/presets/TripleOscillator/Gong.xpf b/data/presets/TripleOscillator/Gong.xpf
index df28ca6f0..813d40ead 100644
--- a/data/presets/TripleOscillator/Gong.xpf
+++ b/data/presets/TripleOscillator/Gong.xpf
@@ -1,18 +1,19 @@
-
+
-
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
diff --git a/data/presets/TripleOscillator/Harmonium.xpf b/data/presets/TripleOscillator/Harmonium.xpf
index 8ef8ae155..0db49b42d 100644
--- a/data/presets/TripleOscillator/Harmonium.xpf
+++ b/data/presets/TripleOscillator/Harmonium.xpf
@@ -1,21 +1,21 @@
-
+
-
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
diff --git a/data/presets/TripleOscillator/Harp-of-a-Fairy.xpf b/data/presets/TripleOscillator/Harp-of-a-Fairy.xpf
index a124ebc5f..c248b9c48 100644
--- a/data/presets/TripleOscillator/Harp-of-a-Fairy.xpf
+++ b/data/presets/TripleOscillator/Harp-of-a-Fairy.xpf
@@ -1,18 +1,19 @@
-
+
-
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
diff --git a/data/presets/TripleOscillator/Harpsichord.xpf b/data/presets/TripleOscillator/Harpsichord.xpf
index 55bc14b77..6e1093ee0 100644
--- a/data/presets/TripleOscillator/Harpsichord.xpf
+++ b/data/presets/TripleOscillator/Harpsichord.xpf
@@ -1,18 +1,19 @@
-
+
-
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
diff --git a/data/presets/TripleOscillator/HiPad.xpf b/data/presets/TripleOscillator/HiPad.xpf
index 5d618d50c..d61892e45 100644
--- a/data/presets/TripleOscillator/HiPad.xpf
+++ b/data/presets/TripleOscillator/HiPad.xpf
@@ -1,18 +1,19 @@
-
+
-
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
diff --git a/data/presets/TripleOscillator/Jupiter.xpf b/data/presets/TripleOscillator/Jupiter.xpf
index 360bbdc6e..e836c638e 100644
--- a/data/presets/TripleOscillator/Jupiter.xpf
+++ b/data/presets/TripleOscillator/Jupiter.xpf
@@ -1,21 +1,21 @@
-
+
-
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
diff --git a/data/presets/TripleOscillator/Kick.xpf b/data/presets/TripleOscillator/Kick.xpf
index d59d9593c..8dbac12d0 100644
--- a/data/presets/TripleOscillator/Kick.xpf
+++ b/data/presets/TripleOscillator/Kick.xpf
@@ -1,30 +1,18 @@
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
diff --git a/data/presets/TripleOscillator/Kick2.xpf b/data/presets/TripleOscillator/Kick2.xpf
index 2893c32d2..4dcd87b08 100644
--- a/data/presets/TripleOscillator/Kick2.xpf
+++ b/data/presets/TripleOscillator/Kick2.xpf
@@ -1,30 +1,18 @@
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
diff --git a/data/presets/TripleOscillator/LFO-party.xpf b/data/presets/TripleOscillator/LFO-party.xpf
index a817cc85b..f5d9b1baa 100644
--- a/data/presets/TripleOscillator/LFO-party.xpf
+++ b/data/presets/TripleOscillator/LFO-party.xpf
@@ -1,21 +1,21 @@
-
+
-
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
diff --git a/data/presets/TripleOscillator/LovelyDream.xpf b/data/presets/TripleOscillator/LovelyDream.xpf
index f17412a42..589640975 100644
--- a/data/presets/TripleOscillator/LovelyDream.xpf
+++ b/data/presets/TripleOscillator/LovelyDream.xpf
@@ -1,18 +1,19 @@
-
+
-
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
diff --git a/data/presets/TripleOscillator/MoogArpeggio.xpf b/data/presets/TripleOscillator/MoogArpeggio.xpf
index c5a22326d..d2f280c1b 100644
--- a/data/presets/TripleOscillator/MoogArpeggio.xpf
+++ b/data/presets/TripleOscillator/MoogArpeggio.xpf
@@ -1,21 +1,21 @@
-
+
-
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
diff --git a/data/presets/TripleOscillator/MoveYourBody.xpf b/data/presets/TripleOscillator/MoveYourBody.xpf
index 16e9dd9ef..1d2b63d2c 100644
--- a/data/presets/TripleOscillator/MoveYourBody.xpf
+++ b/data/presets/TripleOscillator/MoveYourBody.xpf
@@ -1,17 +1,18 @@
-
+
-
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
diff --git a/data/presets/TripleOscillator/OldComputerGames.xpf b/data/presets/TripleOscillator/OldComputerGames.xpf
index 742502204..dd01e4992 100644
--- a/data/presets/TripleOscillator/OldComputerGames.xpf
+++ b/data/presets/TripleOscillator/OldComputerGames.xpf
@@ -1,16 +1,16 @@
-
+
-
+
-
+
-
-
-
+
+
+
diff --git a/data/presets/TripleOscillator/Play-some-rock.xpf b/data/presets/TripleOscillator/Play-some-rock.xpf
index 51f8ad2c6..29cd3de28 100644
--- a/data/presets/TripleOscillator/Play-some-rock.xpf
+++ b/data/presets/TripleOscillator/Play-some-rock.xpf
@@ -1,17 +1,18 @@
-
+
-
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
diff --git a/data/presets/TripleOscillator/PluckArpeggio.xpf b/data/presets/TripleOscillator/PluckArpeggio.xpf
index 146b592ae..44ce26c8e 100644
--- a/data/presets/TripleOscillator/PluckArpeggio.xpf
+++ b/data/presets/TripleOscillator/PluckArpeggio.xpf
@@ -1,21 +1,21 @@
-
+
-
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
diff --git a/data/presets/TripleOscillator/Plucked.xpf b/data/presets/TripleOscillator/Plucked.xpf
index 506fac3be..2db750a48 100644
--- a/data/presets/TripleOscillator/Plucked.xpf
+++ b/data/presets/TripleOscillator/Plucked.xpf
@@ -1,17 +1,18 @@
-
+
-
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
diff --git a/data/presets/TripleOscillator/PowerStrings.xpf b/data/presets/TripleOscillator/PowerStrings.xpf
index c3237095a..f62af8e42 100644
--- a/data/presets/TripleOscillator/PowerStrings.xpf
+++ b/data/presets/TripleOscillator/PowerStrings.xpf
@@ -1,16 +1,16 @@
-
+
-
+
-
+
-
-
-
+
+
+
diff --git a/data/presets/TripleOscillator/RaveBass.xpf b/data/presets/TripleOscillator/RaveBass.xpf
index 219e728a1..21fc6e90c 100644
--- a/data/presets/TripleOscillator/RaveBass.xpf
+++ b/data/presets/TripleOscillator/RaveBass.xpf
@@ -1,21 +1,21 @@
-
+
-
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
diff --git a/data/presets/TripleOscillator/Ravemania.xpf b/data/presets/TripleOscillator/Ravemania.xpf
index b9fed4da7..4e0f779e4 100644
--- a/data/presets/TripleOscillator/Ravemania.xpf
+++ b/data/presets/TripleOscillator/Ravemania.xpf
@@ -1,23 +1,18 @@
-
+
-
+
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
+
+
+
diff --git a/data/presets/TripleOscillator/ResoBass.xpf b/data/presets/TripleOscillator/ResoBass.xpf
index 7243e3080..e5b82bc75 100644
--- a/data/presets/TripleOscillator/ResoBass.xpf
+++ b/data/presets/TripleOscillator/ResoBass.xpf
@@ -1,18 +1,19 @@
-
+
-
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
diff --git a/data/presets/TripleOscillator/ResonantPad.xpf b/data/presets/TripleOscillator/ResonantPad.xpf
index 2cfa8ce6c..9189dc074 100644
--- a/data/presets/TripleOscillator/ResonantPad.xpf
+++ b/data/presets/TripleOscillator/ResonantPad.xpf
@@ -1,18 +1,19 @@
-
+
-
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
diff --git a/data/presets/TripleOscillator/RockOrgan.xpf b/data/presets/TripleOscillator/RockOrgan.xpf
index 14a2afd46..84e397782 100644
--- a/data/presets/TripleOscillator/RockOrgan.xpf
+++ b/data/presets/TripleOscillator/RockOrgan.xpf
@@ -1,18 +1,19 @@
-
+
-
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
diff --git a/data/presets/TripleOscillator/Rough!.xpf b/data/presets/TripleOscillator/Rough!.xpf
index 7136878da..462a1fbf3 100644
--- a/data/presets/TripleOscillator/Rough!.xpf
+++ b/data/presets/TripleOscillator/Rough!.xpf
@@ -1,18 +1,19 @@
-
+
-
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
diff --git a/data/presets/TripleOscillator/SBass.xpf b/data/presets/TripleOscillator/SBass.xpf
index b97d13847..e1b4be4e1 100644
--- a/data/presets/TripleOscillator/SBass.xpf
+++ b/data/presets/TripleOscillator/SBass.xpf
@@ -1,16 +1,16 @@
-
+
-
+
-
+
-
-
-
+
+
+
diff --git a/data/presets/TripleOscillator/SBass2.xpf b/data/presets/TripleOscillator/SBass2.xpf
index b0df645d7..251b8069a 100644
--- a/data/presets/TripleOscillator/SBass2.xpf
+++ b/data/presets/TripleOscillator/SBass2.xpf
@@ -1,33 +1,33 @@
-
+
-
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
diff --git a/data/presets/TripleOscillator/SEGuitar.xpf b/data/presets/TripleOscillator/SEGuitar.xpf
index 95b35e75e..543c4f412 100644
--- a/data/presets/TripleOscillator/SEGuitar.xpf
+++ b/data/presets/TripleOscillator/SEGuitar.xpf
@@ -1,16 +1,16 @@
-
+
-
+
-
+
-
-
-
+
+
+
diff --git a/data/presets/TripleOscillator/SawLead.xpf b/data/presets/TripleOscillator/SawLead.xpf
index 6a172401e..fb1ca7c2c 100644
--- a/data/presets/TripleOscillator/SawLead.xpf
+++ b/data/presets/TripleOscillator/SawLead.xpf
@@ -1,21 +1,21 @@
-
+
-
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
diff --git a/data/presets/TripleOscillator/SawReso.xpf b/data/presets/TripleOscillator/SawReso.xpf
index b3c9570fe..ee419bb38 100644
--- a/data/presets/TripleOscillator/SawReso.xpf
+++ b/data/presets/TripleOscillator/SawReso.xpf
@@ -1,17 +1,18 @@
-
+
-
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
+
+
+
diff --git a/data/presets/TripleOscillator/Short1.xpf b/data/presets/TripleOscillator/Short1.xpf
index c5ba117a7..8e4bf3051 100644
--- a/data/presets/TripleOscillator/Short1.xpf
+++ b/data/presets/TripleOscillator/Short1.xpf
@@ -1,18 +1,19 @@
-
+
-
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
diff --git a/data/presets/TripleOscillator/Short2.xpf b/data/presets/TripleOscillator/Short2.xpf
index 66c42eb53..e544bf306 100644
--- a/data/presets/TripleOscillator/Short2.xpf
+++ b/data/presets/TripleOscillator/Short2.xpf
@@ -1,18 +1,19 @@
-
+
-
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
diff --git a/data/presets/TripleOscillator/Short3.xpf b/data/presets/TripleOscillator/Short3.xpf
index 74dc078fa..8e6152755 100644
--- a/data/presets/TripleOscillator/Short3.xpf
+++ b/data/presets/TripleOscillator/Short3.xpf
@@ -1,18 +1,19 @@
-
+
-
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
diff --git a/data/presets/TripleOscillator/Short4.xpf b/data/presets/TripleOscillator/Short4.xpf
index 4a6a98f4b..22ec192ef 100644
--- a/data/presets/TripleOscillator/Short4.xpf
+++ b/data/presets/TripleOscillator/Short4.xpf
@@ -1,18 +1,19 @@
-
+
-
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
diff --git a/data/presets/TripleOscillator/Snare.xpf b/data/presets/TripleOscillator/Snare.xpf
index ce06bd856..9d5d3e834 100644
--- a/data/presets/TripleOscillator/Snare.xpf
+++ b/data/presets/TripleOscillator/Snare.xpf
@@ -1,30 +1,18 @@
-
+
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
-
-
-
-
-
-
+
+
+
diff --git a/data/presets/TripleOscillator/SoftBass.xpf b/data/presets/TripleOscillator/SoftBass.xpf
index 544aab578..7596bd14b 100644
--- a/data/presets/TripleOscillator/SoftBass.xpf
+++ b/data/presets/TripleOscillator/SoftBass.xpf
@@ -1,21 +1,21 @@
-
+
-
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
diff --git a/data/presets/TripleOscillator/SoftStrings.xpf b/data/presets/TripleOscillator/SoftStrings.xpf
index b27f67324..a47c0b68c 100644
--- a/data/presets/TripleOscillator/SoftStrings.xpf
+++ b/data/presets/TripleOscillator/SoftStrings.xpf
@@ -1,21 +1,21 @@
-
+
-
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
diff --git a/data/presets/TripleOscillator/SpaceBass.xpf b/data/presets/TripleOscillator/SpaceBass.xpf
index 4298b320a..aeb43286d 100644
--- a/data/presets/TripleOscillator/SpaceBass.xpf
+++ b/data/presets/TripleOscillator/SpaceBass.xpf
@@ -1,18 +1,19 @@
-
+
-
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
diff --git a/data/presets/TripleOscillator/Square.xpf b/data/presets/TripleOscillator/Square.xpf
index e1ee82776..cbd455e0f 100644
--- a/data/presets/TripleOscillator/Square.xpf
+++ b/data/presets/TripleOscillator/Square.xpf
@@ -1,21 +1,21 @@
-
+
-
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
diff --git a/data/presets/TripleOscillator/Supernova.xpf b/data/presets/TripleOscillator/Supernova.xpf
index 9349e90dc..750415f9a 100644
--- a/data/presets/TripleOscillator/Supernova.xpf
+++ b/data/presets/TripleOscillator/Supernova.xpf
@@ -1,58 +1,58 @@
-
+
-
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
-
-
+
+
diff --git a/data/presets/TripleOscillator/TB303-Arpeggio.xpf b/data/presets/TripleOscillator/TB303-Arpeggio.xpf
index 69fa74cbd..09f1bca8e 100644
--- a/data/presets/TripleOscillator/TB303-Arpeggio.xpf
+++ b/data/presets/TripleOscillator/TB303-Arpeggio.xpf
@@ -1,21 +1,21 @@
-
+
-
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
diff --git a/data/presets/TripleOscillator/TB303.xpf b/data/presets/TripleOscillator/TB303.xpf
index 023754598..e5c1229ee 100644
--- a/data/presets/TripleOscillator/TB303.xpf
+++ b/data/presets/TripleOscillator/TB303.xpf
@@ -1,21 +1,21 @@
-
+
-
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
-
-
-
-
+
+
+
+
diff --git a/data/presets/TripleOscillator/TheFirstOne.xpf b/data/presets/TripleOscillator/TheFirstOne.xpf
index b13996230..741b07f3a 100644
--- a/data/presets/TripleOscillator/TheFirstOne.xpf
+++ b/data/presets/TripleOscillator/TheFirstOne.xpf
@@ -1,18 +1,19 @@
-
+
-
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
diff --git a/data/presets/TripleOscillator/TheMaster.xpf b/data/presets/TripleOscillator/TheMaster.xpf
index f51d88848..7311af546 100644
--- a/data/presets/TripleOscillator/TheMaster.xpf
+++ b/data/presets/TripleOscillator/TheMaster.xpf
@@ -1,17 +1,18 @@
-
+
-
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
-
+
+
+
+
+
diff --git a/data/presets/TripleOscillator/TranceLead.xpf b/data/presets/TripleOscillator/TranceLead.xpf
index cd1d3526a..c3071c976 100644
--- a/data/presets/TripleOscillator/TranceLead.xpf
+++ b/data/presets/TripleOscillator/TranceLead.xpf
@@ -1,18 +1,19 @@
-
+
-
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
diff --git a/data/presets/TripleOscillator/WarmStack.xpf b/data/presets/TripleOscillator/WarmStack.xpf
index 712d10e57..1a3e9c1a0 100644
--- a/data/presets/TripleOscillator/WarmStack.xpf
+++ b/data/presets/TripleOscillator/WarmStack.xpf
@@ -1,16 +1,16 @@
-
+
-
+
-
+
-
-
-
+
+
+
diff --git a/data/presets/TripleOscillator/Whistle.xpf b/data/presets/TripleOscillator/Whistle.xpf
index 2faefc562..3d03f5e56 100644
--- a/data/presets/TripleOscillator/Whistle.xpf
+++ b/data/presets/TripleOscillator/Whistle.xpf
@@ -1,18 +1,19 @@
-
+
-
+
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
-
-
-
+
+
+
+
diff --git a/data/presets/TripleOscillator/Xylophon.xpf b/data/presets/TripleOscillator/Xylophon.xpf
index ca5503cf3..73c92c55b 100644
--- a/data/presets/TripleOscillator/Xylophon.xpf
+++ b/data/presets/TripleOscillator/Xylophon.xpf
@@ -1,16 +1,17 @@
-
+
-
+
-
-
-
-
-
-
-
+
+
+
+
+
+
+
-
-
-
+
+
+
+
diff --git a/data/presets/Vibed/Harpsichord.xpf b/data/presets/Vibed/Harpsichord.xpf
index f9834baac..b7c617c9b 100644
--- a/data/presets/Vibed/Harpsichord.xpf
+++ b/data/presets/Vibed/Harpsichord.xpf
@@ -1,17 +1,18 @@
-
+
-
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
+
+
+
diff --git a/data/presets/Vibed/SadPad.xpf b/data/presets/Vibed/SadPad.xpf
index 43d64ace9..2ef17698b 100644
--- a/data/presets/Vibed/SadPad.xpf
+++ b/data/presets/Vibed/SadPad.xpf
@@ -1,17 +1,18 @@
-
+
-
+
-
-
-
-
-
-
+
+
+
+
+
+
-
-
+
+
+
diff --git a/data/presets/Watsyn/Epic_lead.xpf b/data/presets/Watsyn/Epic_lead.xpf
index 6fd4682a9..a1747eadc 100644
--- a/data/presets/Watsyn/Epic_lead.xpf
+++ b/data/presets/Watsyn/Epic_lead.xpf
@@ -1,16 +1,16 @@
-
+
-
+
-
+
-
-
-
+
+
+
diff --git a/data/presets/Watsyn/Phase_bass.xpf b/data/presets/Watsyn/Phase_bass.xpf
index a6d3f0475..641c59c5b 100644
--- a/data/presets/Watsyn/Phase_bass.xpf
+++ b/data/presets/Watsyn/Phase_bass.xpf
@@ -1,16 +1,16 @@
-
+
-
+
-
+
-
-
-
+
+
+
diff --git a/include/DataFile.h b/include/DataFile.h
index 3491386df..d67ef45ed 100644
--- a/include/DataFile.h
+++ b/include/DataFile.h
@@ -77,6 +77,24 @@ public:
return m_type;
}
+ // small helper class for adjusting application's locale settings
+ // when loading or saving floating point values rendered to strings
+ class LocaleHelper
+ {
+ public:
+ enum Modes
+ {
+ ModeLoad,
+ ModeSave,
+ ModeCount
+ };
+ typedef Modes Mode;
+
+ LocaleHelper( Mode mode );
+ ~LocaleHelper();
+
+ };
+
private:
static Type type( const QString& typeName );
diff --git a/lmms.rc.in b/lmms.rc.in
index b868263b3..23445a4c8 100644
--- a/lmms.rc.in
+++ b/lmms.rc.in
@@ -2,7 +2,7 @@ lmmsicon ICON data/lmms.ico
#include
VS_VERSION_INFO VERSIONINFO
- FILEVERSION 1,0,92,0
+ FILEVERSION 1,0,93,0
FILEFLAGSMASK VS_FFI_FILEFLAGSMASK
FILEOS VOS_NT_WINDOWS32
FILETYPE VFT_APP
diff --git a/src/core/DataFile.cpp b/src/core/DataFile.cpp
index ed45829e9..90d856be6 100644
--- a/src/core/DataFile.cpp
+++ b/src/core/DataFile.cpp
@@ -61,6 +61,38 @@ DataFile::typeDescStruct
+DataFile::LocaleHelper::LocaleHelper( Mode mode )
+{
+ switch( mode )
+ {
+ case ModeLoad:
+ // set a locale for which QString::fromFloat() returns valid values if
+ // floating point separator is a comma - otherwise we would fail to load
+ // older projects made by people from various countries due to their
+ // locale settings
+ QLocale::setDefault( QLocale::German );
+ break;
+
+ case ModeSave:
+ // set default locale to C so that floating point decimals are rendered to
+ // strings with periods as decimal point instead of commas in some countries
+ QLocale::setDefault( QLocale::C );
+
+ default: break;
+ }
+}
+
+
+
+DataFile::LocaleHelper::~LocaleHelper()
+{
+ // revert to original locale
+ QLocale::setDefault( QLocale::system() );
+}
+
+
+
+
DataFile::DataFile( Type type ) :
QDomDocument( "lmms-project" ),
m_content(),
@@ -683,16 +715,25 @@ void DataFile::upgrade()
}
- // Time-signature
- if ( !m_head.hasAttribute( "timesig_numerator" ) )
- {
- m_head.setAttribute( "timesig_numerator", 4 );
- m_head.setAttribute( "timesig_denominator", 4 );
- }
+ // update document meta data
+ documentElement().setAttribute( "version", LDF_VERSION_STRING );
+ documentElement().setAttribute( "type", typeName( type() ) );
+ documentElement().setAttribute( "creator", "LMMS" );
+ documentElement().setAttribute( "creatorversion", LMMS_VERSION );
- if( !m_head.hasAttribute( "mastervol" ) )
+ if( type() == SongProject || type() == SongProjectTemplate )
{
- m_head.setAttribute( "mastervol", 100 );
+ // Time-signature
+ if ( !m_head.hasAttribute( "timesig_numerator" ) )
+ {
+ m_head.setAttribute( "timesig_numerator", 4 );
+ m_head.setAttribute( "timesig_denominator", 4 );
+ }
+
+ if( !m_head.hasAttribute( "mastervol" ) )
+ {
+ m_head.setAttribute( "mastervol", 100 );
+ }
}
//printf("%s\n", toString( 2 ).toUtf8().constData());
}
diff --git a/src/core/song.cpp b/src/core/song.cpp
index 0f80f8e31..981998469 100644
--- a/src/core/song.cpp
+++ b/src/core/song.cpp
@@ -898,6 +898,8 @@ void song::loadProject( const QString & _file_name )
return;
}
+ DataFile::LocaleHelper localeHelper( DataFile::LocaleHelper::ModeLoad );
+
engine::mixer()->lock();
// get the header information from the DOM
@@ -1006,6 +1008,8 @@ void song::loadProject( const QString & _file_name )
// only save current song as _filename and do nothing else
bool song::saveProjectFile( const QString & _filename )
{
+ DataFile::LocaleHelper localeHelper( DataFile::LocaleHelper::ModeSave );
+
DataFile dataFile( DataFile::SongProject );
m_tempoModel.saveSettings( dataFile, dataFile.head(), "bpm" );
diff --git a/src/tracks/InstrumentTrack.cpp b/src/tracks/InstrumentTrack.cpp
index d16172d17..64a742445 100644
--- a/src/tracks/InstrumentTrack.cpp
+++ b/src/tracks/InstrumentTrack.cpp
@@ -1244,11 +1244,10 @@ InstrumentTrackWindow::InstrumentTrackWindow( InstrumentTrackView * _itv ) :
connect( saveSettingsBtn, SIGNAL( clicked() ), this, SLOT( saveSettingsBtnClicked() ) );
- toolTip::add( saveSettingsBtn, tr( "Save current channel settings in a preset-file" ) );
+ toolTip::add( saveSettingsBtn, tr( "Save current instrument track settings in a preset file" ) );
saveSettingsBtn->setWhatsThis(
- tr( "Click here, if you want to save current channel settings "
- "in a preset-file. Later you can load this preset by "
- "double-clicking it in the preset-browser." ) );
+ tr( "Click here, if you want to save current instrument track settings in a preset file. "
+ "Later you can load this preset by double-clicking it in the preset-browser." ) );
basicControlsLayout->addWidget( saveSettingsBtn );
@@ -1408,6 +1407,8 @@ void InstrumentTrackWindow::saveSettingsBtnClicked()
!sfd.selectedFiles().isEmpty() &&
!sfd.selectedFiles().first().isEmpty() )
{
+ DataFile::LocaleHelper localeHelper( DataFile::LocaleHelper::ModeSave );
+
DataFile dataFile( DataFile::InstrumentTrackSettings );
m_track->setSimpleSerializing();
m_track->saveSettings( dataFile, dataFile.content() );