Hello everyone. I am opening this thread to start discussing everything about firmware development for the mutable instruments modules and clones. I have been developing some new firmwares mutable instruments. These are as follows:
Ominous Harmony for Rings (easter egg on steroids): a string machine synth voice, like originally thought by emillie but with additional features:
- 25 Chords based on a selection of J6 chords.
- AR envelope
- Full VCA control when internal envelope is disabled.
- Low pass/high pass/band pass filters.
- Effects: In addition to the chorus and reverb I added a Crunchy delay based on emillie's delay line implementation.
- Arpeggiator, based on plaits' implementation.
I am still wrapping this one up because I wanted to see if I could add a sort of ping pong delay as the alternative green mode for effects.
Tides2 Symbiote: added a fourth mode (ramp mode led off) that includes additional output modes. So far, I have implemented the following:
- Attractors: based on known implementations from emillie and quimen I added Lorenz, Rossel, Thomas and Chua/Chen chaotic attractors.
- Frames PolyLFO: I ported completely emillie's implementation for the use in Tides2. Meaning that the LFO can now be used as a wavetable oscillator too. Tracks 1V/oct, it uses the clock input to be tempo synced or harmonically synced to another oscillator just like the original modes.
- Rams (a modest sheep-like implementation): I took plaits' wavemap and added it to Tides2 (since the latest version provides a smaller wavetable size, just to be memory conscious). Output one is the wavetable oscillator bipolar output, output 2 is unipolar, output three is a sine suboscillator that can be folded using Warps' wavefolder and output 4 is a square suboscillator. All of the signals can be affected by the filter used with the smoothness knob. The wavemap can be manipulated as in plaits but it is always smooth for the bank selections, never stepped as in plaits.
I am struggling a lot with aliasing for the wavetable related implementations. A lot of trial and error but here are some of my findings:
- I had to lower the sample rate from 60k to 44k so that the aliasing for Rams would be aliviated. Still is noticeable in the most higher frequencies (around after 3 o'çlock of the frequency knob).
- Table size can be an issue for Rams so after I finish implementing everything I will see if I can add the 256 table that was originally in plaits.
- I found that when I render all the 8 sample blocks for all the channels, the aliasing gets worse. This is why I couldn't implement the quadrature Rams I originally thought.
- For PolyLFO, I am only processing one sample block for all the channels. The lack of aliasing is better since the lookup algorithm is one dimensional in contrast with 3D for the wavemap in Rams. Right now I am dealing with clicks and spikes for the envelope/sawtooth like shapes, still trying to figure out how to fix it (suspecting the table size and sample rate).
Warps Symbiote: hoping to release the 0.4.0 as an official version. This includes the ensemble voice taken from plaits and the new stereo/dual filter. This will include the fix for the chebyschev waveshaper (sorry!) and some recalibration of the filter models (I include a notch filter).
Any suggestions are welcome. Specially about Tides2 and my aliasing problems. Also feel free to recommend any ideas for the fourth mode that is left for Tides2. I was thinking of implementing an idea shared with me by redditor user r/jeauxsolo: a delayed envelope generator.
If anyone is interested I could release alpha versions of the firmware so that I could get feedback and issue reports. The link to the repo is https://github.com/leandrob13/eurorack
Ominous Harmony for Rings (easter egg on steroids): a string machine synth voice, like originally thought by emillie but with additional features:
- 25 Chords based on a selection of J6 chords.
- AR envelope
- Full VCA control when internal envelope is disabled.
- Low pass/high pass/band pass filters.
- Effects: In addition to the chorus and reverb I added a Crunchy delay based on emillie's delay line implementation.
- Arpeggiator, based on plaits' implementation.
I am still wrapping this one up because I wanted to see if I could add a sort of ping pong delay as the alternative green mode for effects.
Tides2 Symbiote: added a fourth mode (ramp mode led off) that includes additional output modes. So far, I have implemented the following:
- Attractors: based on known implementations from emillie and quimen I added Lorenz, Rossel, Thomas and Chua/Chen chaotic attractors.
- Frames PolyLFO: I ported completely emillie's implementation for the use in Tides2. Meaning that the LFO can now be used as a wavetable oscillator too. Tracks 1V/oct, it uses the clock input to be tempo synced or harmonically synced to another oscillator just like the original modes.
- Rams (a modest sheep-like implementation): I took plaits' wavemap and added it to Tides2 (since the latest version provides a smaller wavetable size, just to be memory conscious). Output one is the wavetable oscillator bipolar output, output 2 is unipolar, output three is a sine suboscillator that can be folded using Warps' wavefolder and output 4 is a square suboscillator. All of the signals can be affected by the filter used with the smoothness knob. The wavemap can be manipulated as in plaits but it is always smooth for the bank selections, never stepped as in plaits.
I am struggling a lot with aliasing for the wavetable related implementations. A lot of trial and error but here are some of my findings:
- I had to lower the sample rate from 60k to 44k so that the aliasing for Rams would be aliviated. Still is noticeable in the most higher frequencies (around after 3 o'çlock of the frequency knob).
- Table size can be an issue for Rams so after I finish implementing everything I will see if I can add the 256 table that was originally in plaits.
- I found that when I render all the 8 sample blocks for all the channels, the aliasing gets worse. This is why I couldn't implement the quadrature Rams I originally thought.
- For PolyLFO, I am only processing one sample block for all the channels. The lack of aliasing is better since the lookup algorithm is one dimensional in contrast with 3D for the wavemap in Rams. Right now I am dealing with clicks and spikes for the envelope/sawtooth like shapes, still trying to figure out how to fix it (suspecting the table size and sample rate).
Warps Symbiote: hoping to release the 0.4.0 as an official version. This includes the ensemble voice taken from plaits and the new stereo/dual filter. This will include the fix for the chebyschev waveshaper (sorry!) and some recalibration of the filter models (I include a notch filter).
Any suggestions are welcome. Specially about Tides2 and my aliasing problems. Also feel free to recommend any ideas for the fourth mode that is left for Tides2. I was thinking of implementing an idea shared with me by redditor user r/jeauxsolo: a delayed envelope generator.
If anyone is interested I could release alpha versions of the firmware so that I could get feedback and issue reports. The link to the repo is https://github.com/leandrob13/eurorack
Statistics: Posted by leandrob13 — Sun May 26, 2024 2:37 pm — Replies 2 — Views 69