mirror of
https://github.com/curioustorvald/tsvm.git
synced 2026-06-10 23:04:04 +09:00
IT instrument shenanigans
This commit is contained in:
@@ -2053,7 +2053,7 @@ Instrument bin: Registry for 256 instruments, formatted as:
|
||||
Byte 2: Time until the next point, in seconds (3.5 Unsigned Minifloat). 0 = hold at this point indefinitely.
|
||||
Uint8 Instrument Global Volume (0..255)
|
||||
* ImpulseTracker has range of 0..128; multiply by (255/128) then round to int
|
||||
- ImpulseTracker has samplewise default volume (0..64) and samplewise global volume (0..64), and they must be taken into account because Taud has no samplewise config, following the ImpulseTracker spec
|
||||
- ImpulseTracker also has samplewise default volume (0..64) and samplewise global volume (0..64), and they must be taken into account because Taud has no samplewise config, following the ImpulseTracker spec
|
||||
* FastTracker2 has range of 0..64; multiply by (255/64) then round to int
|
||||
Uint8 Volume Fadeout low bits (IT: 1..256; XM: 0..255)
|
||||
Bit8 Fadeout and vibrato
|
||||
@@ -2067,7 +2067,7 @@ Instrument bin: Registry for 256 instruments, formatted as:
|
||||
Uint8 Vibrato sweep
|
||||
* FastTracker2 instrument config
|
||||
Uint8 Default pan value (0..255 full range, see offset 17 for the enable flag)
|
||||
* ImpulseTracker has samplewise default volume and samplewise global volume, and they must be taken into account because Taud has no samplewise config
|
||||
* ImpulseTracker has samplewise default pan and instrumentwise default pan, and they must be taken into account because Taud has no samplewise config
|
||||
Uint16 Pitch-pan centre (4096-TET note value)
|
||||
Sint8 Pitch-pan separation (-128..127 full range)
|
||||
Uint8 Pan swing (0..255 full range)
|
||||
@@ -2087,15 +2087,16 @@ Instrument bin: Registry for 256 instruments, formatted as:
|
||||
|
||||
|
||||
TODO:
|
||||
* implement Instrument Flag, Vibrato Depth, Vibrato Rate, other samplewise/instrumentwise changes to it2taud and audio engine
|
||||
* implement new note action on the audio engine (IT uses "background channels", maybe we can do the same but make "background channels" mixer-private)
|
||||
* on playback, panning changes randomly on Taud made by s3m2taud.py and mod2taud.py
|
||||
* implement S6x and S7x command
|
||||
* implement Wxx command (global volume slide)
|
||||
* implement sample loop sustain
|
||||
* Amiga mode freq shift now "underdelivers" (pitch bend not "strong" enough)
|
||||
* cue and pattern compression of the Taud format (taud_common.py, taud.mjs)
|
||||
* figure out how IT (8 bits) and FT2 (12 bits) handles volume fadeout numbers, and come up with a compatible Taud spec, then implement
|
||||
[x] implement Instrument Flag, Vibrato Depth, Vibrato Rate, other samplewise/instrumentwise changes to it2taud and audio engine
|
||||
[ ] implement new note action on the audio engine (IT uses "background channels", maybe we can do the same but make "background channels" mixer-private)
|
||||
[ ] on playback, panning changes randomly on Taud made by s3m2taud.py and mod2taud.py
|
||||
[ ] implement S6x and S7x command
|
||||
[ ] implement Wxx command (global volume slide)
|
||||
[ ] implement sample loop sustain
|
||||
[ ] Amiga mode freq shift now "underdelivers" (pitch bend not "strong" enough)
|
||||
[ ] cue and pattern compression of the Taud format (taud_common.py, taud.mjs)
|
||||
[ ] figure out how IT (8 bits) and FT2 (12 bits) handles volume fadeout numbers, and come up with a compatible Taud spec, then implement
|
||||
[ ] implement bitcrusher (eff sym '8')
|
||||
|
||||
|
||||
Play Data: play data are series of tracker-like instructions, visualised as:
|
||||
|
||||
Reference in New Issue
Block a user