Zynseq - A native step sequencer

Another day, another update. You might even like this one!

  • Load / Save added to menu - just default file currently
  • Autosave disabled
  • Fixes sync of pad patterns
  • Fixes loading sequences from file
  • Reduces debug output (when not in debug mode)

The pads are almost usable! They should allow triggering of sequences (which are currently just populated with patterns 1,2,3… but will in future be configured by song editor.) If the transport is not running then the pressing a pad will start the transport and the pad’s sequence will start immediately. Subsequent pad presses will start at the loop point*. The pad mode may be changed so that it plays once or loops. Each may be configured to play to the end of the sequence or to stop immediately. (This is indicated by (too) subtle colours. I need to improve the choice of colour.)

  • Loop point is defined by menu entry Sync period which is measured in clock cycles. This is not ideal and will be improved in future. For now, create patterns that are the same length of clock cycles based on Steps in pattern and Clocks per step then set the Sync period to these two parameters multiplied together, e.g. 16 steps in pattern, 6 clocks per step, sync period should be 96. Sorry for this complexity - this is what is happening under the bonnet (or hood for our American friends :wink:). I will improve this to hide the mechanics from our artistic brethren.

Proof that this works…

Please play with ZynPad and let me have your feedback. It is still a bit awkward to access the pattern editor and the song editor is not yet implemented. Any ideas on how to navigate between them would be appreciated - I haven’t thought much about that yet.

@spurkopf You can change the font size in webconf. I will look at how to improve display on different sized screens. (I do occasionally test but don’t have time to test everything on every display for every update - and this is alpha - you are my tests :wink:.)

And @jofemodo - jitter is fixed - thanks!

2 Likes

8 posts were split to a new topic: Accessing the webconf

Hi Vincent

Step sequencer is currently in alpha testing. It can be accessed by switching your Zynthian to use the feature/stepseq branch from webconf->software->repositories then performing an update. Note that this is cutting edge so may break the Zynthian. It is not yet recommended for production use. I expect this to move to a beta stage within the next few days (or hours @jofemodo?) and appear in the stable release. It is still under development with much work yet to do.

LV2 plugins may be enabled or disabled in webconf->software->LV2 plugins.

Cheers

I’ve moved the previous discussion to a new Thread ‘Accessing The Webconf’, primarily to see If I could . . .

:smiley:

2 Likes

:face_with_raised_eyebrow:
My posting has nothing to do with “Accessing the webconf”.

@spurkopf You can change the font size in webconf. I will look at how to improve display on different sized screens. (I do occasionally test but don’t have time to test everything on every display for every update - and this is alpha - you are my tests :wink:.)

And that’s why I’m here, the standard user with a standard kit and bad eyes. Maybe you should just write Channel, Midi-CH, or remove the arrows. :wink:

Apologies, it’s now back ! but perhaps a little out of place. You wouldn’t believe the housekeeping required round here :smiley:

1 Like

I’ll do something in future update. We are looking at hiding touch controls if user doesn’t want them and I can reduce the text length as you suggest. I will have a session where I work through all the options for different size displays but bear with me whilst I try to complete core functionality.

1 Like

I only report if I notice something that could disturb other users, or if I think that should be considered. What you do with it is of course up to you. Otherwise, I don’t want to stop you in any way from programming.

1 Like

Small update:

  • Reduce some titles to fit smaller screens
  • Default ZynGrid size: 4x4
  • Add grid selection highlight
  • Fix sync issue
4 Likes

Hi @riban,

I just added a configuration option for enabling/disabling touch widgets.
It’s available from the webconf’s UI options and accessible from code:

zynthian_gui_config.enable_touch_widgets

Thanks!

OK @zynthianers!

I just merged feature/stepseq with master … in other words, the Step Sequencer is now available for everybody in the main branch.

Congratulations, @riban, for this fantastic piece of code. And thanks a lot for this huge effort!! You can be sure that a lot of @zynthianers will enjoy with it … and a few motivated heads will be crashed by some furious life-partner feeling unattended … :grin:

10 Likes

And now, my report after having played a little bit with the Patter Editor and the Zynpad:

First, the good!! :wink:

  • Pattern edition is quite comfortable. I love using left and right hands for controlling cursor with the lower encoders and adding/removing notes, while having the upper encoders for adjusting velocity and duration.
  • ZynPad is already usable! You can arrange patterns in different MIDI channels and enjoy jamming. Amazing!!
  • Although Sync Period is far from intuitive, once you configure the right value (192 in my case, using 32 steps patterns with 6 clocks/step), patterns get synced perfectly.
  • LoopAll mode works also really nice and you can switch your pattern variations very easily on the fly.

Pattern Editor:

  • When changing to a new pattern number, it has 64 steps. Too much. 16 or 32 would be fine.
  • When editing, copying drum patterns, it could be useful to delete a row (all the notes events in the same note number)
  • It would be nice to save the cursor position on every pattern and restore it. If not when changing from a bass-line pattern to a lead or drum pattern, you see an “empty pattern”.
  • When trasposing a pattern, it doesn’t scroll vertically …
  • While playing and changing pattern number, MIDI channel from the previous pattern is assigned to the pattern you change to, In other words, MIDI channel is not changed accordingly to the pattern assignation.
  • When a pad (in zynpad) is playing, you change to pattern editor, stop and start again, the pattern and the zynpad doesn’t get synced.

ZynPad:

  • Pattern’s MIDI channel should be used. You compose a pattern for a sound (aka layer, aka MIDI channel)

  • By default, patterns could be ordered by MIDI channel (aka layer), having channels in columns and pattern phrases/variations in rows, something like that:

    CH#1:Lead    CH#2:Pad    CH#3:Bass    CH#10:Drums 
    p1           p10         p20          p30
    p2           p11         p21          p31
    p3           p12         p22          p32
    p4           p13         p23          p33
    

Of course, we are reaching the point where it MUST be integrated with hardware pad-controllers, like the Novation’s LaunchPad, etc. We have to think about mapping … and perhaps reusing stuff from DAWs like Ableton Live … Take a look to this:

Regards,

3 Likes

:face_with_monocle: :face_with_monocle: :face_with_monocle: :face_with_monocle: :face_with_monocle: :rofl:

1 Like

OK! :grin:
Same patterns that 2 days ago plus some variation, but triggered with ZynPad …

Enjoy!

4 Likes

So now everybody can upload the ZynPad (nice name btw) into the Zynthian using a network connection ?
Amazing!
It has to be mentioned, you guys really know what you’re doing and form a great team.

I will join my voice to the chorus of congratulations and thanks… to @riban for sure, and also to anyone who has taken part in any way in the building process, from simply giving their opinion, expressing their expectations and préférences, to helping in the coding or architecture…

3 Likes

Thanks @jofemodo for merging to master. There is more work going on behind the scenes to bring further enhancements. Maybe now that we have merged we can start reporting individual issues via github issue tracker. Of course this is still early days and much functionality is missing or pooly implemented and there are bugs to be resolved and workflows may change. I will add your suggestions on the TODO list but here are some comments that may help clarify some design principles which may not yet be evident (mainly due to lack of song editor - it is on its way…).

Behind each ZynPad button is a sequence which is made up of one or more patterns. This will become obvious when they are edited in the song editor but for now, to get something that can be demonstrated, they are simply populated with the first 64 patterns. Syn Period will move to the song editor and become markers (vertical lines) representing loop points within the song. I hope this will make it far easier to comprehend this feature. I think it will suddenly become intuitive. This feature is probably a week away from beta.

New patterns should have 16 steps. I will look at what has happened!

Persistent storage of parameters is on the TODO list. I want to store some info somewhere but not yet sure where is best. I will chat with you about that offline.

Not scrolling whilst transposing is a bug. I only test it goes up and down one or two notes! I have added it to the list.

Patterns do not have the concept of MIDI channel. They are simply a collection of events that may be reused in different tracks of a song. A song track consists of a sequence (as does a ZynPad trigger). Each sequence has a MIDI channel. The pattern editor has a sequence for replaying the pattern. I anticipate there will be a mechanism for moving from a selected pattern within a song to the pattern editor at which point the song’s tempo and the sequence’s channel will be used by the pattern editor. This is a design concept that is unfortunately becoming learned behaviour due to the time taken to create the song editor. We have the pattern editor that we are all playing with but it is not intended as the primary access method or a performance tool. I hope to get a version of the song editor out within a week at which point I hope this should all become evident.

The interaction between pads and the clock transport is awkward. If the transport is not running then hitting a pad will start the transport and reset loop sync. When sequences end, e.g. one =-shot or pad hit again to stop loop then the transport continues running. If you subsequently change to the pattern editor then you will probably need to press the transport toggle twice, once to stop the transport and again to start it and tell the pattern editor’s sequence to play. If you go back to ZynPad then any previously playing sequences will have resumed. There is a solution in there somewhere but I have not yet investigated it. I want to get the core functions working then see how the workflows influence desired behaviour.

ZynPad uses the sequence’s MIDI channel (as described above). This will become clearer when song editor is released. The layout of pads is still in development. I understand Novation’s approach of having columns of channels or tracks but on the Zynthian we may only have a small screen and few rows so may want to have a more flexible approach. I am considering having the concept of a group to which several tracks belong. The group acts as a mutually exclusive group, i.e. only one sequence (pad) can be running at any time. The colour of each group may be different to allow more flexible layout than the most recent implementation of alternate columns having alternate colours. (This was demonstrated at ZynthClub but I don’t think I have released it yet. It basically works the same as a LaunchPad - purely by coincidence!!!)

Triggering sequences from MIDI input is on the list [feature T7]. This needs some consideration after we have core functionality and a better understanding of various workflows. I don’t anticipate this being too tricky to implement although some trigger devices may have some interesting interface methods!!!

Now - I have spent too long responding and no time coding…

13 Likes

:tada:Congratulations, really a nice addition!

@riban … Thanks! This is a huge Step (pun intended) forward for the Zynthian project …
We are not talking about a new synth or a new sound or effect … this is a completely new tool that was missing and needed and that will vastly increase the versatility of the Zynthian.
You made a wonderful job!

Last but not least … thanks as usual to @jofemodo for the work and the commitment to this community.

6 Likes