-
Notifications
You must be signed in to change notification settings - Fork 2
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
[feat] Let's do "fugue machine" #3: Ping-pong playback mode #8
Comments
@millxing; Now that #4 has been addressed and merged, I'd like to think about this issue. I don't think it will be difficult to implement; the real question here is UX. My initial thought had been a 3-state on the current 'reverse', i.e. default: forward; press -> reverse; press again -> pingpong; press again, back to forward... but I've not convinced myself that that's a good idea. Do you have any ideas as to how to present this to the user? |
@millxing; Incoming PR tomorrow, assuming testing goes well :) |
Ben, I'm confused about how to try this out. Are you going to make a PR to the millxing/quence repo? Thanks, Rob |
@millxing; Yes, I was planning to, but I wanted to get some feedback before that. If you want to try running it from my branch, do # add my fork as an additional remote source
git remote add tildebyte https://github.com/tildebyte/QUENCE.git
# Sync all remote sources. This lets git know what branches are available.
git fetch --all
# Checkout my topic branch locally
git checkout ping-pong
# Don't forget; when you're done, `git checkout` back to whichever branch you were on before so you're not working in the wrong branch ;p |
@tildebyte, just had a short play with your ping-pong branch. Seems like everything is working to me! I do sort of wish there was an indicator/icon for playback mode on the screen, but it's pretty intuitive as is. |
@justmat; Thanks! Yeah, I debated about this, and I'm loathe to change the button layout at all; I love the symmetry and really inspired use of negative space which @millxing originally came up with. I've been toying with the idea of a SUBTLE change to the play_mode button - maybe solid for forward (as-is)/slow, gentle reverse "downward" pulse for reverse/slow, gentle triangle pulse for pingpong - but that's mere ideation at this point :) |
The button pulsing is a great idea! |
I'm digging it! I'm not sure I've got a handle on the logic of this function. It seems like when I'm in PP mode and moving to the right, if I hit the reverse led then it switches to reverse mode. If in PP mode and moving to the left, if I hit the reverse led then it switches to forward mode. Is that correct? I guess I was expecting that if it was in PP mode and I hit the reverse button, then it would move to forward mode (w/o PP), regardless which direction it ws currently moving. There's probably a reason you did it the way you did that I'm not seeing. I do think some way of identifying PP mode is needed and I love the idea of a pulsing LED when in PP mode. |
Nice! I’m glad you like it! First: “reverse” button should really be “play_mode” now. So, yeah, it’s a 0-1-2 cycle thing:
I think the switch from reverse play direction to forward play direction when pressing “play_mode” from reverse mode is an artifact of my, er, design “process” (i.e. throw code until something works 😁). I think you’re right; intuitively and symmetrically, the reverse->ping-pong transition should complete its current play in its current (reverse) direction. Also, already pondering pulsing LEDs :) |
@millxing, @justmat; OK, just now the UX counterexample popped into my head... As a user, if I'm playing a sequence in reverse and I press the play_mode button, I have no immediate indication that ping-pong mode has engaged IF I have to wait until the sequence finishes it's current play. Now I'm not sure what to do :( |
Wouldn't the solid/reverse ramp/pulsing LED clarify what mode the user is in? |
That was my reaction also |
LOL! Foiled by my own logic ;p |
@millxing, @justmat; Not super-happy with this, but it works and works well. I had high ambitions but in the end all of the grid light hijinks I tried ended up not working or not working very well. PTAL if y'all don't mind. N.B.:
Questions for y'all:
|
I'll take a look this morning. |
So, everything seems to be working well. One nit/gripe is that I'm finding it hard to distinguish between playback modes. Maybe we could clean up the screen drawing a bit, then just add playback mode indication to the screen? |
Not at all a bad idea, but requires enough screen real state to give indications for all 4 tracks... Of course, this could minimally be something like "→→←↔" (not sure about norns' character set). |
We would need to draw the icons, or use one of the graphics libraries available. Or we could just use letters like F, R, and P. There are definitely ways we could regain some screen real estate, for instance we could switch to |
Sorry guys, but I haven't had a chance to take a look at the new changes. Work has been nutty. Will try to do it tonight. Hope you guys are safe and healthy. |
@millxing we are doing well here. Just living that at home life. :) @tildebyte, No symbols, as far as I am aware. I was thinking, if we decide to put bpm and tonic on the same line, It might read a little clearer if we use a brighter text for descriptors. It would look something like global bpm : 60. Maybe set the descriptors 2 levels above the values? |
@justmat; Oh, nice idea. +1 on that. Yeah, the fonts are pretty basic, so the best we could hope for would be like |
@justmat; Like so? ;p s_export_png("/home/we/screenshot.png")
lua:
stdin:1: attempt to call a nil value (global 's_export_png')
stack traceback:
stdin:1: in main chunk |
The screenshot command changed! I spent way too long tracking down the new command just before posting my screenshot lol. It's https://llllllll.co/t/norns-help/14016/2242 The brighter descriptors look much better to me! It may be annoying to write, but maybe the delimiters in the play mode line should be brighter as well? Also re: play mode led, I think my vote is for a more simple play mode light. Maybe just pulsing with the bpm? With the play mode displayed on screen, it just doesn't need to be complex anymore. |
I feel like if I'm not using it to indicate play mode, I'd rather the play light be static, like it is now... |
That works, and falls in line with the current UI design. lgtm edit: oh! almost forgot, Tom Thumb font is |
Just tried it out and it looks good to me! Nice work. Alexandernaut would be proud. BTW, I follow him on Twitter and apparently he's been working on a new secret project for 3 years. Very curious to see what he's coming out with next. Fugue machine is a great app. |
Nice! I’m glad you like it :) |
LGTM! I love the way you handled the redraw function. |
I just noticed a bug in ping-pong mode. I'm not sure how it happened or how to replicate it. https://share.icloud.com/photos/0gbfOBEWjtBCkLgU0MNubOi3w The video shows that the playhead is moving in reverse, but the screen shows all playheads moving forward. |
In this state, if I hit the direction button (R6,C16), it changes the direction to forward, but now the screen indicates that it's moving in reverse. |
Rats. OK, I'll take a look as soon as I can. @millxing; Thanks for the report! |
Third of some ideas to give us a UX a little more like FM.
UX thought: Use the "reverse" button - first tap reverses, second ping-pongs, third goes back to forward.
The text was updated successfully, but these errors were encountered: