rescale-time
This commit is contained in:
parent
3d0ca1c548
commit
03c6d96e62
31
music.tal
31
music.tal
|
@ -27,6 +27,10 @@
|
||||||
( each channel can loop independently; there is no need to keep their )
|
( each channel can loop independently; there is no need to keep their )
|
||||||
( lengths in sync with each other. )
|
( lengths in sync with each other. )
|
||||||
|
|
||||||
|
( TODO: next-t should be relative, not absolute. )
|
||||||
|
( requires more book-keeping but makes longer notes possible )
|
||||||
|
( also makes rescale-time simpler )
|
||||||
|
|
||||||
|30 @Audio1 [ &vect $2 &pos $2 &out $1 &dur $2 &pad $1 &adsr $2 &len $2 &addr $2 &vol $1 &pitch $1 ]
|
|30 @Audio1 [ &vect $2 &pos $2 &out $1 &dur $2 &pad $1 &adsr $2 &len $2 &addr $2 &vol $1 &pitch $1 ]
|
||||||
|40 @Audio2 [ &vect $2 &pos $2 &out $1 &dur $2 &pad $1 &adsr $2 &len $2 &addr $2 &vol $1 &pitch $1 ]
|
|40 @Audio2 [ &vect $2 &pos $2 &out $1 &dur $2 &pad $1 &adsr $2 &len $2 &addr $2 &vol $1 &pitch $1 ]
|
||||||
|50 @Audio3 [ &vect $2 &pos $2 &out $1 &dur $2 &pad $1 &adsr $2 &len $2 &addr $2 &vol $1 &pitch $1 ]
|
|50 @Audio3 [ &vect $2 &pos $2 &out $1 &dur $2 &pad $1 &adsr $2 &len $2 &addr $2 &vol $1 &pitch $1 ]
|
||||||
|
@ -124,14 +128,28 @@
|
||||||
STHr #08 ORA DEO2 ( ; <-adsr )
|
STHr #08 ORA DEO2 ( ; <-adsr )
|
||||||
JMP2r
|
JMP2r
|
||||||
|
|
||||||
|
@rescale-time ( -> )
|
||||||
|
.time LDZ2 #0200 GTH2 ?{ JMP2r }
|
||||||
|
.time adjust-zp-t
|
||||||
|
.events adjust-ch-next-t
|
||||||
|
.ch-1 adjust-ch-next-t
|
||||||
|
.ch-2 adjust-ch-next-t
|
||||||
|
.ch-3 adjust-ch-next-t
|
||||||
|
.ch-4 !adjust-ch-next-t
|
||||||
|
|
||||||
|
@adjust-ch-next-t ( ch^ -> )
|
||||||
|
.ch/next-t ADD ( >> )
|
||||||
|
@adjust-zp-t ( zp^ -> )
|
||||||
|
LDZ2k #0100 SUB2 ROT STZ2 JMP2r
|
||||||
|
|
||||||
@change-pulse ( ms* -> )
|
@change-pulse ( ms* -> )
|
||||||
DUP2 .ch-1 update-ch-pulse
|
DUP2 .ch-1 adjust-ch-pulse
|
||||||
DUP2 .ch-2 update-ch-pulse
|
DUP2 .ch-2 adjust-ch-pulse
|
||||||
DUP2 .ch-3 update-ch-pulse
|
DUP2 .ch-3 adjust-ch-pulse
|
||||||
DUP2 .ch-4 update-ch-pulse
|
DUP2 .ch-4 adjust-ch-pulse
|
||||||
.dur STZ2 JMP2r
|
.dur STZ2 JMP2r
|
||||||
|
|
||||||
@update-ch-pulse ( ms* ch^ -> )
|
@adjust-ch-pulse ( ms* ch^ -> )
|
||||||
.ch/next-t ADD STHk LDZ2 ( ms* next-ms* [next-t^] )
|
.ch/next-t ADD STHk LDZ2 ( ms* next-ms* [next-t^] )
|
||||||
.dur LDZ2 DIV2 ( ms* next-p* [next-t^] )
|
.dur LDZ2 DIV2 ( ms* next-p* [next-t^] )
|
||||||
MUL2 STHr STZ2 JMP2r ( )
|
MUL2 STHr STZ2 JMP2r ( )
|
||||||
|
@ -145,6 +163,7 @@
|
||||||
.ch/next-t ADD LDZ2 .time LDZ2 NEQ2k ?&neq
|
.ch/next-t ADD LDZ2 .time LDZ2 NEQ2k ?&neq
|
||||||
POP2 POP2 BRK
|
POP2 POP2 BRK
|
||||||
&neq POP2 .time STZ2
|
&neq POP2 .time STZ2
|
||||||
|
rescale-time
|
||||||
advance-events
|
advance-events
|
||||||
.ch-1 play-ch
|
.ch-1 play-ch
|
||||||
.ch-2 play-ch
|
.ch-2 play-ch
|
||||||
|
@ -179,7 +198,7 @@
|
||||||
@track-end
|
@track-end
|
||||||
|
|
||||||
@slowdown ( -> )
|
@slowdown ( -> )
|
||||||
.dur LDZ2 #0008 ADD2 !change-pulse
|
.dur LDZ2 #0008 ADD2 #010e DEO !change-pulse
|
||||||
|
|
||||||
@saw ff ee dd cc bb aa 99 88 77 66 55 44 33 22 11 00
|
@saw ff ee dd cc bb aa 99 88 77 66 55 44 33 22 11 00
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue