Comments (36)
@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 :)
from quence.
The button pulsing is a great idea!
from quence.
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:
- 0 - forward
- press “play_mode” -> reverse direction
- 1 - reverse
- press “play_mode” -> ping-pong BUT! immediately first switches to forward direction. Yeah, it’s a little weird, and could probably be changed to only switch once it hits the “end” of it’s current play.
- 2 - ping-pong
- press “play_mode” -> back to forward, regardless of current direction
- 0 - forward… etc.
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
Also, already pondering pulsing LEDs :)
from quence.
LOL! Foiled by my own logic ;p
from quence.
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...
from quence.
Rats. OK, I'll take a look as soon as I can.
@millxing; Thanks for the report!
from quence.
@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?
from quence.
@millxing; Incoming PR tomorrow, assuming testing goes well :)
from quence.
@millxing, @justmat; PTAL @0f0bf0c - This works quite nicely, better than I expected; the three-state to change playback modes is actually pretty intuitive.
WDYT?
from quence.
Ben, I'm confused about how to try this out. Are you going to make a PR to the millxing/quence repo? Thanks, Rob
from quence.
@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
from quence.
@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.
from quence.
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.
from quence.
@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 :(
from quence.
I have no immediate indication that ping-pong mode has engaged
Wouldn't the solid/reverse ramp/pulsing LED clarify what mode the user is in?
from quence.
Wouldn't the solid/reverse ramp/pulsing LED clarify what mode the user is in?
That was my reaction also
from quence.
@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.:
- This is an invasive change which puts grid updates on their own metro.
- I feel like the "play head" (i.e. row 1) isn't consistent, i.e. speeding up and slowing down, but I can't tell if it's just me (possibly related to 1 above?).
Questions for y'all:
- Does the grid display seem smooth (try different tempos)?
- Does the grid display update rate seem consistent?
- Do you think that the play mode button flashing is a good feature?
- Can you easily tell the difference between play modes?
- Do you think, in particular, that forward play is flashing too fast?
from quence.
I'll take a look this morning.
from quence.
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?
from quence.
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 "→→←
from quence.
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 screen.font_face(26)
(i think it's 26, i'd need to look to be sure) which is a smaller 6pt font called "tom thumb". With adjustments to spacing and a smaller font there might be enough room for another row.
from quence.
We could also just put BPM and Tonic on the same row, something like this...
from quence.
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.
from quence.
@millxing; NP! IRL comes first :)
@justmat; The norns fonts don't include symbols? poo...
I think putting tonic up there with bpm is OK. I'm going to take a look at the smaller face as well, though, to see what I think.
from quence.
@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?
from quence.
@justmat; Oh, nice idea. +1 on that.
Yeah, the fonts are pretty basic, so the best we could hope for would be like -> | <- | -> | <>
, but I don't know how I feel about that...
from quence.
@justmat; Like so? ;p
Apologies, from my phone; dratted screenshotting isn't working for me:
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
from quence.
BTW, @justmat, @millxing; If y'all don't like the blinky play mode light, just say so - you will not hurt my feelings ;p
from quence.
The screenshot command changed! I spent way too long tracking down the new command just before posting my screenshot lol. It's _norns.screen_export_png("path/stuff.png")
.
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.
from quence.
That works, and falls in line with the current UI design. lgtm
edit: oh! almost forgot, Tom Thumb font is screen.font_face(25)
not (26)
, and if you want to use it, you should set the font_size
to 6.
from quence.
@justmat, @millxing; OK, I just pushed a final commit, and I think I have a finished feature. Try it out and let me know what you think. If you're OK with it, I'll open a PR.
from quence.
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.
from quence.
Nice! I’m glad you like it :)
from quence.
LGTM! I love the way you handled the redraw function. screen_write()
is a clever idea that I wouldn't have thought to do. :)
from quence.
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.
from quence.
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.
from quence.
Related Issues (19)
- [bug] QUENCE now starts unpaused
- MIDI pause results in stuck notes HOT 1
- Pause LED on when starting sequencer HOT 1
- [feat] Save pattern data HOT 1
- [feat] Selectable MIDI channel per-track
- minor midi topics HOT 5
- modulation of parameters HOT 7
- [feat] Selectable MIDI device per-track
- transposition improvement HOT 1
- Crow Just Friends mode bug HOT 1
- [feat] Let's do "fugue machine" #1: sequence reverse - display as such HOT 1
- Resetting a session
- Sync all tracks led
- No led feedback on settings page.
- help guide
- [feat] Let's do "fugue machine" #2: Display all tracks at once
- [feat] Output to crow HOT 3
- [housekeeping] Add license HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from quence.