¯\_(ツ)_/¯ It's just like, whatever!
WhateverDSP is an open C/C++ framework for high quality audio processing on embedded devices. It's still in pretty early development and right now only targets the accompanying WhateverDSP Development board and it's STM32F405 processor.
It supports low latency (<1ms) 32bit float audio processing, analog and digital GPIO, MIDI via both the classic serial interface and USB in addition to full duplex class compliant USB audio at up to 48khz in both 24 bit and 32 bit float sample formats.
All code was written from scratch with low latency and performance in mind.
Here is what that a simple volume control that scales the audio level using a potentiometer looks like:
#include <libwdsp.h>
void wdsp_process(float *in_buffer[BLOCK_SIZE], float *out_buffer[BLOCK_SIZE])
{
float volume = io_analog_in(POT_1);
for (int i = 0; i < BLOCK_SIZE; i++)
{
float l_sample = in_buffer[0][i];
float r_sample = in_buffer[1][i];
out_buffer[0][i] = l_sample * volume;
out_buffer[1][i] = r_sample * volume;
}
}Want to learn more? We're working on the documentation in the Github wiki.
In the meantime, why not check out the examples repository or come chat with us on IRC.
We have an IRC channel on libera.chat called #wdsp.
The current version of the WhateverDSP dev board runs on 9V DC power and includes:
- STM32F405 MCU
- 2x TRS analog inputs
- 2x TRS analog outputs
- 4 potentiometers
- 2 buttons (+ boot and reset buttons)
- USB-C
- TRS MIDI input
- TRS MIDI output
Headers:
- Debug header for realtime debugging via ST-Link V3
- I2C
- 3.3V
- Ground
- 4 analog inputs
- 2 analog outputs
- 3 digital inputs
- 3 digital outputs
The board will be released as open-source after some further testing. You will also be able to purchase them directly fully assembled. In the meantime, come hang on the IRC channel for updates!
The WhateverDSP library is licensed under GNU Lesser General Public License.
