jkotlinski / lsdpack

Standalone LSDj recorder+player
GNU General Public License v2.0
116 stars 18 forks source link

'k' cmd kills all subsequent notes in wave channel #24

Closed dm-colin closed 3 years ago

dm-colin commented 3 years ago

lsdj.sav.zip (v8.5.1)

Running conversion on the linked save file:

$ lsdpack -g lsdj.gb
.gbs mode enabled
Loaded lsdj.gb
Playing song 1...
Recording to 'lsdj-1.s'
Wrote 16 samples
Song 1: 331 bytes
OK
$ rgbasm -o lsdj-1.o lsdj-1.s
$ rgblink -o player-1.gb boot.o player.o lsdj-1.o
$ rgbfix -v -m 0x19 -p 0xff player-1.gb
$

A k00 cmd is after each note in all three types of channels. Only the first note of the wave channel is played in a given bar.

This issue assumes the body of the transform function in https://github.com/jkotlinski/lsdpack/blob/master/rules/rule_pitch.cpp is commented out which is related to #23

I have observed that sometimes changing the instrument in the wave channel seems to reset this, meaning the first note with the new instrument will be played until another k cmd is encountered. I don't know exactly how to repro this though, but I can dig more if it would be useful.

Tested on:

I get around this by using e00 instead if I want to cut a note presently.

jkotlinski commented 3 years ago

should be fine now, thanks for report!