Zellen

Zellen

Game of Life based sequencer

Zellen (German for “cells”) is a generative sequencer based on Conway’s Game of Life with a bunch of sequencing and play modes, Euclidean rhythms, simple controls, all the scales from @markeats MusicUtil, MIDI out or PolyPerc for sound, and (new in 1.2.0) @ericmoderbacher’s awesome time travel feature.

Requirements

Norns 2.0
Grid (tested with 128, should work with other sizes – testers welcome!)

Documentation

README on GitHub

Download

v1.2.0 - Download

24 Likes

There’s a small update (1.1.0):

  • MIDI clock (via beatclock.lua) added
  • Fixed a one step pause at the end of the sequence when using semi-automatic loop mode
2 Likes

Played with this a bit this morning. Fun!

2 Likes

seeing an error on encoder 1 turn:

lua: 
/home/we/norns/lua/core/paramset.lua:194: invalid paramset index: speed
stack traceback:
	[C]: in function 'error'
	/home/we/norns/lua/core/paramset.lua:194: in function 'core/paramset.lookup_param'
	/home/we/norns/lua/core/paramset.lua:165: in function 'core/paramset.delta'
	/home/we/dust/code/zellen/zellen.lua:624: in function 'enc'
	/home/we/norns/lua/core/encoders.lua:57: in function 'core/encoders.process'
1 Like

Thanks for catching that! I fixed this in maiden yesterday but forgot to include it in the 1.1.0 GitHub commit. It’s fixed now (version 1.1.1).

3 Likes

Is it possible to use this to sequence external midi gear?

I’m using a USB/MIDI cable to send to my Minimoog reissue but not having much luck. I feel like I’ve tried every config possible in Norns. And it seems that my cable is receiving the midi out data, though perhaps not in time or with proper “gate” messages.

I’m just wondering if this SHOULD work and if anyone who has made it work might have some tips for setting it up or could point out something obvious I may have missed?

TIA

Zellen does send MIDI note data and can send MIDI clock, if activated in the parameters screen. It worked great with my OP-1. Are you using the right MIDI channel? (see parameters, default is channel 1)

I’m currently visiting family and don’t have my Norns with me, so I can’t do any debugging at the moment. I think I have one of those USB-to-DIN-MIDI cables at home that I can try when I get back on Monday.

1 Like

@sbaio I really appreciate the response!

I just tried it again and got it working. It still seems like the gates aren’t firing properly but as long as I have the envelopes wide open and sustain up it’s definately getting the note data. It may be because the Minimoog doesn’t “technically” have a release stage, so perhaps the CC’s are confusing it. Unfortunately I I don’t have another midi synth to try it out on… but this is certainly better than nothing :heart:

1 Like

trying to slave Zellen to MIDI clock and no luck.

i was trying other scripts with clock and was having trouble with Fairplay and Foulplay so i tried LOOM which is working but i moved onto Zellen and it’s not reacting to clock for me.

clock is set to external.
switching back to internal everything plays as it should.

1 Like

Thanks for reporting this! I’ll look into it.

1 Like

Thanks for sharing this fun patch! I’ve been playing around with storing the board data so that I can go back in time to previous generations. Its seeming to work pretty well, so i’m thinking arc support for generational time loops would be a fun next goal.

10 Likes

Wow, that’s really awesome and super useful! Thanks for making this! If you would like to integrate it with the Zellen github at one point I will happily accept a pull request!

I’ve been away from Norns development over the last months, mostly because I went down the Ciat-Lonbarde rabbit-hole (including paper circuits etc.). But I have a three week vacation coming up in which I plan to dive back into Norns.

4 Likes

This is V COOL! I could see this being a SUPER useful patch.

1 Like

Thank you! I’ll try to take you up on that as soon as possible.

I’ve opened a small can of worms it seems; there are now lots of little features that would go nicely with my mod. So im not sure when ill be ready to share.

3 Likes

Awesome! Looking forward to seeing your ideas! Again, thanks for the work you put in! It’s very much appreciated!

I will resume my own Norns and Zellen development efforts soon. One thing I want to tackle is replacing PolyPerc with another sound engine. PolyPerc is great but it feels a bit limited.

2 Likes

I really like polyperc as it is. But options are always nice. Having the engines in their own file or folder would be cool especially if users could swap without touching too much code. Having the initial two might give people enough example to play around with swapping in their own.

2 Likes

As someone who isn’t a code hound and would like to be limited in my interaction with Maiden while doing sound exploration, I would LOVE the opportunity in this script to choose another synth though the param menu.

4 Likes

So I guess I’ve been looking at this script too much, because I can’t even watch a youtube video without thinking about it.

This type of windmill sweep might be a great patterning option for the sequencer. Could even add some variability to notes and or duration.

One issue for use would be that many of our points are naturally co-linear. Might be easy enough to address with a random selection, or some sort of tie break… hard to say.

I’m thinking it could be visualized on the norns screen. With points for each of the grids buttons. And the line sweeping like radar. The points could oscillate in little orbits or something for the tie-breaking.

Im need to finish some of these ideas before I keep adding features.

2:50 mark has the action.

4 Likes

That’s a fascinating problem/concept and a great explanation in the video, though I’m not sure about the windmill/radar being an extra layer in the Zellen sequencer. To me it feels more like it would make an interesting sequencer on its own.

1 Like

Would love to see this some day, but I think it is a tough problem to solve. The synth engines have different features and APIs so there would have to be an abstraction layer that handles this. Even if this is in place the script would have to be restarted after selecting a new engine since the engine is loaded on script startup. I’ll think about it… maybe I’ll experiment a bit with this idea.