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
PI, E
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;
SoundFonts
SF2Sample (filename, sample)
SF2Preset (filename, preset, bank, targetpreset, targetbank)