Articles

Generating Sound and Organizing Time: An Interview with Graham Wakefield and Gregory Taylor

Early next month Cycling ‘74 will publish our second book, Generating Sound and Organizing Time: Thinking with gen~ Book 1 by Graham Wakefield and Gregory Taylor. I sat down with Graham and Gregory to talk about what’s included in the book and the collection of patches that accompany it.


Let’s start by talking about how this book project happened. What were your goals in writing it?

Graham: Personally, most of all I wanted to write the kind of book I wish had existed when I was learning about making computer music. For example, in my graduate studies I learned a huge amount about programming synthesis processes, but I also realized that a lot of the immense possibilities of digital signal processing is often obscured in writing and inaccessibly black-boxed in most music software -- in fact that's part of why creating gen~ became my doctoral research; gen~ opens up access to live edit sonic algorithms right down to the sample level, kind of like an atomic structure of DSP. And we think it can be a lot simpler and more insightful that way, and for the most part it doesn’t require learning higher mathematics or coding.

Gregory: gen~ is now over ten years old, and with a thriving community, but it's still unfamiliar to many, and we wanted to change that. As our friend Luke DuBois said, it's "one of Max's secret weapons hidden in plain sight." We thought the best way was to start from this idea of a bestiary of simple and reusable ideas that can be recombined to make new things.

Graham: Right–it's not always obvious, since not a lot of music software lets you work at this level–but so many synthesis and sound processing techniques come down to a pretty small number of common circuits and patterns operating at the sample level that are then reapplied in a variety of different ways. This book (and gen~ itself) is all about the amazing things you can create when you can patch at this level.

In that spirit, we wanted to present the repeated application of a few simple ideas to many different musical tasks. All kinds of things from filters and delay effects to oscillators and granular synthesizers and chaos generators and so on that sometimes look like black boxes or magical plugins. But when patched in gen~ these are just arrangements of the same small number of simple operations – which means you can dig into them and insert other stuff in there and experiment wildly. In the book we build upon these to create a set of abstractions that we use again and again throughout the book to do all of these interesting things from really simple beginnings.

Reading the book as a Max user, I definitely felt like I was getting a gen~ education but at the same time, I’m being exposed to a completely new way to think about musical DSP applications. Can you talk about the intended audience(s) for the book? Would it make sense as a textbook?

Gregory: One of our early readers put it really well: They said it was "for composers, musicians, sound designers, and experimentalists of all kinds.” We’ve tried to provide a wealth of things that people will find interesting and engaging and to create a book that can serve equally well as a kind of patching companion for self-study or as a text for educational situations. I think that using the book as a classroom text with a bunch of curious and creative students would be a lot of fun.

And inside of a classroom or out, there wouldn’t be a lot you’d need to get started. It could be helpful to review the gen~ for Beginners tutorial series.

Tell me about the phrase "Thinking with gen~” – I’d be interested in hearing your perspective on the software as something you think with.

Gregory: Glad you noticed that preposition there! It’s really about developing ways of thinking and building that solve problems or lead you into new territories of signal processing.

Graham: On the one hand, it’s building up habits to let you ‘think out loud’ through patching, leaning on the ability to edit and hear the results right away, like a notebook that makes sound. That means you can try out ideas on a whim, and maybe discover something amazing and unexpected. But it’s also about getting to be thinking with the behaviors of signals, and how they can be wrangled, morphed, and interwoven, chopped and regurgitated at the sample level. That means designing subcircuits such that a momentary idea of “why not plug B into C” is more likely to lead to something interesting. So along the way it’s also about thinking with little circuits as building blocks, building a lexicon of reusable ideas with a huge range of capabilities. Inserting one process into the midst of another is such a common habit of thought for the book.

Gregory: … and there are a few other habits and techniques we use again and again, like translating a problem into some other representation that makes it way easier to tame and control, or using the behaviors of harmonic and inharmonic ratios to create complexity in sequences, smoothed quantizers, and timbre shapers, and so on.

Can you give me some examples?

Gregory: We wanted to encourage thinking of cyclical “time” as having a modular nature: by using ramp functions instead of individual triggers. Starting from a ramp, we show how to create sample-accurate rhythms, modular patterns, swing, divisions and ratchets, polymeter and phasing, beat chopping, deriving rhythmic LFOs, and so on, all being sample (or even sub-sample) accurate, in a way that triggers never can be. So, time is just another flowing signal to process.

We also see the same basic crossfader algorithm–one of the simplest little circuits really–used to create linear interpolators, filters, smooth step generators, antialiased oscillators, LFO shapes, envelope generators, and many more. And since everything is editable, it’s also explorable. For example, you have a filter algorithm or chaos generator, and you wonder what might happen if you stuck a waveshaper or a delay inside one of the feedback loops — well, you can just crack that patch open and try it.

Graham: Another example is moving calculations into a different space to solve challenging problems. For example, we’re always pre- and post-scaling a signal so you can work with a zero-to-one range, and apply a huge range of what we’re calling “unit shapers” to warp and morph this range as desired, whether for an oscillator or LFO, or for more expressive pitch glides or waveshapers, or for a funky swing to time, all in an algorithmic way that means you can parametrically morph things and derive more variations. And of course you can modulate the modulators and shape the shapers and so on.

Another is making a discrete set appear continuous by crossfading the two nearest neighbors – to make a quantizer or a bitcrusher modulate smoothly, or to make an FM algorithm generate only harmonic tones, or to create morphing multidimensional antialiased wavetable oscillators, or a variable delay without pitch drift, it’s all the same trick. You’ll notice other similar bits of patching like this used in very different situations throughout the book.

Gregory: Along with these ideas, there are a lot of abstractions (including the unit shapers) that we walk through creating and re-use throughout the book. You can think of them as a “next level” of gen~ tools built on the basic operator set. The specific tools in the software we’re releasing to accompany the book extends the modest gen~ operator set in ways that assist users in customizing and making their own abstractions.

I’m sure you’ve seen Forum requests to add a certain feature to a Max external or to set the default state or mode of an object to a user’s personal preference. Leveraging the ability to create abstractions in gen~ provides readers with a simple way to do just that. You can open up the abstractions and examples we’ve provided and easily customize them to meet your own needs.


Maybe this is a good point to mention that the book isn’t just explanatory text and diagrams. What really blew me away is the collection of examples that you’ve created. Can you talk about a few of the treasures people will discover?

Gregory: It’s hard to know where to start. Complex shift-register sequencers – something that Step by Step readers might find interesting — Euclidean rhythms and LFO generators, wave terrains and polygonal synthesis, and a positively insane variety of amplitude, ring, frequency, and phase modulation algorithms that include blended harmonics and chaotic feedback.

Graham: And a wide variety of filters and delay effects, algorithmic quantizers with glides, noise and randomization algorithms, harmonic distortion waveshaping and modulated bitcrushing, band-limited virtual analog and wavetable oscillators, pulsar and other granular synthesis techniques, and more.

Gregory: And you won’t be surprised that I’m excited about the collection of chaotic algorithms…

One of the topics I was surprised to see covered was FM synthesis. I’ve had the impression there isn’t really anything more to say about FM that hasn’t been covered before. Can you give readers a little preview of how you approached this topic?

Gregory: As you might imagine, we spent some time researching the academic literature and community knowhow when we embarked on the project — we knew that nearly everyone was familiar with Max’s Swiss Army Knife abstraction SimpleFM~, and we wanted to go deeper and follow some different paths. Lo and behold, we found a really interesting reply on an old Max Forum posting that FM pioneer John Chowning himself responded to. His advice was — for me, anyway — the start of it all. Graham’s investigations, based on Chowning’s insight and other more current scholarship on frequency modulation and its synthesis cousins, produced a collection of patches that had my jaw on the floor with amazement.

Graham: Well, there’s this general perception that FM is somehow complex or shrouded in a mystique of confusion, but really it’s a lot simpler than that, and we heard from some quite experienced readers that we managed to get several new insights across to them. A lot of existing material on FM does sometimes treat it as a “done topic” and repeats the same old DX algorithms, even though there is so much more that’s possible.

For example, if you AM a carrier with the right window shape, you can get perfectly asymmetric spectra out of an FM or PM patch. Or, one of my favorite examples is a pair of FM oscillators acting as modulators to each other, each going through a low pass filter first – the range of amazing sounds and behaviors that come out of this can sound really analog and is like some kind of more organic chaos to my ears. And yet the patch is so simple. And the bigger point is that there’s nothing stopping you trying sticking other things into these feedback loops to discover something new!

I have to ask one more question – what’s with the “Book 1” in the title?

Gregory: There was so much we wanted to cover, and not all would fit into a single book! I kind of don’t want to be the spoiler here. Graham, what do you feel like revealing?

Graham: In the second book we delve much deeper into some common and uncommon aspects of band-limited oscillators, microsound, reverberation and physical modeling. But we also look at some more unusual and powerful generative algorithms — including a few processes inspired by biological and natural phenomena that are often absent from computer music materials. Stay tuned!

by David Zicarelli on October 3, 2022

Iain Duncan's icon

Fantastic! Can't wait to get it. :-)

Thijs Koerselman's icon

Very exciting news! Not long after gen~ came out I stopped using Max, and it always seemed a little daunting to me. Recently I've been feeling nostalgic, and I think this might be the perfect opportunity to rekindle my love for Max, and its community :)

larme's icon

OMG I want this now! gen just complements other parts of Max. The visual programming style of Max makes glueing UI object and other built-in objects simple and intuitive while the text programming style of gen makes writing complex logic possible.

fractal's icon

Great news !

DerKastellan's icon

This is indeed great news, very stoked about this.

Thing is - how can I preorder? Would be good for you if I could channel my initial excitement into a sale...

daddymax's icon

Sounds really interesting. I might buy a copy.

Frederik la Cour's icon

This sounds so cool, cant wait to read more about it :)

slx's icon

Really looking forward to it

alfonso santimone's icon

That's great! Can't wait!

Seth  Cluett's icon

Nice work! Can't wait!

👽'tW∆s ∆lienz👽's icon

"fuhget about the interview, when do we get the freakin book?!"

(in other words: so excited! can't wait 😇)

Francisco Colasanto's icon

Amazing !! Congrats

Gregory Taylor's icon

I expect you'll see the book on or very shortly after the 1st of November. Since that's All Saints' Day, maybe you can stop off at St. Binarius or St. Hexidecimus and light a taper. :-)

Gregory Taylor's icon

Or dress as a hopeful person for Hallowe'en!

davidestevens's icon

ooo (not wooooooo!!) just in time for my birthday.

Jesus a.'s icon

exciting news, very happy to see the Cycling74 book series continues after Step by Step.

Graham Wakefield's icon

Hi all,

Thanks for all the enthusiasm!

The book is not quite available just yet -- there was a glitch with the publisher. We will make an announcement very soon!

Graham

Gregory Taylor's icon

And the files for the book will not be available until the book is officially released.

Stew Day's icon

Will there be a Kindle or Apple Books version available? Very excited about this but my poor eyes struggle with typical print sizes these days.

👽'tW∆s ∆lienz👽's icon

Am i the first?! HAHA! In yer face, Losers! 😜

^long ago when i bought the wall-mount, i knew someday i would own a ninja sword worthy of it, and once i bought the sword i knew someday i‘d have a book worthy to display atop the sword. now both my ninja shrine, and my life, are complete 😇

Gregory Taylor's icon

Publishing anything with Amazon involves a pre-flight spanking machine, verification, and a lag time for actually "publishing" anything, which means that we cannot absolutely control when things appear. And, as you might imagine, we would rather have the book appear a bit earlier than later than when we promised.

Some people before you elected to remain mum about it being visible and available, so I'll need to disappoint the ball-spiking in the end zone :-).

That said, the book display is quite nice. Graham and I are honored.

Gregory Taylor's icon

And yes, there will be a Kindle edition of the book available for purchase - It will probably appear a bit later than the paperback edition. We thank you for your patience.

Graham Wakefield's icon

It's officially published!
https://cycling74.com/books/go

(And yes of course, gen~ works wonderfully in RNBO :-))

Stew Day's icon

Ha! That’s just a cunning plan Gregory to get me to buy both 🤪

mheton's icon

Now I have a real chance to understand what gen is good for...

Iain Duncan's icon

Got my copy, and so far I must say I really like the way it is written, and it's big! Well done Gregory and Graham. :-)

Andrew's icon

This is a great book. Uniquely practical with sufficient depth to inspire for many years to come. I've enjoyed quite a few "!!!" moments already. Much respect to everyone involved!

Agustin Spinetto's icon

Hello Graham and Gregory. First thank you for all the tutorials and congratulations on the book.
I wanted to ask if you think this book will be helpful for me to work with my Patch.Init from electrosmith. Basically, I was super excited to know that includes examples of very useful patches, but I was wondering how manageable will be to adapt this patches to the daisy environment. I already have experience using Oopsy, but I was looking for a book to help me do or adapt patches to what I need in my modular synth environment. Thanks!

Graham Wakefield's icon

Hi @Agustin -- sorry I didn't see your message earlier.

Yes indeed -- Although there's nothing in the book that is *specific* to Daisy, most of the ideas and the specific patches from the book can be easily adapted one way or another for the Daisy-based devices, including the Patch.Init and other Electrosmith devices, but also e.g. Noise Engineering Versio etc., and also OWL etc. based devices. There's a lot in the book that is modular-inflected, and modular application was certainly in our minds throughout the writing. (Actually a few of these patches started life as patches for a Daisy Patch module in my rack, I think that may also be true for Gregory). Mostly all you need to do is map appropriate [param] names and ranges for the hardware device you have :-)

Graham

Eric Sterling's icon

When will book 2 be released?

damu's icon

I am also interested to know when book 2 will be released.