@Jtunes will you describe exactly what is happening with your encoders? I implemented a different handler and need to resolve any issues. I use I2C encoder interface and do not have MCP23017 interface to test.
Can someone please also test whether they see a difference in changing the zoom or steps per pattern via touch screen and via encoders? There is a substantial difference in screen redraw speed with my encoder interface which may indicate an issue. I would like to know if it differs from the MCP23017 interface.
Will this be included in the latest available sd-image?
Just wanted to share the pleasure of having received my V3 Kit a few days ago, and iâm very excited about putting it all together. I will do some cosmetic âtuningâ aswell, I like using wood (thatâs the tube amp builder speaking).
@riban Before the update, if I turned the Select encoder one step clockwise, the red box or âcursorâ would move one step to the right in the sequence. Now I have to turn the encoder 3 or 4 steps to advance a single step. Plus if I donât turn the encoder quickly enough, the rotation doesnât register. This has a major effect on precision, and it now takes longer to get that note exacty where I want it.
Getting used to the new encoder positions and length is niceâŚ
I find it difficult to know precisely which note Iâm on when the grid is small and Iâm near the end of the sequence and the Vertical Zoom is set quite highâŚ
Could we have greying to indicate sharp and flats along the horizontal rows?
P34: Horizontal tramlines to show white / black notes across grid
P35: Current value shown in drop-down menu
I considered P34 and did not implement after seeking advise from my graphics designer. I also see a possible issue with contrast but will see how it looks.
P35 may prove challenging. It is on the list and I can see how I might do it as part of a refactor of the menu I am working on⌠but no promises!
@Jtunes will you post the âSoftwareâ details from webconf? I have seen similar issues and there is some confusion (in my mind) around the encoder configuration but I just checked and the code looks right and @wyleu says that his is working.
Apologies, I get similar behaviour for the select encoder , it needs three or four steps befoe it produces a result. itâs ok once its moving and the effect applies both for positive nad negative movements.
Particularly apparent if you turn very slowly.
Actually the vertical selector does the same thing if turned very slowlyâŚ
and the lengthâŚ
Again apologies I was giving them a fairly big twist as the initial test.
I may have fixed the encoder issue. It is a bit of code that I still donât understand so factored out of the I2C interface (which probably means that doesnât behave correctly under some conditions - I need to figure that outâŚ).
As a bonus if you update you get a sneak preview of the pad trigger view. Select Pad Trigger from the menu and (for now) it loads patterns 1-64 (actually 63 - a bug) into sequences behind each button. There are menu options to change the quantity of rows / columns (that isnât road tested and has some undesirable effects) and ability to select loop or one-shot for each pad. Press a pad to select it as the one being edited. This is the start of the âLiveâ mode that was requested. Early days but there for some alpha tester feedback. Your comments are all considered and you may well get what you ask for⌠so be careful with your requests .
And as if that wasnât enough for an end of week offering (we have a holiday here in UK tomorrow) I have just pushed an update to add tramlines for white notes in the pattern editor. EDIT: I tried this on my 7" HDMI attached screen and there is insufficient contrast from the black (backlit) background. Increasing the tramline value interferes with low velocity notes. This looks fine on my laptop Xserver. May need to rethink this.
And another thing⌠menu scrolling is now working (though maybe not optimised) and the keyboard sounds a note for a short duration. (Due to the current implementation it is challenging to provide a play-whilst-pressed keyboard but I might address that in the future.)
Working with encoders is much better now again. But it feels as if the value is between two snaps of the rotation, so if you push the encoder the value jumps and you get too little or to much
Tempo and midi channel isn´t stored within pattern
I like the âtramlinesâ, looks much clearer now. Nitpicking: maybe the white keys should get brighter instead of the black?
The first commit had lighter tramlines for white notes because that seemed logical (white is lighter than black) but because of the dark theme it looked wrong to me (and my artistic adviser - my daughter) so I changed to the other way round. It is a single line of code so is simple to reverse. Letâs get wider opinion.
I need to add some further functionality including persistent saving of various parameters like tempo. Note that tempo is a global thing that affects all sequences so it is not tied to a single pattern. It will probably be saved with each song. Patterns are an entity used by sequences and sequences are an entity used by songs and pad triggers. Similarly MIDI channel is associated with sequences. MIDI channel is saved with each sequence but I am yet to code the sequence editor - watch this space!
The encoder issue is gnarly - I donât have the MCP encoder interface so canât test this. I will take another look at the code but might need a grown-up (@jofemodo) to help .
My thought was that the tempo is stored within a pattern as the âcompositionâ was meant. Then of course the tempo must be overwritten within a song or pad trigger.
But it is probably enough if the tempo is global. I likely only noticed it because the songseq is not yet implemented.
I have just pushed an update to the step sequencer to improve encoder handling. Will someone please test with MCP encoders and let me know if this fixes / changes behaviour? I expect one detent change of encoder to change interface by one unit, e.g. rotate SELECT encoder one detent clockwise should move highlight one step to right.
@spurkopf the combination of elements is yet to be nailed down but currently I plan this:
A MIDI event describes the start time, duration, MIDI start state and MIDI end state of a single event (actually maps to NOTE ON and NOTE OFF commands or multiple interpolated MIDI CC commands during playback ) .
A pattern is a collection of MIDI events with a defined duration (in steps), rate of playback (clocks per step) and steps per beat (which defines the grid lines but is an abstract concept and may be overriden). MIDI events of same type, e.g. same note cannot overlap.
A sequence is a collection of non-overlapping patterns. Each pattern is defined a start time measured in clocks (not steps). A sequence may be played at the current (global) clock rate (tempo). Each sequence has a MIDI channel and a JACK output.
A song is a collection of sequences that are started and stopped together. Each sequence within a song may be considered a track. A song has a tempo which is recalled when the clock starts. A song should have tempo track allowing change of tempo during the song. I have not yet implemented songs.
A pad trigger is a sequence that may be looped or played once. An initial version of this is released but needs further enhancement, e.g. synchronising playback and allowing mutually exclusive grouping.
The pattern editor was the first user interface to be created allowing manipulation of a pattern and its parameters. It has a sequence associated with it to allow playback of the pattern. That sequence has just one pattern at position zero (the pattern currently being edited) and may be loop played by a button press.
That is the schema for the step sequencer. Patterns store events at step boundaries whilst songs store patterns at clock boundaries. A step boundary is defined by the clocks per step setting within the pattern.
Thank you for the deep insight.
I actually thought stepseq is the music and songseq is a little more than a list. But now there are sequences too. This will go really deep!
Be prepared for many feature requests during development.
Tested on both an official MC23017 board allinone and on
Yes functionality has changed, itâs perhaps a little TOO sensitive on first move. One can overeact to the move and turn back, moving on to the note below when one is trying for a note above. But you learn it. Itâs ore an issue of encoder with to few pulse than anything else, but I suggest we leave it at this stage as I suspect the complexities of quite what is viewed as the perfect response might be something to refine overall rather than in this specific case.
We either get puppies or kittensâŚ!
One small addition that might help if a cursor colour change during redraw so you know itâs about to happen. IF you scroll off the top or bottom things seem to go dead fro a period of time before it starts a small fireworks show and redraws.
Course if the Pad Trigger Page could work radio button on column A I could do I feel love with copied transposed patterns and the A buttons below . . .