diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt index f2c5d4b..6fbfebd 100644 --- a/tests/CMakeLists.txt +++ b/tests/CMakeLists.txt @@ -91,4 +91,6 @@ regression_test(test_dll_im_modulation "ENVELOPE;FOP_MULP;PANNING;VCO_SINE;STORE regression_test(test_envelope_modulation "VCO_SINE;ENVELOPE;STORE") regression_test(test_envelope_16bit ENVELOPE "" test_envelope) -target_compile_definitions(test_envelope_16bit PUBLIC GO4K_USE_16BIT_OUTPUT) \ No newline at end of file +target_compile_definitions(test_envelope_16bit PUBLIC GO4K_USE_16BIT_OUTPUT) + +regression_test(test_polyphony "ENVELOPE;VCO_SINE") diff --git a/tests/expected_output/test_polyphony.raw b/tests/expected_output/test_polyphony.raw new file mode 100644 index 0000000..4c12db0 Binary files /dev/null and b/tests/expected_output/test_polyphony.raw differ diff --git a/tests/test_polyphony.asm b/tests/test_polyphony.asm new file mode 100644 index 0000000..ff580e5 --- /dev/null +++ b/tests/test_polyphony.asm @@ -0,0 +1,72 @@ +%define MAX_INSTRUMENTS 1 +%define BPM 100 +%define MAX_PATTERNS 1 +%define SINGLE_FILE +%define USE_SECTIONS +%define MAX_VOICES 2 + +%include "../src/4klang.asm" + +; //------------------------------------------------------------------------------- +; // Pattern Data +; //---------------------------------------------------------------------------------------- +SECT_DATA(g4kmuc1) + +EXPORT MANGLE_DATA(go4k_patterns) + db 64, HLD, 68, HLD, 32, HLD, HLD, HLD, 75, HLD, 78, HLD, HLD, 0, 0, 0, + +; //---------------------------------------------------------------------------------------- +; // Pattern Index List +; //---------------------------------------------------------------------------------------- +SECT_DATA(g4kmuc2) + +EXPORT MANGLE_DATA(go4k_pattern_lists) +Instrument0List db 0, + +; //---------------------------------------------------------------------------------------- +; // Instrument Commands +; //---------------------------------------------------------------------------------------- +SECT_DATA(g4kmuc3) + +EXPORT MANGLE_DATA(go4k_synth_instructions) +GO4K_BEGIN_CMDDEF(Instrument0) + db GO4K_ENV_ID + db GO4K_ENV_ID + db GO4K_VCO_ID + db GO4K_VCO_ID + db GO4K_FOP_ID + db GO4K_OUT_ID +GO4K_END_CMDDEF +;// global commands +GO4K_BEGIN_CMDDEF(Global) + db GO4K_ACC_ID + db GO4K_OUT_ID +GO4K_END_CMDDEF +go4k_synth_instructions_end +; //---------------------------------------------------------------------------------------- +; // Intrument Data +; //---------------------------------------------------------------------------------------- +SECT_DATA(g4kmuc4) + +EXPORT MANGLE_DATA(go4k_synth_parameter_values) +GO4K_BEGIN_PARAMDEF(Instrument0) + GO4K_ENV ATTAC(64),DECAY(64),SUSTAIN(64),RELEASE(64),GAIN(128) + GO4K_ENV ATTAC(64),DECAY(64),SUSTAIN(64),RELEASE(64),GAIN(128) + GO4K_VCO TRANSPOSE(64),DETUNE(64),PHASE(0),GATES(0),COLOR(128),SHAPE(64),GAIN(128),FLAGS(SINE) + GO4K_VCO TRANSPOSE(64),DETUNE(64),PHASE(0),GATES(0),COLOR(128),SHAPE(64),GAIN(128),FLAGS(SINE) + GO4K_FOP OP(FOP_MULP2) + GO4K_OUT GAIN(128), AUXSEND(0) +GO4K_END_PARAMDEF +;// global parameters +GO4K_BEGIN_PARAMDEF(Global) + GO4K_ACC ACCTYPE(OUTPUT) + GO4K_OUT GAIN(128), AUXSEND(0) +GO4K_END_PARAMDEF + +; //---------------------------------------------------------------------------------------- +; // Export MAX_SAMPLES for test_renderer +; //---------------------------------------------------------------------------------------- +SECT_DATA(g4krender) + +EXPORT MANGLE_DATA(test_max_samples) + dd MAX_SAMPLES \ No newline at end of file