SOUL Wants to Process Your Audio

SOUL Wants to Process Your Audio

Abstraction is the core of nearly all progress in computing. Unless you are fabricating your own semiconductors and drawing wire, we all create with building blocks ranging from components like CPUs, to operating system functions, to specialized libraries. Just as you wouldn’t want to spend your time deblocking disk records or rendering fonts for output devices, you probably shouldn’t have to think too much about audio data. While there are some powerful audio processing libraries out there, a new embeddable language called SOUL (SOUnd Language) is now in version 1.0 and wants to help you create efficient code for processing audio.


The goal of SOUL is to target a runtime that can run on CPUs, but is better on DSPs. The code aims to be secure and real time with no pointers, garbage collection, and other things that typically interfere with audio processing or security.

The code isn’t hard to puzzle out. Here’s the example for cutting audio volume by half:


[CODE]


processor MinimalGainExample


{// declare our inputs and outputs:input stream float audioIn; // mono input stream called “audioIn”output stream float audioOut; // mono output stream called “audioOut”


// every processor must declare a run() functionvoid run(){const float gain = 0.5f; // a constant to use as our gain factor


loop // (this just loops forever){audioOut

Support the originator by clicking the read the rest link below.