Zynseq - A native step sequencer

Ups! My fault! I commited a binary compiled for my AMD64 desktop … sorry!

BTW, I think we can safely remove the binaries from the repository and add some lines to .gitignore for avoiding pitfalls like mine in the future. The update system will take care of building the library when needed.

Regards,

Sorry @jofemodo but feature/stepseq branch does not build library automatically. If I delete library and reboot the library is not rebuilt.

This forum is sooo wierd… and I love it!

2 Likes

You have to update software for building the library, and the update system have to download some changes. It doesn’t check if binary does exist, if check if there are changes in source code :wink:

Simply try this:

cd /zynthian/zynthian-ui/zynseq/build
rm -f libzynseq.so
update_zynthian.sh

Of course, it can be improved, but i don’t think it’s needed. Rest of libraries (zyncoder & jackpeak) are working like that with almost 0 problems in years …

Edit: I just tested and the code is re-built on every update, no need for changes.

Regards,

Okay - so do we put the lib binary in the distro and it gets updated with UPDATE? There has to be a lib there in the first place else it won’t work until update is run.

  • The green bar sticked to keys is perfectly OK for me. It’s a little bit too small and green doesn’t contrast too much. I will test with other colors …
  • Definitely, I would enable acceleration for velocity encoder.

Yes. I understand all this. We will find a better way when things get more stable …

I’m OK with that, but ALL touch-specific widgets have to be “optional”. A “touch UI” flag should be added to config ASAP.

If it’s working fluid with touch interface, then it can work equally fluid with encoders.
I will take a look to the code …

IMHO, nobody has the right for kidnapping words. “Launch Pad” are a combination of 2 words and we can use it. Of course, if we try to register a product with this name, then Novation will come to open our asses … Anyway, and thinking about it, you are right and we could find a better combination of words … like “trigger grid” … or “Trigrid” :grin:

OK OK … i think we have to vote … so, please, tell your proposals and we will make a nice votation :wink:

But encoder’s interface users don’t want to see these elements. I will add the “touch UI” config flag ASAP.

I already have thought quite a bit about this question, @riban.

Zynstep should be a MIDI-clock consumer, same that other sequencers already working in the system, or arpeggiators, or a synced delays. In fact, some of the current engines already include stepseqs or arpeggiators, like NoizeMaker, Triceratops or Helm. Also MOD-UI include some MIDI tools that can be synced with MIDI-clock.

Any of these “consumers” shouldn’t make a difference about the “clock source”. ZynMIDIRouter will take care of this, so everything can be synced together flawlessly.

Also, as everything have to work perfectly with an external MIDI-clock, this will be our main use-case. And the best way of avoiding problems with this is to completely erase this difference. I mean, from the application/module POV, there is no external/internal clock. Only one clock does exist. Without adjectives. Only ZynMIDIRouter will know about clock sources …

Thanks a lot!

I think that the name should be catchy, short, meaningful and easy to remember so I propose HARAMSLDGI, as in Highly Advanced Rhythmic And Melodic Sequences Live Deployment Graphic Interface.

Ohhh! Thanks a lot, @riban! … anyway, your effort is huge enough to merit for a beer truck … :grin:

I would consider using layers for being assigned to patterns. So, when changing the MIDI channel for a layer, the associated patterns got reassigned too.

Of course, every layer has an unique MIDI channel, so finally you have patterns assigned to MIDI-channels too.

Regards,

1 Like

Just a humble proposal … I have noticed that while changing Vertical zoom, Tempo, Steps per beat and Steps in pattern, the snapshot encoder is free, so it could be used to change the value in higher increments, say 5 or 10 for Vertical zoom, Tempo and 4 for Steps per beat and Steps in pattern, thus reducing the needed screen refreshes

I have pushed some minor changes:

  • Improve the visibility of the velocity input level indicator.
  • (Hopefully) enable encoder rotation acceleration. (This may reduce the impact of screen redraws.)
  • Limit scaling of pianoroll text.
  • Step sequencer:
  • Fixes hiding selection highlight on some actions.
  • Hide parameter editor when switching view.
  • Remove libseq binary - should get built with update.

Please test.

2 Likes

Wow! Guess what? I was planning to buy an used beatstep Pro … I honestly think you made me save money :grin:

2 Likes

Me too! I had my sights on a KeyStep Pro, but I’m glad I waited. :+1:

1 Like

I ordered one. But as I wrote: You never have too many sequencers or arpeggiators. :wink:

I have to wait 2-3 weeks… Corona, China…

Regards, Holger

3 Likes

Honestly it’s a cute piece of hardware, but 400 Euros are way too much. :dizzy_face:

3 Likes

Two things - one might be “out of scope and not the intention”:

  1. For some reason I can select the very first cell to put a note in - bug or user error?

  2. What I love about my Microbrute’s sequencer (and a reason to get a Keystep) is that I can simple “step input” the notes I want to have played. As a guy writing a lot of notation and coming more from the “VST” world rather than “Hardware synth”, for me it’s far quicker and more intuitive to “play it in and then have it sequenced”. Is such a functionality something you would consider? MIDI-Keyboard step-input would already be awesome, with e.g. one rotary controlling the step length, similar to now.

Best,
Mat

4 Likes

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