Skip to content

Instantly share code, notes, and snippets.

@grkvlt
Created May 23, 2012 09:37
Show Gist options
  • Save grkvlt/2774267 to your computer and use it in GitHub Desktop.
Save grkvlt/2774267 to your computer and use it in GitHub Desktop.
Moog Google Doodle

Moog Google Doodle

anigbrowl23 May 2012

Posted this earlier today when it turned up on google.com.au, but the thread had falled off the front page by the time I posted it. I thought people might find this interesting now that it's back.

The doodle is reminiscent of a Minimoog, but with several simplifications to make programming easier and more musical.

Mixer section

The large knob at the left is overall level (which does not equate to silence at its minimum setting, probably for UI simplicity). The three knobs to the right govern the volume of 3 individual oscillators.

Oscillator section

The leftmost 3 knobs define the pitch octave range for each of the three oscillators. LO is a subsonic frequency mainly used for modulation purposes in real life. #2', 16', 8' etc. refer to the length, in feet, of the pipe on a pipe organ that will produce tones of that frequency. A 32 foot long pipe produces a very deep bass tone (about 16 Hz, probably sounds like noise on most speakers), a 16 foot pipe produces a tone exactly one octave higher, and so forth. There are no 64 foot pipes that I know of, hence the LO setting. It's not possible on this little synth, but normally you would use those super-low frequencies as modulation sources for other things. The two knobs in the center allow tuning of the oscillators across a 2-octave range. Really, this ought to be graduated in semitones. If you turn down the center oscillator and put the other two on identical settings, you should, in theory, get the same sound only twice as loud, but the doodle is a little bit buggy and sometimes pegs one oscillator an octave above or below the other. It's easiest to just reload periodically. On a real-life analog synth of that generation, the oscillators would drift out of tune and need to be calibrated periodically; also, the tuning would change as the machine warmed up over the first half-hour or so of operation, so early electronic keyboard players often had difficulty staying in tune with the band. It was this pitch instability that caused everyone to rush towards digital synthesis at the end of the 1970s, although nowadays you can get very stable analog oscillators.

The rightmost 3 knobs set the shape for each oscillator; triangle, saw, inverse saw, and pulse waves with 10%, 25% and 50% duty cycles respectively. I think there is something amiss with the display of the saw waves on oscillators 1 & 2. Saw vs. inverse saw makes no difference on a single oscillator but where you have 2 or 3 choosing different directions for the wave can lead to interesting textures. The shape of the oscillator affects the harmonic content thereof. A triangle wave sounds very close to a sine wave - a piercing pure tone - while being computationally inexpensive. (Stable sine waves are surprisingly hard to generate on the fly unless you have a lot of DSP power, and even digital synthesizer manufacturers often cheat by using lookup tables for sine waves rather than generating them.) A saw waves contains all possible harmonics and is a good basis for brassy sounds like those of trumpets. Square waves (pulse waves with a 50% duty cycle) sound 'hollow' because they only have odd harmonics, and are a good basis for synthesizing woodwind sounds, where the absorbent nature of the material dulls the sound somewhat. Combining pulse waves of different duty cycle can lead to texturally interesting effects, although this is much more noticeable when the length of the duty cycle can be modulated, as opposed to merely switched.

Filter section

Something has gone terribly terribly wrong here, because this does not behave like any Moog synthesizer I have ever used. The top left knob controls the filter cutoff of a low pass filter, ie the frequency above which higher harmonics will be cut off. This is sort of like the effect you get if you sing a continuous AAAAAH tone with your mouth open and then gradually close your lips. Normally the knob tot he immediate right could control resonance, which boosts the signal around the cutoff frequency and produces an intense whistling/shrieking sound as it is turned up to maximum. High resonance and low cutoff settings act like a spotlight upon the timbral complexity of the oscillator output and are a staple of electronic music.

I am not sure what the rest of the knobs are supposed to do. They seem to allow oscillators 2 and 3 to be individually filtered, but unfortunately when I hold down a key and tweak the filter knobs the sound tends to break up. This is probably because the adjustment of filter and resonance controls in DSP require constant recalibration of filter coefficients, which is computationally expensive and not well implemented here. It is not normal to filter individual oscillators on an analog synthesizer. Normally one wants to apply a single filter to the mixed sound of the oscillators and modulate that with an envelope or low-frequency-oscillator - which is what I believe is supposed to be happening here, but it's too inconsistent for me to be sure. . Visually, this looks (slightly) reminiscent of a Moog Ladder filter, but that's usually a 4-stage transistor ladder, not a front panel set of controls. This is not how a synth of this style normally works, which is a real pity. It does not help that there are no tooltips; I've been making electronic music for 15 years and can't figure out exactly what's supposed to be going on here, so I feel bad for anyone who is trying to learn something from playing with this and getting frustrated. I tried looking at the javascript but it's unreadable outside of an editor and I have neither the time nor the inclination to troubleshoot it.

Envelope section

This is the simplest part; the envelope defines the volume behavior when you press a key. The topmost knob is attack, or how fast the sound fades in; very fast for a plucked instrument like a bass guitar, slow for a string sound. The sound swells to maximum over the duration of the attack time, then falls back to the sustain level, adjusted by the middle knob. The last knob governs release, how fast the sound fades away after the envelope completes its cycle. If you set this very short the sound will die even if you hold a key down. Due to some oddities in the input processing event queue, as with the oscillators, the envelope's behavior is rather less than consistent.

As for the switch and the modulation wheel, I'm not clear on what is connected to what, for the reasons described above. I'm guessing there is an invisible low frequency oscillator for vibrato/tremolo purposes (modulation either the base frequency or the amplitude slightly to give a sound some extra texture), but the lack of tooltips and inconsistent behavior make them difficult to use in any predictable way. If you are fascinated by this tool but frustrated, as I was, by the implementation problems, then you might like Morningstar - a basic html5 emulation of a popular Korg synthesizer/groovebox. Or Audiotool - a fully fledged html5 electronic music tool that sounds quite good considering it runs in the browser, but which may be overly complex for the novice.

Reference

Mixer

  • mastervol
    • moog-volume2
    • moog-volume1
    • moog-volume3

Oscillators

  • moog-osc2-rg
    • moog-osc2-pb
    • moog-osc2-wf
  • moog-osc1-rg
    • moog-osc1-wf
  • moog-osc3-rg
    • moog-osc3-pb
    • moog-osc3-wf

Filter

  • cutoff
    • attacktime
  • moog-glide
    • decaytime
  • contouramount
  • sustainlevel

Envelope

  • moog-loudness-attack
  • moog-loudness-decay
  • moog-loudness-sustain
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment