Writing a “sequencer” on zynthian

Hey yall,

I’m a developer and a musician that performs on a rather arcane homemade sequencer built in c++. I currently perform with a mac mini as brain connected to 4 launchpads, which i use the sysex api to get the input and set colors. I’d like to port this idea to zynthian: the idea would be to run my sequencer on zynthian, which communicates with a few midi controllers and sends internal midi to the zynthian sound engine.

Is this doable? Is zynthian designed to let you byo-sequencer… from the website, it seems the modularity is in the synths/fx. How can i get started? Is there a hello world example of this?

Thanks.

1 Like

Welcome @Joyo - a good place to start would be:
https://wiki.zynthian.org/index.php/Zynthian_Development

You also might want to consider whether Zynthian’s built-in sequencer could partially fill your needs and could be modified to give you all the features you want, thus benefiting everyone.

It is certainly doable - “Everything is possible, anything is hard.” as someone on this forum recently said.

1 Like

Thanks!

I’ll look into that

1 Like

So to be clear, this thing is dawlike in that it lets you stack lv2 plugins and they can output midi? Thats sick (if so) and makes it so easy. Juce will make me an lv2 i think.

Hey @Joyo,
Yes, with juce you can build lv2 plugins, but there is an issue with this.
See Hosting LV2s for a more detailed discussion about using lv2 plugins in zynthian.

IIRC, jofemodo is working on the juce lv2 plugin integration, but it is still not available/ready.

Meanwhile you could use DPF as a framework perhaps?
Regards

1 Like

Hi @Joyo. Welcome to the party. I’m interested to know what your sequencer does that zynthian’s native sequencer does not. We love to make zynthian better and any suggestions are welcome. You can read about the zynthian sequencer in its user guide.

2 Likes

How much time you got? :). My “sequencer” is a sequencer in so much that its a hands on component which sends note and velocity data to synths, but its based on a sort of alternate music theory i invented. It means a lot to me but probably not of general interest. What is of “general interest” is the technology which enables anyone to create stuff which means a lot to them personally: thus zynthian looks incredible to me.

Because its fun, heres what the full, mac mini based system looks like and sounds like.

Main problem is its huge. Zynthian plus erae touch or something could be a more portable version, and more modular perhaps too.

Edit: stoked to see pianoteq works on zynth, using it for the harp sound cause it sounds great!

1 Like

Ah, maybe i just copy the boilerplate from the chord synth above then.

You will be suprised at just how interested people are in each of our individual artistic endevours. You have already ticked @wyleu’s most frequent request. :face_with_monocle:

Your rig looks amazing and it is the size and colour that add to its appeal as a performance art tool. I am not sure how many people want to go to a gig to see someone with their back to the audience, twiddling knobs on a small box - but then I may not be down with the youth… :older_man:

It is true that zynthian does not currently support control of LV2 parameters which is how JUCE exposes its controls and that @jofemodo is working on a solution. As @gitnob says, there is also the DPF by our friend FalkTX (Filipe Coelho) which I have used to build plugins. It is fairly simple to use and presents parameters as LV2 controls which zynthian can interface with.

But I am not convinced that a plugin in necessarily the right choice for this. There are several existing LV2 sequencers but I am not sure how many people use them on zynthian. The don’t really integrate well into the zynthian workflow.

Too much and far too little! I would love to hear about your alternative music theory and how that manifests within your sequencer. The zynthian sequencer (zynseq) has a fairly flexible architecture with some workflow-based user interfaces. It may be possible to expand the UI to support different workflows, e.g. some would like to see a tracker based frontend - but any such development requires enthusiastic developers and so far, none of the normal musicians who desire this have stepped up to be that kind of geek!

I would prefer to avoid too many (more than one) sequencer in zynthian. It feels better to have one thing that can works well and can be used flexibly than several things that each need support and maintenance with overlapping but different features - this can result in users wanting a bit of that in this… So, if there is a way to present your prefered workflow using the existing (potentially modified) tools then everyone’s a winner (baby, that’s the truth).

2 Likes

Hi @Joyo !

Welcome to zynthianland!

Your sequencer looks an interesting beast. From the video, it seems it’s a real-time generative tool more than a traditional “composing/arranging tool”. Am i right? Could you elaborate a little bit about how it works and how the workflow is?

The zynseq is a “more or less” traditional step sequencer, based in patterns, sequences that you can capture in real time or edit by hand from the pianoroll grid, etc.

Currently, zynseq has no generative functionalities, but this is a path we would like to explore. Could your generative engine be coupled to the zynseq base?

Regarding the launchpad integration, we currently have a MIDI “ctrldev” driver mechanism for this and have successfully integrated several devices at different levels, including novation launchpad, akai MPK, etc.

Anyway, i good starting point would be compiling and running your sequencer engine in the zynthian device, sending the MIDI output to this jack port:

ZynMidiRouter:seq_in

this will allow you to use all the zynthian audio generation and processing power by simply creating the synth chains you need.

Enjoy!

1 Like

It nice to have but it’s easier to use a raspberry pi only for that!

https://www.reddit.com/r/synthdiy/comments/g0lmey/raspberry_pi_novation_launchpad_a_multitrack_midi/

There are a lot of other diy projects with sequencing en raspberry.