diff --git a/data/presets/AudioFileProcessor/Erazor.xpf b/data/presets/AudioFileProcessor/Erazor.xpf index f106c27f893..40ddb323cd1 100644 --- a/data/presets/AudioFileProcessor/Erazor.xpf +++ b/data/presets/AudioFileProcessor/Erazor.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/AudioFileProcessor/SString.xpf b/data/presets/AudioFileProcessor/SString.xpf index 1def1d71942..addee696b1e 100644 --- a/data/presets/AudioFileProcessor/SString.xpf +++ b/data/presets/AudioFileProcessor/SString.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/AudioFileProcessor/orion.xpf b/data/presets/AudioFileProcessor/orion.xpf index 101286b298e..29a7111d9c8 100644 --- a/data/presets/AudioFileProcessor/orion.xpf +++ b/data/presets/AudioFileProcessor/orion.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/BitInvader/invaders_must_die.xpf b/data/presets/BitInvader/invaders_must_die.xpf index 78c50c36042..d1823e8d1ce 100644 --- a/data/presets/BitInvader/invaders_must_die.xpf +++ b/data/presets/BitInvader/invaders_must_die.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/Kicker/Clap dry.xpf b/data/presets/Kicker/Clap dry.xpf index f6c938959a4..943ac8bfd41 100644 --- a/data/presets/Kicker/Clap dry.xpf +++ b/data/presets/Kicker/Clap dry.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/Kicker/Clap.xpf b/data/presets/Kicker/Clap.xpf index d354051ce63..35076140929 100644 --- a/data/presets/Kicker/Clap.xpf +++ b/data/presets/Kicker/Clap.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/Kicker/HihatClosed.xpf b/data/presets/Kicker/HihatClosed.xpf index 66dd8e7ac43..3c574807dda 100644 --- a/data/presets/Kicker/HihatClosed.xpf +++ b/data/presets/Kicker/HihatClosed.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/Kicker/HihatOpen.xpf b/data/presets/Kicker/HihatOpen.xpf index c0f0aa69235..7c2b3275b2c 100644 --- a/data/presets/Kicker/HihatOpen.xpf +++ b/data/presets/Kicker/HihatOpen.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/Kicker/KickPower.xpf b/data/presets/Kicker/KickPower.xpf index 27259ce25cc..4765d0da17d 100644 --- a/data/presets/Kicker/KickPower.xpf +++ b/data/presets/Kicker/KickPower.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/Kicker/Shaker.xpf b/data/presets/Kicker/Shaker.xpf index 13eee953e90..2f6bea6479c 100644 --- a/data/presets/Kicker/Shaker.xpf +++ b/data/presets/Kicker/Shaker.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/Kicker/SnareLong.xpf b/data/presets/Kicker/SnareLong.xpf index b8b2f9d884a..8a8caa63564 100644 --- a/data/presets/Kicker/SnareLong.xpf +++ b/data/presets/Kicker/SnareLong.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/Kicker/SnareMarch.xpf b/data/presets/Kicker/SnareMarch.xpf index d4d1ad0db3b..ff2aff24518 100644 --- a/data/presets/Kicker/SnareMarch.xpf +++ b/data/presets/Kicker/SnareMarch.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/Kicker/TR909-RimShot.xpf b/data/presets/Kicker/TR909-RimShot.xpf index e8626db2920..de7ff2c3808 100644 --- a/data/presets/Kicker/TR909-RimShot.xpf +++ b/data/presets/Kicker/TR909-RimShot.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/Kicker/TrapKick.xpf b/data/presets/Kicker/TrapKick.xpf index a8ad8976da1..733f3c457c9 100644 --- a/data/presets/Kicker/TrapKick.xpf +++ b/data/presets/Kicker/TrapKick.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/LB302/AcidLead.xpf b/data/presets/LB302/AcidLead.xpf index e264f9573a4..de017b2ae13 100644 --- a/data/presets/LB302/AcidLead.xpf +++ b/data/presets/LB302/AcidLead.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/LB302/AngryLead.xpf b/data/presets/LB302/AngryLead.xpf index 9d995589562..d637a9d0723 100644 --- a/data/presets/LB302/AngryLead.xpf +++ b/data/presets/LB302/AngryLead.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/LB302/DroneArp.xpf b/data/presets/LB302/DroneArp.xpf index 2d21adc2dcd..1122caa7547 100644 --- a/data/presets/LB302/DroneArp.xpf +++ b/data/presets/LB302/DroneArp.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/LB302/GoodOldTimes.xpf b/data/presets/LB302/GoodOldTimes.xpf index 45fb6710267..1e2a3793f47 100644 --- a/data/presets/LB302/GoodOldTimes.xpf +++ b/data/presets/LB302/GoodOldTimes.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/LB302/Oh Synth.xpf b/data/presets/LB302/Oh Synth.xpf index 5241fe5fde3..647bb18442f 100644 --- a/data/presets/LB302/Oh Synth.xpf +++ b/data/presets/LB302/Oh Synth.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/LB302/STrash.xpf b/data/presets/LB302/STrash.xpf index bd928e63cd4..dd1e5369f2b 100644 --- a/data/presets/LB302/STrash.xpf +++ b/data/presets/LB302/STrash.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/Monstro/Growl.xpf b/data/presets/Monstro/Growl.xpf index f553b16411f..5b4f4f2e57f 100644 --- a/data/presets/Monstro/Growl.xpf +++ b/data/presets/Monstro/Growl.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/Monstro/HorrorLead.xpf b/data/presets/Monstro/HorrorLead.xpf index 23cba07c413..e647fcf8354 100644 --- a/data/presets/Monstro/HorrorLead.xpf +++ b/data/presets/Monstro/HorrorLead.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/Monstro/Phat.xpf b/data/presets/Monstro/Phat.xpf index 5615f02298d..9e67dd4a891 100644 --- a/data/presets/Monstro/Phat.xpf +++ b/data/presets/Monstro/Phat.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/Monstro/ScaryBell.xpf b/data/presets/Monstro/ScaryBell.xpf index 00466696f7a..d0b6f2618ab 100644 --- a/data/presets/Monstro/ScaryBell.xpf +++ b/data/presets/Monstro/ScaryBell.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/Nescaline/Chomp.xpf b/data/presets/Nescaline/Chomp.xpf index 9dea1898ed3..4bddf4b8057 100644 --- a/data/presets/Nescaline/Chomp.xpf +++ b/data/presets/Nescaline/Chomp.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/Nescaline/Detune_lead.xpf b/data/presets/Nescaline/Detune_lead.xpf index cc06165ffa7..178885b8ae8 100644 --- a/data/presets/Nescaline/Detune_lead.xpf +++ b/data/presets/Nescaline/Detune_lead.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/Nescaline/Engine_overheats.xpf b/data/presets/Nescaline/Engine_overheats.xpf index 49176aef641..9387bab618a 100644 --- a/data/presets/Nescaline/Engine_overheats.xpf +++ b/data/presets/Nescaline/Engine_overheats.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/Nescaline/Fireball_flick.xpf b/data/presets/Nescaline/Fireball_flick.xpf index b61c17375d8..ff005083a3c 100644 --- a/data/presets/Nescaline/Fireball_flick.xpf +++ b/data/presets/Nescaline/Fireball_flick.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/Nescaline/Mega_weapon.xpf b/data/presets/Nescaline/Mega_weapon.xpf index f5f0c26ae05..cfff23489d1 100644 --- a/data/presets/Nescaline/Mega_weapon.xpf +++ b/data/presets/Nescaline/Mega_weapon.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/OpulenZ/Bagpipe.xpf b/data/presets/OpulenZ/Bagpipe.xpf index e572498f4cd..e327cf9cdd4 100644 --- a/data/presets/OpulenZ/Bagpipe.xpf +++ b/data/presets/OpulenZ/Bagpipe.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/OpulenZ/Bells.xpf b/data/presets/OpulenZ/Bells.xpf index e7279a7fe5b..99d7bb82c10 100644 --- a/data/presets/OpulenZ/Bells.xpf +++ b/data/presets/OpulenZ/Bells.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/OpulenZ/Brass.xpf b/data/presets/OpulenZ/Brass.xpf index 553bdb5bc9e..1eeabe8ed64 100644 --- a/data/presets/OpulenZ/Brass.xpf +++ b/data/presets/OpulenZ/Brass.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/OpulenZ/Bubbly_days.xpf b/data/presets/OpulenZ/Bubbly_days.xpf index 92e008284d8..d03b8638e0a 100644 --- a/data/presets/OpulenZ/Bubbly_days.xpf +++ b/data/presets/OpulenZ/Bubbly_days.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/OpulenZ/Cheesy_synth.xpf b/data/presets/OpulenZ/Cheesy_synth.xpf index 2c6d473066d..f5914c37df2 100644 --- a/data/presets/OpulenZ/Cheesy_synth.xpf +++ b/data/presets/OpulenZ/Cheesy_synth.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/OpulenZ/Clarinet.xpf b/data/presets/OpulenZ/Clarinet.xpf index 3301318a282..68a9b65b252 100644 --- a/data/presets/OpulenZ/Clarinet.xpf +++ b/data/presets/OpulenZ/Clarinet.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/OpulenZ/Combo_organ.xpf b/data/presets/OpulenZ/Combo_organ.xpf index 21e2d8a62ec..f95d8b8bb43 100644 --- a/data/presets/OpulenZ/Combo_organ.xpf +++ b/data/presets/OpulenZ/Combo_organ.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/OpulenZ/Epiano.xpf b/data/presets/OpulenZ/Epiano.xpf index dea947763e3..8d731b51d3a 100644 --- a/data/presets/OpulenZ/Epiano.xpf +++ b/data/presets/OpulenZ/Epiano.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/OpulenZ/Funky.xpf b/data/presets/OpulenZ/Funky.xpf index 166537fbd39..4a09831f2dd 100644 --- a/data/presets/OpulenZ/Funky.xpf +++ b/data/presets/OpulenZ/Funky.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/OpulenZ/Halo_pad.xpf b/data/presets/OpulenZ/Halo_pad.xpf index a20fa050f29..80efc81ea94 100644 --- a/data/presets/OpulenZ/Halo_pad.xpf +++ b/data/presets/OpulenZ/Halo_pad.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/OpulenZ/Harp.xpf b/data/presets/OpulenZ/Harp.xpf index 75b54d30386..3dcf3384b75 100644 --- a/data/presets/OpulenZ/Harp.xpf +++ b/data/presets/OpulenZ/Harp.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/OpulenZ/Organ_leslie.xpf b/data/presets/OpulenZ/Organ_leslie.xpf index a1c5c024e8b..ccb969fcb58 100644 --- a/data/presets/OpulenZ/Organ_leslie.xpf +++ b/data/presets/OpulenZ/Organ_leslie.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/OpulenZ/Pad.xpf b/data/presets/OpulenZ/Pad.xpf index f35911cc166..2b749a4a408 100644 --- a/data/presets/OpulenZ/Pad.xpf +++ b/data/presets/OpulenZ/Pad.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/OpulenZ/Square.xpf b/data/presets/OpulenZ/Square.xpf index ad0aaca52f4..1393df50ce2 100644 --- a/data/presets/OpulenZ/Square.xpf +++ b/data/presets/OpulenZ/Square.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/OpulenZ/Vibraphone.xpf b/data/presets/OpulenZ/Vibraphone.xpf index c0e3ad55e55..419265d7a06 100644 --- a/data/presets/OpulenZ/Vibraphone.xpf +++ b/data/presets/OpulenZ/Vibraphone.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/Organic/Pwnage.xpf b/data/presets/Organic/Pwnage.xpf index 51401f5d63b..edd0970c3a9 100644 --- a/data/presets/Organic/Pwnage.xpf +++ b/data/presets/Organic/Pwnage.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/Organic/Rubberband.xpf b/data/presets/Organic/Rubberband.xpf index 1dd0a194146..3f76fda207c 100644 --- a/data/presets/Organic/Rubberband.xpf +++ b/data/presets/Organic/Rubberband.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/SID/Bass.xpf b/data/presets/SID/Bass.xpf index c5f605c8fd7..17b6edcda8f 100644 --- a/data/presets/SID/Bass.xpf +++ b/data/presets/SID/Bass.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/SID/CheesyGuitar.xpf b/data/presets/SID/CheesyGuitar.xpf index 756e14afcac..f04010c9e63 100644 --- a/data/presets/SID/CheesyGuitar.xpf +++ b/data/presets/SID/CheesyGuitar.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/SID/Lead.xpf b/data/presets/SID/Lead.xpf index be81b2948e5..f993e7e5ba9 100644 --- a/data/presets/SID/Lead.xpf +++ b/data/presets/SID/Lead.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/SID/MadMind.xpf b/data/presets/SID/MadMind.xpf index 5375d5b000a..5d0f4c9c81d 100644 --- a/data/presets/SID/MadMind.xpf +++ b/data/presets/SID/MadMind.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/SID/Overdrive.xpf b/data/presets/SID/Overdrive.xpf index ef4b51a90b5..0289704e7a0 100644 --- a/data/presets/SID/Overdrive.xpf +++ b/data/presets/SID/Overdrive.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/SID/Pad.xpf b/data/presets/SID/Pad.xpf index 2a03b3f43d8..bdcadb9e12c 100644 --- a/data/presets/SID/Pad.xpf +++ b/data/presets/SID/Pad.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/TripleOscillator/AmazingBubbles.xpf b/data/presets/TripleOscillator/AmazingBubbles.xpf index d06bd61ca6d..b4b42a44237 100644 --- a/data/presets/TripleOscillator/AmazingBubbles.xpf +++ b/data/presets/TripleOscillator/AmazingBubbles.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/TripleOscillator/AnalogBell.xpf b/data/presets/TripleOscillator/AnalogBell.xpf index 18f4d2baafc..81de19bfca3 100644 --- a/data/presets/TripleOscillator/AnalogBell.xpf +++ b/data/presets/TripleOscillator/AnalogBell.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/TripleOscillator/AnalogDreamz.xpf b/data/presets/TripleOscillator/AnalogDreamz.xpf index 0af114cb9dd..1e82243565e 100644 --- a/data/presets/TripleOscillator/AnalogDreamz.xpf +++ b/data/presets/TripleOscillator/AnalogDreamz.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/TripleOscillator/AnalogTimes.xpf b/data/presets/TripleOscillator/AnalogTimes.xpf index 0717947ed97..ff61d0759b3 100644 --- a/data/presets/TripleOscillator/AnalogTimes.xpf +++ b/data/presets/TripleOscillator/AnalogTimes.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/TripleOscillator/Analogous.xpf b/data/presets/TripleOscillator/Analogous.xpf index ec5c61a6042..11d79866d63 100644 --- a/data/presets/TripleOscillator/Analogous.xpf +++ b/data/presets/TripleOscillator/Analogous.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/TripleOscillator/ArpeggioPing.xpf b/data/presets/TripleOscillator/ArpeggioPing.xpf index 5da4c30d83f..c3248f29993 100644 --- a/data/presets/TripleOscillator/ArpeggioPing.xpf +++ b/data/presets/TripleOscillator/ArpeggioPing.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/TripleOscillator/Bell.xpf b/data/presets/TripleOscillator/Bell.xpf index 1d7044980cb..51ef7199662 100644 --- a/data/presets/TripleOscillator/Bell.xpf +++ b/data/presets/TripleOscillator/Bell.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/TripleOscillator/BellArp.xpf b/data/presets/TripleOscillator/BellArp.xpf index 63f4edb06d5..9001fec3a96 100644 --- a/data/presets/TripleOscillator/BellArp.xpf +++ b/data/presets/TripleOscillator/BellArp.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/TripleOscillator/BlandModBass.xpf b/data/presets/TripleOscillator/BlandModBass.xpf index 3160bd09725..09d01333c7b 100644 --- a/data/presets/TripleOscillator/BlandModBass.xpf +++ b/data/presets/TripleOscillator/BlandModBass.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/TripleOscillator/BrokenToy.xpf b/data/presets/TripleOscillator/BrokenToy.xpf index ed0ac370e1d..ce599756234 100644 --- a/data/presets/TripleOscillator/BrokenToy.xpf +++ b/data/presets/TripleOscillator/BrokenToy.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/TripleOscillator/ChurchOrgan.xpf b/data/presets/TripleOscillator/ChurchOrgan.xpf index ac7a54f139a..e820d5caa45 100644 --- a/data/presets/TripleOscillator/ChurchOrgan.xpf +++ b/data/presets/TripleOscillator/ChurchOrgan.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/TripleOscillator/CryingPads.xpf b/data/presets/TripleOscillator/CryingPads.xpf index 441dce3c793..f135baca039 100644 --- a/data/presets/TripleOscillator/CryingPads.xpf +++ b/data/presets/TripleOscillator/CryingPads.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/TripleOscillator/DetunedGhost.xpf b/data/presets/TripleOscillator/DetunedGhost.xpf index 4f180b6e380..ac40a18cd0d 100644 --- a/data/presets/TripleOscillator/DetunedGhost.xpf +++ b/data/presets/TripleOscillator/DetunedGhost.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/TripleOscillator/DirtyReece.xpf b/data/presets/TripleOscillator/DirtyReece.xpf index d574c72997e..9444bdbbabe 100644 --- a/data/presets/TripleOscillator/DirtyReece.xpf +++ b/data/presets/TripleOscillator/DirtyReece.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/TripleOscillator/DistortedPMBass.xpf b/data/presets/TripleOscillator/DistortedPMBass.xpf index 970235507b7..6e2bbd81a60 100644 --- a/data/presets/TripleOscillator/DistortedPMBass.xpf +++ b/data/presets/TripleOscillator/DistortedPMBass.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/TripleOscillator/Drums_HardKick.xpf b/data/presets/TripleOscillator/Drums_HardKick.xpf index 64bd319493b..7a802f5a738 100644 --- a/data/presets/TripleOscillator/Drums_HardKick.xpf +++ b/data/presets/TripleOscillator/Drums_HardKick.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/TripleOscillator/Drums_HihatC.xpf b/data/presets/TripleOscillator/Drums_HihatC.xpf index 3b4dd573575..6618b747a09 100644 --- a/data/presets/TripleOscillator/Drums_HihatC.xpf +++ b/data/presets/TripleOscillator/Drums_HihatC.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/TripleOscillator/Drums_HihatO.xpf b/data/presets/TripleOscillator/Drums_HihatO.xpf index 19258c57a04..b176b15cfbb 100644 --- a/data/presets/TripleOscillator/Drums_HihatO.xpf +++ b/data/presets/TripleOscillator/Drums_HihatO.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/TripleOscillator/Drums_Kick.xpf b/data/presets/TripleOscillator/Drums_Kick.xpf index d18e0ed1756..5fe81d50b01 100644 --- a/data/presets/TripleOscillator/Drums_Kick.xpf +++ b/data/presets/TripleOscillator/Drums_Kick.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/TripleOscillator/Drums_Snare.xpf b/data/presets/TripleOscillator/Drums_Snare.xpf index 50731bf56ab..3daa0abe443 100644 --- a/data/presets/TripleOscillator/Drums_Snare.xpf +++ b/data/presets/TripleOscillator/Drums_Snare.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/TripleOscillator/DullBell.xpf b/data/presets/TripleOscillator/DullBell.xpf index 549689e4ed5..cc9fd3f5b62 100644 --- a/data/presets/TripleOscillator/DullBell.xpf +++ b/data/presets/TripleOscillator/DullBell.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/TripleOscillator/E-Organ.xpf b/data/presets/TripleOscillator/E-Organ.xpf index b04ba010d48..2136aeba315 100644 --- a/data/presets/TripleOscillator/E-Organ.xpf +++ b/data/presets/TripleOscillator/E-Organ.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/TripleOscillator/E-Organ2.xpf b/data/presets/TripleOscillator/E-Organ2.xpf index 4ef8e1ac5bc..5f20b0d2e53 100644 --- a/data/presets/TripleOscillator/E-Organ2.xpf +++ b/data/presets/TripleOscillator/E-Organ2.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/TripleOscillator/ElectricOboe.xpf b/data/presets/TripleOscillator/ElectricOboe.xpf index a68b66bbb3f..3d27853307a 100644 --- a/data/presets/TripleOscillator/ElectricOboe.xpf +++ b/data/presets/TripleOscillator/ElectricOboe.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/TripleOscillator/Erazzor.xpf b/data/presets/TripleOscillator/Erazzor.xpf index 02e020b78bb..6893cd0b745 100644 --- a/data/presets/TripleOscillator/Erazzor.xpf +++ b/data/presets/TripleOscillator/Erazzor.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/TripleOscillator/FatCheese.xpf b/data/presets/TripleOscillator/FatCheese.xpf index 748b4dfe382..13cc458c5dc 100644 --- a/data/presets/TripleOscillator/FatCheese.xpf +++ b/data/presets/TripleOscillator/FatCheese.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/TripleOscillator/FatPMArp.xpf b/data/presets/TripleOscillator/FatPMArp.xpf index ad11a89522f..475747e0c1a 100644 --- a/data/presets/TripleOscillator/FatPMArp.xpf +++ b/data/presets/TripleOscillator/FatPMArp.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/TripleOscillator/FatTB303Arp.xpf b/data/presets/TripleOscillator/FatTB303Arp.xpf index 33bb2d8f66a..e7da65473d5 100644 --- a/data/presets/TripleOscillator/FatTB303Arp.xpf +++ b/data/presets/TripleOscillator/FatTB303Arp.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/TripleOscillator/FutureBass.xpf b/data/presets/TripleOscillator/FutureBass.xpf index 84f4541e073..8a51b1a1546 100644 --- a/data/presets/TripleOscillator/FutureBass.xpf +++ b/data/presets/TripleOscillator/FutureBass.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/TripleOscillator/FuzzyAnalogBass.xpf b/data/presets/TripleOscillator/FuzzyAnalogBass.xpf index 78b176dfdca..b343e0928b1 100644 --- a/data/presets/TripleOscillator/FuzzyAnalogBass.xpf +++ b/data/presets/TripleOscillator/FuzzyAnalogBass.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/TripleOscillator/Garfunkel.xpf b/data/presets/TripleOscillator/Garfunkel.xpf index d2f66d1fe3b..e5f8133e49b 100644 --- a/data/presets/TripleOscillator/Garfunkel.xpf +++ b/data/presets/TripleOscillator/Garfunkel.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/TripleOscillator/GhostBoy.xpf b/data/presets/TripleOscillator/GhostBoy.xpf index 0742a1c3c35..8ce919de73d 100644 --- a/data/presets/TripleOscillator/GhostBoy.xpf +++ b/data/presets/TripleOscillator/GhostBoy.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/TripleOscillator/Harmonium.xpf b/data/presets/TripleOscillator/Harmonium.xpf index a9032509385..602d1a4101c 100644 --- a/data/presets/TripleOscillator/Harmonium.xpf +++ b/data/presets/TripleOscillator/Harmonium.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/TripleOscillator/HugeGrittyBass.xpf b/data/presets/TripleOscillator/HugeGrittyBass.xpf index ab752fbffb1..12a9bad4a96 100644 --- a/data/presets/TripleOscillator/HugeGrittyBass.xpf +++ b/data/presets/TripleOscillator/HugeGrittyBass.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/TripleOscillator/Jupiter.xpf b/data/presets/TripleOscillator/Jupiter.xpf index 86b59aac599..c858fb8ea14 100644 --- a/data/presets/TripleOscillator/Jupiter.xpf +++ b/data/presets/TripleOscillator/Jupiter.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/TripleOscillator/LFO-party.xpf b/data/presets/TripleOscillator/LFO-party.xpf index f5d9b1baa7a..0b657bffc4b 100644 --- a/data/presets/TripleOscillator/LFO-party.xpf +++ b/data/presets/TripleOscillator/LFO-party.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/TripleOscillator/MoogArpeggio.xpf b/data/presets/TripleOscillator/MoogArpeggio.xpf index d2f280c1b5b..f16cd5a4beb 100644 --- a/data/presets/TripleOscillator/MoogArpeggio.xpf +++ b/data/presets/TripleOscillator/MoogArpeggio.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/TripleOscillator/MoveYourBody.xpf b/data/presets/TripleOscillator/MoveYourBody.xpf index fb67237bd08..3af4523d7a8 100644 --- a/data/presets/TripleOscillator/MoveYourBody.xpf +++ b/data/presets/TripleOscillator/MoveYourBody.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/TripleOscillator/OldComputerGames.xpf b/data/presets/TripleOscillator/OldComputerGames.xpf index 674bef67470..c3d4fea2610 100644 --- a/data/presets/TripleOscillator/OldComputerGames.xpf +++ b/data/presets/TripleOscillator/OldComputerGames.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/TripleOscillator/PM-FMstring.xpf b/data/presets/TripleOscillator/PM-FMstring.xpf index 1433f3c471a..468526b40d6 100644 --- a/data/presets/TripleOscillator/PM-FMstring.xpf +++ b/data/presets/TripleOscillator/PM-FMstring.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/TripleOscillator/PMFMFTWbass.xpf b/data/presets/TripleOscillator/PMFMFTWbass.xpf index d81b5560166..4a7be1d38a5 100644 --- a/data/presets/TripleOscillator/PMFMFTWbass.xpf +++ b/data/presets/TripleOscillator/PMFMFTWbass.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/TripleOscillator/PMbass.xpf b/data/presets/TripleOscillator/PMbass.xpf index 2e63d713626..8249162c468 100644 --- a/data/presets/TripleOscillator/PMbass.xpf +++ b/data/presets/TripleOscillator/PMbass.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/TripleOscillator/PercussiveBass.xpf b/data/presets/TripleOscillator/PercussiveBass.xpf index 4afb1d0de9b..81d6a2cd660 100644 --- a/data/presets/TripleOscillator/PercussiveBass.xpf +++ b/data/presets/TripleOscillator/PercussiveBass.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/TripleOscillator/Play-some-rock.xpf b/data/presets/TripleOscillator/Play-some-rock.xpf index 2ee19a7b21f..b383b678e78 100644 --- a/data/presets/TripleOscillator/Play-some-rock.xpf +++ b/data/presets/TripleOscillator/Play-some-rock.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/TripleOscillator/PluckArpeggio.xpf b/data/presets/TripleOscillator/PluckArpeggio.xpf index 44ce26c8e20..1c7236a2b41 100644 --- a/data/presets/TripleOscillator/PluckArpeggio.xpf +++ b/data/presets/TripleOscillator/PluckArpeggio.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/TripleOscillator/PluckBass.xpf b/data/presets/TripleOscillator/PluckBass.xpf index 51c5de329a2..171f1ae55ed 100644 --- a/data/presets/TripleOscillator/PluckBass.xpf +++ b/data/presets/TripleOscillator/PluckBass.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/TripleOscillator/PowerStrings.xpf b/data/presets/TripleOscillator/PowerStrings.xpf index 0ef3750976e..846af3faac3 100644 --- a/data/presets/TripleOscillator/PowerStrings.xpf +++ b/data/presets/TripleOscillator/PowerStrings.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/TripleOscillator/RaveBass.xpf b/data/presets/TripleOscillator/RaveBass.xpf index 21fc6e90c06..1416e73bcd8 100644 --- a/data/presets/TripleOscillator/RaveBass.xpf +++ b/data/presets/TripleOscillator/RaveBass.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/TripleOscillator/Ravemania.xpf b/data/presets/TripleOscillator/Ravemania.xpf index cab609fc55a..48ae57496d3 100644 --- a/data/presets/TripleOscillator/Ravemania.xpf +++ b/data/presets/TripleOscillator/Ravemania.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/TripleOscillator/ResoBass.xpf b/data/presets/TripleOscillator/ResoBass.xpf index 85a785c6ee8..7645561886c 100644 --- a/data/presets/TripleOscillator/ResoBass.xpf +++ b/data/presets/TripleOscillator/ResoBass.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/TripleOscillator/ResonantPad.xpf b/data/presets/TripleOscillator/ResonantPad.xpf index 0e375c8461f..ca93e0b0f03 100644 --- a/data/presets/TripleOscillator/ResonantPad.xpf +++ b/data/presets/TripleOscillator/ResonantPad.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/TripleOscillator/Rough!.xpf b/data/presets/TripleOscillator/Rough!.xpf index 38e5d364ae3..39aacf768bf 100644 --- a/data/presets/TripleOscillator/Rough!.xpf +++ b/data/presets/TripleOscillator/Rough!.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/TripleOscillator/SEGuitar.xpf b/data/presets/TripleOscillator/SEGuitar.xpf index 1215552b030..408626005f9 100644 --- a/data/presets/TripleOscillator/SEGuitar.xpf +++ b/data/presets/TripleOscillator/SEGuitar.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/TripleOscillator/SawReso.xpf b/data/presets/TripleOscillator/SawReso.xpf index 2c631d66372..49115035248 100644 --- a/data/presets/TripleOscillator/SawReso.xpf +++ b/data/presets/TripleOscillator/SawReso.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/TripleOscillator/Square.xpf b/data/presets/TripleOscillator/Square.xpf index cbd455e0f52..3e2fbb2a67d 100644 --- a/data/presets/TripleOscillator/Square.xpf +++ b/data/presets/TripleOscillator/Square.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/TripleOscillator/SquarePing.xpf b/data/presets/TripleOscillator/SquarePing.xpf index c4a1999ddeb..955494ebe73 100644 --- a/data/presets/TripleOscillator/SquarePing.xpf +++ b/data/presets/TripleOscillator/SquarePing.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/TripleOscillator/SuperSawLead.xpf b/data/presets/TripleOscillator/SuperSawLead.xpf index 916bde54858..26b2f121955 100644 --- a/data/presets/TripleOscillator/SuperSawLead.xpf +++ b/data/presets/TripleOscillator/SuperSawLead.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/TripleOscillator/Supernova.xpf b/data/presets/TripleOscillator/Supernova.xpf index e5cebe1590e..e095e0c7136 100644 --- a/data/presets/TripleOscillator/Supernova.xpf +++ b/data/presets/TripleOscillator/Supernova.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/TripleOscillator/TB303.xpf b/data/presets/TripleOscillator/TB303.xpf index e5c1229ee3d..26bdd85372b 100644 --- a/data/presets/TripleOscillator/TB303.xpf +++ b/data/presets/TripleOscillator/TB303.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/TripleOscillator/TINTNpad.xpf b/data/presets/TripleOscillator/TINTNpad.xpf index 6f04ca4f221..9643375d515 100644 --- a/data/presets/TripleOscillator/TINTNpad.xpf +++ b/data/presets/TripleOscillator/TINTNpad.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/TripleOscillator/TheMaster.xpf b/data/presets/TripleOscillator/TheMaster.xpf index c54787a19f6..49278d3c872 100644 --- a/data/presets/TripleOscillator/TheMaster.xpf +++ b/data/presets/TripleOscillator/TheMaster.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/TripleOscillator/WarmStack.xpf b/data/presets/TripleOscillator/WarmStack.xpf index fb903295c4e..c99ce5145dc 100644 --- a/data/presets/TripleOscillator/WarmStack.xpf +++ b/data/presets/TripleOscillator/WarmStack.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/Watsyn/Epic_lead.xpf b/data/presets/Watsyn/Epic_lead.xpf index a1747eadcfb..c150977a71c 100644 --- a/data/presets/Watsyn/Epic_lead.xpf +++ b/data/presets/Watsyn/Epic_lead.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/Watsyn/Phase_bass.xpf b/data/presets/Watsyn/Phase_bass.xpf index 641c59c5b56..93ad619d714 100644 --- a/data/presets/Watsyn/Phase_bass.xpf +++ b/data/presets/Watsyn/Phase_bass.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/Watsyn/Pulse.xpf b/data/presets/Watsyn/Pulse.xpf index b3ace765ee0..b12568a50c7 100644 --- a/data/presets/Watsyn/Pulse.xpf +++ b/data/presets/Watsyn/Pulse.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/Xpressive/Accordion.xpf b/data/presets/Xpressive/Accordion.xpf index a7a3a3b43c2..0806b27ef3a 100644 --- a/data/presets/Xpressive/Accordion.xpf +++ b/data/presets/Xpressive/Accordion.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/Xpressive/Ambition.xpf b/data/presets/Xpressive/Ambition.xpf index dd64489779c..cce5cc2aca8 100644 --- a/data/presets/Xpressive/Ambition.xpf +++ b/data/presets/Xpressive/Ambition.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/Xpressive/Baby Violin.xpf b/data/presets/Xpressive/Baby Violin.xpf index 45e407fc87f..9dcd60f92fb 100644 --- a/data/presets/Xpressive/Baby Violin.xpf +++ b/data/presets/Xpressive/Baby Violin.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/Xpressive/Bad Singer.xpf b/data/presets/Xpressive/Bad Singer.xpf index 10fe3b30837..18866e59ad4 100644 --- a/data/presets/Xpressive/Bad Singer.xpf +++ b/data/presets/Xpressive/Bad Singer.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/Xpressive/Cloud Bass.xpf b/data/presets/Xpressive/Cloud Bass.xpf index 15bf4188daa..714d952c8c5 100644 --- a/data/presets/Xpressive/Cloud Bass.xpf +++ b/data/presets/Xpressive/Cloud Bass.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/Xpressive/Creature.xpf b/data/presets/Xpressive/Creature.xpf index bee39f224fb..fe4a92aeb0d 100644 --- a/data/presets/Xpressive/Creature.xpf +++ b/data/presets/Xpressive/Creature.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/Xpressive/Dream.xpf b/data/presets/Xpressive/Dream.xpf index 3b5dd7da264..c9860cd45d7 100644 --- a/data/presets/Xpressive/Dream.xpf +++ b/data/presets/Xpressive/Dream.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/Xpressive/Electric Shock.xpf b/data/presets/Xpressive/Electric Shock.xpf index 3f9aef10429..64d7a383948 100644 --- a/data/presets/Xpressive/Electric Shock.xpf +++ b/data/presets/Xpressive/Electric Shock.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/Xpressive/Faded Colors - notes test.xpf b/data/presets/Xpressive/Faded Colors - notes test.xpf index de4938f4dc4..028f574f99e 100644 --- a/data/presets/Xpressive/Faded Colors - notes test.xpf +++ b/data/presets/Xpressive/Faded Colors - notes test.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/Xpressive/Faded Colors.xpf b/data/presets/Xpressive/Faded Colors.xpf index a514ee43837..6fe50922af9 100644 --- a/data/presets/Xpressive/Faded Colors.xpf +++ b/data/presets/Xpressive/Faded Colors.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/Xpressive/Fat Flute.xpf b/data/presets/Xpressive/Fat Flute.xpf index 76d9e2f84d9..822dac78e13 100644 --- a/data/presets/Xpressive/Fat Flute.xpf +++ b/data/presets/Xpressive/Fat Flute.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/Xpressive/Frog.xpf b/data/presets/Xpressive/Frog.xpf index bf8b2b24983..0cdb912ea40 100644 --- a/data/presets/Xpressive/Frog.xpf +++ b/data/presets/Xpressive/Frog.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/Xpressive/Horn.xpf b/data/presets/Xpressive/Horn.xpf index d44b332b2ab..1ce1c152fce 100644 --- a/data/presets/Xpressive/Horn.xpf +++ b/data/presets/Xpressive/Horn.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/Xpressive/Low Battery.xpf b/data/presets/Xpressive/Low Battery.xpf index 78f1fc78f72..fb8ff03dadb 100644 --- a/data/presets/Xpressive/Low Battery.xpf +++ b/data/presets/Xpressive/Low Battery.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/Xpressive/Piano-Gong.xpf b/data/presets/Xpressive/Piano-Gong.xpf index a8244b7994f..beb3ea92893 100644 --- a/data/presets/Xpressive/Piano-Gong.xpf +++ b/data/presets/Xpressive/Piano-Gong.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/Xpressive/Rubber Bass.xpf b/data/presets/Xpressive/Rubber Bass.xpf index 4b1409e224f..e4810f80099 100644 --- a/data/presets/Xpressive/Rubber Bass.xpf +++ b/data/presets/Xpressive/Rubber Bass.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/Xpressive/Space Echoes.xpf b/data/presets/Xpressive/Space Echoes.xpf index be6de3653b1..b68e93e5d80 100644 --- a/data/presets/Xpressive/Space Echoes.xpf +++ b/data/presets/Xpressive/Space Echoes.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/Xpressive/Speaker Swapper.xpf b/data/presets/Xpressive/Speaker Swapper.xpf index d4da5aa2f87..3f617d8c89a 100644 --- a/data/presets/Xpressive/Speaker Swapper.xpf +++ b/data/presets/Xpressive/Speaker Swapper.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/Xpressive/Toss.xpf b/data/presets/Xpressive/Toss.xpf index 387e78fd92f..f8afbb9260e 100644 --- a/data/presets/Xpressive/Toss.xpf +++ b/data/presets/Xpressive/Toss.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/Xpressive/Untuned Bell.xpf b/data/presets/Xpressive/Untuned Bell.xpf index 5dd61ec18d1..e1d0fed6d55 100644 --- a/data/presets/Xpressive/Untuned Bell.xpf +++ b/data/presets/Xpressive/Untuned Bell.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/Xpressive/Vibrato.xpf b/data/presets/Xpressive/Vibrato.xpf index a7dda25e9bb..36e0068e786 100644 --- a/data/presets/Xpressive/Vibrato.xpf +++ b/data/presets/Xpressive/Vibrato.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/presets/Xpressive/X-Distorted.xpf b/data/presets/Xpressive/X-Distorted.xpf index b42495d759d..41cb480e13c 100644 --- a/data/presets/Xpressive/X-Distorted.xpf +++ b/data/presets/Xpressive/X-Distorted.xpf @@ -3,7 +3,7 @@ - + diff --git a/data/projects/templates/default.mpt b/data/projects/templates/default.mpt index bebd41fe3bb..680f89c470b 100644 --- a/data/projects/templates/default.mpt +++ b/data/projects/templates/default.mpt @@ -5,7 +5,7 @@ - + @@ -29,7 +29,7 @@ - + diff --git a/include/Note.h b/include/Note.h index 30969b4c8f9..6f7f556c172 100644 --- a/include/Note.h +++ b/include/Note.h @@ -55,6 +55,7 @@ enum Keys enum Octaves { + Octave_m1, // MIDI standard starts at C-1 Octave_0, Octave_1, Octave_2, @@ -64,15 +65,16 @@ enum Octaves Octave_6, Octave_7, Octave_8, + Octave_9, // incomplete octave, MIDI only goes up to G9 NumOctaves -} ; - +}; +const int FirstOctave = -1; const int WhiteKeysPerOctave = 7; const int BlackKeysPerOctave = 5; const int KeysPerOctave = WhiteKeysPerOctave + BlackKeysPerOctave; -const int NumKeys = NumOctaves * KeysPerOctave; -const int DefaultKey = DefaultOctave*KeysPerOctave + Key_A; +const int NumKeys = 128; // limited to MIDI range +const int DefaultKey = DefaultOctave * KeysPerOctave + Key_A; const float MaxDetuning = 4 * 12.0f; diff --git a/include/lmms_constants.h b/include/lmms_constants.h index ae6d3d277b1..b775d9895fc 100644 --- a/include/lmms_constants.h +++ b/include/lmms_constants.h @@ -51,7 +51,7 @@ const float F_E_R = (float) LD_E_R; // Frequency ranges (in Hz). // Arbitrary low limit for logarithmic frequency scale; >1 Hz. -const int LOWEST_LOG_FREQ = 10; +const int LOWEST_LOG_FREQ = 5; // Full range is defined by LOWEST_LOG_FREQ and current sample rate. enum FREQUENCY_RANGES diff --git a/plugins/HydrogenImport/HydrogenImport.cpp b/plugins/HydrogenImport/HydrogenImport.cpp index 9f9f1dd4961..a73b0af8dc9 100644 --- a/plugins/HydrogenImport/HydrogenImport.cpp +++ b/plugins/HydrogenImport/HydrogenImport.cpp @@ -122,7 +122,7 @@ class NoteKey else if ( sKey == "B" ) { m_key = NoteKey::B; } - return m_key + (nOctave*12)+57; + return m_key + ((nOctave - FirstOctave) * 12) + 69; } }; diff --git a/plugins/MidiExport/MidiExport.cpp b/plugins/MidiExport/MidiExport.cpp index 1860527c10e..4c4e31c8a98 100644 --- a/plugins/MidiExport/MidiExport.cpp +++ b/plugins/MidiExport/MidiExport.cpp @@ -129,8 +129,7 @@ bool MidiExport::tryExport(const TrackContainer::TrackList &tracks, if (n.nodeName() == "instrumenttrack") { QDomElement it = n.toElement(); - // transpose +12 semitones, workaround for #1857 - base_pitch = (69 - it.attribute("basenote", "57").toInt()); + base_pitch = (69 - it.attribute("basenote", "69").toInt()); if (it.attribute("usemasterpitch", "1").toInt()) { base_pitch += masterPitch; @@ -200,8 +199,7 @@ bool MidiExport::tryExport(const TrackContainer::TrackList &tracks, if (n.nodeName() == "instrumenttrack") { QDomElement it = n.toElement(); - // transpose +12 semitones, workaround for #1857 - base_pitch = (69 - it.attribute("basenote", "57").toInt()); + base_pitch = (69 - it.attribute("basenote", "69").toInt()); if (it.attribute("usemasterpitch", "1").toInt()) { base_pitch += masterPitch; diff --git a/plugins/MidiImport/MidiImport.cpp b/plugins/MidiImport/MidiImport.cpp index b3d01e790dc..deba6b71526 100644 --- a/plugins/MidiImport/MidiImport.cpp +++ b/plugins/MidiImport/MidiImport.cpp @@ -430,7 +430,7 @@ bool MidiImport::readSMF( TrackContainer* tc ) int ticks = noteEvt->get_duration() * ticksPerBeat; Note n( (ticks < 1 ? 1 : ticks ), noteEvt->get_start_time() * ticksPerBeat, - noteEvt->get_identifier() - 12, + noteEvt->get_identifier(), noteEvt->get_loud() * (200.f / 127.f)); // Map from MIDI velocity to LMMS volume ch->addNote( n ); diff --git a/plugins/OpulenZ/OpulenZ.cpp b/plugins/OpulenZ/OpulenZ.cpp index 4dde05b0f3b..ef08c6929a1 100644 --- a/plugins/OpulenZ/OpulenZ.cpp +++ b/plugins/OpulenZ/OpulenZ.cpp @@ -300,8 +300,7 @@ bool OpulenzInstrument::handleMidiEvent( const MidiEvent& event, const MidiTime& switch(event.type()) { case MidiNoteOn: - // to get us in line with MIDI(?) - key = event.key() +12; + key = event.key(); vel = event.velocity(); voice = popVoice(); @@ -316,7 +315,7 @@ bool OpulenzInstrument::handleMidiEvent( const MidiEvent& event, const MidiTime& } break; case MidiNoteOff: - key = event.key() +12; + key = event.key(); for(voice=0; voicewrite(0xA0+voice, fnums[key] & 0xff); @@ -328,7 +327,7 @@ bool OpulenzInstrument::handleMidiEvent( const MidiEvent& event, const MidiTime& velocities[key] = 0; break; case MidiKeyPressure: - key = event.key() +12; + key = event.key(); vel = event.velocity(); if( velocities[key] != 0) { velocities[key] = vel; diff --git a/plugins/vestige/vestige.h b/plugins/vestige/vestige.h index 7090fee1e29..2662ef50b46 100644 --- a/plugins/vestige/vestige.h +++ b/plugins/vestige/vestige.h @@ -33,7 +33,6 @@ #include "Instrument.h" #include "InstrumentView.h" -#include "Note.h" #include "Knob.h" #include "SubWindow.h" #include "AutomatableModel.h" diff --git a/plugins/zynaddsubfx/RemoteZynAddSubFx.cpp b/plugins/zynaddsubfx/RemoteZynAddSubFx.cpp index 7cb6e635a8b..95d2fade661 100644 --- a/plugins/zynaddsubfx/RemoteZynAddSubFx.cpp +++ b/plugins/zynaddsubfx/RemoteZynAddSubFx.cpp @@ -30,7 +30,6 @@ #include #define BUILD_REMOTE_PLUGIN_CLIENT -#include "Note.h" #include "RemotePlugin.h" #include "RemoteZynAddSubFx.h" #include "LocalZynAddSubFx.h" diff --git a/src/core/AutomationPattern.cpp b/src/core/AutomationPattern.cpp index b38c704ef02..e5354f8d528 100644 --- a/src/core/AutomationPattern.cpp +++ b/src/core/AutomationPattern.cpp @@ -29,7 +29,6 @@ #include "AutomationPatternView.h" #include "AutomationTrack.h" #include "LocaleHelper.h" -#include "Note.h" #include "ProjectJournal.h" #include "BBTrackContainer.h" #include "Song.h" diff --git a/src/core/DataFile.cpp b/src/core/DataFile.cpp index 129c9738b3e..3b700613106 100644 --- a/src/core/DataFile.cpp +++ b/src/core/DataFile.cpp @@ -1025,6 +1025,18 @@ void DataFile::upgrade_1_3_0() child.setTagName( "opulenz" ); } } + else if ( + el.attribute("name") == "zynaddsubfx" || + el.attribute("name") == "vestige" || + el.attribute("name") == "carlapatchbay" || + el.attribute("name") == "carlarack") + { + // LMMS note range has been extended to match MIDI spec. -> base note changed from 57 to 69. + // Affects all MIDI-based instruments except OpulenZ. + el.parentNode().toElement().setAttribute( + "basenote", + el.parentNode().toElement().attribute("basenote").toInt() + 12); + } } list = elementsByTagName( "effect" ); diff --git a/src/core/midi/MidiAlsaSeq.cpp b/src/core/midi/MidiAlsaSeq.cpp index 56fd956d46d..2475f843032 100644 --- a/src/core/midi/MidiAlsaSeq.cpp +++ b/src/core/midi/MidiAlsaSeq.cpp @@ -176,21 +176,21 @@ void MidiAlsaSeq::processOutEvent( const MidiEvent& event, const MidiTime& time, case MidiNoteOn: snd_seq_ev_set_noteon( &ev, event.channel(), - event.key() + KeysPerOctave, + event.key(), event.velocity() ); break; case MidiNoteOff: snd_seq_ev_set_noteoff( &ev, event.channel(), - event.key() + KeysPerOctave, + event.key(), event.velocity() ); break; case MidiKeyPressure: snd_seq_ev_set_keypress( &ev, event.channel(), - event.key() + KeysPerOctave, + event.key(), event.velocity() ); break; @@ -531,8 +531,7 @@ void MidiAlsaSeq::run() case SND_SEQ_EVENT_NOTEON: dest->processInEvent( MidiEvent( MidiNoteOn, ev->data.note.channel, - ev->data.note.note - - KeysPerOctave, + ev->data.note.note, ev->data.note.velocity, source ), @@ -542,8 +541,7 @@ void MidiAlsaSeq::run() case SND_SEQ_EVENT_NOTEOFF: dest->processInEvent( MidiEvent( MidiNoteOff, ev->data.note.channel, - ev->data.note.note - - KeysPerOctave, + ev->data.note.note, ev->data.note.velocity, source ), @@ -554,8 +552,7 @@ void MidiAlsaSeq::run() dest->processInEvent( MidiEvent( MidiKeyPressure, ev->data.note.channel, - ev->data.note.note - - KeysPerOctave, + ev->data.note.note, ev->data.note.velocity, source ), MidiTime() ); diff --git a/src/core/midi/MidiApple.cpp b/src/core/midi/MidiApple.cpp index f4bc0d4dd97..2eaabf45fb9 100644 --- a/src/core/midi/MidiApple.cpp +++ b/src/core/midi/MidiApple.cpp @@ -318,28 +318,28 @@ void MidiApple::HandleReadCallback( const MIDIPacketList *pktlist, void *srcConn } unsigned char messageChannel = status & 0xF; - const MidiEventTypes cmdtype = static_cast( status & 0xF0 ); + const MidiEventTypes cmdtype = static_cast(status & 0xF0); const int par1 = packet->data[iByte + 1]; const int par2 = packet->data[iByte + 2]; switch (cmdtype) { - case MidiNoteOff: //0x80: - case MidiNoteOn: //0x90: - case MidiKeyPressure: //0xA0: - notifyMidiPortList(m_inputSubs[refName],MidiEvent( cmdtype, messageChannel, par1 - KeysPerOctave, par2 & 0xff, &endPointRef )); + case MidiNoteOff: //0x80: + case MidiNoteOn: //0x90: + case MidiKeyPressure: //0xA0: + case MidiControlChange: //0xB0: + case MidiProgramChange: //0xC0: + case MidiChannelPressure: //0xD0: + notifyMidiPortList( + m_inputSubs[refName], + MidiEvent(cmdtype, messageChannel, par1, par2 & 0xff, &endPointRef)); break; - - case MidiControlChange: //0xB0: - case MidiProgramChange: //0xC0: - case MidiChannelPressure: //0xD0: - notifyMidiPortList(m_inputSubs[refName],MidiEvent( cmdtype, messageChannel, par1, par2 & 0xff, &endPointRef )); + case MidiPitchBend: //0xE0: + notifyMidiPortList( + m_inputSubs[refName], + MidiEvent(cmdtype, messageChannel, par1 + par2 * 128, 0, &endPointRef)); break; - - case MidiPitchBend: //0xE0: - notifyMidiPortList(m_inputSubs[refName],MidiEvent( cmdtype, messageChannel, par1 + par2 * 128, 0, &endPointRef )); - break; - case MidiActiveSensing: //0xF0 + case MidiActiveSensing: //0xF0 case 0xF0: break; default: diff --git a/src/core/midi/MidiClient.cpp b/src/core/midi/MidiClient.cpp index e37f59c06ba..ecc06451ec8 100644 --- a/src/core/midi/MidiClient.cpp +++ b/src/core/midi/MidiClient.cpp @@ -214,34 +214,30 @@ void MidiClientRaw::parseData( const unsigned char c ) * We simply keep the status as it is, just reset the parameter counter. * If another status byte comes in, it will overwrite the status. */ - m_midiParseData.m_midiEvent.setType( static_cast( m_midiParseData.m_status ) ); - m_midiParseData.m_midiEvent.setChannel( m_midiParseData.m_channel ); + m_midiParseData.m_midiEvent.setType(static_cast(m_midiParseData.m_status)); + m_midiParseData.m_midiEvent.setChannel(m_midiParseData.m_channel); m_midiParseData.m_bytes = 0; /* Related to running status! */ - switch( m_midiParseData.m_midiEvent.type() ) + switch (m_midiParseData.m_midiEvent.type()) { case MidiNoteOff: case MidiNoteOn: case MidiKeyPressure: case MidiChannelPressure: - m_midiParseData.m_midiEvent.setKey( m_midiParseData.m_buffer[0] - KeysPerOctave ); - m_midiParseData.m_midiEvent.setVelocity( m_midiParseData.m_buffer[1] ); - break; - case MidiProgramChange: - m_midiParseData.m_midiEvent.setKey( m_midiParseData.m_buffer[0] ); - m_midiParseData.m_midiEvent.setVelocity( m_midiParseData.m_buffer[1] ); + m_midiParseData.m_midiEvent.setKey(m_midiParseData.m_buffer[0]); + m_midiParseData.m_midiEvent.setVelocity(m_midiParseData.m_buffer[1]); break; case MidiControlChange: - m_midiParseData.m_midiEvent.setControllerNumber( m_midiParseData.m_buffer[0] ); - m_midiParseData.m_midiEvent.setControllerValue( m_midiParseData.m_buffer[1] ); + m_midiParseData.m_midiEvent.setControllerNumber(m_midiParseData.m_buffer[0]); + m_midiParseData.m_midiEvent.setControllerValue( m_midiParseData.m_buffer[1]); break; case MidiPitchBend: // Pitch-bend is transmitted with 14-bit precision. // Note: '|' does here the same as '+' (no common bits), // but might be faster - m_midiParseData.m_midiEvent.setPitchBend( ( m_midiParseData.m_buffer[1] * 128 ) | m_midiParseData.m_buffer[0] ); + m_midiParseData.m_midiEvent.setPitchBend((m_midiParseData.m_buffer[1] * 128) | m_midiParseData.m_buffer[0]); break; default: @@ -266,22 +262,21 @@ void MidiClientRaw::processParsedEvent() -void MidiClientRaw::processOutEvent( const MidiEvent& event, const MidiTime & , const MidiPort* port ) +void MidiClientRaw::processOutEvent(const MidiEvent& event, const MidiTime &, const MidiPort* port) { // TODO: also evaluate _time and queue event if necessary - switch( event.type() ) + switch (event.type()) { case MidiNoteOn: case MidiNoteOff: case MidiKeyPressure: - sendByte( event.type() | event.channel() ); - sendByte( event.key() + KeysPerOctave ); - sendByte( event.velocity() ); + sendByte(event.type() | event.channel()); + sendByte(event.key()); + sendByte(event.velocity()); break; default: - qWarning( "MidiClientRaw: unhandled MIDI-event %d\n", - (int) event.type() ); + qWarning("MidiClientRaw: unhandled MIDI-event %d\n", (int)event.type()); break; } } @@ -330,5 +325,3 @@ int MidiClientRaw::eventLength( const unsigned char event ) } return 1; } - - diff --git a/src/core/midi/MidiWinMM.cpp b/src/core/midi/MidiWinMM.cpp index ef60f30153b..58807ccd7c5 100644 --- a/src/core/midi/MidiWinMM.cpp +++ b/src/core/midi/MidiWinMM.cpp @@ -201,28 +201,25 @@ void MidiWinMM::handleInputEvent( HMIDIIN hm, DWORD ev ) } const MidiPortList & l = m_inputSubs[d]; - for( MidiPortList::ConstIterator it = l.begin(); it != l.end(); ++it ) + for (MidiPortList::ConstIterator it = l.begin(); it != l.end(); ++it) { - switch( cmdtype ) + switch (cmdtype) { case MidiNoteOn: case MidiNoteOff: case MidiKeyPressure: - ( *it )->processInEvent( MidiEvent( cmdtype, chan, par1 - KeysPerOctave, par2 & 0xff, &hm ) ); - break; - case MidiControlChange: case MidiProgramChange: case MidiChannelPressure: - ( *it )->processInEvent( MidiEvent( cmdtype, chan, par1, par2 & 0xff, &hm ) ); + (*it)->processInEvent(MidiEvent(cmdtype, chan, par1, par2 & 0xff, &hm)); break; case MidiPitchBend: - ( *it )->processInEvent( MidiEvent( cmdtype, chan, par1 + par2*128, 0, &hm ) ); + (*it)->processInEvent(MidiEvent(cmdtype, chan, par1 + par2 * 128, 0, &hm)); break; default: - qWarning( "MidiWinMM: unhandled input event %d\n", cmdtype ); + qWarning("MidiWinMM: unhandled input event %d\n", cmdtype); break; } } @@ -304,4 +301,3 @@ void MidiWinMM::openDevices() #endif - diff --git a/src/gui/PianoView.cpp b/src/gui/PianoView.cpp index c5f1b623fca..4ca8963e000 100644 --- a/src/gui/PianoView.cpp +++ b/src/gui/PianoView.cpp @@ -107,9 +107,9 @@ PianoView::PianoView( QWidget * _parent ) : s_blackKeyPressedPm = new QPixmap( embed::getIconPixmap( "black_key_pressed" ) ); } - setAttribute( Qt::WA_OpaquePaintEvent, true ); - setFocusPolicy( Qt::StrongFocus ); - setMaximumWidth( WhiteKeysPerOctave * NumOctaves * PW_WHITE_KEY_WIDTH ); + setAttribute(Qt::WA_OpaquePaintEvent, true); + setFocusPolicy(Qt::StrongFocus); + setMaximumWidth(WhiteKeysPerOctave * NumKeys * PW_WHITE_KEY_WIDTH / KeysPerOctave); // create scrollbar at the bottom m_pianoScroll = new QScrollBar( Qt::Horizontal, this ); @@ -684,14 +684,13 @@ void PianoView::focusOutEvent( QFocusEvent * ) * After resizing we need to adjust range of scrollbar for not allowing * to scroll too far to the right. * - * \param _event resize-event object (unused) + * \param event resize-event object (unused) */ -void PianoView::resizeEvent( QResizeEvent * _event ) +void PianoView::resizeEvent(QResizeEvent* event) { - QWidget::resizeEvent( _event ); - m_pianoScroll->setRange( 0, WhiteKeysPerOctave * NumOctaves - - (int) ceil( (float) width() / - PW_WHITE_KEY_WIDTH ) ); + QWidget::resizeEvent(event); + m_pianoScroll->setRange(0, WhiteKeysPerOctave * (NumKeys + 1) / KeysPerOctave - + static_cast(ceil(static_cast(width()) / PW_WHITE_KEY_WIDTH))); } @@ -819,13 +818,11 @@ void PianoView::paintEvent( QPaintEvent * ) x += PW_WHITE_KEY_WIDTH; - if( (Keys) (cur_key%KeysPerOctave) == Key_C ) + if ((Keys)(cur_key % KeysPerOctave) == Key_C) { - // label key of note C with "C" and number of current - // octave - p.drawText( x - PW_WHITE_KEY_WIDTH, LABEL_TEXT_SIZE + 2, - QString( "C" ) + QString::number( - cur_key / KeysPerOctave, 10 ) ); + // label key of note C with "C" and number of current octave + p.drawText(x - PW_WHITE_KEY_WIDTH, LABEL_TEXT_SIZE + 2, + QString("C") + QString::number(FirstOctave + cur_key / KeysPerOctave)); } ++cur_key; } @@ -849,19 +846,19 @@ void PianoView::paintEvent( QPaintEvent * ) } // now draw all black keys... - for( int x = 0; x < width(); ) + for (int x = 0; x < width();) { - if( Piano::isBlackKey( cur_key ) ) + if (Piano::isBlackKey(cur_key)) { // draw pressed or not pressed key, depending on // state of current key - if( m_piano && m_piano->isKeyPressed( cur_key ) ) + if (m_piano && m_piano->isKeyPressed(cur_key)) { - p.drawPixmap( x + PW_WHITE_KEY_WIDTH / 2, PIANO_BASE, *s_blackKeyPressedPm ); + p.drawPixmap(x + PW_WHITE_KEY_WIDTH / 2, PIANO_BASE, *s_blackKeyPressedPm); } else { - p.drawPixmap( x + PW_WHITE_KEY_WIDTH / 2, PIANO_BASE, *s_blackKeyPm ); + p.drawPixmap(x + PW_WHITE_KEY_WIDTH / 2, PIANO_BASE, *s_blackKeyPm); } x += PW_WHITE_KEY_WIDTH; white_cnt = 0; @@ -871,12 +868,13 @@ void PianoView::paintEvent( QPaintEvent * ) // simple workaround for increasing x if there were two // white keys (e.g. between E and F) ++white_cnt; - if( white_cnt > 1 ) + if (white_cnt > 1) { x += PW_WHITE_KEY_WIDTH; } } - ++cur_key; + // stop drawing when all keys are drawn, even if an extra black key could fit + if (++cur_key == NumKeys) {break;} } } diff --git a/src/gui/editors/PianoRoll.cpp b/src/gui/editors/PianoRoll.cpp index 3b42bd9b267..2820d96dffb 100644 --- a/src/gui/editors/PianoRoll.cpp +++ b/src/gui/editors/PianoRoll.cpp @@ -121,11 +121,11 @@ QPixmap * PianoRoll::s_toolOpen = NULL; TextFloat * PianoRoll::s_textFloat = NULL; -static QString s_noteStrings[12] = { "C", "C#", "D", "D#", "E", "F", "F#", "G", "G#", "A", "A#", "B"}; +static QString s_noteStrings[12] = {"C", "C#", "D", "D#", "E", "F", "F#", "G", "G#", "A", "A#", "B"}; -static QString getNoteString( int key ) +static QString getNoteString(int key) { - return s_noteStrings[key % 12] + QString::number( static_cast( key / KeysPerOctave ) ); + return s_noteStrings[key % 12] + QString::number(static_cast(FirstOctave + key / KeysPerOctave)); } @@ -720,11 +720,10 @@ void PianoRoll::setCurrentPattern( Pattern* newPattern ) } } - if( total_notes > 0 ) + if (total_notes > 0) { - central_key = central_key / total_notes - - ( KeysPerOctave * NumOctaves - m_totalKeysToScroll ) / 2; - m_startKey = qBound( 0, central_key, NumOctaves * KeysPerOctave ); + central_key = central_key / total_notes - (NumKeys - m_totalKeysToScroll) / 2; + m_startKey = qBound(0, central_key, NumKeys); } // resizeEvent() does the rest for us (scrolling, range-checking @@ -2934,7 +2933,7 @@ void PianoRoll::paintEvent(QPaintEvent * pe ) int yCorrectionForNoteLabels = 0; int keyCode = key % KeysPerOctave; - switch( keyCode ) + switch (keyCode) { case 0: case 5: @@ -2951,6 +2950,9 @@ void PianoRoll::paintEvent(QPaintEvent * pe ) break; } + // override for the last MIDI key (G9) + if (key == NumKeys - 1) {yCorrectionForNoteLabels = 2;} + if( Piano::isWhiteKey( key ) ) { // Draw note names if activated in the preferences, C notes are always drawn @@ -2958,7 +2960,7 @@ void PianoRoll::paintEvent(QPaintEvent * pe ) { QString noteString = getNoteString( key ); - QPoint textStart( WHITE_KEY_WIDTH - 18, key_line_y ); + QPoint textStart( WHITE_KEY_WIDTH - 20, key_line_y ); textStart += QPoint( 0, yCorrectionForNoteLabels ); p.setPen( textShadow() ); @@ -3466,33 +3468,31 @@ void PianoRoll::paintEvent(QPaintEvent * pe ) // responsible for moving/resizing scrollbars after window-resizing -void PianoRoll::resizeEvent(QResizeEvent * re) +void PianoRoll::resizeEvent(QResizeEvent* re) { - m_leftRightScroll->setGeometry( WHITE_KEY_WIDTH, - height() - - SCROLLBAR_SIZE, - width()-WHITE_KEY_WIDTH, - SCROLLBAR_SIZE ); - m_topBottomScroll->setGeometry( width() - SCROLLBAR_SIZE, PR_TOP_MARGIN, - SCROLLBAR_SIZE, - height() - PR_TOP_MARGIN - - SCROLLBAR_SIZE ); + m_leftRightScroll->setGeometry( + WHITE_KEY_WIDTH, + height() - SCROLLBAR_SIZE, + width() - WHITE_KEY_WIDTH, + SCROLLBAR_SIZE); + m_topBottomScroll->setGeometry( + width() - SCROLLBAR_SIZE, + PR_TOP_MARGIN, + SCROLLBAR_SIZE, + height() - PR_TOP_MARGIN - SCROLLBAR_SIZE); - int total_pixels = OCTAVE_HEIGHT * NumOctaves - ( height() - - PR_TOP_MARGIN - PR_BOTTOM_MARGIN - - m_notesEditHeight ); - m_totalKeysToScroll = total_pixels * KeysPerOctave / OCTAVE_HEIGHT; + int visible_space = height() - PR_TOP_MARGIN - PR_BOTTOM_MARGIN - m_notesEditHeight; + m_totalKeysToScroll = NumKeys - 1 - visible_space / KEY_LINE_HEIGHT; - m_topBottomScroll->setRange( 0, m_totalKeysToScroll ); + m_topBottomScroll->setRange(0, m_totalKeysToScroll); - if( m_startKey > m_totalKeysToScroll ) + if (m_startKey > m_totalKeysToScroll) { m_startKey = m_totalKeysToScroll; } - m_topBottomScroll->setValue( m_totalKeysToScroll - m_startKey ); + m_topBottomScroll->setValue(m_totalKeysToScroll - m_startKey); - Engine::getSong()->getPlayPos( Song::Mode_PlayPattern - ).m_timeLine->setFixedWidth( width() ); + Engine::getSong()->getPlayPos(Song::Mode_PlayPattern).m_timeLine->setFixedWidth(width()); update(); } @@ -3658,23 +3658,16 @@ void PianoRoll::focusOutEvent( QFocusEvent * ) -int PianoRoll::getKey(int y ) const +int PianoRoll::getKey(int y) const { int key_line_y = keyAreaBottom() - 1; // pressed key on piano - int key_num = ( key_line_y - y ) / KEY_LINE_HEIGHT; + int key_num = (key_line_y - y) / KEY_LINE_HEIGHT; key_num += m_startKey; // some range-checking-stuff - if( key_num < 0 ) - { - key_num = 0; - } - - if( key_num >= KeysPerOctave * NumOctaves ) - { - key_num = KeysPerOctave * NumOctaves - 1; - } + if (key_num < 0) {key_num = 0;} + if (key_num >= NumKeys) {key_num = NumKeys - 1;} return key_num; } diff --git a/src/tracks/InstrumentTrack.cpp b/src/tracks/InstrumentTrack.cpp index b44d1b4fa63..0995ca42dfc 100644 --- a/src/tracks/InstrumentTrack.cpp +++ b/src/tracks/InstrumentTrack.cpp @@ -97,8 +97,7 @@ InstrumentTrack::InstrumentTrack( TrackContainer* tc ) : m_sustainPedalPressed( false ), m_silentBuffersProcessed( false ), m_previewMode( false ), - m_baseNoteModel( 0, 0, KeysPerOctave * NumOctaves - 1, this, - tr( "Base note" ) ), + m_baseNoteModel(0, 0, NumKeys - 1, this, tr("Base note")), m_volumeModel( DefaultVolume, MinVolume, MaxVolume, 0.1f, this, tr( "Volume" ) ), m_panningModel( DefaultPanning, PanningLeft, PanningRight, 0.1f, this, tr( "Panning" ) ), m_audioPort( tr( "unnamed_track" ), true, &m_volumeModel, &m_panningModel, &m_mutedModel ),