mirror of
https://github.com/vsariola/sointu.git
synced 2025-05-28 03:10:24 -04:00
Add tests for opcode stereo variants, squashing several bugs in the process. Implement receive opcode to test stereo sending.
This commit is contained in:
parent
f9388b028a
commit
87264c443c
@ -4,7 +4,7 @@ cmake_minimum_required(VERSION 3.15)
|
||||
# i.e. set_property(TARGET 4klang PROPERTY MSVC_RUNTIME_LIBRARY "MultiThreaded$<$<CONFIG:Debug>:Debug>")
|
||||
cmake_policy(SET CMP0091 NEW)
|
||||
|
||||
project(4klang
|
||||
project(sointu
|
||||
VERSION 3.3.2
|
||||
DESCRIPTION "A modular synthesizer for 4k/8k intros"
|
||||
LANGUAGES C CXX)
|
||||
@ -38,6 +38,6 @@ add_subdirectory(src)
|
||||
|
||||
# Testing only available if this is the main app
|
||||
# Emergency override 4KLANG_CMAKE_BUILD_TESTING provided as well
|
||||
if((CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME OR 4KLANG_CMAKE_BUILD_TESTING) AND BUILD_TESTING)
|
||||
if((CMAKE_PROJECT_NAME STREQUAL PROJECT_NAME OR SOINTU_CMAKE_BUILD_TESTING) AND BUILD_TESTING)
|
||||
add_subdirectory(tests)
|
||||
endif()
|
@ -31,7 +31,7 @@ EXPORT MANGLE_FUNC(su_op_add,0)
|
||||
fadd st0, st3
|
||||
fxch
|
||||
ret
|
||||
su_op_pop_mono:
|
||||
su_op_add_mono:
|
||||
%endif
|
||||
fadd st1
|
||||
ret
|
||||
@ -146,7 +146,7 @@ EXPORT MANGLE_FUNC(su_op_xch,0)
|
||||
jnc su_op_xch_mono
|
||||
fxch st0, st2 ; c b a d
|
||||
fxch st0, st1 ; b c a d
|
||||
fxch st0, st2 ; d c a b
|
||||
fxch st0, st3 ; d c a b
|
||||
su_op_xch_mono:
|
||||
%endif
|
||||
fxch st0, st1
|
||||
|
@ -140,7 +140,7 @@ endstruc
|
||||
USE_HOLD
|
||||
%xdefine CMDS CMDS HOLD_ID + %1,
|
||||
%if %1 == STEREO
|
||||
%define INCLUDE_STEREO_DISTORT
|
||||
%define INCLUDE_STEREO_HOLD
|
||||
%endif
|
||||
%endmacro
|
||||
|
||||
|
@ -79,8 +79,7 @@ SECT_TEXT(sunoise)
|
||||
EXPORT MANGLE_FUNC(su_op_noise,0)
|
||||
%ifdef INCLUDE_STEREO_NOISE
|
||||
jnc su_op_noise_mono
|
||||
clc
|
||||
call dword [esp]
|
||||
call su_op_noise_mono
|
||||
su_op_noise_mono:
|
||||
%endif
|
||||
call MANGLE_FUNC(FloatRandomNumber,0)
|
||||
@ -287,22 +286,22 @@ SECT_DATA(suconst)
|
||||
%endif
|
||||
|
||||
;-------------------------------------------------------------------------------
|
||||
; LOAD_VAL opcode
|
||||
; LOADVAL opcode
|
||||
;-------------------------------------------------------------------------------
|
||||
; Input: WRK : pointer to unit workspace
|
||||
; VAL : pointer to unit values as bytes
|
||||
; Output: st0 : 2*v-1, where v is the loaded value
|
||||
; Dirty: eax, edx
|
||||
; Input: edx : pointer to unit ports
|
||||
;
|
||||
; Mono version: push 2*v-1 on stack, where v is the input to port "value"
|
||||
; Stereo version: push 2*v-1 twice on stack
|
||||
;-------------------------------------------------------------------------------
|
||||
%if LOAD_VAL_ID > -1
|
||||
%if LOADVAL_ID > -1
|
||||
|
||||
SECT_TEXT(suloadvl)
|
||||
|
||||
EXPORT MANGLE_FUNC(su_op_loadval,0)
|
||||
%ifdef INCLUDE_STEREO_LOAD_VAL
|
||||
jnc su_op_loadval_mono
|
||||
call su_loadval_mono
|
||||
su_loadval_mono:
|
||||
call su_op_loadval_mono
|
||||
su_op_loadval_mono:
|
||||
%endif
|
||||
fld dword [edx+su_load_val_ports.value] ; v
|
||||
fsub dword [c_0_5] ; v-.5
|
||||
@ -310,3 +309,31 @@ su_loadval_mono:
|
||||
ret
|
||||
|
||||
%endif ; SU_USE_LOAD_VAL
|
||||
|
||||
|
||||
;-------------------------------------------------------------------------------
|
||||
; RECEIVE opcode
|
||||
;-------------------------------------------------------------------------------
|
||||
; Mono version: push l on stack, where l is the left channel received
|
||||
; Stereo version: push l r on stack
|
||||
;-------------------------------------------------------------------------------
|
||||
%if RECEIVE_ID > -1
|
||||
|
||||
SECT_TEXT(sureceiv)
|
||||
|
||||
EXPORT MANGLE_FUNC(su_op_receive,0)
|
||||
lea ecx, dword [WRK+su_unit.ports]
|
||||
%ifdef INCLUDE_STEREO_RECEIVE
|
||||
jnc su_op_receive_mono
|
||||
xor eax,eax
|
||||
fld dword [ecx+su_receive_ports.right]
|
||||
mov dword [ecx+su_receive_ports.right],eax
|
||||
su_op_receive_mono:
|
||||
%else
|
||||
xor eax,eax
|
||||
%endif
|
||||
fld dword [ecx+su_receive_ports.left]
|
||||
mov dword [ecx+su_receive_ports.left],eax
|
||||
ret
|
||||
|
||||
%endif ; RECEIVE_ID > -1
|
||||
|
@ -154,10 +154,10 @@ endstruc
|
||||
;-------------------------------------------------------------------------------
|
||||
; LOAD_VAL structs
|
||||
;-------------------------------------------------------------------------------
|
||||
%assign LOAD_VAL_ID -1
|
||||
%assign LOADVAL_ID -1
|
||||
%macro USE_LOAD_VAL 0
|
||||
%if LOAD_VAL_ID == -1
|
||||
%assign LOAD_VAL_ID CUR_ID
|
||||
%if LOADVAL_ID == -1
|
||||
%assign LOADVAL_ID CUR_ID
|
||||
%assign CUR_ID CUR_ID + 2
|
||||
%xdefine OPCODES OPCODES MANGLE_FUNC(su_op_loadval,0),
|
||||
%xdefine NUMPARAMS NUMPARAMS 1,
|
||||
@ -167,7 +167,7 @@ endstruc
|
||||
%macro SU_LOADVAL 2
|
||||
db %2
|
||||
USE_LOAD_VAL
|
||||
%xdefine CMDS CMDS LOAD_VAL_ID+%1,
|
||||
%xdefine CMDS CMDS LOADVAL_ID+%1,
|
||||
%if %1 == STEREO
|
||||
%define INCLUDE_STEREO_LOAD_VAL
|
||||
%endif
|
||||
@ -183,3 +183,30 @@ endstruc
|
||||
struc su_load_val_wrk
|
||||
.size
|
||||
endstruc
|
||||
|
||||
;-------------------------------------------------------------------------------
|
||||
; RECEIVE structs
|
||||
;-------------------------------------------------------------------------------
|
||||
%assign RECEIVE_ID -1
|
||||
%macro USE_RECEIVE 0
|
||||
%if RECEIVE_ID == -1
|
||||
%assign RECEIVE_ID CUR_ID
|
||||
%assign CUR_ID CUR_ID + 2
|
||||
%xdefine OPCODES OPCODES MANGLE_FUNC(su_op_receive,0),
|
||||
%xdefine NUMPARAMS NUMPARAMS 0,
|
||||
%endif
|
||||
%endmacro
|
||||
|
||||
%macro SU_RECEIVE 1
|
||||
USE_RECEIVE
|
||||
%xdefine CMDS CMDS RECEIVE_ID+%1,
|
||||
%if %1 == STEREO
|
||||
%define INCLUDE_STEREO_RECEIVE
|
||||
%endif
|
||||
%endmacro
|
||||
|
||||
struc su_receive_ports
|
||||
.params ; receive does not actually have params, left and right only through send
|
||||
.left resd 1
|
||||
.right resd 1
|
||||
endstruc
|
||||
|
@ -8,8 +8,8 @@ function(regression_test testname)
|
||||
add_executable(${testname} ${source}.asm test_renderer.c)
|
||||
|
||||
# the tests include the entire ASM but we still want to rebuild when they change
|
||||
file(GLOB FOURKLANG ${PROJECT_SOURCE_DIR}/src/*.inc ${PROJECT_SOURCE_DIR}/src/*.asm ${PROJECT_SOURCE_DIR}/src/opcodes/*.asm ${PROJECT_SOURCE_DIR}/src/opcodes/*.inc)
|
||||
set_source_files_properties(${source}.asm PROPERTIES OBJECT_DEPENDS "${FOURKLANG}")
|
||||
file(GLOB SOINTU ${PROJECT_SOURCE_DIR}/src/*.inc ${PROJECT_SOURCE_DIR}/src/*.asm ${PROJECT_SOURCE_DIR}/src/opcodes/*.asm ${PROJECT_SOURCE_DIR}/src/opcodes/*.inc)
|
||||
set_source_files_properties(${source}.asm PROPERTIES OBJECT_DEPENDS "${SOINTU}")
|
||||
set_source_files_properties(${FOURKLANG} PROPERTIES HEADER_FILE_ONLY TRUE)
|
||||
|
||||
add_test(${testname} ${testname})
|
||||
@ -40,22 +40,35 @@ function(regression_test testname)
|
||||
endfunction(regression_test)
|
||||
|
||||
regression_test(test_envelope "" ENVELOPE)
|
||||
regression_test(test_loadval "" LOAD)
|
||||
regression_test(test_send "" SEND)
|
||||
regression_test(test_send_global)
|
||||
regression_test(test_envelope_stereo ENVELOPE)
|
||||
regression_test(test_loadval "" LOADVAL)
|
||||
regression_test(test_loadval_stereo LOADVAL LOADVAL_STEREO)
|
||||
regression_test(test_send LOADVAL SEND)
|
||||
regression_test(test_send_stereo SEND)
|
||||
regression_test(test_send_global SEND)
|
||||
regression_test(test_receive SEND RECEIVE)
|
||||
regression_test(test_receive_stereo RECEIVE)
|
||||
regression_test(test_panning ENVELOPE PANNING)
|
||||
regression_test(test_panning_stereo PANNING)
|
||||
regression_test(test_multiple_instruments ENVELOPE)
|
||||
regression_test(test_pop LOAD FOP_POP)
|
||||
regression_test(test_addp LOAD)
|
||||
regression_test(test_mulp LOAD FOP_MULP)
|
||||
regression_test(test_push "LOAD;FOP_POP" FOP_PUSH)
|
||||
regression_test(test_xch LOAD)
|
||||
regression_test(test_add LOAD)
|
||||
regression_test(test_mul LOAD)
|
||||
regression_test(test_addp_stereo LOAD)
|
||||
regression_test(test_mulp_stereo LOAD FOP_MULP2)
|
||||
regression_test(test_pop LOADVAL POP)
|
||||
regression_test(test_pop_stereo POP)
|
||||
regression_test(test_addp LOADVAL)
|
||||
regression_test(test_addp_stereo LOADVAL)
|
||||
regression_test(test_mulp LOADVAL FOP_MULP)
|
||||
regression_test(test_mulp_stereo LOADVAL FOP_MULP2)
|
||||
regression_test(test_push "LOADVAL;POP" FOP_PUSH)
|
||||
regression_test(test_push_stereo PUSH)
|
||||
regression_test(test_xch LOADVAL)
|
||||
regression_test(test_xch_stereo LOADVAL)
|
||||
regression_test(test_add LOADVAL)
|
||||
regression_test(test_add_stereo LOADVAL)
|
||||
regression_test(test_mul LOADVAL)
|
||||
regression_test(test_mul_stereo LOADVAL)
|
||||
regression_test(test_loadnote)
|
||||
regression_test(test_noise ENVELOPE VCO_NOISE)
|
||||
regression_test(test_loadnote_stereo)
|
||||
regression_test(test_noise ENVELOPE NOISE)
|
||||
regression_test(test_noise_stereo NOISE)
|
||||
regression_test(test_oscillat_sine ENVELOPE VCO_SINE)
|
||||
regression_test(test_oscillat_trisaw ENVELOPE)
|
||||
regression_test(test_oscillat_pulse ENVELOPE VCO_PULSE)
|
||||
@ -72,8 +85,9 @@ regression_test(test_oscillat_gainmod "VCO_SINE;ENVELOPE;FOP_MULP;FOP_PUSH;SEND"
|
||||
regression_test(test_distort ENVELOPE)
|
||||
regression_test(test_distort_mod "VCO_SINE;ENVELOPE;SEND")
|
||||
regression_test(test_distort_stereo ENVELOPE)
|
||||
regression_test(test_hold ENVELOPE)
|
||||
regression_test(test_hold ENVELOPE HOLD)
|
||||
regression_test(test_hold_mod "VCO_SINE;ENVELOPE;SEND")
|
||||
regression_test(test_hold_stereo HOLD)
|
||||
|
||||
regression_test(test_filter_band "VCO_SINE;ENVELOPE;FOP_MULP")
|
||||
regression_test(test_filter_low "VCO_SINE;ENVELOPE;FOP_MULP")
|
||||
@ -85,7 +99,7 @@ regression_test(test_filter_resmod "VCO_SINE;ENVELOPE;FOP_MULP;SEND")
|
||||
|
||||
regression_test(test_delay "ENVELOPE;FOP_MULP;PANNING;VCO_SINE")
|
||||
regression_test(test_delay_stereo "ENVELOPE;FOP_MULP;PANNING;VCO_SINE")
|
||||
regression_test(test_delay_notetracking "ENVELOPE;FOP_MULP;PANNING;VCO_NOISE")
|
||||
regression_test(test_delay_notetracking "ENVELOPE;FOP_MULP;PANNING;NOISE")
|
||||
regression_test(test_delay_reverb "ENVELOPE;FOP_MULP;PANNING;VCO_SINE")
|
||||
regression_test(test_delay_feedbackmod "ENVELOPE;FOP_MULP;PANNING;VCO_SINE;SEND")
|
||||
regression_test(test_delay_pregainmod "ENVELOPE;FOP_MULP;PANNING;VCO_SINE;SEND")
|
||||
|
BIN
tests/expected_output/test_add_stereo.raw
Normal file
BIN
tests/expected_output/test_add_stereo.raw
Normal file
Binary file not shown.
BIN
tests/expected_output/test_envelope_stereo.raw
Normal file
BIN
tests/expected_output/test_envelope_stereo.raw
Normal file
Binary file not shown.
BIN
tests/expected_output/test_hold_stereo.raw
Normal file
BIN
tests/expected_output/test_hold_stereo.raw
Normal file
Binary file not shown.
BIN
tests/expected_output/test_loadnote_stereo.raw
Normal file
BIN
tests/expected_output/test_loadnote_stereo.raw
Normal file
Binary file not shown.
BIN
tests/expected_output/test_loadval_stereo.raw
Normal file
BIN
tests/expected_output/test_loadval_stereo.raw
Normal file
Binary file not shown.
BIN
tests/expected_output/test_mul_stereo.raw
Normal file
BIN
tests/expected_output/test_mul_stereo.raw
Normal file
Binary file not shown.
BIN
tests/expected_output/test_noise_stereo.raw
Normal file
BIN
tests/expected_output/test_noise_stereo.raw
Normal file
Binary file not shown.
BIN
tests/expected_output/test_panning_stereo.raw
Normal file
BIN
tests/expected_output/test_panning_stereo.raw
Normal file
Binary file not shown.
BIN
tests/expected_output/test_pop_stereo.raw
Normal file
BIN
tests/expected_output/test_pop_stereo.raw
Normal file
Binary file not shown.
BIN
tests/expected_output/test_push_stereo.raw
Normal file
BIN
tests/expected_output/test_push_stereo.raw
Normal file
Binary file not shown.
BIN
tests/expected_output/test_receive.raw
Normal file
BIN
tests/expected_output/test_receive.raw
Normal file
Binary file not shown.
BIN
tests/expected_output/test_receive_stereo.raw
Normal file
BIN
tests/expected_output/test_receive_stereo.raw
Normal file
Binary file not shown.
BIN
tests/expected_output/test_send_stereo.raw
Normal file
BIN
tests/expected_output/test_send_stereo.raw
Normal file
Binary file not shown.
BIN
tests/expected_output/test_xch_stereo.raw
Normal file
BIN
tests/expected_output/test_xch_stereo.raw
Normal file
Binary file not shown.
29
tests/test_add_stereo.asm
Normal file
29
tests/test_add_stereo.asm
Normal file
@ -0,0 +1,29 @@
|
||||
%define BPM 100
|
||||
%define SINGLE_FILE
|
||||
%define USE_SECTIONS
|
||||
|
||||
%include "../src/sointu.inc"
|
||||
|
||||
SU_BEGIN_PATTERNS
|
||||
PATTERN 64, HLD, HLD, HLD, HLD, HLD, HLD, HLD, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
END_PATTERNS
|
||||
|
||||
SU_BEGIN_TRACKS
|
||||
TRACK VOICES(1),0
|
||||
SU_END_TRACKS
|
||||
|
||||
SU_BEGIN_PATCH
|
||||
SU_BEGIN_INSTRUMENT VOICES(1) ; Instrument0
|
||||
SU_LOADVAL MONO,VALUE(32)
|
||||
SU_LOADVAL MONO,VALUE(32)
|
||||
SU_LOADVAL MONO,VALUE(64)
|
||||
SU_LOADVAL MONO,VALUE(128)
|
||||
SU_ADD STEREO
|
||||
SU_XCH STEREO
|
||||
SU_POP MONO
|
||||
SU_POP MONO
|
||||
SU_OUT STEREO,GAIN(128)
|
||||
SU_END_INSTRUMENT
|
||||
SU_END_PATCH
|
||||
|
||||
%include "../src/sointu.asm"
|
21
tests/test_envelope_stereo.asm
Normal file
21
tests/test_envelope_stereo.asm
Normal file
@ -0,0 +1,21 @@
|
||||
%define BPM 100
|
||||
%define USE_SECTIONS
|
||||
|
||||
%include "../src/sointu.inc"
|
||||
|
||||
SU_BEGIN_PATTERNS
|
||||
PATTERN 64, HLD, HLD, HLD, HLD, HLD, HLD, HLD, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
SU_END_PATTERNS
|
||||
|
||||
SU_BEGIN_TRACKS
|
||||
TRACK VOICES(1),0
|
||||
SU_END_TRACKS
|
||||
|
||||
SU_BEGIN_PATCH
|
||||
SU_BEGIN_INSTRUMENT VOICES(1) ; Instrument0
|
||||
SU_ENVELOPE STEREO,ATTAC(64),DECAY(64),SUSTAIN(64),RELEASE(80),GAIN(128)
|
||||
SU_OUT STEREO,GAIN(128)
|
||||
SU_END_INSTRUMENT
|
||||
SU_END_PATCH
|
||||
|
||||
%include "../src/sointu.asm"
|
23
tests/test_hold_stereo.asm
Normal file
23
tests/test_hold_stereo.asm
Normal file
@ -0,0 +1,23 @@
|
||||
%define BPM 100
|
||||
%define USE_SECTIONS
|
||||
|
||||
%include "../src/sointu.inc"
|
||||
|
||||
SU_BEGIN_PATTERNS
|
||||
PATTERN 64, HLD, HLD, HLD, HLD, HLD, HLD, HLD, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
SU_END_PATTERNS
|
||||
|
||||
SU_BEGIN_TRACKS
|
||||
TRACK VOICES(1),0
|
||||
SU_END_TRACKS
|
||||
|
||||
SU_BEGIN_PATCH
|
||||
SU_BEGIN_INSTRUMENT VOICES(1) ; Instrument0
|
||||
SU_ENVELOPE MONO,ATTAC(64),DECAY(64),SUSTAIN(64),RELEASE(80),GAIN(128)
|
||||
SU_ENVELOPE MONO,ATTAC(64),DECAY(64),SUSTAIN(64),RELEASE(80),GAIN(128)
|
||||
SU_HOLD STEREO,HOLDFREQ(3)
|
||||
SU_OUT STEREO,GAIN(128)
|
||||
SU_END_INSTRUMENT
|
||||
SU_END_PATCH
|
||||
|
||||
%include "../src/sointu.asm"
|
@ -14,7 +14,8 @@ SU_END_TRACKS
|
||||
|
||||
SU_BEGIN_PATCH
|
||||
SU_BEGIN_INSTRUMENT VOICES(1) ; Instrument0
|
||||
SU_LOADNOTE STEREO
|
||||
SU_LOADNOTE MONO
|
||||
SU_LOADNOTE MONO
|
||||
SU_OUT STEREO,GAIN(128)
|
||||
SU_END_INSTRUMENT
|
||||
SU_END_PATCH
|
||||
|
22
tests/test_loadnote_stereo.asm
Normal file
22
tests/test_loadnote_stereo.asm
Normal file
@ -0,0 +1,22 @@
|
||||
%define BPM 100
|
||||
%define SINGLE_FILE
|
||||
%define USE_SECTIONS
|
||||
|
||||
%include "../src/sointu.inc"
|
||||
|
||||
SU_BEGIN_PATTERNS
|
||||
PATTERN 64, 0, 68, 0, 32, 0, 0, 0, 75, 0, 78, 0, 0, 0, 0, 0
|
||||
SU_END_PATTERNS
|
||||
|
||||
SU_BEGIN_TRACKS
|
||||
TRACK VOICES(1),0
|
||||
SU_END_TRACKS
|
||||
|
||||
SU_BEGIN_PATCH
|
||||
SU_BEGIN_INSTRUMENT VOICES(1) ; Instrument0
|
||||
SU_LOADNOTE STEREO
|
||||
SU_OUT STEREO,GAIN(128)
|
||||
SU_END_INSTRUMENT
|
||||
SU_END_PATCH
|
||||
|
||||
%include "../src/sointu.asm"
|
@ -14,8 +14,8 @@ SU_END_TRACKS
|
||||
|
||||
SU_BEGIN_PATCH
|
||||
SU_BEGIN_INSTRUMENT VOICES(1) ; Instrument0
|
||||
SU_LOADVAL MONO,VALUE(40)
|
||||
SU_LOADVAL MONO,VALUE(80)
|
||||
SU_LOADVAL MONO,VALUE(40)
|
||||
SU_LOADVAL MONO,VALUE(80)
|
||||
SU_OUT STEREO,GAIN(128)
|
||||
SU_END_INSTRUMENT
|
||||
SU_END_PATCH
|
||||
|
22
tests/test_loadval_stereo.asm
Normal file
22
tests/test_loadval_stereo.asm
Normal file
@ -0,0 +1,22 @@
|
||||
%define BPM 100
|
||||
%define SINGLE_FILE
|
||||
%define USE_SECTIONS
|
||||
|
||||
%include "../src/sointu.inc"
|
||||
|
||||
SU_BEGIN_PATTERNS
|
||||
PATTERN 64, HLD, HLD, HLD, HLD, HLD, HLD, HLD, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
SU_END_PATTERNS
|
||||
|
||||
SU_BEGIN_TRACKS
|
||||
TRACK VOICES(1),0
|
||||
SU_END_TRACKS
|
||||
|
||||
SU_BEGIN_PATCH
|
||||
SU_BEGIN_INSTRUMENT VOICES(1) ; Instrument0
|
||||
SU_LOADVAL STEREO,VALUE(40)
|
||||
SU_OUT STEREO,GAIN(128)
|
||||
SU_END_INSTRUMENT
|
||||
SU_END_PATCH
|
||||
|
||||
%include "../src/sointu.asm"
|
29
tests/test_mul_stereo.asm
Normal file
29
tests/test_mul_stereo.asm
Normal file
@ -0,0 +1,29 @@
|
||||
%define BPM 100
|
||||
%define SINGLE_FILE
|
||||
%define USE_SECTIONS
|
||||
|
||||
%include "../src/sointu.inc"
|
||||
|
||||
SU_BEGIN_PATTERNS
|
||||
PATTERN 64, HLD, HLD, HLD, HLD, HLD, HLD, HLD, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
SU_END_PATTERNS
|
||||
|
||||
SU_BEGIN_TRACKS
|
||||
TRACK VOICES(1),0
|
||||
SU_END_TRACKS
|
||||
|
||||
SU_BEGIN_PATCH
|
||||
SU_BEGIN_INSTRUMENT VOICES(1) ; Instrument0
|
||||
SU_LOADVAL MONO,VALUE(96)
|
||||
SU_LOADVAL MONO,VALUE(128)
|
||||
SU_LOADVAL MONO,VALUE(0)
|
||||
SU_LOADVAL MONO,VALUE(96)
|
||||
SU_MUL STEREO
|
||||
SU_XCH STEREO
|
||||
SU_POP MONO
|
||||
SU_POP MONO
|
||||
SU_OUT STEREO,GAIN(128)
|
||||
SU_END_INSTRUMENT
|
||||
SU_END_PATCH
|
||||
|
||||
%include "../src/sointu.asm"
|
@ -17,11 +17,11 @@ SU_BEGIN_PATCH
|
||||
SU_BEGIN_INSTRUMENT VOICES(1) ; Instrument0
|
||||
SU_LOADVAL MONO,VALUE(96)
|
||||
SU_LOADVAL MONO,VALUE(0)
|
||||
SU_MULP MONO
|
||||
SU_MULP MONO
|
||||
SU_LOADVAL MONO,VALUE(96)
|
||||
SU_LOADVAL MONO,VALUE(128)
|
||||
SU_MULP MONO
|
||||
SU_OUT STEREO,GAIN(128)
|
||||
SU_MULP MONO
|
||||
SU_OUT STEREO,GAIN(128)
|
||||
SU_END_INSTRUMENT
|
||||
SU_END_PATCH
|
||||
|
||||
|
@ -13,11 +13,12 @@ SU_END_TRACKS
|
||||
|
||||
SU_BEGIN_PATCH
|
||||
SU_BEGIN_INSTRUMENT VOICES(1) ; Instrument0
|
||||
SU_ENVELOPE MONO, ATTAC(32),DECAY(32),SUSTAIN(64),RELEASE(64),GAIN(128)
|
||||
SU_ENVELOPE MONO, ATTAC(32),DECAY(32),SUSTAIN(64),RELEASE(64),GAIN(128)
|
||||
SU_NOISE MONO, SHAPE(64),GAIN(128)
|
||||
SU_MULP MONO
|
||||
SU_ENVELOPE MONO, ATTAC(32),DECAY(32),SUSTAIN(64),RELEASE(64),GAIN(128)
|
||||
SU_NOISE MONO, SHAPE(96),GAIN(128)
|
||||
SU_MULP STEREO
|
||||
SU_MULP MONO
|
||||
SU_OUT STEREO, GAIN(128)
|
||||
SU_END_INSTRUMENT
|
||||
SU_END_PATCH
|
||||
|
24
tests/test_noise_stereo.asm
Normal file
24
tests/test_noise_stereo.asm
Normal file
@ -0,0 +1,24 @@
|
||||
%define BPM 100
|
||||
%define USE_SECTIONS
|
||||
|
||||
%include "../src/sointu.inc"
|
||||
|
||||
SU_BEGIN_PATTERNS
|
||||
PATTERN 64, 0, 68, 0, 32, 0, 0, 0, 75, 0, 78, 0, 0, 0, 0, 0,
|
||||
SU_END_PATTERNS
|
||||
|
||||
SU_BEGIN_TRACKS
|
||||
TRACK VOICES(1),0
|
||||
SU_END_TRACKS
|
||||
|
||||
SU_BEGIN_PATCH
|
||||
SU_BEGIN_INSTRUMENT VOICES(1) ; Instrument0
|
||||
SU_NOISE STEREO, SHAPE(96),GAIN(128)
|
||||
SU_ENVELOPE MONO, ATTAC(32),DECAY(32),SUSTAIN(64),RELEASE(64),GAIN(128)
|
||||
SU_ENVELOPE MONO, ATTAC(32),DECAY(32),SUSTAIN(64),RELEASE(64),GAIN(128)
|
||||
SU_MULP STEREO
|
||||
SU_OUT STEREO, GAIN(128)
|
||||
SU_END_INSTRUMENT
|
||||
SU_END_PATCH
|
||||
|
||||
%include "../src/sointu.asm"
|
24
tests/test_panning_stereo.asm
Normal file
24
tests/test_panning_stereo.asm
Normal file
@ -0,0 +1,24 @@
|
||||
%define BPM 100
|
||||
%define SINGLE_FILE
|
||||
%define USE_SECTIONS
|
||||
|
||||
%include "../src/sointu.inc"
|
||||
|
||||
SU_BEGIN_PATTERNS
|
||||
PATTERN 64, HLD, HLD, HLD, HLD, HLD, HLD, HLD, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
SU_END_PATTERNS
|
||||
|
||||
SU_BEGIN_TRACKS
|
||||
TRACK VOICES(1),0
|
||||
SU_END_TRACKS
|
||||
|
||||
SU_BEGIN_PATCH
|
||||
SU_BEGIN_INSTRUMENT VOICES(1) ; Instrument0
|
||||
SU_ENVELOPE MONO,ATTAC(64),DECAY(64),SUSTAIN(64),RELEASE(80),GAIN(128)
|
||||
SU_ENVELOPE MONO,ATTAC(64),DECAY(64),SUSTAIN(64),RELEASE(80),GAIN(128)
|
||||
SU_PAN STEREO,PANNING(40)
|
||||
SU_OUT STEREO,GAIN(128)
|
||||
SU_END_INSTRUMENT
|
||||
SU_END_PATCH
|
||||
|
||||
%include "../src/sointu.asm"
|
26
tests/test_pop_stereo.asm
Normal file
26
tests/test_pop_stereo.asm
Normal file
@ -0,0 +1,26 @@
|
||||
%define BPM 100
|
||||
%define SINGLE_FILE
|
||||
%define USE_SECTIONS
|
||||
|
||||
%include "../src/sointu.inc"
|
||||
|
||||
SU_BEGIN_PATTERNS
|
||||
PATTERN 64, HLD, HLD, HLD, HLD, HLD, HLD, HLD, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
SU_END_PATTERNS
|
||||
|
||||
SU_BEGIN_TRACKS
|
||||
TRACK VOICES(1),0
|
||||
SU_END_TRACKS
|
||||
|
||||
SU_BEGIN_PATCH
|
||||
SU_BEGIN_INSTRUMENT VOICES(1) ; Instrument0
|
||||
SU_LOADVAL MONO,VALUE(32)
|
||||
SU_LOADVAL MONO,VALUE(96)
|
||||
SU_LOADVAL MONO,VALUE(0)
|
||||
SU_LOADVAL MONO,VALUE(0)
|
||||
SU_POP STEREO
|
||||
SU_OUT STEREO,GAIN(128)
|
||||
SU_END_INSTRUMENT
|
||||
SU_END_PATCH
|
||||
|
||||
%include "../src/sointu.asm"
|
26
tests/test_push_stereo.asm
Normal file
26
tests/test_push_stereo.asm
Normal file
@ -0,0 +1,26 @@
|
||||
%define BPM 100
|
||||
%define SINGLE_FILE
|
||||
%define USE_SECTIONS
|
||||
|
||||
%include "../src/sointu.inc"
|
||||
|
||||
SU_BEGIN_PATTERNS
|
||||
PATTERN 64, HLD, HLD, HLD, HLD, HLD, HLD, HLD, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
SU_END_PATTERNS
|
||||
|
||||
SU_BEGIN_TRACKS
|
||||
TRACK VOICES(1),0
|
||||
SU_END_TRACKS
|
||||
|
||||
SU_BEGIN_PATCH
|
||||
SU_BEGIN_INSTRUMENT VOICES(1) ; Instrument0
|
||||
SU_LOADVAL MONO,VALUE(32)
|
||||
SU_LOADVAL MONO,VALUE(96)
|
||||
SU_PUSH STEREO
|
||||
SU_POP MONO
|
||||
SU_POP MONO
|
||||
SU_OUT STEREO,GAIN(128)
|
||||
SU_END_INSTRUMENT
|
||||
SU_END_PATCH
|
||||
|
||||
%include "../src/sointu.asm"
|
28
tests/test_receive.asm
Normal file
28
tests/test_receive.asm
Normal file
@ -0,0 +1,28 @@
|
||||
%define BPM 100
|
||||
%define SINGLE_FILE
|
||||
%define USE_SECTIONS
|
||||
|
||||
%include "../src/sointu.inc"
|
||||
|
||||
SU_BEGIN_PATTERNS
|
||||
PATTERN 64, HLD, HLD, HLD, HLD, HLD, HLD, HLD, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
SU_END_PATTERNS
|
||||
|
||||
SU_BEGIN_TRACKS
|
||||
TRACK VOICES(1),0
|
||||
SU_END_TRACKS
|
||||
|
||||
SU_BEGIN_PATCH
|
||||
SU_BEGIN_INSTRUMENT VOICES(1) ; Instrument0
|
||||
SU_LOADVAL MONO,VALUE(32) ; should receive -0.5
|
||||
SU_SEND MONO,AMOUNT(128),PORT(5,receive,left) ; should send -0.25
|
||||
SU_SEND MONO,AMOUNT(128),PORT(6,receive,left) + SEND_POP ; should send -0.25
|
||||
SU_LOADVAL MONO,VALUE(128) ; should receive 1
|
||||
SU_SEND MONO,AMOUNT(128),PORT(6,receive,left) + SEND_POP ; should send 0.5
|
||||
SU_RECEIVE MONO ; should receive -0.5
|
||||
SU_RECEIVE MONO ; should receive 0.5
|
||||
SU_OUT STEREO,GAIN(128)
|
||||
SU_END_INSTRUMENT
|
||||
SU_END_PATCH
|
||||
|
||||
%include "../src/sointu.asm"
|
27
tests/test_receive_stereo.asm
Normal file
27
tests/test_receive_stereo.asm
Normal file
@ -0,0 +1,27 @@
|
||||
%define BPM 100
|
||||
%define SINGLE_FILE
|
||||
%define USE_SECTIONS
|
||||
|
||||
%include "../src/sointu.inc"
|
||||
|
||||
SU_BEGIN_PATTERNS
|
||||
PATTERN 64, HLD, HLD, HLD, HLD, HLD, HLD, HLD, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
SU_END_PATTERNS
|
||||
|
||||
SU_BEGIN_TRACKS
|
||||
TRACK VOICES(1),0
|
||||
SU_END_TRACKS
|
||||
|
||||
SU_BEGIN_PATCH
|
||||
SU_BEGIN_INSTRUMENT VOICES(1) ; Instrument0
|
||||
SU_LOADVAL MONO,VALUE(32) ; should receive -0.5
|
||||
SU_SEND MONO,AMOUNT(128),PORT(5,receive,right) ; should send -0.25
|
||||
SU_SEND MONO,AMOUNT(128),PORT(5,receive,left) + SEND_POP ; should send -0.25
|
||||
SU_LOADVAL MONO,VALUE(128) ; should receive 1
|
||||
SU_SEND MONO,AMOUNT(128),PORT(5,receive,left) + SEND_POP ; should send 0.5
|
||||
SU_RECEIVE STEREO; should receive 0.5 -0.5
|
||||
SU_OUT STEREO,GAIN(128)
|
||||
SU_END_INSTRUMENT
|
||||
SU_END_PATCH
|
||||
|
||||
%include "../src/sointu.asm"
|
28
tests/test_send_stereo.asm
Normal file
28
tests/test_send_stereo.asm
Normal file
@ -0,0 +1,28 @@
|
||||
%define BPM 100
|
||||
%define SINGLE_FILE
|
||||
%define USE_SECTIONS
|
||||
|
||||
%include "../src/sointu.inc"
|
||||
|
||||
SU_BEGIN_PATTERNS
|
||||
PATTERN 64, HLD, HLD, HLD, HLD, HLD, HLD, HLD, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
SU_END_PATTERNS
|
||||
|
||||
SU_BEGIN_TRACKS
|
||||
TRACK VOICES(1),0
|
||||
SU_END_TRACKS
|
||||
|
||||
SU_BEGIN_PATCH
|
||||
SU_BEGIN_INSTRUMENT VOICES(1) ; Instrument0
|
||||
SU_LOADVAL MONO,VALUE(0)
|
||||
SU_LOADVAL MONO,VALUE(0)
|
||||
SU_SEND STEREO,AMOUNT(96),PORT(6,receive,left) + SEND_POP
|
||||
SU_LOADVAL MONO,VALUE(64)
|
||||
SU_LOADVAL MONO,VALUE(128)
|
||||
SU_SEND STEREO,AMOUNT(128),PORT(6,receive,left) + SEND_POP
|
||||
SU_RECEIVE STEREO; should receive 0.5 -0.5
|
||||
SU_OUT STEREO,GAIN(128)
|
||||
SU_END_INSTRUMENT
|
||||
SU_END_PATCH
|
||||
|
||||
%include "../src/sointu.asm"
|
@ -1,5 +1,4 @@
|
||||
%define BPM 100
|
||||
%define SINGLE_FILE
|
||||
%define USE_SECTIONS
|
||||
|
||||
%include "../src/sointu.inc"
|
||||
@ -16,8 +15,8 @@ SU_BEGIN_PATCH
|
||||
SU_BEGIN_INSTRUMENT VOICES(1) ; Instrument0
|
||||
SU_LOADVAL MONO,VALUE(96)
|
||||
SU_LOADVAL MONO,VALUE(32)
|
||||
SU_XCH MONO
|
||||
SU_OUT STEREO,GAIN(128)
|
||||
SU_XCH MONO
|
||||
SU_OUT STEREO,GAIN(128)
|
||||
SU_END_INSTRUMENT
|
||||
SU_END_PATCH
|
||||
|
||||
|
27
tests/test_xch_stereo.asm
Normal file
27
tests/test_xch_stereo.asm
Normal file
@ -0,0 +1,27 @@
|
||||
%define BPM 100
|
||||
%define USE_SECTIONS
|
||||
|
||||
%include "../src/sointu.inc"
|
||||
|
||||
SU_BEGIN_PATTERNS
|
||||
PATTERN 64, HLD, HLD, HLD, HLD, HLD, HLD, HLD, 0, 0, 0, 0, 0, 0, 0, 0
|
||||
SU_END_PATTERNS
|
||||
|
||||
SU_BEGIN_TRACKS
|
||||
TRACK VOICES(1),0
|
||||
SU_END_TRACKS
|
||||
|
||||
SU_BEGIN_PATCH
|
||||
SU_BEGIN_INSTRUMENT VOICES(1) ; Instrument0
|
||||
SU_LOADVAL MONO,VALUE(0)
|
||||
SU_LOADVAL MONO,VALUE(128)
|
||||
SU_LOADVAL MONO,VALUE(32)
|
||||
SU_LOADVAL MONO,VALUE(96)
|
||||
SU_XCH STEREO
|
||||
SU_POP MONO
|
||||
SU_POP MONO
|
||||
SU_OUT STEREO,GAIN(128)
|
||||
SU_END_INSTRUMENT
|
||||
SU_END_PATCH
|
||||
|
||||
%include "../src/sointu.asm"
|
Loading…
Reference in New Issue
Block a user