diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index c68bc81..0156329 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -122,3 +122,4 @@ regression_test(test_envelope_16bit ENVELOPE "" test_envelope) target_compile_definitions(test_envelope_16bit PUBLIC SU_USE_16BIT_OUTPUT) regression_test(test_polyphony "ENVELOPE;VCO_SINE") +regression_test(test_chords "ENVELOPE;VCO_SINE") diff --git a/tests/expected_output/test_chords.raw b/tests/expected_output/test_chords.raw new file mode 100644 index 0000000..0e28a1c Binary files /dev/null and b/tests/expected_output/test_chords.raw differ diff --git a/tests/test_chords.asm b/tests/test_chords.asm new file mode 100644 index 0000000..105f2ac --- /dev/null +++ b/tests/test_chords.asm @@ -0,0 +1,29 @@ +%define BPM 100 +%define USE_SECTIONS + +%include "../src/sointu.inc" + +SU_BEGIN_PATTERNS + PATTERN 64, 0, 0, 0, 68, 0, 0, 0, 66, 0, 0, 0, 69, 0, 0, 0, + PATTERN 0, 68, 0, 0, 71, 0, 0, 0, 69, 0, 0, 0, 73, 0, 0, 0, + PATTERN 0, 0, 71, 0, 75, 0, 0, 0, 73, 0, 0, 0, 76, 0, 0, 0, +SU_END_PATTERNS + +SU_BEGIN_TRACKS + TRACK VOICES(1),0 + TRACK VOICES(1),1 + TRACK VOICES(1),2 +SU_END_TRACKS + +SU_BEGIN_PATCH + SU_BEGIN_INSTRUMENT VOICES(3) ; Instrument0 + SU_ENVELOPE MONO,ATTAC(64),DECAY(64),SUSTAIN(64),RELEASE(64),GAIN(32) + SU_ENVELOPE MONO,ATTAC(64),DECAY(64),SUSTAIN(64),RELEASE(64),GAIN(32) + SU_OSCILLAT MONO,TRANSPOSE(88),DETUNE(64),PHASE(0),COLOR(128),SHAPE(64),GAIN(128),FLAGS(SINE) + SU_OSCILLAT MONO,TRANSPOSE(88),DETUNE(64),PHASE(0),COLOR(128),SHAPE(64),GAIN(128),FLAGS(SINE) + SU_MULP STEREO + SU_OUT STEREO,GAIN(128) + SU_END_INSTRUMENT +SU_END_PATCH + +%include "../src/sointu.asm" diff --git a/tests/test_polyphony.asm b/tests/test_polyphony.asm index dbe56f0..63c5348 100644 --- a/tests/test_polyphony.asm +++ b/tests/test_polyphony.asm @@ -12,7 +12,15 @@ SU_BEGIN_TRACKS SU_END_TRACKS SU_BEGIN_PATCH - SU_BEGIN_INSTRUMENT VOICES(2) ; Instrument0 + SU_BEGIN_INSTRUMENT VOICES(1) ; Instrument0 + SU_ENVELOPE MONO,ATTAC(64),DECAY(64),SUSTAIN(64),RELEASE(64),GAIN(128) + SU_ENVELOPE MONO,ATTAC(64),DECAY(64),SUSTAIN(64),RELEASE(64),GAIN(128) + SU_OSCILLAT MONO,TRANSPOSE(64),DETUNE(64),PHASE(0),COLOR(128),SHAPE(64),GAIN(128),FLAGS(SINE) + SU_OSCILLAT MONO,TRANSPOSE(64),DETUNE(64),PHASE(0),COLOR(128),SHAPE(64),GAIN(128),FLAGS(SINE) + SU_MULP STEREO + SU_OUT STEREO,GAIN(128) + SU_END_INSTRUMENT + SU_BEGIN_INSTRUMENT VOICES(1) ; Instrument1 SU_ENVELOPE MONO,ATTAC(64),DECAY(64),SUSTAIN(64),RELEASE(64),GAIN(128) SU_ENVELOPE MONO,ATTAC(64),DECAY(64),SUSTAIN(64),RELEASE(64),GAIN(128) SU_OSCILLAT MONO,TRANSPOSE(64),DETUNE(64),PHASE(0),COLOR(128),SHAPE(64),GAIN(128),FLAGS(SINE)