Showing posts with label modular synth. Show all posts
Showing posts with label modular synth. Show all posts

Saturday, April 23, 2011

"We Won't Get Fooled Again" Intro Sound - Tutorial

This post will be an accurate tutorial on how to recreate the sound used by The Who in the song mentioned in the title (the post about Baba O’Riley was a descriptive and, you know, I can’t write properly in English :D… but I think the VST I coded was somehow easy to use enough to forgive about my writing “skills”).

UPDATE: This is what it sounds like :D
We Won't Get Fooled Again [Intro Sound] by Paolo Montesel

SOFTWARE NEEDED:
  • Reaktor (You should be able to recreate the same patch in similar modular synth software and even on your average keyboard with 2 LFO… It can also be emulated with 1 LFO and 1 arpeggiator)
  • Plogue Bidule (That is, a modular VST host… just because it is much more flexible than ordinary hosts, but any decent host with insert effects could do)
  • Some kind of Organ/Hammond VST (even crappy :D)
Note:
There’s some nice open source modular synth out there (ALSA Modular Synth, Ingen, etc…) and they can do what I do in this tutorial, but I’m not using them since they are quite instable and incomplete.


BIDULE PATCH
First of all, let’s create the Bidule patch and later we will focus on the Reaktor part:

The image is pretty self-explanatory but I’m gonna explain it anyway:
  • UMX 49 – This is my USB Keyboard and is used as a MIDI input device
  • B4 II – Hammond VST
  • Reaktor5 – Native Instruments’ masterpiece ;)
  • Mixer – In this patch it is useless, but it’s there by default :D
  • ASIO4ALL – ASIO (low latency) audio output. Be sure of using an ASIO driver or you’ll be getting weird sounds (in Windows)
WHAT WE ARE GOING TO DO IN REAKTOR
Aka “What’s going on in the song?”

Well it’s pretty simple. There’s the Hammond-like sound being put on and off something like 4-5 times a second and this is achieved by modulating the amplification of the organ with a square wave with values 0-1.
Then there is a low pass filter controlled by a sinusoidal LFO.
Yeah, I told you, simple.

REAKTOR

ON/OFF
First of all, we create the on/off effect:

1:
  • “Tempo Info” is an object that give us the Beats Per Second setting of Reaktor, so if you take the inverse of it we get the frequency of the current tempo. “Mod Multi” is a Knob with step set to “1” and is used as a frequency multiplier (the multiplication is the “X” object). The point of having knobs is to make it easy to change parameters of the patch and tweak them easily.
  • The LFO (Low Frequency Oscillator, an oscillator that works at low frequencies) takes the frequency calculated and output a square wave (The output port is called “Pls” due to “Pulse”, another name for square wave) with amplitude 0.5, so we get a wave oscillating between [-0.5, 0.5].
  • The last block is simply adding 0.5 to the wave so we get it to oscillate between [0, 1]
2:
  • This isn’t a necessary step, but since the square wave contains a lot of high frequencies we get some “clicks” in the sound. So we simple filter it with a low-pass filter (LPF) and we get a square wave that is “less squared” :).
  • “Square Flt” is another knob.
  • “Log” is a Reaktor object used to turn a “frequency” signal to a “pitch” signal. If your modular synth uses plain freq signals you can avoid this.
3:
  • This is the easier block of the patch.
  • The 2 “In” are the audio inputs. The 2 “Out” are the ouputs.
  • “X” is, again, the multiplication.
  • Now we can press some key on our MIDI keyboard to hear how it sounds. Adjust the knob value as you want (for the filter knob I have 100, the other should be as accurate as possible to the original track).
LFO-CONTROLLED LPF

1:
  • This time we are gonna use a sinusoidal wave so we connect the “Sin” output of the LFO. “LFO Freq” and “LFO Amp” are knobs (See the last snapshot to see some nice values to start with to create your own sound).
2:
  • Here we have 2 knobs. The first, “LFO Filter Res”, is the parameter used to set the LPF resonance (if you don’t know what it is just play a bit with the knob and hear the difference… for the technical explanation Google something like “resonant low pass filter”).
  • LFO Offset is added to the LFO output to get values between [Offset-Amp, Offset+Amp] otherwise we would get the sound filtered way too much.
  • Both the signal are then converted to pitch signals used to control the 2 filters (one for the left channel, the other for the right one).
3:
  • Instead of connecting the stuff from the first part of the tutorial directly to the outputs we insert two LPF controlled by the LFO in 1.

FINAL PATCH AND PANEL

The “Mod Multi” knob value is totally wrong because the last time I opened this patch I played a bit with it ;).

FINAL WORDS
Now you are ready to have fun playing We Won’t Get Fooled Again :) Feel free to drop a comment if you need some help. I’m not gonna upload the final patch since I want you to do it with your hands and learn something :P

I should definitely try to do this in ALSA Modular Synth or Ingen, but these two softwares are way too instable… Ingen looks promising and I’ve been using it for some tests but from the SVN activity I saw it’s no longer actively developed. Too bad, someone should take the duty of doing some serious bug-hunting, develop it in the area where it lacks features and package it for the major Linux distribution (Ubuntu Maverick doesn’t include it in the official repos) because it could become the defacto open source modular synth.

I really hope the open source audio community will be able to fill the gap with Windows and Mac since I’m a huge Linux user/fan… Trust me, I tried hard to do some serious audio stuff in Linux but when I tried to do something more than the basic stuff I could not find the proper software. Ardour is amazing but it needs some improvement on the plugin/sidechaining part.
I dunno why but on Windows I get no clicks (xrun in jack’s jargon) while on Linux I get some clicks in the audio even if I lower the audio quality and all…

P.S.: I’m not a Reaktor guru so it’s probable that there are easier ways to get the job done, but I don’t know them :D

Friday, April 3, 2009

Ingen: Opensource Modular Synth

After trying alsa modular synth and seeing it crashing every 2 mins, I decided to search the web for something better... and I found Ingen.

A simple MIDI-controlled synthesizer patch

Ingen is a software that uses LADSPA and LV2 plugins, connected with each other, to create synths. LV2 is a new format of plugin, that probably will substitute the old and limited LADSPA if all goes right.
LV2 gives the programmer the possibility to create a custom GUI, just like VSTs do.

You can install Ingen from your distro's repository, but if the version you get is not up to date, you should checkout the latest from SVN: If you are able do deal with the console, the second is the better choice, because it means more stable software.

On this page there's the step-by-step guide to compile it from SVN.
(The build system, waf, needs python 2.x to work.)

If you get an error ending with
/giomm-2.4/giomm/error.h:97: error: expected declaration before ‘}’ token Build failed
-> task failed (err #1):
{task: cxx ConnectWindow?.cpp -> ConnectWindow?_1.o}

I managed (in a not so good way) to "solve" it:
Just open the file error.h (that should be in some folder like "/usr/include/giomm-2.4/giomm/") and skip the source to the line indicated by the number indicated (in this case, 97). After that, change the line from "HOST_NOT_FOUND," to "HOST_NOT_FOUND_," and do the same for the next line.
Then recompile with ./waf and all should work fine. After compiling, reopen error.h and revert the changes.

Now, a simple "sudo ./waf install" or "./waf install" if you are already root installs the app on your system.
To run it, if you don't see it on the app menu, open a shell and write "ingen -eg": this will start ingen with the graphical frontend.

As I wrote before, Ingen needs plugins installed on your computer, otherwise it is quite useless.
Here are some links to good plugins:
Ingen automatically adds LV2 plugins in its menu, while for LADSPA ones you must right click->find.

If you have any problem or question, just leave a comment or write some line on Ingen's IRC channel on freenode.

I hope to write a short tutorial to describe how to create a simple synth with ADSR ampli.

3mpty