Zynseq - A native step sequencer

Update to the feature/stepseq branch today:

  • Each song now has a song and zynpad configuration
  • You can select a song by number and its linear song can be started whilst the zynpads are loaded and may be played.
  • Toggle between song and pad editing using the “Song / pads” menu option in song editor.
  • Song selection is now on the SNAPSHOT encoder.
  • External triggers are (mostly) working. Use the “Trigger” option in song editor to allocate a MIDI note to a track. (A quirk: ‘None’ is at the top of the range!!!) Each NOTE ON event will toggle play state for the sequence (pad). Currently the transport is not started from external trigger so you may need to start the transport manually, e.g. press a pad or the start button.
  • MIDI input channel is selected with ZynPad menu.
  • Quantity of tracks in song is edited from menu (rather than adding / removing tracks). Beware this is destructive, i.e. tracks are immediately removed. (This will change in future.)
  • By default, linear song tracks are created in single-shot mode and zynpad tracks are created in loop all mode.
  • Moving left / right through song now moves in whole patterns where a pattern exists.
  • Playing patterns / songs should not interfere with other’s replay - there remains an issue with song position jumping.
  • A bug with parameter editor showing but not controlled has been fixed.
  • The song editor track titles now show: A1 (10,60) , where A is the group, 1 is the track number, 10 is the MIDI channel for playback, 60 is the MIDI note number for trigger and shows the play mode. Background colour alternates between purple and blue for odd and even groups.

The file format has changes so old songs / pad configs may be broken.

I am sorry that I have not yet implemented mutually exclusive groups - maybe next time.

Known issues:

  • There may be synchronisation issues with sequences playing out of time
  • Continue (resume playback) is paused by 2s due to jack-midi-clock configuration. This is simply fixed and I hope to see it patched in near future (@jofemodo :wink: )
  • First note may be played short
  • Playing pattern advances song position which subsequently means resume song may jump to unexpected time.
  • Removing tracks then adding can show old track configuration.
  • Pianoroll plays on wrong MIDI channel.
  • Slow screen refresh
  • Many others…
  • …like I just noticed triggers are not working after reboot :frowning_face:

This has all been done very much with my programming head on. I’m going to do some gardening then play with it for real then list the most irksome issues and schedule them for resolution.

5 Likes

Have we decided whether or not to include song data in snapshots? I personally think it would be a good idea…

Hi Riban,

I’ve updated and played a bit with stepseq and below, some feedback:
First of all, I really like the workflow and the way you organized menus and the use of controllers (especially, changing the pattern with layer button, it’s really useful and simple)

Song editor:


Setup is five layers on midi channels 1 to 5 and 5 sequences

  • I do not get the difference between A1(1,0) or A2(2,0) and A3(3), A4(4), A5(5), what is that second number in the parenthesis used for ?
  • impossible to get a wider view using “horizontal zoom”, 128 is the max
  • I’ve tested “group” feature (assigned track 3 from group 0 to group 1), track name changed to B3 but I do not get what is that used for … also see below
  • Using Song/pads menu item, I’ve switched to PadEditor(1) => Can change pattern number (layer encoder), PadEditor number (snapshot encoder), but select does nothing. For sure WIP. But btw, what is the difference between PadEditor and song editor ?

ZynPad


From the song screen as in first picture, I’ve switched to ZynPad, and I get screen above

  • Hey! this is not the screen I have expected :rofl:
  • With snapshot encoder I can change to ZynPad(2) ZynPad(3) => does these numbers correspond to the song numbers ?

Other tests

  • Copy song1=>2 (which was empty) doesn’t work
  • touch functions work quiet well (touching the pattern number on bottom left makes the pattern selection menu appear on top left, really cool)
  • I can’t see what’s the last menu item is …

I like the idea of having a single mechanism for recalling song data including engines, patches, songs, zynpad sequences, etc. I haven’t got my head around snapshots so am leaving this development for a later day :grin:.

ZynSeq can load song data from file. Currently only one file is configured but we could use a naming convention to load / save the relevant .zynseq file when a snapshot is loaded / saved.

It would be cool to be able to select whether to save with a snapshot or not… a sound can inspire a sequence and vice versa…

1 Like

So maybe our snapshot files need to link to both a .zss file and a .zynseq file, but you should be able to load just one or just the other or both.

Or… our .zss files link to .zynseq files, and you can load the .zss data with or without the .zynseq data. That sounds easier to implement…

Thanks for feedback. Some answers…

I think I described the numbers somewhere. The letter indicates the group. The number represents the track index. In brackets, the first number is the MIDI channel an the second number is the MIDI note that will trigger the pad / sequence.

I noticed the 128 limit earlier. It is a throw back to an earlier (now invalid) design idea. I have it on my list to fix.

Groups currently only change the colour of the track / pad. They will soon also be used to identify mutually exclusive sequences, i.e. sequences that will only play one at a time. Pressing a pad will stop the currently playing sequence in that group and start the next one (at the next sync point).

Song / pad toggles between editing the linear song or the sequences behind the pads. The linear song will play all tracks simultaneously from start to end when transport is started. The tracks in the pad editor will be presented by ZynPad pads, one pad per track. You need to add tracks by selecting the Tracks menu option then you will be able to assign patterns to the tracks. Each track you add will add another pad to the ZynPad view.

You are seeing one disabled pad in ZynPad because of the above, i.e. you have no tracks in your (pads) song. (Maybe it should show a message but that was extra code…)

Snapshot changes song and the selected song is shown in brackets in the title bar. You can select a song, add tracks to the linear song and / or the pads then play the song and / or the pads.

I changed some things recently and suspect copy has suffered. (As I did it I made a mental note to check copy but asking my brain to remember something is like bailing your boat with a sieve.

Partially obscured last menu item is a bug that has just crept in. I will take a look. I did notice but the last item isn’t that interesting :wink:.

Your screenshots give away your need for a better PSU / cable :stuck_out_tongue:.

I have a list of issues I noticed when I had a play earlier so will work through those and update soon.

Again , thanks for the detailed feedback and questions. It is getting better. I find the menu structure to be a good way to navigate, especially with touch but there may be too many menu items. I have a plan to cull them a little.

BTW, click on the status area (top right where your lightning bolt is) and you will reveal the transport controls. I am aware these hide when you change screen and need to be toggled twice to get them back - another issue on my list. (It is a long list!)

2 Likes

thank you for your kind (and detailed) reply. I will study it tomorrow, especially the pad/song and group functionalities that are still a bit mysterious to me.

I’m also testing different kind of cheap AliExpress step down converter. I think that the one I used today was a little bit crappy :-1: and that the wires I’ve soldered are maybe too thin.
Have a good night :sleeping:

Hurrah,
I got it !

Whoua, this is all extra cool, congratulations Riban.

I have just noticed: zynthian (at least through wifi) is unreachable when stepseq transport is on.

Out of topic:
And I’m now powering zynthian with a 11.1V 3000mAh power pack and a stronger step down converter+heavier wires. It’s getting much better, but I still have sometimes the “underpower” signal. I think I should try to find a way to power directly the 7inch HDMI display.

2 Likes

…and you seriously expect to get away with that degree of insight and expect not to get a :face_with_monocle: . . .

We have a whole new wing of spacious ( well it’s relative), soundproof oubliettes designed for precisely this situation . . .

Never has the expression ‘Out of Sight, out of mind’ been so accurately applied … :roll_eyes:

hahaha, of course not. They are already some elsewhere in a couple of posts in this thread.
So, it’s “Tubular Balls” (with extra glitches :laughing:) from yesterday evening, using the linear song mode.

This morning, it was just a mess of random patterns and sound engines :upside_down_face: for exploring all these great new features.

Very rare, I would say… :wink:

I cant seem to find a page for this on the wiki (?) and cant quite figure out the controls. Like starting loop for example.

https://wiki.zynthian.org/index.php/Zynthian_UI_Users_Guide#Step_Sequencer

Remember there is the Master branch and the step sequence branch and thety are different. Much development is going on on the branch . . .

1 Like

Alright, ive just been messing around with the sequencer thats in the latest nightly build, but maybe I should update via webui?

I’d start with the master to get a feel of the Pattern editor and load up the stepseq repo to try out the Song Editor.

Alright, understand the controls a bit now, but I cant start playback when pushing the snapshot button.

Ive assigned a drum machine to MIDI channel 1, and the sequencer is set to channel 1. I head all the sound when either pressing on the pioano keys on the left, and when a put in a note in the sequence.

Try looking in the Admin Menu for an option called “MIDI Clock Internal”.
If it’s off, turn it on.

It was turned off, turned it on and now it works, thanks!!

1 Like

Here are some fun updates applied to feature/stepseq branch:

  • Mutually exclusive groups in ZynPad (press a pad will stop others in the same group)
  • Synchronisation (very almost) fixed (there is one scenario where sequences may be one clock out of sync - I will fix it soon but it is barely noticable much of the time)
  • Status menu (transport control) does not get hidden when changing screens
  • Group letter (A-Z) used throughout
  • External trigger note names used throughout (note: external MIDI trigger does not start transport but will work once the transport has been manually started, e.g. by pressing a pad or pressing the Snapshot button, etc.)
  • Can now stop a ZynPad before it starts (during starting phase)
  • New (or empty) songs now get populated with 16 tracks, each on a different MIDI channel with the appropriate play mode (one-shot for linear songs, loop-all for pads), split into 4 groups (A - D) and with external triggers configured (C4 - D#5)

This is starting to be useful! There are some bugs and a lot more work to do, especially optimisation to reduce flicker and improve responsiveness. There are also some workflow improvements required which I should get a better idea of once we have played with it for a while.

Remember this is still under active development and likely to break without warning! Avoid using this for production use.

Enjoy!

5 Likes