RasmusDSP Audio/MIDI Processing Library

RasmusDSP is an embeddable Audio/MIDI processor. It contains various filters and generators (including SoundFont 2.0 compatible synthesizer). Has a script interpreter which is used to describe instruments, route Audio/MIDI signal between processor units.

This is a work in progress so stay tuned. If there is any question use the forums or contact project administrator.

There is a working SoundFont testing application, and a JavaSound Synthesizer implementation in CVS.

Summary Page

Browse CVS Repository

JavaDoc for RasmusDSP

List of available units:

Math Operators (audio and number domain)

+, -, *, /, %, >, <, >=, <=, !=, =, ?

Math Functions (audio and number domain)

if, random, abs, acos, asin, atan, ceil, cos, exp
floor, log, rint, round, sin, sqrt, tan, toDegress
toRadians, IEEEremainder, atan2, max, min, pow.

Math Constants


Audio and Midi, using beats

Delay (pos) <- input;
Stretch (amount) <- input;

MIDI Note Mapping

Transpose (mount) <- input;
Transpose2 (amount) <- input;
ChordTranspose (from, to) <- input;
ChordTranspose2 (from, to) <- input;
RemapNotes (c, c# .. a#, b) <- input;

Midi Generators

Note (note, vel, ch, pos)
Tempo (bpm, pos)
ShortMessage (command, channel, data1, data2, todata1, todata2, len, res, pos);
SysexMessage ( ... )
File (filename)
MidiFile (filename)

Midi Filters

Extract (from, to) <- input;
Channel (channel) <- input;
FilterNotes (keyFrom, keyTo, velFrom, velTo) <- input;
FilterMessages (... ) <- input;
FilterMetaMessages () <- input;
ModifyMessages ( ... ) <- input;
MonoNotes ( <- input;

Audio Envelope Generators

ExpSeg (val, len, (val, len)*, endval)
LinSeg (val, len, (val, len)*, endval)
Adsr (gate, attack, decay, sustain, release)
XAdsr (gate, attack, decay, sustain, release, releasevalue, attackvalue)
Ahdsr (gate, attack, hold, decay, sustain, release)
Release (gate, release)
XRelease (gate, release, releasevalue)

Audio Signal Generators

One ()
Noise ()
Signal (value)
Clock (frequency, initvalue) <- input;
File (filename, offset, length, format, loopstart, loopend)
AudioFile (filename, offset, length, format, loopstart, loopend)
Sample (filename, offset, length, format, loopstart, loopend)
Table (from, to, rate, channels) <- input;

Audio Filters

Biquad (b0, b1, b2, a0, a1, a2) <- input;
Diff () <- input;
Integ () <- input;
Vocoder (modulator, fftFrameSize, osamp) <- input;
DeHiss (floor, width, reduce, window, fftFrameSize, osamp) <- input;
DeReverb (amount, feedback, attack, release, thresold, sumsmooth, window, fftFrameSize, osamp) <- input;

Audio Amplitude Modifiers

Agc () <- input;
ChannelGain (ch1, ch2 .... ) <- input;
ChannelMux (ch1, ch2 .... )
ChannelMixer (ch1ch1, ch1ch2, ... ch2ch1, ch2ch2, ...) <- input;
DownMix (channels) <- input;
Gain (amplitude) <- input;
Asum (input2) <- input;

MIDI to Audio Rendering

RenderControl (control, default) <- input;
RenderPitchBend (default) <- input;
RenderPitch () <- input;
Synthesizer (voices) <- input;
RegisterVoice (keyfrom, keyto, velfrom, velto, program, bank) <- input;
VoiceFactory ( ... )

Audio Delay Effects

Delay (pos) <- input;
DelayLine (delay, feedback, maxdelay) <- input;
Reverb (dry, wet, width, roomsize, damp, scale) <- input;

Audio Time/Pitch Effects

Resample (amount) <- input;
ResampleI (amount) <- input;
ResampleC (amount) <- input;
Pitchshift (pitch, format, fftFrameSize, osamp) <- input;
TimeStretch (amount, fftFrameSize, osamp) <- input;

Audio Math Functions

FastSin () <- input;
Clip (from, to) <- input;


SF2Sample (filename, sample)
SF2Preset (filename, preset, bank, targetpreset, targetbank)