test: add unit test for unisons with phase = 0

This demonstrates a bug found by Virgill:
the x86 templates optimize away the phase
modulation when all phases are set to 0,
but the unisons need the phase modulation
internally to offset the phase of the different
unison oscillators.
This commit is contained in:
5684185+vsariola@users.noreply.github.com 2024-08-17 11:00:36 +03:00
parent 5bc6dc6015
commit 012ed10851
3 changed files with 23 additions and 0 deletions

View File

@ -117,6 +117,7 @@ if(WIN32) # The samples are currently only GMDLs based, and thus require Windows
regression_test(test_oscillat_sample_stereo ENVELOPE)
endif()
regression_test(test_oscillat_unison ENVELOPE)
regression_test(test_oscillat_unison_phase ENVELOPE)
regression_test(test_oscillat_unison_stereo ENVELOPE)
regression_test(test_oscillat_lfo "ENVELOPE;VCO_SINE;VCO_PULSE;FOP_MULP2")
regression_test(test_oscillat_transposemod "VCO_SINE;ENVELOPE;FOP_MULP;FOP_PUSH;SEND")

Binary file not shown.

View File

@ -0,0 +1,22 @@
bpm: 100
rowsperbeat: 4
score:
rowsperpattern: 16
length: 1
tracks:
- numvoices: 1
order: [0]
patterns: [[64, 0, 68, 0, 32, 0, 0, 0, 75, 0, 78, 0, 0, 0, 0, 0]]
patch:
- numvoices: 1
units:
- type: envelope
parameters: {attack: 32, decay: 32, gain: 128, release: 64, stereo: 0, sustain: 64}
- type: oscillator
parameters: {color: 128, detune: 0, gain: 32, lfo: 0, phase: 0, shape: 64, stereo: 0, transpose: 64, type: 1, unison: 3}
- type: mulp
parameters: {stereo: 0}
- type: push
parameters: {stereo: 0}
- type: out
parameters: {gain: 128, stereo: 1}