Change LOCALPORT and GLOBALPORT macros so that SU_SEND commands are easier to parse.

The new format is to give either 5 or 6 parameters to SU_SEND, corresponding to local and global send, respectively. For example, a global send:
        SU_SEND     MONO,AMOUNT(128),VOICE(2),UNIT(0),PORT(1),FLAGS(SEND_POP)

The SU_SEND macro does the address packing into word.
This commit is contained in:
Veikko Sariola
2020-11-04 23:11:51 +02:00
parent 4eaa54ecee
commit d99cfd92d9
24 changed files with 59 additions and 49 deletions

View File

@ -19,8 +19,8 @@ BEGIN_PATCH
SU_OSCILLAT MONO,TRANSPOSE(88),DETUNE(64),PHASE(0),COLOR(128),SHAPE(64),GAIN(128),FLAGS(TRISAW)
SU_OSCILLAT MONO,TRANSPOSE(88),DETUNE(64),PHASE(0),COLOR(128),SHAPE(64),GAIN(128),FLAGS(TRISAW)
SU_MULP STEREO
SU_SEND MONO,AMOUNT(128),GLOBALPORT(2,0,0) + SEND_POP
SU_SEND MONO,AMOUNT(128),GLOBALPORT(2,0,1) + SEND_POP
SU_SEND MONO,AMOUNT(128),VOICE(2),UNIT(0),PORT(0),FLAGS(SEND_POP)
SU_SEND MONO,AMOUNT(128),VOICE(2),UNIT(0),PORT(1),FLAGS(SEND_POP)
END_INSTRUMENT
BEGIN_INSTRUMENT VOICES(1) ; Instrument0
SU_ENVELOPE MONO,ATTAC(64),DECAY(64),SUSTAIN(64),RELEASE(64),GAIN(128)
@ -28,8 +28,8 @@ BEGIN_PATCH
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_SEND MONO,AMOUNT(128),GLOBALPORT(2,0,0) + SEND_POP
SU_SEND MONO,AMOUNT(128),GLOBALPORT(2,0,1) + SEND_POP
SU_SEND MONO,AMOUNT(128),VOICE(2),UNIT(0),PORT(0),FLAGS(SEND_POP)
SU_SEND MONO,AMOUNT(128),VOICE(2),UNIT(0),PORT(1),FLAGS(SEND_POP)
END_INSTRUMENT
BEGIN_INSTRUMENT VOICES(1) ; Global compressor effect
SU_RECEIVE STEREO

View File

@ -19,8 +19,8 @@ BEGIN_PATCH
SU_OSCILLAT MONO,TRANSPOSE(88),DETUNE(64),PHASE(0),COLOR(128),SHAPE(64),GAIN(128),FLAGS(TRISAW)
SU_OSCILLAT MONO,TRANSPOSE(88),DETUNE(64),PHASE(0),COLOR(128),SHAPE(64),GAIN(128),FLAGS(TRISAW)
SU_MULP STEREO
SU_SEND MONO,AMOUNT(128),GLOBALPORT(2,0,0) + SEND_POP
SU_SEND MONO,AMOUNT(128),GLOBALPORT(2,0,1) + SEND_POP
SU_SEND MONO,AMOUNT(128),VOICE(2),UNIT(0),PORT(0),FLAGS(SEND_POP)
SU_SEND MONO,AMOUNT(128),VOICE(2),UNIT(0),PORT(1),FLAGS(SEND_POP)
END_INSTRUMENT
BEGIN_INSTRUMENT VOICES(1) ; Instrument0
SU_ENVELOPE MONO,ATTAC(64),DECAY(64),SUSTAIN(64),RELEASE(64),GAIN(128)
@ -28,8 +28,8 @@ BEGIN_PATCH
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_SEND MONO,AMOUNT(128),GLOBALPORT(2,0,0) + SEND_POP
SU_SEND MONO,AMOUNT(128),GLOBALPORT(2,0,1) + SEND_POP
SU_SEND MONO,AMOUNT(128),VOICE(2),UNIT(0),PORT(0),FLAGS(SEND_POP)
SU_SEND MONO,AMOUNT(128),VOICE(2),UNIT(0),PORT(1),FLAGS(SEND_POP)
END_INSTRUMENT
BEGIN_INSTRUMENT VOICES(1) ; Global compressor effect
SU_RECEIVE STEREO

View File

@ -19,7 +19,7 @@ BEGIN_PATCH
SU_PAN MONO,PANNING(64)
SU_OUT STEREO,GAIN(128)
SU_OSCILLAT MONO,TRANSPOSE(70),DETUNE(64),PHASE(64),COLOR(128),SHAPE(64),GAIN(128),FLAGS(SINE+LFO)
SU_SEND MONO,AMOUNT(32),LOCALPORT(3,3) + SEND_POP
SU_SEND MONO,AMOUNT(32),UNIT(3),PORT(3),FLAGS(SEND_POP)
END_INSTRUMENT
END_PATCH

View File

@ -19,7 +19,7 @@ BEGIN_PATCH
SU_PAN MONO,PANNING(64)
SU_OUT STEREO,GAIN(128)
SU_OSCILLAT MONO,TRANSPOSE(70),DETUNE(64),PHASE(64),COLOR(128),SHAPE(64),GAIN(128),FLAGS(SINE+LFO)
SU_SEND MONO,AMOUNT(32),LOCALPORT(3,1) + SEND_POP
SU_SEND MONO,AMOUNT(32),UNIT(3),PORT(1),FLAGS(SEND_POP)
END_INSTRUMENT
END_PATCH

View File

@ -19,7 +19,7 @@ BEGIN_PATCH
SU_PAN MONO,PANNING(64)
SU_OUT STEREO,GAIN(128)
SU_OSCILLAT MONO,TRANSPOSE(70),DETUNE(64),PHASE(64),COLOR(128),SHAPE(64),GAIN(128),FLAGS(SINE+LFO)
SU_SEND MONO,AMOUNT(32),LOCALPORT(3,2) + SEND_POP
SU_SEND MONO,AMOUNT(32),UNIT(3),PORT(2),FLAGS(SEND_POP)
END_INSTRUMENT
END_PATCH

View File

@ -20,7 +20,7 @@ BEGIN_PATCH
SU_PAN MONO,PANNING(64)
SU_OUT STEREO,GAIN(128)
SU_OSCILLAT MONO,TRANSPOSE(50),DETUNE(64),PHASE(64),COLOR(128),SHAPE(64),GAIN(128),FLAGS(SINE+LFO)
SU_SEND MONO,AMOUNT(65),LOCALPORT(3,5) + SEND_POP
SU_SEND MONO,AMOUNT(65),UNIT(3),PORT(5),FLAGS(SEND_POP)
END_INSTRUMENT
END_PATCH

View File

@ -19,7 +19,7 @@ BEGIN_PATCH
SU_PAN MONO,PANNING(64)
SU_OUT STEREO,GAIN(128)
SU_OSCILLAT MONO,TRANSPOSE(70),DETUNE(64),PHASE(64),COLOR(128),SHAPE(64),GAIN(128),FLAGS(SINE+LFO)
SU_SEND MONO,AMOUNT(32),LOCALPORT(3,0) + SEND_POP
SU_SEND MONO,AMOUNT(32),UNIT(3),PORT(0),FLAGS(SEND_POP)
END_INSTRUMENT
END_PATCH

View File

@ -17,8 +17,8 @@ BEGIN_PATCH
SU_ENVELOPE MONO, ATTAC(64),DECAY(64),SUSTAIN(64),RELEASE(80),GAIN(128)
SU_DISTORT MONO, DRIVE(96)
SU_OSCILLAT MONO,TRANSPOSE(70),DETUNE(64),PHASE(64),COLOR(128),SHAPE(64),GAIN(128),FLAGS(SINE+LFO)
SU_SEND MONO,AMOUNT(68),LOCALPORT(1,0)
SU_SEND MONO,AMOUNT(68),LOCALPORT(3,0) + SEND_POP
SU_SEND MONO,AMOUNT(68),UNIT(1),PORT(0),FLAGS(NONE)
SU_SEND MONO,AMOUNT(68),UNIT(3),PORT(0),FLAGS(SEND_POP)
SU_OUT STEREO,GAIN(128)
END_INSTRUMENT
END_PATCH

View File

@ -15,11 +15,11 @@ BEGIN_PATCH
SU_ENVELOPE MONO,ATTAC(80),DECAY(80),SUSTAIN(64),RELEASE(80),GAIN(128)
SU_ENVELOPE MONO,ATTAC(80),DECAY(80),SUSTAIN(64),RELEASE(80),GAIN(128)
SU_OSCILLAT MONO,TRANSPOSE(120),DETUNE(64),PHASE(0),COLOR(128),SHAPE(96),GAIN(128),FLAGS(SINE+LFO)
SU_SEND MONO,AMOUNT(68),LOCALPORT(0,0)
SU_SEND MONO,AMOUNT(68),LOCALPORT(0,1)
SU_SEND MONO,AMOUNT(68),UNIT(0),PORT(0),FLAGS(NONE)
SU_SEND MONO,AMOUNT(68),UNIT(0),PORT(1),FLAGS(NONE)
; Sustain modulation seems not to be implemented
SU_SEND MONO,AMOUNT(68),LOCALPORT(0,3)
SU_SEND MONO,AMOUNT(68),LOCALPORT(1,4) + SEND_POP
SU_SEND MONO,AMOUNT(68),UNIT(0),PORT(3),FLAGS(NONE)
SU_SEND MONO,AMOUNT(68),UNIT(1),PORT(4),FLAGS(SEND_POP)
SU_OUT STEREO,GAIN(110)
END_INSTRUMENT
END_PATCH

View File

@ -19,7 +19,7 @@ BEGIN_PATCH
SU_PAN MONO,PANNING(64)
SU_OUT STEREO,GAIN(128)
SU_OSCILLAT MONO,TRANSPOSE(70),DETUNE(64),PHASE(64),COLOR(128),SHAPE(64),GAIN(128),FLAGS(SINE + LFO)
SU_SEND MONO,AMOUNT(32),LOCALPORT(3,0) + SEND_POP
SU_SEND MONO,AMOUNT(32),UNIT(3),PORT(0),FLAGS(SEND_POP)
END_INSTRUMENT
END_PATCH

View File

@ -19,7 +19,7 @@ BEGIN_PATCH
SU_PAN MONO,PANNING(64)
SU_OUT STEREO,GAIN(128)
SU_OSCILLAT MONO,TRANSPOSE(70),DETUNE(64),PHASE(64),COLOR(128),SHAPE(64),GAIN(128),FLAGS(SINE + LFO)
SU_SEND MONO,AMOUNT(32),LOCALPORT(3,1) + SEND_POP
SU_SEND MONO,AMOUNT(32),UNIT(3),PORT(1),FLAGS(SEND_POP)
END_INSTRUMENT
END_PATCH

View File

@ -17,8 +17,8 @@ BEGIN_PATCH
SU_ENVELOPE MONO,ATTAC(64),DECAY(64),SUSTAIN(64),RELEASE(80),GAIN(128)
SU_HOLD MONO,HOLDFREQ(3)
SU_OSCILLAT MONO,TRANSPOSE(70),DETUNE(64),PHASE(64),COLOR(128),SHAPE(64),GAIN(128),FLAGS(SINE+LFO)
SU_SEND MONO,AMOUNT(68),LOCALPORT(1,0)
SU_SEND MONO,AMOUNT(68),LOCALPORT(3,0) + SEND_POP
SU_SEND MONO,AMOUNT(68),UNIT(1),PORT(0),FLAGS(NONE)
SU_SEND MONO,AMOUNT(68),UNIT(3),PORT(0),FLAGS(SEND_POP)
SU_OUT STEREO,GAIN(128)
END_INSTRUMENT
END_PATCH

View File

@ -17,7 +17,7 @@ BEGIN_PATCH
SU_MULP MONO
SU_PUSH MONO
SU_OSCILLAT MONO,TRANSPOSE(70),DETUNE(64),PHASE(64),COLOR(128),SHAPE(64),GAIN(128),FLAGS(SINE + LFO)
SU_SEND MONO,AMOUNT(68),LOCALPORT(1,3) + SEND_POP
SU_SEND MONO,AMOUNT(68),UNIT(1),PORT(3),FLAGS(SEND_POP)
SU_OUT STEREO,GAIN(128)
END_INSTRUMENT
END_PATCH

View File

@ -17,7 +17,7 @@ BEGIN_PATCH
SU_MULP MONO
SU_PUSH MONO
SU_OSCILLAT MONO,TRANSPOSE(70),DETUNE(64),PHASE(64),COLOR(128),SHAPE(64),GAIN(128),FLAGS(SINE+LFO)
SU_SEND MONO,AMOUNT(96),LOCALPORT(1,1) + SEND_POP
SU_SEND MONO,AMOUNT(96),UNIT(1),PORT(1),FLAGS(SEND_POP)
SU_OUT STEREO,GAIN(128)
END_INSTRUMENT
END_PATCH

View File

@ -17,7 +17,7 @@ BEGIN_PATCH
SU_MULP MONO
SU_PUSH MONO
SU_OSCILLAT MONO,TRANSPOSE(70),DETUNE(64),PHASE(64),COLOR(128),SHAPE(64),GAIN(128),FLAGS(SINE + LFO)
SU_SEND MONO,AMOUNT(68),LOCALPORT(1,5) + SEND_POP
SU_SEND MONO,AMOUNT(68),UNIT(1),PORT(5),FLAGS(SEND_POP)
SU_OUT STEREO,GAIN(128)
END_INSTRUMENT
END_PATCH

View File

@ -17,7 +17,7 @@ BEGIN_PATCH
SU_MULP MONO
SU_PUSH MONO
SU_OSCILLAT MONO,TRANSPOSE(70),DETUNE(64),PHASE(64),COLOR(128),SHAPE(64),GAIN(128),FLAGS(SINE + LFO)
SU_SEND MONO,AMOUNT(128),LOCALPORT(1,2) + SEND_POP
SU_SEND MONO,AMOUNT(128),UNIT(1),PORT(2),FLAGS(SEND_POP)
SU_OUT STEREO,GAIN(128)
END_INSTRUMENT
END_PATCH

View File

@ -17,7 +17,7 @@ BEGIN_PATCH
SU_MULP MONO
SU_PUSH MONO
SU_OSCILLAT MONO,TRANSPOSE(70),DETUNE(64),PHASE(64),COLOR(128),SHAPE(64),GAIN(128),FLAGS(SINE + LFO)
SU_SEND MONO,AMOUNT(68),LOCALPORT(1,4) + SEND_POP
SU_SEND MONO,AMOUNT(68),UNIT(1),PORT(4),FLAGS(SEND_POP)
SU_OUT STEREO,GAIN(128)
END_INSTRUMENT
END_PATCH

View File

@ -17,7 +17,7 @@ BEGIN_PATCH
SU_MULP MONO
SU_PUSH MONO
SU_OSCILLAT MONO,TRANSPOSE(70),DETUNE(64),PHASE(64),COLOR(128),SHAPE(64),GAIN(128),FLAGS(SINE + LFO)
SU_SEND MONO,AMOUNT(68),LOCALPORT(1,0) + SEND_POP
SU_SEND MONO,AMOUNT(68),UNIT(1),PORT(0),FLAGS(SEND_POP)
SU_OUT STEREO,GAIN(128)
END_INSTRUMENT
END_PATCH

View File

@ -13,10 +13,10 @@ END_TRACKS
BEGIN_PATCH
BEGIN_INSTRUMENT VOICES(1) ; Instrument0
SU_LOADVAL MONO,VALUE(32) ; should receive -0.5
SU_SEND MONO,AMOUNT(128),LOCALPORT(5,0) ; should send -0.25
SU_SEND MONO,AMOUNT(128),LOCALPORT(6,0) + SEND_POP ; should send -0.25
SU_SEND MONO,AMOUNT(128),UNIT(5),PORT(0),FLAGS(NONE) ; should send -0.25
SU_SEND MONO,AMOUNT(128),UNIT(6),PORT(0),FLAGS(SEND_POP) ; should send -0.25
SU_LOADVAL MONO,VALUE(128) ; should receive 1
SU_SEND MONO,AMOUNT(128),LOCALPORT(6,0) + SEND_POP ; should send 0.5
SU_SEND MONO,AMOUNT(128),UNIT(6),PORT(0),FLAGS(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)

View File

@ -13,10 +13,10 @@ END_TRACKS
BEGIN_PATCH
BEGIN_INSTRUMENT VOICES(1) ; Instrument0
SU_LOADVAL MONO,VALUE(32) ; should receive -0.5
SU_SEND MONO,AMOUNT(128),LOCALPORT(5,1) ; should send -0.25
SU_SEND MONO,AMOUNT(128),LOCALPORT(5,0) + SEND_POP ; should send -0.25
SU_SEND MONO,AMOUNT(128),UNIT(5),PORT(1),FLAGS(NONE) ; should send -0.25
SU_SEND MONO,AMOUNT(128),UNIT(5),PORT(0),FLAGS(SEND_POP) ; should send -0.25
SU_LOADVAL MONO,VALUE(128) ; should receive 1
SU_SEND MONO,AMOUNT(128),LOCALPORT(5,0) + SEND_POP ; should send 0.5
SU_SEND MONO,AMOUNT(128),UNIT(5),PORT(0),FLAGS(SEND_POP) ; should send 0.5
SU_RECEIVE STEREO; should receive 0.5 -0.5
SU_OUT STEREO,GAIN(128)
END_INSTRUMENT

View File

@ -13,10 +13,10 @@ END_TRACKS
BEGIN_PATCH
BEGIN_INSTRUMENT VOICES(1) ; Instrument0
SU_LOADVAL MONO,VALUE(32) ; should receive -0.5
SU_SEND MONO,AMOUNT(96),LOCALPORT(5,0) ; should send -0.25
SU_SEND MONO,AMOUNT(96),LOCALPORT(6,0) + SEND_POP ; should send -0.25
SU_SEND MONO,AMOUNT(96),UNIT(5),PORT(0),FLAGS(NONE) ; should send -0.25
SU_SEND MONO,AMOUNT(96),UNIT(6),PORT(0),FLAGS(SEND_POP) ; should send -0.25
SU_LOADVAL MONO,VALUE(128) ; should receive 1
SU_SEND MONO,AMOUNT(96),LOCALPORT(6,0) + SEND_POP ; should send 0.5
SU_SEND MONO,AMOUNT(96),UNIT(6),PORT(0),FLAGS(SEND_POP) ; should send 0.5
SU_LOADVAL MONO,VALUE(64) ; should receive -0.5
SU_LOADVAL MONO,VALUE(64) ; should receive 0.5
SU_OUT STEREO,GAIN(128)

View File

@ -13,14 +13,14 @@ END_TRACKS
BEGIN_PATCH
BEGIN_INSTRUMENT VOICES(1) ; Instrument0
SU_LOADVAL MONO,VALUE(96)
SU_SEND MONO,AMOUNT(96),GLOBALPORT(1,3,0) + SEND_POP
SU_SEND MONO,AMOUNT(96),VOICE(1),UNIT(3),PORT(0),FLAGS(SEND_POP)
SU_LOADVAL MONO,VALUE(64)
SU_LOADVAL MONO,VALUE(64)
SU_OUT STEREO,GAIN(128)
END_INSTRUMENT
BEGIN_INSTRUMENT VOICES(1) ; Instrument1
SU_LOADVAL MONO,VALUE(32)
SU_SEND MONO,AMOUNT(96),GLOBALPORT(0,2,0) + SEND_POP
SU_SEND MONO,AMOUNT(96),VOICE(0),UNIT(2),PORT(0),FLAGS(SEND_POP)
SU_LOADVAL MONO,VALUE(64)
SU_LOADVAL MONO,VALUE(64)
SU_OUT STEREO,GAIN(128)

View File

@ -14,10 +14,10 @@ BEGIN_PATCH
BEGIN_INSTRUMENT VOICES(1) ; Instrument0
SU_LOADVAL MONO,VALUE(0)
SU_LOADVAL MONO,VALUE(0)
SU_SEND STEREO,AMOUNT(96),LOCALPORT(6,0) + SEND_POP
SU_SEND STEREO,AMOUNT(96),UNIT(6),PORT(0),FLAGS(SEND_POP)
SU_LOADVAL MONO,VALUE(64)
SU_LOADVAL MONO,VALUE(128)
SU_SEND STEREO,AMOUNT(128),LOCALPORT(6,0) + SEND_POP
SU_SEND STEREO,AMOUNT(128),UNIT(6),PORT(0),FLAGS(SEND_POP)
SU_RECEIVE STEREO; should receive 0.5 -0.5
SU_OUT STEREO,GAIN(128)
END_INSTRUMENT