The Flashbulb Algorithmic Piano

I saw Benn Jordan when he passed through Mt. View (home of google) and he was amazing. Thought I would post this here as he is a node-based programing expert in addition to making awesome music. I wonder if this algorithm can be reverse engineered from the video.

3 Likes

Interesting video. After watching it a couple of times, I think I see what each node does. You would need a way to play back little snippets of notes. It could probably be done with a lot of little sequencers, but some sort of piano roll node would make it much easier. I considered whether my chain-able sequencer would work, but it would have to be modified to have a “start” input, loop through once then fire off some sort of “done” signal. Demonstrates how useful a “done” output on the piano roll would be, since each little clip is triggered when the previous one is finished. It also brings up an interesting question. Will the piano roll have it’s own tempo or simply have a clock in, and if so, how will you sync multiple copies of the node.

2 Likes

What I worked out was pretty much the same. I sent clock out to c couple of demuxes and send plugged in several seq 16 nodes with some patterns. I think it’s a viable alternative to random number quantizing that is worth exploring a little more.


nodal 1.audulus (204.3 KB)

1 Like

Great minds and all that. This is what I came up with. I modified my 4 step chainable gate skip sequencer into a “Single-shot” unit with a start and done. You can loop them split etc. This demo fires off an 8 step loop which triggers another 4 step which in turn triggers another 5 step loop. Using flip-flops you could have alternate rotating paths etc. Still needs a bit of work. Currently you can’t loop a unit back on itself because it needs at least one clock between done and start.


Single shot sequencer V1.0.audulus (517.6 KB)

2 Likes

Trying to figure out how to handle the 1 per octave output. Ideally it would be zero when the unit is not running so that you could add the output of multiple units to drive one oscillator, but when you make it switch to zero when the unit resets, if your release is too long you hear the change in pitch at the end of the last note. Currently it outputs the last pitch until it is restarted

2 Likes

I was thinking of using a mux node to recombine the signals.

1 Like

Your patch certainly sounds better than mine! I love those little mixed detuned oscillators. Sounds just like a toy piano :cowboy_hat_face:

2 Likes

I’m trying to come up with something that is more or less self contained. Watching the video it looks like each node simply triggers the next one in line. You can put an oscillator with each unit as I have done, but I was trying to figure out a way to do longer sequences with a single oscillator/EG pair. I suppose I could retain the chaining logic which gates everything internally, but I was hoping to keep things simple. DO you think if I expanded the number of steps in each unit to 8 that that would cover most patterns?

2 Likes

It’s really interesting, trying to re multiplex everything seems to introduce a lot of synchronization issues which become convoluted to resolve.

I think it’s constructive to remember that a melody is more about creating interesting patterns than it is necessarily about the number of notes. There are plenty of 3 note melodies that seem to work just fine. I think the most slots I took up with the seq 16 was 10, but that was only 4 notes (2 of which were an octave apart).

Let me make an interface sketch real quick.

1 Like

The sync issues were why I was trying to stay away from muxes etc. I thought a single clock to time everything and nodes that only needed a single connection to work. For the moment I think I’ll stick with 4 notes until I get all the logic worked out. If necessary I could then make an 8 note unit etc.

2 Likes

The hack for that, I think, is to use a sample and hold on the synth voice’s 1/oct input triggered by it’s gate. You won’t get legato note changes, but you also won’t get changes in pitch during the decay.

Anywho, I made a router for this type of aleatoric composition I’m calling “the snake.” Snake Sequence Router.audulus (97.9 KB)

1 Like

I do not have Audulus but will get it when V4 is released.

I have not followed the discussion very well but it seems interesting enough. I like midi fx and midi generative improvisation. Is this similar to Scale Player, MIDI Processor plug-in for Mac & Windows. By RF Music. https://www.kvraudio.com/product/scale-player-by-rf-music There is a free lite version of it available in a recent Computer Music Magazine.

Am I way off base? Sorry if so. Let me know.

1 Like

I would like some more information on what’s going on here for the rest of us idiots. How is the pattern being decided? What is the purpose of the 3 different 4x4’s?

2 Likes

Sorry, the module posted in this thread was just kind of a sketch. The idea is to have to clock pulse trigger a bunch of different sequencers a little bit out of phase. It might make more sense if you check out the software the video was using – http://nodalmusic.com/

1 Like

@RobertSyrett I think you’ll like this. I fine tuned the single shot sequencers. I used a quad node to simplify the wiring. Each unit has an input and an optional loop. There is a start module to kick things off. The minimum number of units to loop is 2 because each unit needs one clock to reset. If you want 4 or less steps use two units and simply set the unneeded steps to zero counts. The 1 per octave output of each unit goes to zero when the unit is inactive so they and the gates can be added to drive a single oscillator. I built an external input unit in case you wanted to switch chords or other values, an alternating switch (flip-flop), a 4 node demux, and a random switch. The demo uses several different oscillator types (I love that mixed unit you came up with), and has loops, single paths, random switches etc. The tune leaves something to be desired, but I was really more concerned with the building blocks. I know you’ll be able to do something wonderful with the units. For a long delay use an inline unit(s) with the step count set to a high value. I haven’t come up with a reliable stop module because of the feedback delays, but the reset stops everything. Press the start button to start the sequence.


Single shot sequencer V1.1.audulus (2.6 MB)

2 Likes

Crazy! So all those sequences are triggering each other in different ways in a feedback? It’s gonna take me a little while to reverse engineer that, but I’d love to give it a go.

1 Like

It’s actually not too complex. The “chain” output of each sequencer can trigger the input of the next unit in line. You can loop them back, feed them to another unit, a demux, flip-flop, random etc. Each unit or group of units (if you add the o and g outputs together) can drive some kind of sound. The conga units are just using the gate outputs, but rather than adding the two chained units outputs together, I used then separately to drive two congas. The demux drives four different bells depending on the current setting and whether the random switch passes the start signal.

2 Likes

Using Audulus to control samples like pianos over MIDI has been a DREAM of mine for a long time. I did one way back in Audulus 2 days where I used a sine oscillator and pitch detection in Ableton to create an algorithmically generated piece - it was charming the ways the pitch detection got it wrong.

I think what this illustrates is just how closely real composition hews to algorithms. If I have this chord in this key then (usually) only this certain set of chords will sound good after it. If we trained by ear, we just know this naturally without being cognizant of the underlying algorithm that is our societal music norms.

1 Like

Audulus 4 might not be released until next year. You still have plenty of time and usefulness to get a lot out of 3!

I was hopping for the Spring or Summer release.

1 Like