Y A M - Yet Another Mutation This is a project for various firmware modifications and hacks for Shruthi-1, a digital/analog hybrid MIDI monosynth. Here's a short summary of changes _compared_ to official Shruthi-1 firmware 1.02: * PolyBlep implementations replace the original band-limited 'saw' and 'square' oscillators for higher fidelity and less memory footprint (Polyblep implementations inspired by, but less general than, Oliviers prototype for STM). * 'square' is now a Polyblep oscillator with a more proper sounding PWM, i.e. more edginess, and no loudness drop for PWM modulation parameter above 0. (The original aliasing pwm is still available as 'dpwm'.) * 'saw' is now a Polyblep oscillator (withuot 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. This also means that the 'crush' oscillator is slightly different sounding. * Added a 'csaw' Polyblep oscillator very 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. * Added a quad PWM oscillator ('qpwm') very similar to the quad saw ('pad'). The modulation parameter simultaneously affect 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 filter variations of CZ resonance saw and pulse waveforms ported from Ambika ('lpzsaw', 'pkzsaw', 'hpzsaw', 'lpzpulse', 'pkzpulse', 'hpzpulse'). In this new naming conventionm, the old 'zreso' is now named 'lpzsaw', and the old 'zpulse' is now named 'pkzpulse'. * Added 'wavquence' oscillator (simply ported from the official Ambika firmware). * Duo mode voice allocation reverted to 0.96 behaviour (because I subjectively think it's more enjoyable): - Press and hold C -> Osc1 plays C; then - Press and hold E -> Osc2 plays C, Osc1 plays E - (Sub is always assigned to lowest note) SOME TIPS ON PATCH COMPATIBILITY WITH OFFICIAL Shruthi-1 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). This repository was originally a copy of the Mutable Instruments GitHub Shruthi-1 repository at https://github.com/pichenettes/shruthi-1 Original developer: Olivier Gillet (ol.gillet@gmail.com) The firmware is released under a GPL3.0 license. It includes a reimplementation of the formant synthesis algorithm used in Peter Knight's Cantarino speech synthesizer. The PCB layouts and schematics (in /hardware/shruthi/design/pcb) are released under a Creative Commons cc-by-sa 3.0 license - except for some discontinued filter boards which were released under a cc-by-nc-sa 3.0 license. Documentation, analyses, simulations and 3D models are released under a Creative Commons cc-by-sa 3.0 license.