RingMod Home Page

Current Version: 1.0.4

RingMod is a simple real time high performance interactive live audio processing software, which simulates a standalone vintage concert ring modulator. It is built around a user-friendly, responsive IndigoMagic/ViewKit graphical user interface, with six frequency bands and visual carrier frequency and modulation depth display. So far - due to the fact that it heavily relies on SGI's low-latency multi-threading - it works only on SGI computers, running IRIX-6.5, but ports to other UNIX/LINUX flavors are quite possible, assuming P-threads, and implementing code for a platform independent low-latency full-duplex audio i/o library, not to mention a proprly patched kernel (for low latency). The program accepts stereo audio data from the default audio input (microphone, line, ADAT or AES) at 44.1k sampling rate and renders the processed signal to the default audio output. DSP itself is being performed in clean, floating-point data format, practically without introducing artifacts.

Theory of Operation:

Ring modulator (also known as product modulator or amplitude modulator) used to be one of the oldest traditional electronic musical instruments for so-called non-linear synthesis. "Non-linear" means hereby that some sounds are coming out, other than those which go in. Ring modulator owed its distinct sound to the combinational spectra it produced by multilpying instantaneous values of two audio signals, the carrier and the modulator. Modulator signal has usually been an audio line, carrier used to be a signal from the tone genetaror. As result signal, one would obtain a "combination tone" with both carrier and modulator frequencies supressed, but their spectral sums and differences synthesized. The spectrum of the result output signal would thus form a "ring" around what used to be the carrier frequency, i.e:

F(out) = F(fc + fm) + F(fc - fm)

where F stands for signal spectra, fc for instantaneous carrier frequency, fm for instantaneous modulator frequency. In other words, signal multiplication in time domain becomes convolution of frequency spectra.

History:

Ring modulator as musical device was invented in 1947 by Harald Bode, the legendary inventor of so many marvelous early signal processing devices. Traditionally, it was manufactured in analog technology, using a modulating amplifier (made of four diodes in ring-configuration) with two transformer-coupled inputs. With the rise of digital technology it went out of fashion, but ring-modulator parts exist in some of the finest scores of the classical era of electroacoustic music. Some manufacturers make nowadays ring modulator guitar pedals, ring modulator plug-ins can be found in some larger file- or TDM- based audio processing suites, and can probably be easily patched together in MAX/MSP jMAX or PD (I've also heard of some VST plugins for PC sequencing software)

Objectives:

Even though ring modulator algorithm is one of the simplest DSP algorithms one can think of, I haven't recently seen a freely available, downloadable stand-alone low-latency ring modulator software, which would also have an interface comfortable enough to be used in a concert, for example in an orchestra. RingMod is therefore designed for uncompromising quality, control and ease of use in concert performance. Its coming to life was inspired by the concert music of Croatian composer Milko Kelemen (Happy 90th birthday, Maestro!), one of the first composers in this part of the world who wrote ring-modulator parts in his orchestral scores, back in the 50s. He even composed a piece for ring modulator as featured instrument "Mirabilia for Piano, Ring Modulator and Two Orchestral Groups". I decided to write this software instrument for concert purpose and make it freely available.

Short Tour:

RingMod can be started by double-clicking its icon, or by typing ringmod into the UNIX shell window. It has to be owned by root, with uid set, because the audio process will try to assume non-degrading priority, else you may hear occasional clicks, when you move around the GUI. The GUI window consists of the control field and menu bar. From the Port menu select Open to make audio I/O active. The Frequency Range radio-box lets you pre-select the desired carrier frequency range. The "Waveform" menu lets you pre-select among the analytically generated carrier waveforms. You can fine-tune the frequencu using the Data Slider or arrow buttons. The same are the main performing interface as well. In each case the display will show you the value in Hertz. For more sophisticated control visit the "Options" menu. From there, you can also set the thumb-wheel to control synthesis depth. Press Run button to start. This is the first complete version of the program, so all other controls really do what they say.

Last, but not least:

RingMod is a FREE software. You can use it without paying anything for it, but I decline any liability for this software and its fitness for any particulat purpose. In other words, absolutely NO WARRANTY comes with it! If you disagree, please don't

Download RingMod 1.0

Download RingMod Source (for IRIX)


RModX


Here is also a RingMod's "little cousin" for MacOSX, built as standalone app. Although still in development, it can be considered almost complete OSX RingMod port, with its functionality, sophisticated real-time performance control of every program feature, and a smooth, warm, analog-like sound.

Everything else is pretty much self-explanatory.
This is an exercise in writing a performance oriented sound app, using no-latency design. Therefore it will work only on full-duplex audio hardware (capable of simultanous synchronous playback and recording), such as RME Fireface or M-Audio Audiophile 24/96, and luckily, many more nowadays. Else it will display error messages and quit.
If you'd like to try it on the built-in (non full-duplex) audio, you may have to download and install a software aggregate device, such as Cycling74 Soundflower.

There are still a couple of rough details waiting to be polished. Hope to have the complete version of the program with source-code posted soon.

FAQ:
Why standalone?

Download RModX

Note: Microsoft Internet Explorer is notorious for corrupting binary download files when it does not understand the file extension. Please do not download software from this page using Microsoft Internet Explorer.