Updated the tests with release_key too

This commit is contained in:
Paul Ferrand 2020-02-18 14:43:51 +01:00
parent f86d93c670
commit e1c6c6c3de
3 changed files with 49 additions and 5 deletions

View file

@ -166,13 +166,44 @@ TEST_CASE("[Synth] Releasing after the initial and normal mode does not trigger
TEST_CASE("[Synth] Trigger=release and an envelope properly kills the voice at the end of the envelope")
{
sfz::Synth synth;
synth.setSamplesPerBlock(1024);
sfz::AudioBuffer<float> buffer(2, 1024);
synth.setSampleRate(48000);
synth.setSamplesPerBlock(480);
sfz::AudioBuffer<float> buffer(2, 480);
synth.setNumVoices(1);
synth.loadSfzFile(fs::current_path() / "tests/TestFiles/envelope_trigger_release.sfz");
synth.noteOn(10, 60, 63);
synth.noteOff(10, 60, 63);
synth.noteOn(0, 60, 63);
synth.noteOff(0, 60, 63);
REQUIRE( !synth.getVoiceView(0)->isFree() );
synth.renderBlock(buffer); // Attack (0.02)
synth.renderBlock(buffer);
synth.renderBlock(buffer); // Decay (0.02)
synth.renderBlock(buffer);
synth.renderBlock(buffer); // Release (0.1)
REQUIRE( synth.getVoiceView(0)->canBeStolen() );
// Release is 0.1s
for (int i = 0; i < 10; ++i)
synth.renderBlock(buffer);
REQUIRE( synth.getVoiceView(0)->isFree() );
}
TEST_CASE("[Synth] Trigger=release_key and an envelope properly kills the voice at the end of the envelope")
{
sfz::Synth synth;
synth.setSampleRate(48000);
synth.setSamplesPerBlock(480);
sfz::AudioBuffer<float> buffer(2, 480);
synth.setNumVoices(1);
synth.loadSfzFile(fs::current_path() / "tests/TestFiles/envelope_trigger_release_key.sfz");
synth.noteOn(0, 60, 63);
synth.noteOff(0, 60, 63);
REQUIRE( !synth.getVoiceView(0)->isFree() );
synth.renderBlock(buffer); // Attack (0.02)
synth.renderBlock(buffer);
synth.renderBlock(buffer); // Decay (0.02)
synth.renderBlock(buffer);
synth.renderBlock(buffer); // Release (0.1)
REQUIRE( synth.getVoiceView(0)->canBeStolen() );
// Release is 0.1s
for (int i = 0; i < 10; ++i)
synth.renderBlock(buffer);
REQUIRE( synth.getVoiceView(0)->isFree() );

View file

@ -9,5 +9,5 @@ sample=*noise
loop_mode=one_shot
ampeg_attack=0.02
ampeg_decay=0.02
ampeg_release=0
ampeg_release=0.1
ampeg_sustain=0

View file

@ -0,0 +1,13 @@
<group>
lovel=0
hivel=127
<region>
trigger=release_key
sample=*noise
loop_mode=one_shot
ampeg_attack=0.02
ampeg_decay=0.02
ampeg_release=0.1
ampeg_sustain=0