Back to main page

A Maxima sound package

sound.lisp is a Maxima package for playing sounds. This web site is the only available documentation for the moment.

With package sound it's possible to generate, manipulate, save, draw and play waveforms. This package is still under development and may be changed with no backward compatibility.

You need at least Gnuplot 4.2 and Maxima 5.18 to run this package. Type load("path_to/sound.lisp"); to make use of it. You also need a music player installed in your system. When function play is called, it only generates a wav file. By default, the file is not played and the waveform is not drawn. You can change this behavior by means of sound options player and draw_wave.

When loading this package, the following packages will be loaded too: draw, distrib and numericalio.

Follow this link for timing tests.

I have written this package for fun. The idea originated during a conversation with Teo Ramirez, a good friend of mine and professor of piano, who asked me how could Maxima help him to teach his students how beats are produced when two pianos are tunned with slightly different frequencies. The first idea was to work this acoustic phenomenon graphically, but remembering that other symbolic algebra systems have built-in functions for playing sounds, the next step was obvious.

Teo gave me some working directions and made me clear a lot of acoustical and musical concepts. Without his assitance, it would be impossible for me to write this package.



What's new

Back to main page


by Mario Rodríguez Riotorto