Zynseq - A native step sequencer

I believe midi step input is one of to-dos , if I didn’t read wrong in some early posts…

1 Like

I’ve tried it out and I also have this thing that I can’t select the first step. But otherwise it’s really awesome. I’m even starting to think about adding the battery to my build, so I can use it as a standalone groovebox on the go :slight_smile:

Here’s a poor attempt at sweet dreams with a gap between sequences because of missing step 1

@riban, we need to share sequences ASAP … :grin:

Today’s Zynstep Update Report:

First the goods:

  • The velocity level is much more visible now. For me it’s OK like that.

  • Encoder acceleration seems to work. It’s OK for parameters like velocity, but would prefer normal behaviur (non-accelerated) when changing duration or moving on the grid, specially for X axis (step).

  • After removing binary, libseq seems to build OK.

And now the issue report:

  • When starting the UI, the screen goes to white for some seconds, what it’s not very nice. This doesn’t happens on master, so probably it’s the zynthian_gui_stepsequencer (or some of the new screens) …

  • I can confirm the issue with the step 0. It can’t be reached with encoders. It seems a problem with zyncoder setup.

  • When changing “steps in pattern”, notes are deleted when reducing number of steps, although finally decide to not assert the change, or choose a bigger number.

  • When increasing steps per beat, zynthian UI get frozen and have to restart. This is the log dump:

    May 12 23:15:23 zynthian startx[28682]: ERROR:zynthian_gui: list index out of range
    May 12 23:15:23 zynthian startx[28682]: Traceback (most recent call last):
    May 12 23:15:23 zynthian startx[28682]:   File "./zynthian_gui.py", line 1143, in zyncoder_read
    May 12 23:15:23 zynthian startx[28682]:   self.screens[self.modal_screen].zyncoder_read()
    May 12 23:15:23 zynthian startx[28682]:   File "/home/pi/zynthian-ui/zyngui/zynthian_gui_stepsequencer.py", line 748, in zyncoder_read
    May 12 23:15:23 zynthian startx[28682]:     self.zyncoderOwner[encoder].onZyncoder(encoder, value - 64)
    May 12 23:15:23 zynthian startx[28682]:   File "/home/pi/zynthian-ui/zyngui/zynthian_gui_stepsequencer.py", line 734, in onZyncoder
    May 12 23:15:23 zynthian startx[28682]:     self.changeParam(value)
    May 12 23:15:23 zynthian startx[28682]:   File "/home/pi/zynthian-ui/zyngui/zynthian_gui_stepsequencer.py", line 669, in changeParam
    May 12 23:15:23 zynthian startx[28682]:     result=self.paramEditor['onChange'](self.paramEditor['value'])
    May 12 23:15:23 zynthian startx[28682]:   File "/home/pi/zynthian-ui/zyngui/zynthian_gui_patterneditor.py", line 505, in onMenuChange
    May 12 23:15:23 zynthian startx[28682]:     stepsPerBeat = STEPS_PER_BEAT[value]
    May 12 23:15:23 zynthian startx[28682]: IndexError: list index out of range
    

Cheers!

P.D: CC to GitHub thread

Yep - I will look at those in the morning. I have the sequencer locked to external MIDI clock but need the auto routing fixed. Currently nothing gets routed to the sequencer’s input. Will you please look at that for me @jofemodo?
I have also noticed that jack-midi-clock seems to be sending clocks at half rate. I only just noticed this so haven’t investigated. I first thought it was my old Alesis HR-16 running fast but then realised that was correct so must be something odd with jack-midi-clock.
Also, I think I removed jack-midi-clock from various places so it doesn’t auto start on my machine and there isn’t an admin menu for it. If you are very cross with me I can look through git logs to find what I did but it would help if you could repair that. I am off to bed now but hope to do some more before I start work in the morning.

P.S. Thanks for all the love - I appreciate all your appreciation xxx

2 Likes

Get a room you two… :roll_eyes:

I just restored the MIDI-clock autoconnection code and pushed to the feature/stepseq branch. This branch now also includes the MIDI-clock entry in the admin menu, so all the pieces are ready for working with the internal MIDI-clock. Simply pull all the changes to your local branch …

Regards & Love :heart_eyes:

1 Like

I love this forum thread…
Not only because it is building what will be a good step sequencer and a great feature which was missing in Zynthian…
But seeing all this fast interaction between you guys, this activé cooperation, this deep understanding…
Like if a single, universal, intelligence was puzzled into separated brains all connecting together…
That’s so mystique, in a way…

Brian Molko considers that what is the sexyest in a human being, is intelligence… Upon his criteria, you guys are terribly appealing !!

3 Likes

I had to tweak this to get it working - see latest commit.

When I went to bed I had the sequencer locking to clock with ~1ms jitter. It has reverted to JACK latency (~5.6ms at 256 buffer, 44100 samplerate). I have been scratching my head as to what has changed but can’t figure it out and must do some real work now! I think things are back working as well as they were before so you can play.

REMEMBER You need to enable internal MIDI clock in the admin menu (or use an external MIDI clock source).

Fixing the transport issues and chasing my tail with jitter has stopped me looking at the issues @jofemodo reported so they persist in this version. I believe the plan is to merge this into master once the work I just did was complete but the new issues mean that must wait a little longer. I will try to resolve them today but promises I make none…

1 Like

The love was for all. It is a regular zyn-commune here :slightly_smiling_face:.

A beer? Can I join in?

We are all hanging out for a shared beer. We can always raise one at Zynth Club from the safety of our home studios, bedrooms, sheds, etc.

3 Likes

Update just committed:

  • Fixes issue with steps per beat upper limit
  • Fixes unable to select first step or note
  • Extends max note length
  • Disables encoder acceleration for note length (please confirm and I will apply for other elements, e.g. menu)

~~The white screen is proving challenging to track down. I will continue investigation later. It certainly seems to be triggered by instantiation of step sequencer GUI but I suspect it is another module reacting to this, e.g. autoconnect, router, etc. ~~
[Edit] This is now resolved.

I suspect the increase in jitter is due to zynrouter. I will take a look later. I remembered that my low latency / low jitter was obtained with direct JACK connection from MIDI clock to libseq. The behaviour now is similar my previous implementation so I have a good idea what it might be.
[Edit] This is caused by zynrouter and is no worse than any other MIDI message passing through zynthian. It is reported as issue #196 in github.

Getting there…

So - is it time to expose this (still alpha) version to the real world?

2 Likes

kraftwerk - europe endless

stepseq: Zynaddsubfx Custom
bass: Zynaddsubfx Custom
choir: ZY/Choir and Voice/AAH Choir 2
Europa_endlos
for florian and for beginning border openings

10 Likes

Great! We should make a contest tribute for Florian.

1 Like

@spurkopf: great piece.

It should be fixed now, for StepSeq and also for any other MIDI message passing thru the ZynMidiRouter :grinning:

Yes. I think so … but first, please, solve this little issue:

  • Changed tempo don’t get refreshed when changin again … Steps to reproduce:

    1. Change tempo
    2. Close the menu
    3. Access the menu for changing tempo again …

    Instead of showing the last tempo asserted value, default tempo is shown…

BTW: I confirm white screen problem is solved :wink:

Regards!

2 Likes

Just a thought - would it be compatible with the zynthian style to render the keyboard a little more realistically, with shorter black keys? Every time I look at it now, I have the what-is-land what-is-water problem that you sometimes have with two-color geographical maps if you know what I mean. Also, separators between the octaves would be nice. I have here two pictures that I found in the internet as an example.
s

1 Like

I started with shorter black notes but found it difficult to align the keys with the grid. Each grid row is rightly equal height. The horizontal grid lines currently align with pianoroll key divisions. If we had shorter black keys then the grid would overlap keys as per your example diagram. I consulted my focus group and they preferred the long black notes. I also reviewed other implementations and the ones with long black notes (e.g. Caustic) looked better and I found easier to use than those with short black keys.

The contrast of elements is challenging. I could probably use white horizontal lines for octave dividers similar to the white vertical lines for beat dividers. What key would mark the octave at? A, C, H#?

1 Like

Hi Riban, I’m having a lot of fun with the step sequencer.

But: In pattern editor, turning left the select encoder makes the index mode to the right :upside_down_face:
And Pad Trigger drives me mad. Touch doesn’t behave correctly. Am I alone having this issue ?

1 Like