Zynseq - A native step sequencer

And Winter has come !!! ))))

1 Like

But Zynseq is almost there… )))

1 Like

Adding a little more encouragement for @riban: Thank you so much for all your efforts and your perseverance on zynseq!

A XXXXL Size thank you for Riban.

3 Likes

I am working on some python midi mangling scripts, and, since i’m planning on building my "virtual midi controller’ as an lv2 plugin, maybe to get acquainted with the lv2 format i could first implenent an euclidean midi effect.

Just brainstorming at this point but in theory it’s really simple

4 Likes

Ship It!

1 Like

The original files are long since gone, but fortunately I left some very helpful notes in this post:

Using this and the audio clip, I rebuilt the project, with some extras! :wink:

@jofemodo Let me know if this works!

002-ThreeOnThree.zss (68.6 KB)

Wait… I forgot. There’s a Stereo Mixer LV2 on channel 15, so all the audio is panned to the left. You might want to delete that. :blush:

Enjoy!

2 Likes

Huge big up to @riban and @jofemodo
Next week I will be on hollydays and will explore all these new features (I have had a look at github’s commits on feature/stepseq branch, and, woahh, that’s a lot of work that have been done !

Thank you guys.

With just days left before its release into the wild, those adventurous souls who dare take the development branch will notice a few changes including:

  • Import from SMF has been disabled (but fear not, a new, better version is iminent)
  • Export to SMF is now possible for individual patterns
  • Adjusting grid size in ZynPad will not change until asserted and then it will reset groups and MIDI channels to give columns of grouped sequences
  • Small optimisation and a few bug fixes may reduce those xruns a bit
  • Notes are not played when adding to pattern editor if it is looping (to avoid distraction from rhythm)
  • Feedback tallies have been enabled - should work for Akai APC
  • Pad icons are more discriptive and accurate but may change as they are far from perfect (any budding graphics artists out there?)
  • Instrument name shown when selecting MIDI channel

Looking forward to getting this out and a big rest! (Yeah right!)

12 Likes

This is a great addition! I’ve not tested it extensively, but having the pattern name and timestamp is exactly what I wanted to see when I checked my captures. This is a huge step forward in terms of being able to archive songs in an open and flexible way.

My feeble mind is so easily confused, this will save me a heap of backwards and forwards. Perfect!

I’m getting closer and closer to justifying my need for a new MPD.

Thank you for these amazing updates!

1 Like

This is also a huge improvement.

Is it possible for the steps per beat and beats per bar settings in the pattern editor to likewise remain unchanged until asserted?

If the controller slips to the left instead of the right with beats per bar you’ll lose notes, even before committing, and it can be quite slow to repaint when zoomed out.

Edit: Correction after playing some more. The steps per beat behavior is much improved, perhaps it is best to keep this live? But not dropping the notes when reducing beats per bar until after asserting will help prevent accidents.

Edit 2: One last thing after playing and before I get back to work. I am currently adding a MIDI Clock generator layer for note-repeat on my controller. Is this the recommended way forward, or is there a better way that I’m missing?

I remember seeing a MIDI Clock option in the admin on an older build, but it appears to have disappeared in recent updates. Does/Should ZynSeq emit MIDI clock messages without this extra layer?

Apologies for all the feedback at once, and any ignorance on my part. And again, many many many thanks for all your time, energy, and expertise.

Hi @gr0k

No need to appologise - feedback (of all kinds) is very welcome. If we don’t know about issues we can’t resolve them and yours is mostly positive and always constructive.

It used to be the case that notes were not lost when adjusting the pattern size but we went through a few changes to avoid redrawing (because of slow painting which was mostly resolved) and changing to adjusting beats in pattern rather than steps in pattern. Maybe this behaviour changed during those changes. I prefer to see the changes being made dynamically but if I can’t do this non-destructively then I will change it to require an assert to apply the change.

The original implementation was driven by MIDI clock and hence we added an internal MIDI clock which could be enabled in admin menu. This was changed to use JACK transport and zynseq now provides the master transport for Zynthian with everything else slaving to it. (Appologies for use of language that some may disapprove of. I cannot currently find sufficiently descriptive terms for this specific technical terminology. No offence is intended.) This means that other modules like LV2 plugins, synthesizer LFOs, SMF player, etc. should lock to a common clock. This is not extensively tested and a recent test of SMF player shows there is more work to be done! The old implementation used to lock to MIDI clock using a kind of PLL and I have a task to reimplement this so that we can lock zynseq to an incoming MIDI clock if desired. For onward clocking we can use the MIDI Clock Generator LV2 plugin to produce a MIDI clock to drive external devices. We could integrate this into the zynseq library if the plugin proves to be inadequate or lacking features but initially I suggest we try this method. (I have not yet tested this.)

I didn’t understand your use case of MIDI Clock - ā€œnote repeatingā€. I plan to test driving an external drum machine via MIDI clock.

1 Like

My controller can use an external MIDI clock for beat-syncing note-repeat. It can also use an internal clock, but now that you’ve fixed live recording it’s nice to be exactly in-time, which I can achieve by using a MIDI clock generator layer.

I’m all for not making unnecessary work for yourself, the clock layer is available for anyone that needs it.

It’s great fun playing around with it and delving into the possibilities. Thanks for this @riban!

3 Likes

I changed pattern editor so it does not change beats per pattern until asserted. Similarly sequences per bank is not changed until asserted when adjusted from zynpad.

4 Likes

Question for the group: I have a plan to add the ability to add continuous controllers to sequences, e.g. level control. This was originally planned to go into patterns but as I now look at the design of zynseq I wonder whether there is benefit to having CC in patterns. I have another plan to add a track to sequences so that CC (and other events) can be added to the sequence rather than patterns within the sequence. This makes more sense to me because you may want to adjust a controller across a sequence which spans patterns, e.g. make a gradual change of pan position whislt the same pattern repeats.

So the question is, do you think there is benefit to being able to add CC to patterns if we can add them to sequences?

I probably won’t look at this feature for at least a week but any ideas gratefull received.

1 Like

Oh man, there aren’t words to describe how excited I am about having programmable automation on my Zynthian.

Adding control changes to patterns, along with option when copying a pattern to duplicate notes, control changes, or both might be the most flexible way forward?

I will think more on this as I play around over the next few days.

Edit:

Hmmmm, but then there is this issue.

My first request would be transposition of a sequence from a keyboard which presumably is a similar concept to cc modulation of characteristics. Certainly the ability to move away from the simple repetions and allow creative control of charectertistics is certainly an appealing factor.
As we’ve mentioned before there are a range of approaches from the carefully considered almost classically defined scored performance to the free-for-all what else can I tweak in real time to express this once in a lifetime emotional moment. I’m sure these two extremes would require different presentation of modulations but I would suggest we start by doing what we did when you produced the first cuts of the sequencer. If we produce a set of classic sequences, ā€˜I feel love’, ā€˜tubular bells’, ā€˜karn evil 9’, ā€˜stepping out’ and no end of others that don’t date back to my limited childhood, and given we can exchange files use these to produce audio samples to demonstrate what can and can’t be done with this new tool, and examine the new directions that are exposed.
I must also take the opportunity to thank @riban for his efforts on this. I’ve watched it from the outset and it’s been a real pleasure to see how it developed. I’ve watched a lot of products grow and this has been one of the most invigorating I’ve seen in thirty odd years… Much praise for the radio camp!

1 Like

I totally agree with this one. Just wanted to suggest a similar approach of ā€œlive transposingā€. The workflow I often use is: I control the pitch of an arpeggiator using a foot pedal to create rhythmic patterns so I can play the guitar top of it (and I also loop the inputs of Zynthian using the ALO looper). But (live) transposing the sequencer patterns would be a much better way to create interesting jams. Something like the Renoise phrases do, which I use quite often. I started to write a python script to extract these phrases automatically. Maybe some day they could be imported to zynthstep. Another idea would be to preselect or define a default pad combination as a starting-point (per banks) to achieve a start all / stop all functionality… Or something similar. Just to add something to the brain-storming. Anyway, I would also like to congratulate @riban for his awe-inspiring work. It’s quite intuitive now, I think. The quick shortcut (the long tap/press on the pads) to the pattern editor is really a nice addition, too.

2 Likes

I noticed this too. A really nice touch!

1 Like