Ah ha! Yes, that clarifies things.
%1xxxxx is always a command byte, %0xxxx is always a data byte, and always updates whatever register the most recent command byte specified. So, you could write %1rr0ffff to select "set frequency" then continuously write loads of %0xffffff bytes to continuously change the top six bits of the frequency on that channel. Or %1rr1aaaa to set the amplitude and then (less usefully!) continuously write loads of %0xxxxaaaa bytes to continously change the amplitude on that channel.
A bit like MIDI where you can write %1xxxxx to start a note, and then send loads of %0xxxxx data bytes to keep starting notes without having to send another %1xxxxx command byte (until you run out of polyphoney, obviously!).
%1xxxxx is always a command byte, %0xxxx is always a data byte, and always updates whatever register the most recent command byte specified. So, you could write %1rr0ffff to select "set frequency" then continuously write loads of %0xffffff bytes to continuously change the top six bits of the frequency on that channel. Or %1rr1aaaa to set the amplitude and then (less usefully!) continuously write loads of %0xxxxaaaa bytes to continously change the amplitude on that channel.
A bit like MIDI where you can write %1xxxxx to start a note, and then send loads of %0xxxxx data bytes to keep starting notes without having to send another %1xxxxx command byte (until you run out of polyphoney, obviously!).
Statistics: Posted by jgharston — Fri Nov 28, 2025 3:22 pm