Imagine the sonic motion of wavetable and wavesequencing synthesis, then add on filters that move in the same way. That is Sonos described in a sentence. I'm aiming to deploy the first incarnation of Sonos as a 64-voice tabletop hardware synthesizer. The AudioUnit idea died when I sold off Totpunkt, my PowerMac G5. Since then, Octave, GNUPlot, and LaTeX have dominated the field of research and development.


Sonos will primarily be FPGA based, using whatever IC seems up to the task. I'm currently gravitating towards the Xilinx Spartan-3 line of FPGAs. The -3E and -3A DSP devices are pretty cool, but prices have to come down before I seriously entertain the latter chips. I'm also considering the Lattice ECP2 FPGAs, mainly because of their 3GBPS I/O links and non-volatile FPGA options. Until I choose though, I'm keeping things at a very abstract level in the VHDL code. This whole system will need a CPU to run it too, but I'm not going all FPGA with a MicroBlaze. Instead, I'm probably going to use a Gumstix XScale based CPU board.


It all starts with the sound source. Sonos will have four wavetable/wavesequencing oscillators per voice, which can be configured as either four independent oscillators, or each as a quadrant in a vector matrix. Each oscillator can be configured for a static waveform, a PPG/Waldorf-style wavetable, or for a wavesequence. Unlike the older wavetable and wavesequencing synths of yesteryear, the tables and sequences can have an unlimited size. Sound quality can be tightly controlled. The sound designer can choose either high-quality sample interpolation, linear interpolation, or non-interpolated drop sampling.

The filter section has three types: 4-pole lowpass, 8-pole lowpass, and AudioTerrain. While the lowpass filters are self-explanatory, AudioTerrain requires a bit of explanation. Imagine 16 two-pole parametric filters running in series, each with individually controllable cutoff, Q, and type (parametric, lowpass, highpass, etc.). Then imagine setting this filter "terrain" in motion. Control each parameter, or the entire filter set as a whole. This allows the user to build much more complex filtering curves to work from rather than a standard lowpass curve with resonance. This is the AudioTerrain system. While it is similar to E-Mu's patented Z-Plane system, this gives the user complete control over all filter elements rather than constraining creativity through preset filter types.

The rest of the synthesizer will be decked out with a fully flexible modulation matrix, plenty of knobs for sound design and control, arpeggiator and mini-pattern sequencer, and a complete multi-effects system. More will be added about these sections of Sonos as they are developed.


The design is still coming together - I'm modeling both the oscillator cores (sound interpolators) and the AudioTerrain filter architecture in Octave, as well as writing VHDL skeletons for the entire series of chips that will go on this board. I expect to use 3 or 4 FPGAs to implement the voice engine. One for the oscillators, one or two for the filters, and one for the effects engine. Since the design of each engine is akin to designing an ASIC (a massive undertaking for one person alone), progress is very slow. I'm also making sure to document every step of the process and technical details of every block should this ever become commercially viable or I desire to open-source the whole design. I'm also playing with the user interface in both SolidWorks and using foam core mockups to analyze how the unit will be used both as a sound creation platform and as a performance instrument.

Due to the experimental nature of this project, the final units will not be cheap. I'm not taking any orders for this design, but anyone interested in assisting in the financing and development of Sonos can contact me to discuss what can be done. I'm hoping to build a prototype run of between 3 and 7 units when all is said and done, and these definitely need good homes.

(C) 2K7 US DET3