I get a feeling that with the new softcut & audio changes Norns is going to become very interesting from a realtime sampling/microsound perspective too .
I agree the current state of “synths” hasn’t made norns the go-to hardware digital synth I thought I would be using it for originally. Maybe the sequencing/sampling aspects have just been too good for me to really dig deeper into synths.
(most exciting) MegazordSynth: a wavetable synth based on NES waveforms, with built-in arpeggiator, designed to run on rPi. uses the AKWF single-cycle wave set. i’d like to see this hooked up to a multimode filter, for a unique blend of classic chiptune and softer ambient sounds.
Yes, they all look really interesting, also a subset of this is waveset synthesis that I like the look of also.
I think you can split the current synth engines on Norns down by synthesis types and look at the obvious ones missing. Wavetable synthesis is one - like a Piston Honda / Buchla 259e / PPG Type with a combined low pass gate (like the Passersby back end).
Even a Phase Distortion Oscillator which I personally much prefer the sound of compared to FM.
I also think that you only get the full benefits of these sound engines when there is some dynamic modulation involved. Currently all the parameters can only be addressed by cc. I would like to see some sort of onboard modulation bus containing lfo’s, envelopes and random to control the parameters section of engines. Molly Poly and Passersby have a mod bus and it makes a big difference.
I personally want something abstract, random, chaotic, atonal, not necessarily melodic but with dynamic timbral changes… rhythmically interesting and challenging. Sounds that you listen too but can’t quite work out how they were made, but are intriguing. I like stuff generated from random / shift registers - things like the Blippoo box / Benjolin, pinged filters, resonators, phase distortion, wavetables, that sort of thing, not necessily noise for noise sake, just something genuinely different that is currently not on Norns.
The current sequencers types on Norns/Teletype/Ansible are really interesting and different. You will not believe how many people have asked me on social media about Loom for example. Nobody has seen anything like it before. I want a sound engine that has that kind of impact.
It’s new to me also and I don’t know of any examples in recorded music. I’ve only heard the sound examples of that oscillator and it sounds to me like a grittier gnarlier wavetable synth like the early Waldorf PPG. But it has other applications as it’s using very short single cycle sound samples so it’s seems to be associated with granular synthesis and micro sound.
Yes, I agree, that’s what I was getting at and you covered it with “wacky uGens”. There’s an actual UGen called FitzHughNagumo Neuron Firing Oscillator. Somebody has got to make that into an Norns engine for the name alone!
“wavesets” are really a methodology for analysis more than synthesis. e.g., Waldorf’s PPG waveset is a dataset, not a synthesis engine, and it is patented. trevor wishart’s work with GRM (and the SC classes that implement it) are about (e.g.) chopping up an input soundfile by zero crossings, and sorting the resulting chunks by various metrics. the results can be used as wavetables or grains or whatever.
saying we need to “implement waveset synthesis” on norns doesn’t really mean much to me. creating wavesets seems like a process far more suited to a desktop interface (big screen, M+K, &c.) allowing norns to use waveset data for WT/grains is of course feasible if there is some standard format or a particular set that is of interest. (like, doesn’t Reaktor have a waveset format? anyone use that?)
i’ll point out that the PolySub engine has modulation busses for each parameter (of course.) additionally you can disconnect a given voice from the mod busses with the solo command, so it is polytimbral. mod busses have arbitrary slew. so things like “random”, “lfo”, “envelope” can naturally be implemented on the scripting side.
seems like by “mod bus” you really mean that you want pre-made modulation signal generators.
PolySub was intended to be sort of a template; it is i think i a pretty clean approach to a polyphonic engine with basically arbitrary oscillator types and polyphonic modulation busses. @lazzarello made effective use of this template to make the FM7 engine and i encourage similar efforts!
likewise, @jah’s CroneGenEngine wraps an arbitrary synthdef in a polyphonic framework and generates glue for it. so if you want to play with a specific “wacky” UGen, it’s very easy to use that.
there is also a raw 64-voice sinewave engine with chebyshev shaping. it is one way to make “harmonic oscillators” or whatever.
finally, to me the “experimental” nature of a sound is rarely about the synthesis technique. polytimbrality, and most especially the complete lack of an imposed tuning system give you a lot of freedom even with simple waveforms.
honestly i’m totally cluless as to what “sort of thing” that is. seems like a number of things that are not very related, some of which are already present (e.g. there are at least a couple versions of tuned “resonators” for realtime audio input.) but sure, more stuff would be cool.
anyways, with all that said i think i will add a few more oscillator types to PolySub to complement the traditional bandlimited shapes that are there. thinking of this:
at least two wavetables. these also need commands to fill them. could add AKWF data but it’s good to be able to have arbitrary fill functions. have to think about this since the ideal would be to accept arbitrary [freq, amp, phase] arrays, but the current lua->SC glue doesn’t support arrays or variadic arguments. good first start might be commands to define different kinds of sequences (odd/even harmonics with decay, randomized, &c)
at least one noise flavor (maybe Dust2 but probably something else as well. pink noise is already there.)
at least one chaotic oscillator (probably cubic, which needs a new UGen, or lorenz which is less nicely parameterized for timbre sweeps IMHO.)
PD oscillator. (really? this is interesting? like CZ-series or is there some other reference point i’m not aware of?)
this is enough stuff that you don’t want to be computing it all at once and xfading between. it would have to be a separate synthdef for each oscillator type, selected at voice creation time. (not a big deal)
i suppose a dedicated LFO would also be helpful for some (though i’d personally do that in the script)
and i guess a per-voice shape modulation envelope. (hm, thought i’d already added that but remembered wrong.)
add commands to allow parameters of a solo’d voice to be modulated explicitly.
side note on wavetable synthesis here: there is a big difference between “naively” looping a single wavetable buffer, and the kind of multisampled wavetable used in waldorf synths and similar softsynths. the former lets you alias like crazy a la 259e [red/twisted] or VOsc.ar.
the latter means making many different brickwall’d versions of each wavetable, and choosing them based on playback rate to avoid aliasing; this is straightforward, but much more memory intensive and a bit complex if you want to use arbitrary data. this is the approach you get in PPG or korg wavestation; it’s clean w/r/t aliasing but that older hardware often had to make bit-depth and overall SR compromises and this is gives you some “grit.”
for the Sines engine (which is just what it says - tons of sines) i’ve been meaning to add a full PM/AM modulation matrix with feedback.
seriously though. take this as an opportunity to find out just how strange you can get with full control over all parameters of simple waveform + filter in a real scripting engine that includes timing. IMHO the answer is “as strange as you want.”
add lee’s 8-op FM with feedback and, i dunno… seems like there’s a lot to explore.
i’d also suggest that a way to make sequencers more “experimental” would be abstracting the actual sequencing logic apart from the mapping of sequencer output. the fact that the typical numerical transform is through MIDI notes seems very limiting. (similar to what @jlmitch5 says above.)
i’m sorry to say that i am not gonna implement such a digital “modular control” system in lua, myself. my musical practice doesn’t need it, i don’t have a lot of spare time, and the point of building the norns lua system was to make development accessible.
here are the engines right now. thanks to anton especially, some of them are modular, or wrappers for arbitrary synthdefs.
you’re right, it’s not a lot. i expected more engine contributions by now (they are pretty straightforward to make!) but maybe we’ll get there.
in the new-crone update, softcut is no longer an engine but an always-available time manipulation stage that can process the output of SC/PD engines. it includes resonant filters, saturation, and can work gracefully on a range of timescales that goes from “looper” to “live wavetable osc”. so maybe that will be interesting.
i think for brian and me, the most compelling use of norns is for live-processing audio input in particular ways that aren’t even easy to accomplish in supercollider or max. hence the large amount of work recently on new-softcut and new-crone. we didn’t expect it to be so popular as a platform for synthesis. i will make the PolySub additions described above, which is not too hard, but ultimately if i’m going to put another large chunk of development time into the DSP side i’d rather work on a really good phase-vocoder-based system to complement new-softcut.
When talking about the blippoo / Benjolin I’m talking more about random / chaotic aspects. The Rungler (shift register) circuit is one part of those boxes that provides the modulation but the synth architecture as whole with very steep dB Twin Bandpass filters (on the blippoo) gives them a very unique squelchy sound that also ping when self resonating. The Benjolin is slightly different, like a less featured cousin of the Blippoo. The resonating aspect has been dealt with with the Rings clone Engine, but this is very different and not Karplus. Everything on these boxes is cross modulated, so changing one parameter effects many other parameters. It’s a case that you point the synth in a certain direction and it does it’s own thing - so it’s sort of semi random. What I am getting at with the experimental side of engines is there are no current Engines that deal with chaos / random aspects and are all predictable in that sense.
A few years back, working on Euro Reakt for Reaktor sent me down the wacky uGen rabbit hole. I ported the FHN over to Reaktor and it’s pretty cool. Same for the Brusselator.
I bring this up because I think that it’s worth mentioning that these chaotic oscillators have useful functionality at different frequency ranges. A lot of them work extremely well for modulation, sequencing, and timing. However, a lot of them sound rather samey for audio-rate stuff.
For chaotic and stochastic synthesis, I think the Xenakis Gendy uGens are among the deepest and most flexible. Those were designed with audio in mind, whereas a lot of the others are “hey, I wonder what happens if we run this physical equation at audio rates”.
Additionally, I ported over the Rungler based on the schematic, although I did not have a physical unit to test against. I did find an owner who told me that the behavior is quite similar, so that was re-assuring. If anyone is tackling a Rungler-style project, I’d be happy to walk you through my code as a starting point.
Ok, got you on that. I was thinking of it more of making sounds from single cycles waveforms or micro slices of oudio in a microsound style.
I mean both like the mod bus index on a 261e but mainly and more importantly to have the ability to insert different generators in the parameters we’re you would currently assign cc. Obviosly keep cc as well, but I would like to be able insert random, lfo, envelopes, sample and holds, different noise etc. to control some of these parameters.
I think this is we’re I have issues, being a non coder. I am sure it very easy to do if you are a coder and familiar with Supercollider. I don’t find it easy to make an engine because there have been no studies done on it. Every study concentrates on the Lua scripting side and simple assigning that to an already made Engine. Maybe that’s why there are so many interesting sequencers which are assigned to premade engines and midi output? I fully understand that you are encouraging the user to make their own stuff but what is currently being done is providing a template, and asking the user to get on with it, with very little instruction. If this was made clearer, we wouldn’t need to request more Engines. You would think simply dropping in your Synthdef / UGen into the template, it would work - it doesn’t work like that. There’s a little bit more to it that you have to change to get it to work, and that part is being glossed over. Coders get it, non coders don’t get it. I think it would really help if we had an Engine making study (conversion) on a couple of uGens and highlighting issues that crop up when it doesn’t work with a basic Lua script.
this sounds great and would be interesting to me.
to a point yes - it seems like you are describing Frequency Modulation. There is a heavy bias on FM and sine waves, and clean sounding synth engines with very little timbal change. The exception to this is the passersby engine. I don’t want to hear another clean Kalima, Xylophone or Bell sound. I much prefer Phase Modulation and Feedback. It’s not about the oscillator, for me it’s about the specific synth architecture as a whole and more importantly the modulation points to access that architecture.
Yes, anything wavetable would be welcome. I don’t have any issues with aliasing (I prefer the grit).
I think it really helps that a wavetable synth has a lpg after it so you can create plucked string type stuff like the 259e.
Yes, something with noise and impulses would be very welcome
Definitely would welcome this - anything with uncertainty and timbal changes.
No! this was my screwup - I mean Phase Modulation PM and was comparing it to Frequency Modulation. I have a WMD Phase Displacement Oscillator and it gives you a huge palette of sounds via 3 phase modulated built in oscillators that modulates the 4th one that goes through a waveshaper. I also use a Malekko Phase Oscillator which is much cleaner because, no wavefolder. The PDO oscillator sounds like a complex oscillator but you don’t lose the pitch like you would with FM. Btw - Phase Distortion like the CZ has been included in the upcoming Hertz Donut Mk3 oscillator and sounds OK, a little bit more gnarly and not what I mean’t. I use these Phase oscillators for video synthesis with a Vectrex display.
There’s also an oscillator by Noise Engineering called Loquelic Iteritas that have phase modulation, summation synthesis, and VOSIM algo on it also. The manual on that is interesting because it shows you the code they used https://www.noiseengineering.us/s/LI_manual.pdf
Apologies for the confusion.
Great, PM/AM and feedback would really liven it up, even a wavefolder would help.
The new soft cut update sounds great and any changes to Polysub would be welcome. Just a little bit surprised about live processing audio focus…a DSP audio effects system wasn’t really the way Norns was described when first introduced and makes sense on the limited number of engines. With such a huge Supercollider catalogue I thought synthesis would be more upfront. I actually got Norns initially for MLR without a laptop, so the Softcut update will really help, but could see the huge potential with all these unusual uGens.
certainly not trying to. i’m suggesting that complexity can be created on the control side as well as in the DSP loop. for example, norns study 5 shows you how to use the pitch tracker input in lua. try using the pitch and amplitude trackers in a script with any synthesis engine, following its own output, and modulating various parameters, and you will have a chaotic musical system.
remember that timers in the norns scripting environment can run arbitrarily fast, like 1ms easily
ok. just FYI, most digital implementations of frequency modulation are actually phase modulation. this applies to everything from Chowning’s 1977 patent (it’s not obvious, but that is what fig. 5-7 describe)to the supercollider FM7 6-operator FM matrix used in the norns engine of the same name. (source code.)
mathematically, there is no difference except for an integration term, which only matters when the modulator has a DC offset.
fair enough - though i think it is very much like that if you are familiar with supercollider. (as you say.) and there are a lot of pedagogical resources for learning supercollider already - it seems a bit like a fools errand to create our own version of that given the scope of the environment.
here’s an example of a sine-feedback engine created with CroneGenEngine. it consists of a function that returns a UGen graph, and a function that returns a collection of ControlSpecs. that’s it! (it is also an example of a pretty crazy timbral palette using “vanilla” ugens.)
but i will try and put together a tutorial for, i dunno, wrapping a GendyN ugen in a polyphonic engine using the two different methods (with or without CroneGenEngine.)
(the problem with this is that there isn’t really a single way to use a Gendy oscillator; they tend to shine with, as you say, modulation sources and filters in the graph. but i’ll pick something.)
really not trying to debate you, but i hope my strategy for discussing norns was pretty straightforward, and mostly involved answering questions. (Q: “will it support XYZ synthsesis method?” A: “yes, because it is supercollider and you can implement that.”) i didn’t promise to provide lots of synthesizers out of the box, and am just a tiny bit surprised that most of the small number of the contributed engines and scripts don’t use the ADC and don’t use the analysis features. (so far.)
i do recognize that this ambiguity between describing possibilities and actualities, is a general problem when communicating about open music platforms. sorry about this.
anyways, will add some more explicitly chaotic sound things. i enjoy that stuff as well.
I’m literally doing that. I have a script named “Chaos” on my device and the first day after I got the POC to work I forgot about it and turned the unit back on the next day. I thought it was broken because of the hum coming from the outputs. I would like to develop a switching matrix for all the UGens under the Stochastic and Chaotic categories in SC. Then a UI to switch between them.
I have opinions as to why but its all speculation. It’d be cool if there was something like a user testing service but for the “users” being “software developers”.
I think one barrier for me to casually pick up engine work after the FM7 sprint (omg, I used agile jargon for a fun project. Sorry) is SuperCollider itself. I love it and hate it. Debugging is harder than other languages I use for my employment. I also think how SuperCollider is implemented on the device is a barrier to engine development. The process to get a new engine built up is not incremental in the same way as making stuff in scide.
This reminds me of a pending question. Is it possible to import the CroneEngine class into a laptop with scide and get some kind of emulated environment for building engines? That would speed up development in a massive way.
debugging in supercollider is definitely painful (on or off the Norns sometimes ) I believe I did manage to get some hack of CroneEngine working locally so I could do some dev - can’t remember how or what I did though. Wasn’t hard - but once I had the engine working then it was easier on the Norns again. Possibly just copied the classes over locally and commented irrelevant stuff out?
I’m sure we will see engines coming - there is a lot to get your head around with Norns - I’m sure those who’ve been building it for a while understand the potential much better than those of us who are just digging in - you’ll need to wait for us all to catch up with you. Some of us (Mark Eats perhaps? ) are hot on your coat tails - some of us much further behind &, for me at least, time available does not match my ambitions for the platform - but I’m here for the long haul - the Norns is a key part of my musical practice, something that unbeknownst to me until I came across it, I’d been looking for for a while…