Code Monkey home page Code Monkey logo

connie's Introduction

Connie

Simple simulation of an electronic organ like e.g. Vox Continental.

This program is intended as a toolbox for creating an electronic organ program with JACK MIDI input and JACK audio output for Linux.

Vox Continental

The Vox Continental transistorized combo organ creates the sound from twelve individual tunable LC oscillator boards with a six stage octave diver. The resulting 84 frequencies (RC filtered rectangular signals) are mixed with four contacts at key press and summed for the four stops. The different voices (flute and reed) are created by summing the original mix and a two stage RC filtered signal. The fixed switchable vibrato signal (RC filtered rectangular) introduces a fm at the oscillator boards.

For the connie program I looked at the schematics and wrote the software according to the signal flow with some tweaking of the voices.

There is a lot of info and the schematics available for the Vox Continental.

The Software

Connie is a JACK application. It has one MIDI input and a stereo audio output. The sound is generated by sampling lookup tables with calculated waves at 12 equal tempered frequencies for one octave. The upper octaves were generated by sampling with greater sample steps.

This solution allows a moderate cpu load.

The sound of each note is ramped on and off to reduce the key click. For each sounding note four stops are mixed:

  • The subharmonic 16' (one octave lower)
  • The unison stop 8'
  • The octave stop 4' (one octave higher)
  • The mixture stop 2 2/3' (octave+fifth), 2' (superoctave), 1 3/5' (superoct.+major third), 1' (superoct.+octave)

To cover a broad variation of sounds three voices from two lookup tables can be mixed:

  • Flute - a sine wave
  • Reed - a bandlimited rectangle wave
  • Sharp - a bandlimited sawtooth wave

For the reed/sharp voice I've created own samples of bandlimited signals for each octave. These samples are mixed at octave border to minimize the ugly "sound jump". This combination allows a much wider sound range from very soft to very harsh. To get the typical cheesy "Connie" sound you have to fiddle with theese voices. I'll do more experiments with the waveforms and the lookup tables - but my first goal was to hear some noise ;)

Drawbars (vol = 0..8) control the four stops, the three voices and the intensity of the vibrato and percussion.

The vibrato works as a combined stero am and fm to create a sound like a very simple leslie - massive work has to be done, maybe with the help from some experts out there...

Poor Man's Hammond

I'm working on a second test model with individual control of each stop and some other changes, kind of poor-man's-hammond, but (at the moment) without all the hammond special effects (leakage, click, random phase of wheels, vibrachorus etc.). This "hammond" project is just the extrapolation from the registers (16', 8', 4' and the mixture 2 2/3' + 2' + 1 3/5' + 1') already existing in connie to the well known nine numbers with a sine voice. This p-m-h model should therefore not be called Hammond, but Test.

Critics and hints are welcome, I need input for improvement.

Usage

usage: connie [opts]
  -a                      autoconnect to system:playback ports
  -c CHANNEL              MIDI channel (1..16), 0=all (default)
  -f                      french AZERTY keyboard
  -g                      german QWERTZ keyboard
  -h                      this help msg
  -i INSTRUMENT           0: connie (default)
                          1: poor-man's-hammond
  -m MIDI_PORT            connect with midi port
  -p PITCH                concert pitch 220..880 Hz (default = 440 Hz)
  -s INTONATION_SCALE     0: Hammond Gears
                          1: Equally Tempered
                          2: Pure Intonation
                          3: Pythagorean
                          4: ¼ Comma Meantone
                          5: Werckmeister III
                          6: Kirnberger III
  -t TRANSPOSE            transpose -12..+12 semitones
  -v                      print version
  -C configfile           load config file
  -U UUID                 set jack session UUID

VOX is a registered trademark of VOX AMPLIFICATION LTD.

connie's People

Contributors

ho-ro avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

anclark

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.