I am writing today to bring everyone up to date on our current development situation. As we are about to release the first version of a Multimode Operating System, called 2.0, I wanted to post a huge 'Thank You' to Jim Hewes, who has been laboring for over 3 & 1/2 years on the Solaris OS. Jim has fixed more than 80 bugs, and added at least a dozen of features that I have requested. During this last year, not only did he completely re-work the entire SysEx code (replacing a bare-bones NRPN system) to allow for MIDI access to all of the 1250+ parameters (!), but has been working overtime to get a reasonable 4-part Multimode structure working. As many of you know, Jim has never asked for any kind of remuneration for his efforts. I've made some small compensation as I could, and while he has been unemployed during all this time, he has continued to work on the operating system (which ranges from his first release of v1.3 back in March of 2017 til now with the forthcoming v2.0). I think you will all agree what he has done is managed to save the Solaris from early abandonment to bring it forward as a still viable current instrument. What other hardware synth has been able to do that which came out 10 years ago?
Therefore, I have decided I will be charging a fixed minimum donation (all of which will go to Jim) for the v2.0 OS when released, but if you appreciate Jim's contributions to the Solaris, I hope you will be generous and donate as much as you feel you can. It would be great if we could help him stay unemployed for at least another year, so he can keep helping out with improving the Solaris OS!
Now - as to further DSP code development. As brilliant as Jim is, he says he is not the guy to be making changes and additions to the actual DSP sound engine code. You may remember that back in 2018 I met with a great DSP coder from Croatia, Hrastprogrammer, who I hoped would be involved for the long term. However, near the middle of 2019, Hrast wrote me that he would not be able to continue due to personal reasons. He did manage to modify the DSP code to create a new Oscillator Type for Phase Modulation, and also incorporated the code from the series of CZ modules that came from the Scope modular synth library. I am very grateful that Hrast was willing to finish up work on this before he had to move on. It would also be nice if people could donate something to his PayPal account for the work he did: hrastwerk@hrastprogrammer.com
Since then we have been without a qualified DSP programmer, but at the NAMM show in January 2020 I was approached by a small company from Victoria, Canada about doing some work on the Solaris code. I am happy to announce that we are now in place to have them start work on a number of items on my list, and with that I will be able to give a better estimate as to how much money will be needed to code up the various features on our 'wish list'.
Since first posting about a Developer Fund back in 2017, many of you have offered to partner up for around a suggested $200 each, with a few actually suggesting more. With your input on the following list of items, I will be able to more clearly define just what we think would be a good update package for the DSP side of things. Some of these come directly from the various comments listed in the Developer Fund thread:
1) The Master FX work - Current v2.0 has the same FX routing as 1.4.4 OS. A Multimode 4-part effects arrangement, or a larger ‘pool' of DSP FX including reverb, etc. would be desireable. This also includes the output mixing and so on. New requested effects could be in here.
2) A couple of bugs in the code - Fix Envelope time modulation bug (modulator value of previous note is taken instead of actual note), and the EG Sustain "Slope” problem.
3) Multisample Oscillator Type. Expanded or alternate SamplePool text object to define it. Possible to add functions such as modulate sample start, sample end, sample forward/reverse, sample number?
4) User Wavetables
5) Add a Random Note to the Mod Source list. We have a rudimentary random pitch in there that Jim added, but it would be nice to have at least one random mod source based on note-on events that I could route to filter cutoff, panning, etc.
See the discussion here: http://forums.johnbowen.com/viewtopic.php?p=3632#p3632
6) More LFO waveshapes, some stepped and asymmetric forms. Also add a slew control to the LFO output. Possible One-Shot mode as well.
7) Quantize module - in my Scope plug-ins, I had the output of the LFOs able to be quantized to produce fixed/pitched control signals. This could also be added to the LFOs, but it might just be nicer to have several modules for general use (like I have with the 4 Lag Processors).
8 ) Add looping to the envelopes.
9) Finer divisions of parameter range for LFO rates and Mod amounts. Some people have complained they need finer resolution on frequency control. (This may be something for Jim, though).
10) CS-80 emulation, for filter at least.
11) Voice number as a Mod Source (mostly for panning? But could be other things)
12) Add more mod sources to the Envelope segments
13) A stereo fixed Filter bank for the main FX (I've wanted this for a while - because I had a 24 band pass filter bank in my Scope plugins)
14) A separate Karplus-Strong Osc Type.
15) A Resonator Osc Type (something to have both harmonic and inharmonic overtones)
16) Some form of granular synthesis
17) something like Kernal synthesis in Waldorf Quantum
18) "For variation over time within a voice, a slow random mod source is needed. I think this is mainly useful for control of oscillator frequency, so the modulation could be packaged as a single Oscillator drift control at the patch level. For optimal results each oscillator should probably have a unique random mod signal that is not the same for all voices."
19) Pitch Bend wheel as a Mod Source
20) Microtuning/alternate scales
21) Mutable Instruments' implementation, especially the Elements module.
22) "Please don't spend any time on reverbs. We all have reverbs. Better to spend time on inline effects like waveshapers or other effects like Virus style distortion/saturation flavors"
![Smile :-)](./images/smilies/icon_smile.gif)
23) Roland filter like Jupiter 8
24) Add smooth interpolation to the Waldorf Wavetable Osc Type. Also provide rough & smooth interpolation for User Wavetables.
25) Possible to trigger envelopes from other than note-on events.
26) Clear the delay buffer when changing presets.
27) A way to simulate a single Master LFO, either by adding a synchronization function for all voice LFOs, or some other method.
----------------------------------------------------------------------------------
I will take a look at the responses here and see what makes sense and what the costs would be.
Thank you everybody for participating in the Solaris Project! I am looking forward to all the future developments!
Cheers,
John Bowen