Zynseq - A native step sequencer

I have updated feature/stepseq branch:

  • Drum maps are now available and should detect the instrument relevant to the selected MIDI channel. If the drum map does not show you can go to the Scales menu option and select the lowest value (below Chromatic).
  • Scales can be applied to filter notes to just those within each octave relevant to the selected scale. The scale is selected from the menu Scales option. I have added:
    • Chromatic
    • Major (Ionian mode)
    • Minor (Aeolian mode)
    • Blues
    • Blues pentonic (Japanese pentonic)
  • The tonic (root or base note of the scale) may be adjusted with the menu Tonic option. For chromatic scale this just moves the octave marker.

The scale is saved with the pattern including if you selected (or it defaulted to) a drum map.

This update requires extra files to be placed in the /zynthian/zynthian-my-data/sequences folder: maps.zip (4.1 KB)

@jofemodo I am aware this isn’t necessarily the best location for these configurations. Maybe you want to suggest a better location? I can updated the code accordingly.

@MrBroccoli We can have a play next week or give me a shout if you want to discuss what is going wrong. Knowing you it is probably smoke bellowing from a screen… :wink:.

external-content.duckduckgo.com
:rofl:

1 Like

two questions:

In feature/stepseq, how do I navigate to the pattern editor view of the step sequencer? I can not find it in the menu (layer button). I can only navigate to Song Editor, Pad Editor, ZynPad.

In master, Step Sequencer (alpha) brings up Step Sequencer, and in the menu (layer button) there is an entry “Pattern Editor” which is actually the same as Step Sequencer… I find the names confusing. Shouldn’t the Pattern Editor view be titled “Pattern Editor”? The Menu entry “Pattern Editor” is then redundant.

Hi @hal80

Access to pattern editor has changed since the version in master. I hope soon to see master updated with the most recent changes because it is significantly different and it would be good to avoid users becoming familiar with the old design.

To access the pattern editor in the latest version:

  • Open Song editor
  • Select the song you wish to edit
  • Add patterns to the song
  • Highlight the pattern you want to edit
  • Bold press SELECT or click and hold on the pattern with a mouse / touchscreen a second

The Pattern editor should display, loaded with the selected pattern from the song and configured with the same MIDI channel as configured in the song’s track.

I will update the WIKI when @jofemodo performs the next merge of feature/stepseq to master.

Your question about master behaviour is redundant in the newer version so I won’t get into that!

1 Like

@jofemodo has linked the MIDI player to the JACK MIDI master clock. This means when we stop playing a MIDI track, the step sequencer also stops including ZynPads. (There is a side-effect that when the clock stops, ZynPad stops playing but does not mark its pads as stopped so when clock resumes the pads will continue to play - maybe it should mark pads as stopped!) Question: Should we link MIDI player to master clock and if so, should it start (probably yes) and stop (maybe not) the master clock?

I guess the wider question is, what should be allowed to start and stop the master clock. This has been puzzling me for some time as different modules use the clock in different ways and we should have some coordinated approach.

The master MIDI clock acts as the time master. This means it has the concept of tempo. If an external clock is used instead of the internal JACK MIDI Clock then the concept of tempo lies entirely within that external device and Zynthian has no influence over this. Step sequencer has the ability to flag tempo changes but I am struggling to figure out what to do with these. I think I may only be able to control the internal MIDI clock’s tempo so the step sequencer’s tempo is only relevant if using internal clock. I guess that makes sense. (There is a technical challenge to get this to work due to the internal clock being a separate entity that does not have an API that allows dynamic tempo change without stopping the clock - grrrr! We may need to hack it or submit a feature request upstream. We may have some traction because I think its author may be a member of this community.)

1 Like

I hope I got the problem right.
I assume that it is not necessary to run the midi player and stepseq at the same time. After all, we work with a raspi and a maximum of 16 midi channels …
My suggestion would be that the two players exclude each other, and what was started first is then the midi-clock master.
Of course, the midi player should be integrated into the song editor at some point. :innocent:
When it comes to the function that the audio recorder should start a player when recording, I would suggest the following points in the recorder menu:

  • Record - mainly intended for midi-in and audio-in - midi player or stepseq must be started manually.

and additional:

  • Record + Midi Player: like record -but the midi player starts automatically
  • Record + Stepseq: like record - you guessed it …

It is {insert prefix}day so here is another update:

  • Fixed songs playing when switching between editors (I have to stop the transport which is suboptimal but there is a quirk of jack_transport - I may patch later)
  • Can now change tempo (was broken for a while) but only at start of song or during pattern editing. There remains an issue changing tempo during song (despite there being a working master track which can have tempo changes) due to some functionality in jack_transport missing (I may patch later)
  • Moving selection highlight in song editor now skips any space it cannot populate with the selected pattern. Note: This behaviour differs to pattern editor which does allow overlapping notes and will remove any existing notes that overlap. I feel there should be consistent behaviour between these two editors but want to live with each and garner opinion on which is more desirable. The song editor behaviour is designed to reduce the accidental removal of a pattern, particularly when using a touchscreen. This may be resolved by recent change to pattern editor where you can drag your input around before releasing. Thoughts?
  • Fixed copy song feature
  • @le51 I can’t reproduce the partially obscured last menu item now. Maybe I fixed it! Will you please retest?

There are many things on my list yet to do and I may add some to the next sprint but I am painfully aware that the interface is slow (particularly song editor full screen refresh or pattern editor with lots of steps in pattern) so I should really look at that. What I should do and what I want to do may of course differ… :wink:

Enjoy

@spurkopf I don’t think we do want to exclude modules. It may be the case that someone has a MIDI backing track which they want to use in conjunction with the step sequencer, either for simultaneous performance or during preparation or transfer of ideas to the step sequencer. Indeed I believe this was an idea that led @jofemodo to sync these together. We also need to consider engines that will benefit from MIDI timecode, e.g. sooperlooper (but probably a future full engine version rather than LV2 which does not support this - reference Zynth Club discussion). I reckon we may want to leave the transport running, issuing MIDI clock and just control the start / stop and position of modules. This is currently not possible with jack_transport, hence the comments above about needing to patch (or replace) it but I think we may want a master clock that is always available (like the LFO in an old analogue synth) so that it may be used to sync anything that needs it then have a separate concept of play / pause / recue that sits on top of this and does not control the MIDI clock.

1 Like

I see you want to leave all doors open. :wink:
If you can synchronize, start and stop everything, so much the better!
Then I actually misunderstood the problem with the midi clock. Thank you for the new update, saving the song tempo works. The patterns now seem to run synchronously.

Hi,
I’ve been away from my box a couple of days. I’ve just updated and unfortunately same thing occur with the last menu item.

Presumably you updated the feature/stepseq branch? What is your screen resolution?

Yes, latest commit (c7f13dd)

screen resolution is 800x480 (waveshare 7inch HDMI+usb)
All other zynthian screen (mixer, engine, stepseq, …) are looking good btw.

What is your font size?

good point !
I was using 14px for font size, changing to 12px solves the problem.
:+1:

1 Like

I will take a look later. I have some improvements to code optimization which speed up the interface that need a little more testing (and I am still building my kitchen). I hope to get another update out by end of weekend.

And do we get to see pictures of the kitchen? frankly I’m not sure how much progress is being made there…

I have a problem. Bold clicking on a pattern in the song editor tries to take me to the pattern editor, but fails to render the actual editor. I’ll get some UI logs up here soon when I figure out why my password changed…

(Uh oh, it might be time to reflash… :confounded:)

Can anyone else confirm the pattern-editor problem?

@Jtunes have you copied the scale / map files as described above?
@le51 thanks, I found and fixed the bug but not yet published… hopefully later today.
@wyleu the kitchen is a building site. Maybe pictures when it is complete. (I don’t want potential home buyers seeing what lies beneath!!!)

1 Like

Hi @Jtunes,
yes I was experiencing the same problem, but as @riban suggested, copying the scale/map files solves the problem

Updates to feature/stepseq branch:

  • Optimisation improvements should give more responsive interface.
  • Some parameters now don’t change until asserted, e.g. zoom.
  • Don’t offer transpose menu for drums.
  • “Song / Pad” menu now says “Edit song” or “Edit pads”.
  • Improved label scaling.
  • Clicking on grid now closes parameter editor.
  • Attempt to transpose pattern whilst showing a scale will change to Chromatic scale view.
  • Fixed partially visible last menu item (menus are now always shorter than display height).

Remember you need to put the files described above in /zynthian/zynthian-my-data/sequences folder.

@jofemodo please advise how best to handle these configuration files. They shouldn’t really be in my-data. There is a feature to allow user custom scales but that is not yet exposed and may not be required and may be removed if we can simply populate the scales configuration with all the scales anyone might want :smile:.

2 Likes

Hi @riban,

Now, after switching to stepseq and moving cursor a bit in the song editor, I’ve got UI freeze

relevant UI log below:
Jun 14 13:24:06 zynthian startx[8408]: INFO:zynthian_gui: Bold Switch 1
Jun 14 13:24:06 zynthian startx[8408]: DEBUG:zynthian_gui_controller: ZCTRL ‘Main’: 0 (0 -> 10), None, None
Jun 14 13:24:10 zynthian startx[8408]: INFO:zynthian_gui: Short Switch 3
Jun 14 13:24:10 zynthian startx[8408]: INFO:zynthian_gui_main: Step Sequencer
Jun 14 13:24:32 zynthian startx[8408]: ERROR:zynthian_gui: name ‘Fa’ is not defined
Jun 14 13:24:32 zynthian startx[8408]: Traceback (most recent call last):
Jun 14 13:24:32 zynthian startx[8408]: File “./zynthian_gui.py”, line 1149, in zyncoder_read
Jun 14 13:24:32 zynthian startx[8408]: self.screens[self.modal_screen].zyncoder_read()
Jun 14 13:24:32 zynthian startx[8408]: File “/home/pi/zynthian-ui/zyngui/zynthian_gui_stepsequencer.py”, line 610, in zyncoder_read
Jun 14 13:24:32 zynthian startx[8408]: self.zyncoderOwner[encoder].onZyncoder(encoder, value - 64)
Jun 14 13:24:32 zynthian startx[8408]: File “/home/pi/zynthian-ui/zyngui/zynthian_gui_songeditor.py”, line 893, in onZyncoder
Jun 14 13:24:32 zynthian startx[8408]: self.selectCell(self.selectedCell[0], track)
Jun 14 13:24:32 zynthian startx[8408]: File “/home/pi/zynthian-ui/zyngui/zynthian_gui_songeditor.py”, line 715, in selectCell
Jun 14 13:24:32 zynthian startx[8408]: self.drawGrid(Fa)
Jun 14 13:24:32 zynthian startx[8408]: NameError: name ‘Fa’ is not defined