interview with Gen~ developer Graham Wakefield...makes we wonder

quote
Without an environment like gen~ that allows single-sample loops, you’d have to go and learn C++ to explore these kinds of
unquote
Sorry , but this is simply not true
N.I reaktor has been able to do 1unit sample feedback loops with the primary modules since the early beginning (2000) , yep 0.02ms feedback loop at 44khz .
I was already doing phase modulation ( yamaha fm ) feedback with the use of a phase accumulator + sine function 20 odd years ago.
Even the typical yamaha feedback averaging ( current sample+previous sample/2 ) could be done in primary , all with a 1 unit sample feedback loop .
This was taken one step further when the core language (integrated runtime compiler ) was introduced in 2005 (vadim zavalishin-dr sync ) , we can create every possible dsp algoritm becasue of the highly optimised core language .
Further more , the first zdf filters where prototyped by Vadim zavalishin in reaktor core , years before gen~ wa even a thing
Why is this that article not mentioning any of that and presents gen~ as the first of it's kind ?
Why is this that article not mentioning any of that and presents gen~ as the first of it's kind ?
it's probably just because they don't make the comparison at all(gen~ does allow you to export code, and it also affords an alternative 'codebox' version so that people can code or patch within it... which means, it can still be true, that gen~ is the first of its kind, while Reaktor Core Cell was also first of its kind :D)
i used Reaktor Core Cell long ago, i was always impressed with it(i bet Graham has tried it too, and has probably read Zavalishin's work, "Art of VA Filter Design"... but interviews aren't always catered to cover every last credit people can give to all the folks they've encountered or draw inspiration from in the past... that interview was meant to highlight Graham as it is indeed well-deserved, and truly amazing all the stuff that Graham has enabled by allowing code-export. they even mention the Electrosmith Daisy connection: i think that's a big deal as it shows that Graham made something that can connect between technologies, not just something that added to one single company's product, but something that allows people to connect between many - networking and transplanting people's work so that they can evolve that work through many mediums, more and more easily, is definitely worth recognizing as 'first of its kind').
Vadim is quite amazing, though. You are right, single-sample loops have been available to play with beyond C++ for awhile, his Sync Modular is still available in its early version: https://www.sync-modular.org/ (there's also an old-school VST version: https://www.kvraudio.com/product/sync-modular-by-dr-sync)
as i just had to search his Dr. Sync past, found this awesome video from long ago too...
Vadim starts speaking his main thing starting around 34:50:
Anyways, thanks for the food for thought and reminding us all to be considerate of the totality of electronic music history... i still love gen~ more than Reaktor Core Cell at this point, only because we are at this point in history where it does happen to do more than others before it, and i also know and honor both Vadim and Graham to be equally essential to electronic music history as well as to the general happiness of millions of artistic lives all over the world ❤️
Sorry , but this is simply not true
N.I reaktor has been able to do
building an FM synth is not the same as exporting code.
i think you missed that reaktor did not grow on a tree, it is also written in a programming language.
and finally, i would not be so sure if reaktor core would run in max, afaik it only runs in reaktor. :)
and it is of course also not the first enviroment who could do this.

@ Roman , I was referring to the quote , not about exporting an fm synth to code
quote
The key thing to know is that, unlike a regular Max or RNBO patcher (or indeed most audio software), the entire content of a gen~ patcher efficiently runs one sample at a time. That means you can have a feedback loop as short as a single sample. This is important because single sample audio feedback loops are at the heart of the majority of interesting audio signal processes – oscillators, most filters, and many other audio-rate processes. Let’s say you’ve played with analog synths before and love the sound of feedback FM, where you route the output sound of the oscillator back into controlling its frequency; and especially what happens when you put a filter in that feedback path. Or maybe you want to try putting a shift register there. Without an environment like gen~ that allows single-sample loops, you’d have to go and learn C++ to explore these kinds of things.
unquote
it says nowhere that max would be the first and only enviroment which can do this, which you implied. it correctly said that "most other audiosoftware cannot do it" (either, just like max without gen~.) (i am not aware of a zdf sallen key compiled object either, so this seems to be a valid example as well.)
Seems pretty obvious if you emphasize the right words here:
Without an environment ****like**** gen~ that allows single-sample loops
Reaktor Core is an environment like gen~ in many ways, yes. I think we can agree on that.
Having issues here using the quote button ...
@Roman quote
i am not aware of a zdf sallen key compiled object either, so this seems to be a valid example as well.)
unquote
Maybe it's not compiled , but it's verry efficient core code
I'd love to see someone port this filter code into gen~ , then compile and compare to reaktor core , but I agree it's besides the point

Your loyalty to Reaktor is very touching. Too bad NI gave up on Reaktor a long time ago.
Hello!
Sorry if the interview caused any offence, it was certainly not intended.
However I'm not sure that I actually said what is being implied here.
I should first emphasize that what I was saying in the first quote was expressed in the context of Max. The interview questions I was responding to specifically said "in Max", and that's what I responded to. Before gen~, there was not really a comfortable way to design new single-sample feedback loop processes in Max. It wasn't impossible -- there were ways to write single-sample feedback systems such as running a poly~ at vs 1 for years before gen~, but they would melt the CPU. Or you could explore a handful of experimental projects with custom externals -- including some that I had written myself -- and deal with questionable stability, reliability, no support, and other limitations. It's true that most people who wanted to really dig into single-sample processing in Max ended up trying to write externals in C++.
I also said, "Unlike a regular Max or RNBO patcher (or indeed most audio software)" and "without an environment like gen~ that allows single-sample loops", and I think these statements are accurate. NI Core and gen~ (and some other things like Gibber and Chuck and Unreal Metasounds and so on) are like each other in that regard -- they allow single sample loops without sacrificing CPU performance. I did not say that gen~ was the first or only environment of this kind.
It is also true that "Actually dynamic compilation has been researched in computer science for half a century, but at the time it hadn’t been widely used for audio software." I didn't say that it hadn't been used at all. And it is still true today -- outside of a handful of cases, the majority of audio environments are still designed around networks of buffer-processing nodes. This also includes most DAWs, most game engines, most browser-based audio engines (scriptprocessornode was deprecated), etc. Despite some software like Core and gen~, if you consider the use of audio software across the board, designing single-sample feedback audio algorithms on the fly is certainly still not widely used at all.
Outside of the mainstream there have been many tools that were able to generate and compile code on the fly -- even some able to do single-sample audio before NI Core and Sync Modular did -- and I mentioned as many of them as I could find in my PhD dissertation on the subject. The earliest that I found that specifically targets audio processing was Scott Draves' Nitrous system from 1997: https://www.proquest.com/docview/304331679?pq-origsite=gscholar&fromopenview=true&sourcetype=Dissertations%20&%20Theses -- however I would not be at all surprised if there had been something earlier that I did not find, probably written in Scheme/LISP -- I found examples of compiling in-memory code in LISP dating back to 1960. It's also interesting to note that Max Matthews' described his Music-N systems as "compilers" (see "An acoustic compiler for music and psychological stimuli", published in 1961: "A compiler generates the programs for a set of instruments"...)
And regarding Vadim: I have immense respect for his amazing work both as a software developer and as an audio engineer -- the "Art of VA Filter Design" is an incredible contribution to the field. But I'm not really sure what the history of trapezoidal filters/ZDF etc. has to do with gen~ or the interview -- I didn't mention them, and I'm not sure why it would be relevant to in the context of the interview questions.
This was an interview for a blog by a music technology shop. They asked to interview me because they were interested in the book, Max, gen~, RNBO, Oopsy etc, and they asked me about how I ended up doing these things, what they can do and why, and so on. So that's what I talked about, and I was honest in my responses, and I hoped that it would be helpful to the kind of audience that I thought such a blog interview might have.
Graham
Without some attention to context and nuance, very little in the way of would-be good deeds (an interview for your shop's blog? Sure!) is likely to go unpunished. Thanks for the Scott Draves reference - I had forgotten all about it. Looks like I'll be hunting up Graham's dissertation online, too....
re: quote button
yes, it can be weird. try this: first paste, then make a line break (return or protected return) and enter the first character fo what you want to reply, and then select the quote and make it a "blockquote".
Very interesting and also passionate conversation! Thanks for sharing.
As a little footnote I may add: let’s assume - to the benefit of all - that no one here has bad intentions even if a choice of words or phrasing sometimes might not be 100% accurate - and let's be gentle 🫶
I had no bad intentions at all , let that be clear
Thanks graham for the insights
I've read too much Chandler to be able to engage in such a discussion without risking irony (I won't even mention my incompetence), but I have to admit that I've learned a lot from these posts.
Some of you might enjoy chasing down Scott Draves' work that Graham Mentioned. I heard him give a paper at... what? A late 1990s ICMC that was really pretty cool. Of course, I was 11 years old then....