Channels ▼
RSS

Design

Audio Applications and Effects Made Easy


Craig Lindley is a hardware engineer who, for many years, has been writing largescale Java applications. Craig has authored more than 30 technical articles on various programming topics and published five books, dealing mostly with multimedia. His "Digital Audio With Java" is all about processing sound with DSP software written in Java. Craig can be contacted at calhjh@gmail.com .


In 2000 I published the book Digital Audio With Java, wherein I presented an architecture for processing sound with code written entirely in Java. In the framework I provided, you had to combine user-written code for sound processing and user interface with modules I provided for reading and playing samples. Once all of the code in the signal processing chain was available, audio samples were pulled through the sound processing functions and the results could be heard in real time.

That was then. Today there is SynthMaker from Outsim Ltd. SynthMaker provides the same type of functionality but does so in a completely graphical environment. With SynthMaker, you can prototype audio effects or build complete software synthesizers by graphically connecting various types of modules provided with the program and/or by writing modules one self. And SynthMaker is not limited to the digital signal processing side of the equation. SynthMaker allows elaborate user interfaces to be created with all of the switches, knobs and readouts your creations require for real time operation.

Once you have your audio application built, it can be tested and debugged directly in the SynthMaker environment by connecting up any inputs required and listening to the result on a direct sound or midi output. Various readouts and analyzers are provided that allow you to inspect signals along the signal path which is a real help in debugging. Once your application functions correctly it can be:

  • Converted into a module and saved in the module library for use in building other modules.
  • It can be exported as a stand alone application (EXE program) for use in the Windows environment.
  • It can be made into a Virtual Studio Technology (VST) plug-in for use with most sound processing applications. (See "Resources" for information on VST modules and instruments.)

For programmer/musicians like myself, the third bullet is probably the most important aspect of SynthMaker. Without a tool like SynthMaker, creating custom VST plug-ins is a time consuming, tedious and error-prone process that takes the focus away from what you are trying to achieve -- the recording of music. In addition, you must have software development tools like Visual C++ to implement the plug-in and understand the Steinburg VST spec from top to bottom to build a plug-in that works.

Building your VST plug-ins with SynthMaker can save a lot of time and effort. For example, the other day I recorded a guitar part and wanted to use vibrato on it to give it an edge. I looked around at the plug-ins I had available and didn't find a suitable one. Later that night I started to think about the vibrato algorithm and the next day I created a VST plug-in that suited my purpose.

Other plug-ins I have created with SynthMaker include:

  • Tremelo. Amplitude modulator with adjustable low frequency modulation and depth.
  • Panner. Similar to a balance control on a stereo, a panner is used to position a sound source in a stereo sound field.
  • Auto Panner. Using the panner module created for the effect above I created an auto panner which pans a sound source back and forth in the stereo field in a controlled manner. Here a low frequency oscillator (LFO) is used to control panning. A sin, triangle or square wave can be selected as the wave shape of the LFO. A depth control determines how far back and forth in the stereo field the sound source is panned.
  • Stereo Width Enhancer. This effect affects the apparent width of a stereo sound source. A stereo signal can be reduced to mono with this effect or can be made larger than life.

    All of these effect modules are available from Dr. Dobb's in this source code archive. The rest of this article is an overview of the SynthMaker concept and how it is applied.


Related Reading


More Insights






Currently we allow the following HTML tags in comments:

Single tags

These tags can be used alone and don't need an ending tag.

<br> Defines a single line break

<hr> Defines a horizontal line

Matching tags

These require an ending tag - e.g. <i>italic text</i>

<a> Defines an anchor

<b> Defines bold text

<big> Defines big text

<blockquote> Defines a long quotation

<caption> Defines a table caption

<cite> Defines a citation

<code> Defines computer code text

<em> Defines emphasized text

<fieldset> Defines a border around elements in a form

<h1> This is heading 1

<h2> This is heading 2

<h3> This is heading 3

<h4> This is heading 4

<h5> This is heading 5

<h6> This is heading 6

<i> Defines italic text

<p> Defines a paragraph

<pre> Defines preformatted text

<q> Defines a short quotation

<samp> Defines sample computer code text

<small> Defines small text

<span> Defines a section in a document

<s> Defines strikethrough text

<strike> Defines strikethrough text

<strong> Defines strong text

<sub> Defines subscripted text

<sup> Defines superscripted text

<u> Defines underlined text

Dr. Dobb's encourages readers to engage in spirited, healthy debate, including taking us to task. However, Dr. Dobb's moderates all comments posted to our site, and reserves the right to modify or remove any content that it determines to be derogatory, offensive, inflammatory, vulgar, irrelevant/off-topic, racist or obvious marketing or spam. Dr. Dobb's further reserves the right to disable the profile of any commenter participating in said activities.

 
Disqus Tips To upload an avatar photo, first complete your Disqus profile. | View the list of supported HTML tags you can use to style comments. | Please read our commenting policy.
 

Video