So of course I am also interested in the sounds that the Gigatron can already produce and the sounds it could produce. My first step in this project is a small program I called "PianoBeep" (no the "beep" is not supposed to be a censored expletive, it just beeps in the original meaning of the word). It provides a keyboard like in the "Piano" BASIC program with the possibility to enter any value into the parameters wavA and wavX.
My goal is to test whether it is possible to produce sounds with an ADSR envelope. That is a sound that does not just beep but rises and decays in volume. Of course multiplications are not an option and so the only wave form where it is possible to adjust the amplitude is the pulse wave. And that is the second part of my PianoBeep program: it has options to modify the sound table for the pulse wave. It can change the amplitude and it can also change the width of the pulse to get different timbres.
The next step would be to write a second Piano program that changes the volume on its own, while a sound is being played. I hope it is fast enough.
If that is successful for a single channel my goal for multi-channel music would be to create an experimental ROM and change the meaning of wavA and wavX: wavA being the amplitude and wavX being the pulse width. The formula for outputting a sample would be
Code: Select all
if phase > wavX then sample += wavA else sample += 0
As a demonstration what could be done with simple pulse waves and ADSR envelopes, here is a video of The 8-Bit Guy demonstrating the Yamaha PSS-125: https://www.youtube.com/watch?v=tdZZCQEA99Y
Edit: I forgot to include the link to the Piano program, it is in my contrib folder: https://github.com/kervinck/gigatron-ro ... hkolf/apps