Last week I began to get a bad āforcing a round peg into a square holeā feeling about the ongoing adjustments to the MiMi-d envelope and related UI. Iāve given the matter a lot of thought over the weekend, revisiting some of the design goals of the MiMi-d. I wanted the MiMi-d to be a compact synth which still offers a lot of features, by utilizing the available modules as much as possible. This is inspired by instruments such as the Prophet 5, MicroMoog and Juno -106, which have a fairly small set of modules, yet utilize them to the max, in order to create a versatile and flexible instrument without requiring a sea of parameters to set it up. The range of sounds that can be achieved from these machines is astonishing, given their fairly limited features set. The latter also makes them eminently tweakable. That is why the MiMi-d has audio rate oscillator and filter modulation, and variable sync level. Thatās also the reason that the envelopes are basic ADSR types, with an additional time parameter for the sustain phase.
In the MiMi-a, with its 6-knob user interface, ADSSR envelopes made very good sense, mapping to five knobs, with the sixth one being an amount control. For Zynthian, with its four-knob interface, I was considering giving up the sustain time parameter altogether, but early on decided that I really do find the it valuable enough that itās worth including. The current layout with ADSS on one page for each envelope, plus a separate page for the Release parameter for both envelopes I feel is a good compromise, and has the added bonus that the release parameters can be tweaked from the same page without jumping back and forth, which is something that after implementing it I found more useful than I originally thought is would be, as often the release times of the two envelopes do need to be balanced against each other. Also, the first page is everything from note on up to note off, and the second page with the Release parameter is what happens after note off.
For me being able to quickly and swiftly reach the different parameter pages is very important. Some might disagree, arguing that when were dealing with an instrument that is page oriented, there is a lot of jumping about between the different pages, so we just have to get used to it. But I feel that there is a lot to be gained by a well crafted page layout, for really the same reason - itās cumbersome enough, so it needs to be alleviated as much as possible. I do a lot of live tweaking when playing, and I want others to be encouraged to do the same. To aid this, on my Zynthian I set up the ā3ā and ā4ā softkeys to be āupā and ādownā in the parameter list (although I have yet to manage this in oram; havenāt tried to do it for a while though so maybe it works now), to be able to quickly reach adjacent pages.
So what this boils down to in this case is that Iāve decided to heed @jofemodoās
comment:
and not implement the envelope hold phase in the MiMi-d, and also not adjust the parameter pages to put each envelope in its own page group, but rather keep the envelopes as they are today. I know this is a letdown for especially @riban who has put a lot of work into both discussions and testing related to the hold parameter and its implementation and also the work for the graphic envelope rendering feature. I value all the suggestions that Iāve received (such as among other things the bipolar detune parameters for the oscillators), but the āholdā phase is simply out of scope for the MiMi-d.
Part of the rationale for this is that logically, in terms of order, the first envelope parameter page would be AHDS and the second one SR, but that means a lot of jumping back and forth between the parameter pages for the ADSS parameters which interact a lot with each other when creating sounds. My latest suggestion was to put ADSS on one page and RH on the another, in order to keep the ADSS parameter together, which is a split I think one could get used to, but is questionable from a logical point of view.
In the end though, it boils down to just one feature too much for the envelopes. I have had a lot of similar reasonings while putting together the MiMi-d in its present form. Some of the suggestions that have been discarded have been:
- Variable slope for the LFO triangle waves, so that the waveform could be morphed from saw up to saw down continuously. But this required one more parameter, resulting in three parameter pages per modulator, and also it made the LFOās too feature heavy. In the end I opted for two preset āriseā and āfallā waveforms which internally utilize the variable slope parameter.
- Additional Hz-based detune for the oscillators. This is a nice feature because it allows one to have a constant beating between the oscillators across the keyboard. But again, it is too esoteric for this level of instrument.
- Three proper oscillators, instead of two oscillators and a sub. Again, it becomes too feature heavy, and raises a lot of issues which must be dealt with, such as if the third oscillator should have its own modulation destination, etc.
- Variable distortion curves for the VCA. (In the end I settled on a modified squaring function)
- Variable gain compensation for the filter. (It is currently fixed at what I felt was a good compromise).
Thatās not to say that I will not add a couple of more functions to the MiMi-d. The number of modulators is a bit on the tight side so I think the instrument would benefit from a few more. Pitch scaling of the envelope times is something I would like to have, and Iād like to implement PWM (renamed shape) control for the sawtooth and triangle oscillator waveforms. Before it comes to this though, I need to clean up and optimize the code, partly with the ability to run (more) successfully on RPi 3 based Zynthians in mind. There is a lot of baggage carried over from the OB-Xd, some of which sorely needs an upgrade.
(Given all this, some of the current parameter choices could certainly be debated. Why are there two pages of key assign parameters, most of which will seldom be used? Why two pages of spread parameters for virtually every one of the voice modules? Should there even be a page of DSP parameters in what purports to be an analog-like synthesizer? Part of the rationale for these is that the more esoteric parameters are at the top or bottom of the parameter list, and thus do not infringe on the core parameters for the modulators etc. Also, what is an instrument if it doesnāt have a few quirks.
).
So I hope I havenāt stepped on too many toes (or at least not too hard
). Having more envelope stages is certainly useful, especially if there is a graphic representation available., but I feel strongly that it is out of scope for the MiMi-d. In the back of my head Iām considering putting together a bigger version of the MiMi-d, letās call it MiMi-e for now, which has a lot of bells and whistles such as three or four oscillators, additional multimode filter, more modulators and envelopes, with more stages, etc, etc, but is not as compact as the MiMi-d. Itās along way off, but somewhere on the horizon.
Regardless, if thereās something I can do that would make it easier to add the graphic envelope feature despite the current parameter page layout, like additional tags or whatever, Iāll be happy to help.