From 964c301d036a81ae91eb444bee9e3e108f4e215a Mon Sep 17 00:00:00 2001 From: anatoly-os Date: Thu, 7 Jun 2018 14:12:49 +0200 Subject: [PATCH] fix #271723: implement filters in Zerberus Test for parsing new opcodes added Actualized Zerberus readme file Add reading bpf and brf filters. --- mtest/zerberus/opcodeparse/opcodeTest.sfz | 6 +++ mtest/zerberus/opcodeparse/tst_sfzopcodes.cpp | 22 +++++++++- zerberus/README | 44 +++++++++---------- zerberus/sfz.cpp | 4 ++ 4 files changed, 53 insertions(+), 23 deletions(-) diff --git a/mtest/zerberus/opcodeparse/opcodeTest.sfz b/mtest/zerberus/opcodeparse/opcodeTest.sfz index 6f1f64da5357..fcf276477f4d 100644 --- a/mtest/zerberus/opcodeparse/opcodeTest.sfz +++ b/mtest/zerberus/opcodeparse/opcodeTest.sfz @@ -6,3 +6,9 @@ sample=../sample.wav trigger=attack loop_mode=loop_continuous trigger=first trigger=legato + fil_type=lpf_1p cutoff=200 fil_veltrack=4000 + fil_type=hpf_1p fil_keycenter=60 fil_keytrack=400 + fil_type=hpf_2p pan=100 offset=16178 + fil_type=lpf_2p delay=2 + fil_type=bpf_2p + fil_type=brf_2p diff --git a/mtest/zerberus/opcodeparse/tst_sfzopcodes.cpp b/mtest/zerberus/opcodeparse/tst_sfzopcodes.cpp index a7678f8cc726..3a08f04fb5a6 100644 --- a/mtest/zerberus/opcodeparse/tst_sfzopcodes.cpp +++ b/mtest/zerberus/opcodeparse/tst_sfzopcodes.cpp @@ -55,7 +55,7 @@ void TestOpcodes::testOpcodes() std::list::iterator curZone = synth->instrument(0)->zones().begin(); - QCOMPARE(synth->instrument(0)->zones().size(), (unsigned long) 6); + QCOMPARE(synth->instrument(0)->zones().size(), (unsigned long) 12); QCOMPARE((*curZone)->keyLo, (char) 60); QCOMPARE((*curZone)->keyHi, (char) 70); QCOMPARE((*curZone)->keyBase, (char) 40); @@ -110,6 +110,26 @@ void TestOpcodes::testOpcodes() QCOMPARE((*curZone)->trigger, Trigger::FIRST); curZone++; QCOMPARE((*curZone)->trigger, Trigger::LEGATO); + curZone++; + QCOMPARE((*curZone)->fil_type, FilterType::lpf_1p); + QCOMPARE((*curZone)->isCutoffDefined, true); + QCOMPARE((*curZone)->cutoff, 200.f); + QCOMPARE((*curZone)->fil_veltrack, 4000); + curZone++; + QCOMPARE((*curZone)->fil_type, FilterType::hpf_1p); + QCOMPARE((*curZone)->fil_keycenter, 60); + QCOMPARE((*curZone)->fil_keytrack, 400); + curZone++; + QCOMPARE((*curZone)->fil_type, FilterType::hpf_2p); + QCOMPARE((*curZone)->pan, 100); + QCOMPARE((*curZone)->offset, 16178ll); + curZone++; + QCOMPARE((*curZone)->fil_type, FilterType::lpf_2p); + QCOMPARE((*curZone)->delay, 2000.f); //ms + curZone++; + QCOMPARE((*curZone)->fil_type, FilterType::bpf_2p); + curZone++; + QCOMPARE((*curZone)->fil_type, FilterType::brf_2p); delete synth; } diff --git a/zerberus/README b/zerberus/README index 53c7075c6e41..cf8b0853e409 100644 --- a/zerberus/README +++ b/zerberus/README @@ -16,6 +16,8 @@ Instrument definition Sample Definition sample Input controls + loccN + hiccN lochan hichan key @@ -41,11 +43,15 @@ Input controls on_loccN on_hiccN Sample Player + delay + offset loop_mode no_loop one_shot loop_continuous loop_sustain + loop_start + loop_end Performance Parameters Pitch transpose @@ -55,13 +61,29 @@ Pitch Pitch EG Pitch LFO Filter + fil_type + cutoff + fil_veltrack Filter EG Filter LFO Amplifier + pan volume amp_veltrack rt_decay Amplifier EG + ampeg_delay + ampeg_start + ampeg_attack + ampeg_hold + ampeg_decay + ampeg_sustain + ampeg_vel2delay + ampeg_vel2attack + ampeg_vel2hold + ampeg_vel2decay + ampeg_vel2sustain + ampeg_vel2release ampeg_release Amplifier LFO Equalizer @@ -75,8 +97,6 @@ Unsupported -- Input Controls - loccN - hiccN lobend hibend lochanaft @@ -94,16 +114,12 @@ Input Controls sw_vel Performance Parameters Sample Player - delay delay_random delay_ccN - offset offset_random offset_ccN end count - loop_start - loop_end sync_beats sync_offset Pitch @@ -139,15 +155,12 @@ Pitch LFO pitchlfo_freqccN pitchlfo_freqpolyaft Filter - fil_type - cutoff cutoff_ccN cutoff_chanaft cutoff_polyaft resonance fil_keytrack fil_keycenter - fil_veltrack fil_random Filter EG fileg_delay @@ -177,7 +190,6 @@ Filter LFO fillfo_freqchanaft fillfo_freqpolyaft Amplifier - pan width position amp_keytrack @@ -203,18 +215,6 @@ Amplifier xfout_hiccN xf)cccurve Amplifier EG - ampeg_delay - ampeg_start - ampeg_attack - ampeg_hold - ampeg_decay - ampeg_sustain - ampeg_vel2delay - ampeg_vel2attack - ampeg_vel2hold - ampeg_vel2decay - ampeg_vel2sustain - ampeg_vel2release ampeg_delayccN ampeg_startccN ampeg_attackccN diff --git a/zerberus/sfz.cpp b/zerberus/sfz.cpp index bda0a7894bd5..1cb63032daa0 100644 --- a/zerberus/sfz.cpp +++ b/zerberus/sfz.cpp @@ -355,6 +355,10 @@ static void readFilterType(const QString& data, FilterType& filType) filType = FilterType::hpf_1p; else if (data == "hpf_2p") filType = FilterType::hpf_2p; + else if (data == "bpf_2p") + filType = FilterType::bpf_2p; + else if (data == "brf_2p") + filType = FilterType::brf_2p; else qDebug("SfzRegion: not supported fil_type value: %s", qPrintable(data)); }