Skip to content

Hybrid 6-voice polysynth with flexible voicecard architecture + MODS!

Notifications You must be signed in to change notification settings

TijuanaKez/KZ-ambikaLive

 
 

Repository files navigation

Ambika Live! (we'll call it that for now)

This project is a series of modifications (improvements) over the top of the YAM fork of the original fimrware for Ambika.

Changes:

ENV/LFO/MOD slot cycling with page buttons:

	- Repeatedly pressing buttons for ENV/LFO and MOD pages now cycles through slots.
	- Makes for muscle memory access to what you’re after quickly. e.g (double click for LFO2)
	- Good for 2 handed operation.
	

Turbo patch name editing!

	- Can now press A,a or 1 to jump to those characters, insert space, or move cursor with buttons.
	- Super quick 2 handed name editing!
	- ( A | a | 1 | _ | <- | -> save | exit)
	

'Drum' modulation destinations.

	- Same as Osc1 and Osc2 destinations, but with +/-32 semitones range for wider pitch envelopes.
	- The standard coarse pitch mod destinations don't have enough range for good drum sounds, ad the envelopes curves arent steep enough.
	- But, the standard envelopes can be 'squared' by using the modifiers for a steeper curve. Routing one of these 'squared' envelopes to 'drum' destination with an amount of 32, Ambika can achieve much better drum sounds or 808 like sounds.
	- e.g Modul.  1|srce mod1|dest drm1|amnt   32
	-     Modif.  1|in1  env1|in2  env1|oper prod  (squaring the Env1 envelope)
	

Solo polyphony mode:

	-Same as mono but only uses a single voice. Great if you designed a patch for a single voice (legato/glide) but want to load it onto a part that has multiple voices assigned and don’t want the unison/stacked sound.

Arp Latch Mode:

	-Acts like the arp latch on Microkorg. Pressing a key once triggers note on, a second time for note off.
	

Chord Sequencer mode:

	-In Chord Seq mode, the sequencer will pass each block of 4 consecutive notes on to the arp as a chord.
	-The 'lenp' paramenter defines how many steps between chord changes.
	-The note sequence length is locked to 16 steps (4 chords) for now.
	-Use rests to reduce the number of notes in each chord
	

Sequencer Tweaks:

	-Rests are now displayed similar to a tracker where '---' is displayed when there is no note assigned.
	-Makes for more visual drum sequences.
	

Performance Page Tweaks

	-When in the main performance page, the first 4 buttons now act as part mutes. Cool for jamming with the chord sequencer!
	-Button 5 resyncs the clocks. This is a bit of a workaround for the moment until I can get them to stay locked without having to resync (any ideas?)


Optional CC Maps (pref page 2)

	-Can choose between Ambika standard, Shruthi XT, and Novation Launchkey CC assignments (more to come)
	-Ideally these would be loadable from SDcard, but the only way I can think to fit them would be to use the boot loader to overwrite CC maps in progmem which is beyond my skills 😦


Unfortunately these mods will not be fully compatible with saved patches, though updating them would not be hard. It would mainly be checking the polyphony mode is correct, and resaving.


Work in progress…

Launchkey integration!

USB host for Launchkey via Arduino micro+micro USB Host via port 7 for connecting Launchkey directly to the Ambika.
Buss power the Arduino micro+Launchkey (might need regulator upgrade on ambika???)
Launchkey Sequencer mode: RGB pads will show sequence ‘playhead’ with one color, and knobs will edit either note, seq1 or seq2 depending on mode. Idle pads will show other colors whose intensity will represent the current sequencer values.
(‘Launchkey Seq’ mode is already in prefs page 2, but only shows the playhead now)

Source Code: Macros for enabling/disabling various functions to free up space temporarily to mess around.

The YAM fork of the original firmware can be found here (https://github.com/bjoeri/ambika).
As this is forked on top of YAM, all the YAM changes also apply.


Notes on building the source:

	- For the voicecard build to succeed, avr-gcc 4.3.3 must be used. Any later versions will build, but result in a silent voice card.
	- For the controller, avr-gcc 4.3.3 build will break our file size limit (61440 bytes)
	- But 4.5.1 will successfully build the controller and save us about 2700 bytes!!!
	

--- YAM Notes ---

Y A M - Yet Another Mutation

This is a project for an alternative firmware for Ambika, a hybrid MIDI polysynth and voicecard host from Mutable Instruments. 

Here's a short summary of changes _compared_ to official Ambika firmware:

* PolyBlep implementations replace the original band-limited 'saw' and 'square' oscillators for higher fidelity and less memory footprint (Polyblep implementation inspired by, but less general than, Emilies prototype for STM). 

* 'square' is now a Polyblep oscillator with more proper sounding PWM, i.e. more edginess, and no loudness drop for PWM modulation parameter above 0. 

* 'saw' is now a Polyblep oscillator (without any high pass pre-filtering and the modulation is different). The parameter for saw now add mix of a 2nd saw edge, resulting in a saw with sub oscillator (actually super oscillator) sound. 

* 'triangle' is no longer band-limited (to reduce memory footprint) and is folded (instead of clipped) upon modulation. 

* Added a quad PWM oscillator ('qpwm') very similar to the quad saw ('pad'). The modulation parameter simultaneously affects both detuning of the four pwm oscillators and the pulse width.

* Added an alternative FM oscillator ('fmfb') with feedback modulation. Just as for the regular FM oscillator, the modulation parameter defines the FM amount, but for modulation values above 64 increasing amount of feedback is added. At moderate levels the feedback adds 'grit'. At higher settings it adds digital distortion (deliberately left in).

* Added a 'csaw' Polyblep oscillator rather similar to the CS-80 inspired saw oscillator for Braids. Without modulation it's a plain saw (identical to 'saw'). Modulation adds a 'notch' discontinuity before the ramp.

* Ported phase57 mods for velocity and keyboard tracking to filter page and CC & NRPN assignments (104 and 105 respectively). Also, the active editing parameter is displayed in all uppercase characters. (http://blog.phase57.com/index.php/ambika/code for more details.) 

NOTES ON PATCH (PROGRAM) COMPATIBILITY with official Ambika firmware: 
Due to qualitative differences of the 'saw' and 'square' oscillators etc, levels may have to be adjusted somewhat to mimic original patches. If you really miss the original saw oscillator from the official firmware, this one is still available as 'oldsaw' (it's high-pass sampled and have a different character). In order to maximize patch (actually program) backwards compatibility, the added oscillators are put at the end of the oscillator selection (even though this means fmfb is not next to fm etc).

This repository was originally a copy of the Mutable Instruments GitHub Ambika repository at https://github.com/pichenettes/ambika
 
Original developer: Emilie Gillet (olivier@mutable-instruments.net)

The firmware is released under a GPL3.0 license. It includes a variant of the formant synthesis algorithm used in Peter Knight's Cantarino speech synthesizer.

The PCB layouts and schematics, documentation, analyses, simulations and 3D models are released under a Creative Commons cc-by-sa 3.0 license.

About

Hybrid 6-voice polysynth with flexible voicecard architecture + MODS!

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 89.7%
  • Python 9.2%
  • Other 1.1%