On the SY77 every operator has two inputs. When not used by the algorithm a free input can be used for a user defined 2nd feedback path or even patch in a AWM part. Unfortunately they dropped these options in later FM versions, the 2nd feedback path is quite a usable feature. In a way the synth engine of the SY77/99 was more advanced than that of the Montage and MODX.
NI FM8, Steinberg HALion 7, Image-Line Sytrus, these all have freeform FM matrices where you can route any operator into any operator, so in theory you could have a 6-operator deep feedback chain (with each of those operators feeding back to any other operator in the chain simultaneously, AND itself), in case of HALion 7 you get the FM-X engine, which is 8 operators, too...
Love the idea of ring modulation operator networks. It's something I play around a fair bit as a bit AM (over FM a lot of the time) fan, at least in analogue.
One can program such an instrument very easily with the Faust programming language, which also has some good emulations of analog filters. I can imagine that feeding them with those crazy feedback loops would be interesting. Moselle looks fun as well, thanks for the links.
I was so excited with this that I made an approximation of Config #02 on the Gotharman's Urano modular-in-a-box with either wavefolding at the end, or having oscs 1 and 3 be wavetable oscs with VCAs 3 and 6 modulating the tables. I gets quite weird (and fun). There is a massive amount of sounds to be found in just this one configuration/algorithm. Need to try out some of the other Configs.
I think Jon Schatz in a recent update for the ID700 gives the option of more graphically discernible configurations for anyone interested. I really love that app and I'm not really into, but greatly appreciate, vsts. For what it's worth a Buchla700 reimagining would be my ultimate fantasy instrument. When I use the id700 it does help inspire my patching on my small 200e; I wish one could change out the wavetables on the 259e.
I've wondered what a modern Buchla 700, call it a 700e, would look like. People might say, well, just get a computer with a DAW you like and run ID700. But you also need a touch surface. And the 700 also has those CV ins and outs. Well, you could add a MIDI-CV thing. But then an appealing thing of the 700 is its compact size.
@@Lantertronics When I get/can afford the 223e, I may then get the the 226h cv-to-midi, which you can chain two of apparently, and use that to operate the ID700. Also have plans to interface with the Rossum Assimil8or (amazingness) via the Locutus(which I don’t have as of yet).
Just putting this here, I know we aren't a MW forum, where I wish there was more active discussion sometimes in this regard. But I can explore the idea of routings of amp, bw, fm modulation with the 291e and 261e (and 259e)
@@johnmeroney2007 And remember that the 200e can be polyphonic, if you have enough oscillators. Just having two 259e's opened up nice possibilities. But the amount of envelopes one starts wanting after playing with something like the ID-700 is mind boggling. Why do synth manufcturers still keep using just adsr's on everything?
2:00 Moselle has had "waveshaping" penciled in for a decade. If anyone has some favorite waveshapers I should take a look at before making something dedicated, please let me know! That said, the normal math operators SelectN(), SelectLoopN(), Select(), LinFade(), LinFadeX() and Peak() do most of what the Map() module was meant to do. You can also do all sorts of waveshaping with logic and math functions. For instance IF( Signal >.5, .5, Signal) would clip the input signal. Tanh() can give classic tube-style nonlinearity as the output keeps getting higher but never quite gets to 1 no matter how high the input goes. You could run a Sawtooth LFO's Positive output into Sin() to get a "poor man's sin oscillator" and do all that kind of thing.
The Buchla wave shapers are based on Chebychev polynomials, which should be doable using the math operations in Moselle without too much fuss, I think.
as a beginner of fm the thing i want for learning and exploring is a output of every OSC and LFO and the points where they addUpp/FMup so i can see how the parts combine. i get the general gist of it but i'd like to see what happens.
I need to check out Mosselle. I've been learning Pure Data over the past week or so and have fallen in love with it. I want to learn a script-based programming language like SuperCollider, but I've struggled with those in the past (like with Javascript). Mosselle looks a lot more approachable though.
Moselle is closer to Pure Data. SuperCollider is a full-fledged programing language; the language of Moselle is just a text equivalent of hooking graphical blocks together in something like PD.
Don't give up on SuperCollider, its language is pretty difficult and complex, but it is also very flexible and easy to extend. Check out Eli Fieldsteel's channel for some fantastic tutorials on it
@@markblacket8900 Also check out my 4-part series where I implement my guess of the Buchla 700 architecture (all of the algorithms, including the wave shaping) in Supercollider. And yeah, I don't think I could have done it without Eli Fieldsteel's tutorials!
Did you know theres a 16op 80s Yamaha? The Electone HX-1 in solo mode on the top register can be 16 op mono on that register (it has 96 voices normally, not sure how many it loses). That thing would be right up your alley - it has so much potential but nobody on earth has truly mastered programming it, and the software only runs on Atari ST, MSX, or one DOS laptop.
Can you run moselle at higher sample rates / use oversampling? I ask because the digitone made me realize how much better fm sounds when the modulation is done at ultrasonic rates - the digitone uses 192khz if I'm not mistaken, and it results in much smoother and glassier tones and less of the "Sega fuzz" we traditionally associate
(continued, accidentally pressed reply too soon) ...we traditionally associate with the FM sound. BTW, digitone also has a somewhat similar feedback algorithm if I recall correctly, you can check the manual to verify but there's definitely some feedback configurations at any rate.
Yeah, FM can get nasty at high indices of modulation if there's a lot of aliasing. There's a place in the configuration file of Moselle where you set the sample rate. This needs to match the rate of your audio interface -- to my knowledge it doesn't do upsampling, but if you run it and your interface a higher rate, you could always take the rendered file and downsample it later (I personally don't see a need for higher rendered rates than 48K, since all modern DACs are fancy upsampling ones anyway).
@@Lantertronics Dang, they should still add a specialized oversampler similar to some supercollider ugens. Oversampling the entire DAC is a bit overkill - it's mainly the modulation that needs to be oversampled, since FM generates a lot of higher harmonics and chaotic behavior once feedback is introduced. I'd recommend checking out the sound of the digitone, I've yet to find another FM synth (plugin or hardware) that sounds as smooth and glassy, and it's all due to the oversampled modulation IMO.
@@superultramegarobot Moselle development staff is just one guy working in his spare time. I'm wondering if they set up a Patreon or something to support development, would people support that?
3:29 Yes: FMAlgo can be totally replaced with Osc blocks set to sine waves. In fact you can also write the same thing using raw math with the Sin() function and Note:Time and Global:FreqEval (the sampling rate). But FMAlgo will be a bit higher performance and as you say, hopefully easier. BTW there's a Word manual that is 80% incomplete but has a nice chart of how to do the Yamaha DX7 algos in Moselle.
@@franksheeran9243 Just a list of all the Modules, along with the names of all their Inputs and Outputs, would be tremendously helpful, even if it didn't have have any descriptions.
The main thing I recommend is dropping the 1/k scaling with harmonic number k on the harmonic coefficients. Constant coefficients should give me impulse waveforms, 1, 1/2, 1/3 should give me a sawtooth. I realize that involves changing a massive amount of the tutorials, but as it is it's going to lead to tremendous amounts of confusion -- I'm not aware of any other synth or software or textbook that uses an hidden 1/k convention..
2:15 Without any disrespect to the Buchla engineers or the documentation effort, showing the crossed lines on config #02 and #10 wasn't strictly necessary. It would be understandable if they wanted to maintain all operators with inputs on top, outputs on bottom, as in the renowned diagrams for the DX7. The root problem, I think, is that they only had maybe 80x60 pixels or so to work with.
Borrowing from this concept, I patched some funky FM thing in VCV Rack based upon a 4 oscillator loop. Not sure what to do with it yet though. Also Jummbox has similar diagrams for its FM synth modes (if anyone wants a browser based thingy to mess with), but I'm not sure if any of those is the same as the one used here.
KORG Opsix has freely comfigurable 6 operator algorithms. The opreators may be oscilators , ring modulators, filters, wave shapers etc......
On the SY77 every operator has two inputs. When not used by the algorithm a free input can be used for a user defined 2nd feedback path or even patch in a AWM part. Unfortunately they dropped these options in later FM versions, the 2nd feedback path is quite a usable feature. In a way the synth engine of the SY77/99 was more advanced than that of the Montage and MODX.
NI FM8, Steinberg HALion 7, Image-Line Sytrus, these all have freeform FM matrices where you can route any operator into any operator, so in theory you could have a 6-operator deep feedback chain (with each of those operators feeding back to any other operator in the chain simultaneously, AND itself), in case of HALion 7 you get the FM-X engine, which is 8 operators, too...
sytrus is my fav, serum too
Love the idea of ring modulation operator networks. It's something I play around a fair bit as a bit AM (over FM a lot of the time) fan, at least in analogue.
One can program such an instrument very easily with the Faust programming language, which also has some good emulations of analog filters. I can imagine that feeding them with those crazy feedback loops would be interesting. Moselle looks fun as well, thanks for the links.
Faust looks really cool and really interesting -- but I haven't managed to wrap my head around it.
The opening tones are glorious🔥🔥🔥🔥🖖nice work
Awesome insights... excellent tutorial Aaron !
Thanks! :)
I was so excited with this that I made an approximation of Config #02 on the Gotharman's Urano modular-in-a-box with either wavefolding at the end, or having oscs 1 and 3 be wavetable oscs with VCAs 3 and 6 modulating the tables. I gets quite weird (and fun). There is a massive amount of sounds to be found in just this one configuration/algorithm. Need to try out some of the other Configs.
I hadn't heard of the Urano, it looks really cool!
@@Lantertronics It is discontinued, but his Zaturn continues the tradition.
I think Jon Schatz in a recent update for the ID700 gives the option of more graphically discernible configurations for anyone interested. I really love that app and I'm not really into, but greatly appreciate, vsts.
For what it's worth a Buchla700 reimagining would be my ultimate fantasy instrument. When I use the id700 it does help inspire my patching on my small 200e; I wish one could change out the wavetables on the 259e.
I've wondered what a modern Buchla 700, call it a 700e, would look like. People might say, well, just get a computer with a DAW you like and run ID700. But you also need a touch surface. And the 700 also has those CV ins and outs. Well, you could add a MIDI-CV thing. But then an appealing thing of the 700 is its compact size.
@@Lantertronics When I get/can afford the 223e, I may then get the the 226h cv-to-midi, which you can chain two of apparently, and use that to operate the ID700. Also have plans to interface with the Rossum Assimil8or (amazingness) via the Locutus(which I don’t have as of yet).
Just putting this here, I know we aren't a MW forum, where I wish there was more active discussion sometimes in this regard.
But I can explore the idea of routings of amp, bw, fm modulation with the 291e and 261e (and 259e)
I too use the ID700 for ideas of things to try with my small 200e. Nice to hear there are others.
@@johnmeroney2007 And remember that the 200e can be polyphonic, if you have enough oscillators. Just having two 259e's opened up nice possibilities. But the amount of envelopes one starts wanting after playing with something like the ID-700 is mind boggling. Why do synth manufcturers still keep using just adsr's on everything?
2:00 Moselle has had "waveshaping" penciled in for a decade. If anyone has some favorite waveshapers I should take a look at before making something dedicated, please let me know!
That said, the normal math operators SelectN(), SelectLoopN(), Select(), LinFade(), LinFadeX() and Peak() do most of what the Map() module was meant to do. You can also do all sorts of waveshaping with logic and math functions. For instance IF( Signal >.5, .5, Signal) would clip the input signal. Tanh() can give classic tube-style nonlinearity as the output keeps getting higher but never quite gets to 1 no matter how high the input goes. You could run a Sawtooth LFO's Positive output into Sin() to get a "poor man's sin oscillator" and do all that kind of thing.
The Buchla wave shapers are based on Chebychev polynomials, which should be doable using the math operations in Moselle without too much fuss, I think.
I can second the Buchla Chebychev wavshapers!
i'de love to see you talk about fm in the regen one time or another.
Ah! I'm actually planning to do a video on implementing the Synclavier architecture in Moselle. ;)
@@Lantertronics that's interesting
as a beginner of fm the thing i want for learning and exploring is a output of every OSC and LFO and the points where they addUpp/FMup so i can see how the parts combine.
i get the general gist of it but i'd like to see what happens.
I need to check out Mosselle. I've been learning Pure Data over the past week or so and have fallen in love with it. I want to learn a script-based programming language like SuperCollider, but I've struggled with those in the past (like with Javascript). Mosselle looks a lot more approachable though.
Moselle is closer to Pure Data. SuperCollider is a full-fledged programing language; the language of Moselle is just a text equivalent of hooking graphical blocks together in something like PD.
Don't give up on SuperCollider, its language is pretty difficult and complex, but it is also very flexible and easy to extend. Check out Eli Fieldsteel's channel for some fantastic tutorials on it
@@markblacket8900 Also check out my 4-part series where I implement my guess of the Buchla 700 architecture (all of the algorithms, including the wave shaping) in Supercollider.
And yeah, I don't think I could have done it without Eli Fieldsteel's tutorials!
Did you know theres a 16op 80s Yamaha? The Electone HX-1 in solo mode on the top register can be 16 op mono on that register (it has 96 voices normally, not sure how many it loses).
That thing would be right up your alley - it has so much potential but nobody on earth has truly mastered programming it, and the software only runs on Atari ST, MSX, or one DOS laptop.
That sounds amazing! I hadn't heard of the Electone HX-1.
Can you run moselle at higher sample rates / use oversampling? I ask because the digitone made me realize how much better fm sounds when the modulation is done at ultrasonic rates - the digitone uses 192khz if I'm not mistaken, and it results in much smoother and glassier tones and less of the "Sega fuzz" we traditionally associate
(continued, accidentally pressed reply too soon)
...we traditionally associate with the FM sound. BTW, digitone also has a somewhat similar feedback algorithm if I recall correctly, you can check the manual to verify but there's definitely some feedback configurations at any rate.
Yeah, FM can get nasty at high indices of modulation if there's a lot of aliasing.
There's a place in the configuration file of Moselle where you set the sample rate. This needs to match the rate of your audio interface -- to my knowledge it doesn't do upsampling, but if you run it and your interface a higher rate, you could always take the rendered file and downsample it later (I personally don't see a need for higher rendered rates than 48K, since all modern DACs are fancy upsampling ones anyway).
@@Lantertronics Dang, they should still add a specialized oversampler similar to some supercollider ugens. Oversampling the entire DAC is a bit overkill - it's mainly the modulation that needs to be oversampled, since FM generates a lot of higher harmonics and chaotic behavior once feedback is introduced. I'd recommend checking out the sound of the digitone, I've yet to find another FM synth (plugin or hardware) that sounds as smooth and glassy, and it's all due to the oversampled modulation IMO.
@@superultramegarobot Moselle development staff is just one guy working in his spare time. I'm wondering if they set up a Patreon or something to support development, would people support that?
@@Lantertronics I would, especially if we had input on development ideas!
3:29 Yes: FMAlgo can be totally replaced with Osc blocks set to sine waves. In fact you can also write the same thing using raw math with the Sin() function and Note:Time and Global:FreqEval (the sampling rate). But FMAlgo will be a bit higher performance and as you say, hopefully easier. BTW there's a Word manual that is 80% incomplete but has a nice chart of how to do the Yamaha DX7 algos in Moselle.
Oh! Is the Word manual somewhere on the website I overlooked or is it something you haven't released yet?
@@Lantertronics it's only partly-written. I should go ahead and throw it into the next release even though it's 80% empty sections.
@@franksheeran9243 Just a list of all the Modules, along with the names of all their Inputs and Outputs, would be tremendously helpful, even if it didn't have have any descriptions.
The main thing I recommend is dropping the 1/k scaling with harmonic number k on the harmonic coefficients. Constant coefficients should give me impulse waveforms, 1, 1/2, 1/3 should give me a sawtooth. I realize that involves changing a massive amount of the tutorials, but as it is it's going to lead to tremendous amounts of confusion -- I'm not aware of any other synth or software or textbook that uses an hidden 1/k convention..
2:15 Without any disrespect to the Buchla engineers or the documentation effort, showing the crossed lines on config #02 and #10 wasn't strictly necessary. It would be understandable if they wanted to maintain all operators with inputs on top, outputs on bottom, as in the renowned diagrams for the DX7. The root problem, I think, is that they only had maybe 80x60 pixels or so to work with.
Yeah, those diagrams are based on someone deciphering the source code that spits out the diagrams. And yeah they didn't have a lot of pixels. :)
Borrowing from this concept, I patched some funky FM thing in VCV Rack based upon a 4 oscillator loop. Not sure what to do with it yet though.
Also Jummbox has similar diagrams for its FM synth modes (if anyone wants a browser based thingy to mess with), but I'm not sure if any of those is the same as the one used here.
This makes me very happy to hear! :)
Interesting
Thanks!
But the DX7 is 16 note polyphonic, which the Buchla certainly isn't!
The Buchla 700 is 12 note polyphonic, but it's kind of a a moot point because to my knowledge there are only 3 working units in existence. ;)
Highly recommend checking out ID700, I think the polyphony is probably only limited by your CPU.
No, but my OpSix can :)
I've heard a lot of good things about it!