не обязательно
можно чуть переписать код для получения нужного результата
сколько голосов тебе нужно?
вот тебе 4 голоса
Код:
ld ix,table
ld c,(ix)
ld b,(ix+1)
ld e,(ix+2)
ld d,(ix+3)
ld a,#18
m0
ld hl,0 //длительность ноты
m1
dec c
jr nz,m00
ld c,(ix)
out (#fe),a
xor #18
m00
dec b
jr nz,m01
ld b,(ix+1)
out (#fe),a
xor #18
m01
dec e
jr nz,m02
ld e,(ix+2)
out (#fe),a
xor #18
m02
dec d
jr nz,m03
ld d,(ix+3)
out (#fe),a
xor #18
m03
dec l
jr nz,m1
dec h
jr nz,m1
//здесь проверяем на окончание музыки
inc ix
inc ix
inc ix
inc ix
dec (ix)
inc (ix)
jr nz,m0
ret
table
db #20,#20,#20,#30,#20,#40,#10,#40,#20,#30,#30,#40
db 0
хотя конечно серьезные плееры делаются не так