SmileBASIC

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 List

2. 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 List

3. 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