-
Notifications
You must be signed in to change notification settings - Fork 72
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[WIP] Metro-like sequencing #259
base: master
Are you sure you want to change the base?
Conversation
If I would be a programmer, I would like to help; not the case.
Maybe editing the gates mode sequence could be an option, apart from preset ones?! |
Hey this looks amazing! So, stupid question....how do I put this into my Performer to test? |
@hotelbachelard Thanks for the interest!
and proceed with installation |
oh boy, ok. i'll have to read through that. |
@hotelbachelard how do you update the module usually ? |
I've only updated the module once for the latest firmware, and just copied the firmware file onto SD card. |
@hotelbachelard oh, ok, I think I can prepare the update so you could update is without compiling code yourself |
@hotelbachelard LMK if it worked for you! |
Works great!! Just needed to put the UPDATE.DAT onto the SD and follow the manual update procedure. Would you mind putting your negative gate offset test on this too? |
This is awesome man! Thank you! |
@hotelbachelard this is a version with offsets metro_offset_update.zip |
Amazing, thanks so much!! Thanks for taking all this time to develop these amazing features on the module.
Just popped it into the Westlicht, works great.
Another challenge - is there a way to allow fine-tuning of all the probability and offset percentages, instead of just those 4 or 5 values?
Thanks again, REALLY appreciate all your work and communication.Heidi
…---------------Music: http://www.bachelard.bandcamp.com
On Sunday, December 6, 2020, 2:20:42 p.m. EST, vafu <[email protected]> wrote:
@hotelbachelard this is a version with offsets metro_offset_update.zip
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub, or unsubscribe.
|
@hotelbachelard unfortunately there's a memory limit which doesn't allow us to go any more detailed that those few values. this would require hardware changes, using another MCU etc. Glad to help, thanks for testing this! |
It's very cool to see some firmware hacking happening, after all, this is part of the reason why I made this project open source from the beginning, so people can add new functionality as they see fit. I know that the multi-stage feature was requested by quite some people for quite some time now and the reason it hasn't happened yet is that I haven't really found a good way to implement this properly. Some background: Up until a few month ago, I was under the false assumption that I don't really have enough bits per step left to add these additional layers. Originally the step data was 6 bytes and pretty much used up. I then realised that a step was actually using 8 bytes due to alignment in the struct, which was a silly mistake. So yay, an extra 16bits was suddenly available for extensions. However, the multi-stage feature still seemed quite tricky to get right. Your current implementation is sort of "added on top" triggering the same step multiple times. Now this works, but is breaking some assumptions. To begin with, as you mention right from the beginning this only works if play mode is set to "free". I always try to make things in a consistent way, this means that it should also work with the aligned mode. It's arguable that this is not really necessary, but I don't like breaking existing concepts. So there are two possibilities, either this is implemented in a way that allows it to work in aligned mode, which is tricky, or we would implicitly switch to "free" mode when there is a step with multiple stages. It's weird if a feature is not working just because some seemingly unrelated settings are used. But even when implicitly switching, things are not behaving as expected, which is confusing IMO. It doesn't stop there. This interacts with so many existing things it's hard to make sure nothing breaks. Is this working properly (in an expected way) with track linking, recording, conditions, gate lengths, etc etc. Back when I put some thought into this I found it super tricky to get consistent and "right". So what I ended up doing was adding a new track mode which would offer a different sequencing concept more in line with the RYK/metropolis style of sequencing. This allowed me to make something that is self-contained and easier to understand/reason about. The downside is that it adds a whole new track mode and will probably leave out a lot of features that are already in the note track. So naturally people will ask why feature X is not available in stage mode when it is in note mode. Bottom line of all of this, I didn't yet come up with a concept to make this all work without it feeling "out of place". Now, I really don't want to discourage this kind of development and I really hope you don't take this the wrong way. But I hope you understand when I don't merge this pull request right away and cannot even offer concrete steps to make the merge happen. This change has far reaching consequences and I really need to think about it before deciding which way to go. The great thing here is that people can still use the modified firmware and get their hands on this feature even if it's not in the main release. And I always hoped for this to happen, so please keep up the great work! |
@westlicht I absolutely understand your concerns, that's why PR is still marked as WIP and probably will be that way for quite some time until it will be extensively tested by me and anyone willing to help :) I really love the codebase, it's a pleasure to work with the code, it's very well-thought and transparent, so thank you so much for this platform and making it open source! |
@dragosandriana As suggested by you, I've added few more gate modes:
compiled firmware is in description @hotelbachelard Please try this as well :) Also, as I wanted I've changed shift+function a bit for quick access
|
Hi @westlicht - so great to hear from you, and thanks for taking the time to respond to these recent changes that @vafu made. I played with vafu's unofficial update today, and so far things are working pretty consistently on my end as well. Overdubbing the note track will erase any Step Repeat, as expected. I do like that the Step Repeat is part of the Gate menu rather than in a totally different track mode – for now. Even in its current state, The only thing I found, as mentioned above, is that now, Gate on/off is now affected on every page/menu in the Step sequence, and not just available with the Gate page. I would like that fixed if possible, as I've been inadvertently turning steps off when I'm changing notes or other things. Again, really really appreciate Simon's original fantastic design on the Westlicht and vafu's current flurry of work on it. It's really become a centerpiece in my system. |
@hotelbachelard Ah, gate on/off from each page was my own changes that I did not intend to add here, sorry about that, let me revert those! |
@hotelbachelard here's update with fixed gate on every page |
You're the best!! |
has this version the midi fixes and improvements added on v0.1.38? |
hi, @franq87, yes, this is branched out from latest upstream master (after v0.1.39) |
@vafu I think I found an issue, when you copy a track that has different repeat values to another track, it copy the values but it only works as a x1 value, you can modify the value but it still playing only at x1 I'm having a lot of fun with this btw |
@vafu Hi, just wondering if you had your branch updated to last v1.40 also, thanks for this branch cheers |
@franq87 sorry it took me so long to get back to you! I tried to reproduce the issue you've described, but copying all values to another track worked for me. did I get the steps right?
|
@franq87 here are firmware files with metro updated to latest upstream version |
Hey hi! I've just repeated again and it is all working, It seems I forgot to put the track on free mode all working like a charm, super thanks for the update! |
@vafu this is not related with metropolis sequencing but, I was just wondering if you see possible to enable step up as a destination on the CV assignments? Maybe running the track in free mode as your metropolis sequencer does? This would be super handy for using the performer to quantize random trigs/gates when dropping some s&h in |
@franq87 what do you mean by "step up" in this context? |
that's right, not sure if it would be very difficult to implement as the track should remain static until an impulse is received to one of the four CV inputs as long as the other tracks keeps running, but having that option would open the possibility of using a track as an arpeggiator, a quantizer for S&H sequencing among other things |
Hey, absolute joy to have this alternate firmware, thanks for the contribution. |
Hi nice work on this feature @vafu Btw the negative offset (1.40) firmware is missing the gate probability page not sure if this can't be implemented with the negative gate offset or you just forgot to add it in that firmware. |
ohhh that looks neat! @westlicht did you consider adding this as optional 4th sequencer mode - note, cv/midi, curve, metro-note? @franq87 I was thinking about that idea too, it would be cool for generative sequences to be able to index steps by cv or advance manually. But I found an older issue where westlicht stated it would be quite troublesome to introduce such behavior into the current code logic. |
@franq87 : you can abuse routing to address notes in a sequence byan external voltage. Route VCin to Fisrt AND last note (using two different but related routings) and you can have a one step long sequence, where the note is selected by the CV in and the step is triggered the conventional way. You can also use an internal sequence to route this instead of an external CV btw... |
I haven't explored this way, will try definitely |
That's exactly what I was going to suggest as well. It's one of the reasons the Westlicht is a keeper for what I need, that you can CV not only the last step (which merely changes pattern length on most other sequencers), but also the FIRST step, which allows you to loop/"window" smaller sequences within a longer pattern. I can say that @vafu's firmware is great. I've been using it for a while now. The only bug I still see is that the Gate probability bar for each step is not visible, as it usually is when you're on that page in the official firmware—the function still works and you can see the probability percentage bar if you press on a particular step. I have not tested all the conditional stuff though. @jbjhjm Yes, Simon has been quite meticulous on what sorts of features he "officializes," since any additional mode or feature can impact a number of other functions in the sequencer. Despite selfishly wishing for a few more features, I really appreciate Simon's vision of consistency. |
This is a WIP PR, any suggestions and improvements either in code or in UX are welcome!
This PR adds basic Metropolis-like sequencing with steps repeats and few different gate modes.
Metropolis gate modes for reference
**This works only in Free track mode, so make sure your track Play Mode is set to "Free" under Track page
Under Gate layout you can find 2 (for now) new layers
REPEAT` which repeats current step N times
REPEAT MODE` which is like a switch on metropolis that determines how to send gates
EACH
-- sends a gate for each stepFIRST
-- sends first gate and waits for N - 1 pulsesODD
-- sends gate for each odd step (1, 3, 5)TRIPLET
-- sends gate for each third step, (1, 4, 7) creating triplet feel.Some gate modes were available on unit already
mode 1 (gate for N steps long) -- simply go to step LENGTH and increase it to 100%
mode 4 (no gate for N steps) -- simply disable the gate in GATE page
TODO
only stage sequencing
with negative offsets.zip