Developer resources
Under this section you will find several useful resources for programmers,
including step by step tutorials,
examples, utilities
and source code and related
sound clips.
We've also included a list of usefull links to 3rd party utilities available around from the web, which you may find usefull during your development with the Chameleon
Monosynth: a monophonic synthesizer for Chameleon
(PDF), plus code
(ZIP)
This document explains in detail the internals of this new example included with the latest version of the Chameleon SDK.
MonoSynth is a complete monophonic synthesizer application for the Chameleon with two wavetable oscillators, a white noise generator, a mixer,
a resonant lowpass filter with cutoff envelope (ADSR), an amplifier with gain envelope (ADSR) and two (stereo) delay effect units.
You can listen to some sound clips generated and processed with the monosynth.
We are pleased to announce that monosynth has now become a GPL skin, we hope this will encourage more skins to be developed for the Chameleon.
This has also has been used as the basis for MonoWave II
by Paul Maddox.
He has made his source code available too, so that you can see how easy it is to create your own unique skins.
A simple Audio Level Meter for Chameleon
(PDF), plus code
(ZIP) (updated: 2004/04/13)
A small Chameleon application that converts it on an audio level meter, explained step by step.
You'll be able to use it later on more complex apps. Tutorial and source code included.
Introduction to the DSP56300. An approach in 8 exercises
(PDF), plus code
(ZIP)
An excelent tutorial with source code included for these who wish to get started with the Motorola DSP programming.
- g563cTest (ZIP)
This project shows how to use the GNU DSP563xx C compiler included in the Chameleon SDK to generate DSP code for the Chameleon platform. The example implements an audio thru and a 24dB/oct resonant low-pass filter, configuring the DSP DMA for audio I/O, and using interrupts for host communications. The audio processing is block based and the host communication is message based (it allows bi-directional message passing).
In order to work properly, you have to download the latest Chameleon SDK updates, especially the last build of the libraries.
- TaskingTest (ZIP)
This project shows how to use the Tasking C/C++ DSP compiler to generate DSP code for the Chameleon platform. The example implements an audio thru, configuring the DSP DMA for audio I/O, and using interrupts for host communications. The audio processing is block
based and the host communication is message based (it allows bi-directional message passing).
In order to work properly, you have to download the latest Chameleon SDK updates, especially the last build of the libraries.
The example uses the DEMO version of the Tasking DSP56xxx C/C++/EC++ compiler tools (version tested: 3.5r1), which can be obtained from:
http://www.tasking.com/products/DSP56xxx/demo_req.html
- levelmeter2 (ZIP)
The code of this project has been submitted by Andy Buttler (andybutler.com)
improving the example levelmeter provided with the Chameleon SDK.
- fftfilter2 (ZIP) (new: 2004/05/10)
The code of this project has been submitted by Alexey Ovchinnikov a.k.a. OVAL improving the example fftfilter provided with the Chameleon SDK by adding MIDI control of the EQ bands with keys, pitch and mod wheels. The example uses extensively a custom library developed by himself called ChamiLib, which allows to access all Chameleon facilities with a high level C++ coding interface.
- simpleverb (ZIP)
This project contains the source code of the complete implementation of a typical schroeder reverberator with 3-tap early reflections generator,
6 parallel combo and 3 cascaded allpass filters.
The code was originally the ECE320 project made by Hua Zheng and Shobhit Jain in 1998 using the Motorola EVM56302.
The original source code was posted in the forum and later it has been ported to the Chameleon hardware respecting the original
version implementation, changing only the necessary portions (host communications mainly).
You can hear some processed audio clips using this Chameleon application.
- Visual Studio project (ZIP)
This archive contains a Visual Studio 6 project which can be used to build Chameleon based applications using the Chameleon SDK tools, but editing in the Microsoft environment. The source code is a simple "hello world" example. It also works on the latest version of the Visual Studio (Visual Studio .NET).
These examples demonstrate how to write applications for the Chameleon.
These examples are supplied with, and require, SDK v1.2:
- Hello (ZIP)
Hello Chameleon world.
- Welcome (ZIP)
Front panel interaction.
- Show panel (ZIP)
Full demonstration of all panel features.
- MIDImon (ZIP)
MIDI monitor showing how incoming MIDI can be processed.
- DSPmem (ZIP)
Basic communication between the ColdFire and DSP to test the DSP external memory.
- DSPthru (ZIP)
Fundamentals of handling audio I/O in the Chameleon, in several ways: polling, interrupt and DMA.
- Host Commands (ZIP)
More advanced communication between the ColdFire and DSP using host command interrupts.
- ColdFire thru (ZIP)
How to get audio data from the DSP to the ColdFire and back again.
- ColdFire ASM (ZIP)
Shows the basis to use assembler code in the ColdFire in two ways: inlining assembler in C/C++ code and using an external assembler file.
- IIR ()
This example implements simple IIR filtering in the DSP, working as a second order bandpass filter.
(Note: There is a problem with the handling of audio in, both left and right, we will upload the file once the fault has been corrected).
- FIR (ZIP) (new: 2004/05/20)
This example implements simple FIR filtering in the DSP, working as a 11th order lowpass filter.
- Level meter (ZIP) (updated: 2004/04/13)
A small Chameleon application that converts it on an audio level meter, explained step by step. You'll be able to use it later on more complex apps. Tutorial and source code included.
- FFT filter (ZIP)
This example uses the FFT transformation into the DSP to implement a stereo graphic equalizer employing large FIR filters. The method used to realize these filters is the Overlap-Add FFT Convolution. The Scilab files used to design and simulate the FIR filters are also included in this useful application.
- Re-sample (ZIP)
This example shows how to process audio data at a different sampling rate from the standard found in the Chameleon model #01, which is fixed at 48000 Hz. Since this sampling rate cannot be changed, the incoming audio stream at 48000 Hz is resampled to achieve the desired sample rate. Processing is performed at the new sample rate, and then the processed audio is resampled back to 48000 Hz to be sent to the audio output.
The process of resampling is done by filtering the input signal with a Kaiser windowed Low Pass FIR filter, set to its polyphase form properly for the resampling operation. The filters are computed in Scilab using the routines in the file 'resfilt.sci'.
The example comes with a default resampling ratio of 2/3, so the application processing is done at 32000 Hz (making it suitable and more efficient than 48000 Hz for string instruments and voice processing). The number of coefficients is set to 61 for both filters, which gives good results for audio signals with low components above 15000 Hz. The two resampling processes take about a 8% of the processing power, so a high overall performance boost is achieved (about a 25%).
- Monosynth v1.21 (ZIP)
MonoSynth is a complete monophonic synthesizer application for the Chameleon with two wavetable oscillators, a white noise generator, a mixer, a resonant lowpass filter with cutoff envelope (ADSR), an amplifier with gain envelope (ADSR) and two (stereo) delay effect units. You can read more here or hear some audio clips here.
- wav2asm (ZIP)
Tool for converting Microsoft WAV audio files to data for the Motorola DSP56xxx assembler.
- bin2asm (ZIP)
Tool for converting 8bit binary datafiles to data for the Motorola DSP56xxx assembler (useful to convert 8bit unsigned data files as those used in EPROMs). Thanks to Paul Maddox for his contribution.
- Acrobat Reader (Win, Mac)
We use Adobe Acrobat for much of our documentation. If you do not have the latest version of Acrobat Reader, click on this link to get it. We do try to stay compatible back to Acrobat v4, but we recommend you upgrade.
- Winzip (Win)
Go to Winzip website to get one of the best utilities for unzipping files.
- Stuffit (Win, Mac)
StuffIt Expander gives you the easiest way to open your Internet downloads and email attachments.
Free, with no nags!
- GetRight (Win)
Our SDK is large, and not everyone has a fast connection. In such cases, a download manager can be a great help.
It's free to try out.
- MIDI-OX (Win)
MIDI-OX is a multi-purpose tool: it is both a diagnostic tool and a System Exclusive librarian.
It can perform filtering and mapping of MIDI data streams. It displays incoming MIDI streams,
and passes the data to a MIDI output driver or the MIDI Mapper. You can generate MIDI data using the computer keyboard or the built-in control panel.
You can even record and log MIDI data and then convert it to a Standard MIDI File for playback by a sequencer.
MIDI-OX is copyrighted freeware.
- SendSX (Win)
Bome's SendSX is a small utility for Windows to create SysEx messages and to send them to whatever midi-device.
Especially you can test SysEx requests, because the reply as well as all other events from the midi-device are displayed.
So it's as well a midi-monitor. Additional features are loading and saving of SysEx files, so you can archive bulk dumps from your
MIDI device and send them later back to the device.
- Sysex (Mac OS9)
SysEx is a universal MIDI librarian program for the Macintosh. SysEx can transmit and receive system exclusive messages via
MIDI and can save and load these messages to and from disk.
- Sysex Librarian (Mac OSX)
SysEx Librarion is another universal sysex librarian, this time for OSX, it can transmit and receive MIDI sysex data.
Following you will find short pieces of sound either generated or processed by some of the different Chameleon applications whose source code is available above.
Monosynth
- Genetic Green [MP3; 935 KB]
This song has been composed by A.Jacob
using the monosynth demo application. The song polyphony was got recording the sound in several steps using a multitrack computer sequencer.
- Floating Mutes [MP3; 319 KB]
- Fat Bassey [MP3; 879 KB]
- Square Fantasy [MP3; 174 KB]
- Rezzo Grow [MP3, 257 KB]
- Synth Bass [MP3; 376 KB]
- Input thing [MP3; 430 KB]
This preset process the audio input using the monosynth voice architecture (vcf, vca, effects). The sound clip shows what kind of effects could be achieved using this preset to process a short trance sequence interactively (DJ tool).
SimpleVerb
These audio clips have been processed using the application simpleverb (available here), whose source code was originally posted in the
forum.