Sonic
[
NextMusic Home Page
|
Sound and Music Programs Page
|
Program List ]
Author: Don Cross Cross_Don@dpt.com
Platforms: generic
Prerequisites: C++
Price: free
Demo:
To acquire: http://www.intersrv.com/~dcross/sonic/sonicsrc.zip (56k)
Information: http://www.intersrv.com/~dcross/sonic/
Entry updated: 12 December 1998
Description: A programming language for writing digital audio C++ programs
Introduction
Sonic is a computer programming language I have designed. Its purpose is to facilitate the synthesis and processing of digital audio recordings, with emphasis on concise coding and rapid development. Sonic contains constructs which will be familiar to users of languages like C++ and Pascal, such as assignment statements, procedures, local variables, while loops, and if statements. However, because it is so specialized for working with digital audio, Sonic is not intended to be a general-purpose programming language.
Features of Sonic
- Concise, powerful syntax for expressing many DSP algorithms.
- Many useful digital audio programs can be written in less than 10 lines of code!
- Built-in support for efficient sinewaves, sawtooths, Fast Fourier Transforms (FFT), and linear filters (IIR).
- Language is user-extensible: write your own C++ classes and import them into Sonic programs.
- Automatic scaling of output levels - Sonic uses temporary floating point files to hold output, then scales to fixed point before exiting.
- It's free! I'm doing this for fun, not money.
Limitations of Sonic
- Only the WAV audio format is currently supported. (Want your favorite format supported? Point me to a good file format specification and I'll see what I can do...)
- No console text I/O yet. Currently you cannot write the classic "Hello World" program in Sonic, unless perhaps you want to output Morse Code!
- Input and output audio files must be specified on the command line in a Sonic program in order to persist after program execution terminates. Programs may create temporary files to aid in creating persistent output files, but these temporary files are automatically erased when the program quits.
Eric M. Mrozek (mrozek@umich.edu), EECS-Systems, University of Michigan