Advanced Sound Processing Unit
Turn SmileBASIC into a Sound Synthesizer and Effects Unit!
What is the Advanced Sound Processing Unit?
A new, specialized feature that further enhances SmileBASIC has been added as paid content. The Advanced Sound Processing Unit is the first piece of additional content to be made available, and provides advanced extended instructions for those who are interested in analyzing and processing audio signals.
By purchasing this feature, you will be able to create sound-specific programs in BASIC, such as software synthesizers and effects units.
Added Instructions and Features
The Advanced Sound Processing Unit allows the use of the following instructions.
Instruction | Feature |
---|---|
BIQUAD | BiQuad filter |
BQPARAM | Generates BiQuad parameters |
FFT | Fourier transform |
IFFT | Inverse Fourier transform |
FFTWFN | Creates FFT window function |
PCMSTREAM | Plays PCM stream |
PCMPOS | Gets PCM stream playback position |
PCMVOL | Sets PCM stream volume |
PCMSTOP | Stops PCM stream playback |
PCMCONT | Restarts stopped PCM streams |
ARYOP | Performs batch arithmetic operations between arrays |
RINGCOPY | Copies the ring buffer |
Note
These instructions will be displayed as input candidates, but if executed when the additional feature has not been purchased, the error message "DLC not found ([instruction name])" will appear.
Downloading a Sample
You can download three free sample programs for the Advanced Sound Processing Unit to SmileBASIC.
1. Effects Unit Sample
An example of a simple effects unit that processes audio input from the microphone in real time and outputs it to the speaker. This program constantly checks the microphone input position and stream output position in the main loop and passes the input, processing, output, and audio signal so that the sound is not interrupted.
Audio signal processing is called from the AUDIO_PROC user instruction, ignoring the main loop. Although this program calls the FX_DELAY (delay effector) and DRAWWAVE (waveform display) processes, you can easily add or change to other effects unit instructions that have been created separately.
The audio signal is processed at high speed by using the ARYOP, RINGCOPY, and other newly-added array operation instructions.
Public key: REJD3H3
SU_SIMPLE (project)
Open the Program List2. STOMP
An authentic effects unit set - just like one a guitarist would use. The audio input from the microphone is processed in various ways and output to the speaker.
STOMP has three kinds of effects units, and a waveform display feature. You can adjust the tone of each effects unit by dragging the knobs. You can toggle each unit by tapping the ON/OFF switch or pressing the A, B, or Y buttons. The X button will quit the program.
- (1) Distortion
- Distorts sounds like a high-gain guitar amplifier.
DRIVE Deepness of distortion
LEVEL Output volume - (2) Pitch shifter
- Changes sound pitch and makes the sound higher or lower than the original.
You can also use this program as a voice changer, to change your voice into that of a child's or an elderly person's.
PITCH Sound height
LEVEL Output volume - (3) Delay
- By delaying the original sound and then repeating it, you can make the sound echo.
TIME Time sound is delayed for
F.BACK Number of repetitions
Public key: RK45EHD
SU_STOMP (project)
Open the Program List3. FFT Sample
A sample that uses the fast Fourier transform (FFT) instruction. The sample analyzes the frequency of the audio signal input from the microphone to visualize it. Three types of display methods are available and can be toggled by using the A button. You can select the window function with the B button when dividing the FFT segments. The X button will quit the program.
- (1) Spectrum analyzer
- Displays a bar graph with the frequency band as the horizontal axis and the signal strength as the vertical axis.
This display is often seen on audio and similar devices. - (2) 2D Spectrogram
- Displays time on the horizontal axis, the frequency band on the vertical axis, and the signal strength as a color.
- (3) 3D Spectrogram
- Displays a 3D graph with the frequency band as the horizontal axis, the signal strength as the vertical axis and color, and time as the depth axis.
Public key: 4DNE73NV
SU_SPEAN (project)
Open the Program List