AgonConsole8 / agon-vdp

Official Firmware for the Agon Console8: ESP32 VDP
MIT License
38 stars 17 forks source link

Further audio system enhancements #132

Closed stevesims closed 7 months ago

stevesims commented 8 months ago

ensure all audio commands return a status value

only exceptions to this are comms timeouts, and even then some will result in a returned failure value

this fills in some gaps in the audio API with some calls that were not returning values. if all calls return values then that makes it simpler to detect whether features are present and supported or not

Also allow samples being played to continue playing if volume is set/adjusted to zero. They will continue to play (until completion) allowing their volume to be ramped back up. Other mechanisms of aborting sample playback, such as changing to play a different sample, or setting duration to zero, will continue to work. A channel playing a zero volume sample will allow "play note" to function to start a new note

Set volume command now supports adjusting system volume level by specifying channel -1 (or 255), plus will now return the volume level instead of just 0/1 for failure/success

new volume envelope type multi-phase ADSR added

new command to set parameter on channel added. this allows for the duty cycle on square waves to be adjusted

documentation on these changes can be seen in AgonConsole8/agon-docs#12