Zynseq - A native step sequencer

You should have access now :wink:

I will check your changes and start thinking on the merge …
Is the stepseq development branch synced with the latest changes from master?

Regards,

feature/stepseq branch is currently synchronised with master. I have added the additional config files to zynthian-data repo as branch zynseq. There are some things I have done in the code you won’t like :wink: but what is life without change and challenge? :smile: There are a couple of extra classes for file selection and renaming things (which I use as a save as dialog) but they probably don’t currently fit with the wider panel management (see recent update to git hub about modal dialogs).

1 Like

Can’t wait to test it :+1:

Nice update! Also great is the idea of making the entire zynseq content storable. So you can work on different projects, backups are easy to create, you can exchange projects with others …

3 Likes

I am working on the much requested midi file import. I have some code which will import a midi file and populate consecutive patterns based on some parameters but am not sure how best to set those parameters. A midi file may have many tracks so we need to select the MIDI channel to extract. We also need to define the pattern length and steps per beat and the patterns to populate. This can all be derived from the current pattern configuration, e.g. you could select pattern 5, configure its length and steps per beat then import could overwrite that and subsequent consecutive patterns.

The import could come from a defined storage location or USB. Alternatively we could do something in webconf to allow this to all be done in the web browser but that is likely to involve a grown-up.

Please let me know your thoughts. I wasn’t a big fan of this idea but it has really grown on me as I realised we can access a vast library of grooves and beats. We could add some to the standard build as a built in library of rhythms tracks.

Proof that this is kinda working - here is a recording using FluidDrums of a few bars imported from here.

Note: This code is not yet integrated in zynseq but I will add it to the feature branch in the next few days.

5 Likes

This is a fun little update to the feature/stepseq branch. I have added import of MIDI files. The procedure is:

  • Copy .mid file to /zynthian/zynthian-my-data/zynseq
  • From song editor, add a pattern to a track (any will do)
  • From menu set the track’s MIDI channel, e.g. 10 - this will be the MIDI channel to extract from the .mid file
  • Bold SELECT (or bold click) on the pattern to access pattern editor
  • From menu select the pattern that you want to overwrite (this and subsequent consecutive patterns will be overwritten - as many as needed)
  • From menu select the steps in the pattern, e.g. 32
  • From menu select the steps per beat, e.g. 8
  • From menu select Import
  • Select the file to import from the list

The pattern that you selected will be overwritten with the first section from the MIDI file. Subsequent patterns will be overwritten with each subsequent section from the MIDI file. If there is a silent section then a pattern will not be overwritten until a section with content is found.

I appreciate this isn’t necessarily the simplest method but it does work and maybe we can build up a library of sequences. I might add a feature in future to import single patterns from such a library.

Have fun and remember, the beat goes on…

8 Likes

@riban I just updated my Zynthian, and I noticed that the Song view is rendering faster than it used to! :smiley: Just wanted to thank you for that. It used to be a real pain…

Cheers!

2 Likes

Yep! I managed to optimise it. For those who care about such things it was redrawing the screen from the zyncoder thread. Now the zyncoder thread flags a redraw required and all redraws are done in the refresh method of the main thread. It makes a massive difference when driving from zyncoders.

4 Likes

Hi everyone. I’m still a bit confused about the sequencer. It seem that i have to write patterns in master branch and use them in the song mode in feature/stepseq. Is this the only way?
This is a problem for me because every time i switch back from feature/stepseq to master i always get a black screen and Zynthian won’t boot. Then, i have to flash again a card. :expressionless:

Hi @Nicolaz , “feature/stepseq” branch is an ongoing development and it can break things. If you want to use it, i would recommend to avoid this kind of swaps and have a separated SD card for it.

Regards!

The alpha version in master only supports patterns, not songs. The development version has more complete song support. The two are not compatible. There is a conversion performed from old to new version but not the other way.

1 Like

Hi everybody,
now I work with the StepSequencer and I have a lot of fun. I try to build some drumpatterns. No Probs.

But I don’t have encoders, only knobs and a mouse. So I can’t change the note-lenght (normally using encoder 1 Layer). Perhaps I didn’t see all possibilities.

What can I do?

If you are using the feature branch and you have a touchscreen then you can drag the note length.

Just trying out the feature branch. I can add a pattern to a song then add notes to it but;
How do I play the pattern? Change the Midi channel? I quick noobie guide would be welcome

Hi @maniccyberdog

A guide is on its way but not until the development branch is merged into main branch because the two are quite different. This thread should have everything needed to use the development branch version. Sorry it means a lot of reading through old posts… I plan to do some more work on this soon but life is currently being a little obstinate :wink:.

You currently need MIDI clock so enable that in admin menu. Toggle playback with SNAPSHOT button. Change MIDI channel (and other goodies) from the menu, accessed by pressing LAYER button.

1 Like

Hi @riban!

I will reserve a couple of days for testing and merging the devel branch … :wink:

Regards,

7 Likes

ship it!

6 Likes

I actually need to do more work around sync before we should merge. I have been… distracted by shiny things. I will try to get this sorted soon and let @jofemodo know when I think it is fit. (I am looking at it now but should be working on something else so can’t promise progress today.)

For anyone who is interested - currently stepseq uses MIDI clock for its timing with some convoluted routing of signals and control mechanisms. It needs to change to sync to Jack clock / transport which will allow us to lose the MIDI clock dependency (although we still aim to be able to sync to MIDI clock as an option) and will mean synchronisation with other modules such as arpeggiators, LFOs etc.

7 Likes

A quick update on progress… none visible to you yet!

I have refactored zynseq to use Jack transport for its timing but in doing so have introduced / exposed many bugs so I need more time to resolve these before I can share these changes. The good news is that we can remove the dependency on jack-midi-clock and the extra routing involved with that. This should also reduce the unexpected user experience of it not working until enabling internal clock. This change will initially remove the ability to chase MIDI clock but I plan a future change to add this back in (at the right place, i.e. so that all engines can use this feature).

Sorry this is taking so long. I have been unable to work on it for some time and now that I am back on it, it is taking substantial effort. I hope the next update will be more useful and further hope it will be soon, but don’t hold your breath. We don’t want blue Zynthianeers.

9 Likes

You don’t have to be sorry for being late… you will just have a lower salary… that’s all…
Eh eh…