Code Monkey home page Code Monkey logo

Comments (36)

tildebyte avatar tildebyte commented on August 26, 2024 1

@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.

justmat avatar justmat commented on August 26, 2024 1

The button pulsing is a great idea!

from quence.

tildebyte avatar tildebyte commented on August 26, 2024 1

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 😁). 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 :)

from quence.

tildebyte avatar tildebyte commented on August 26, 2024 1

LOL! Foiled by my own logic ;p

from quence.

tildebyte avatar tildebyte commented on August 26, 2024 1

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.

tildebyte avatar tildebyte commented on August 26, 2024 1

Rats. OK, I'll take a look as soon as I can.

@millxing; Thanks for the report!

from quence.

tildebyte avatar tildebyte commented on August 26, 2024

@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.

tildebyte avatar tildebyte commented on August 26, 2024

@millxing; Incoming PR tomorrow, assuming testing goes well :)

from quence.

ben-alkov avatar ben-alkov commented on August 26, 2024

@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.

millxing avatar millxing commented on August 26, 2024

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.

tildebyte avatar tildebyte commented on August 26, 2024

@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.

justmat avatar justmat commented on August 26, 2024

@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.

millxing avatar millxing commented on August 26, 2024

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.

tildebyte avatar tildebyte commented on August 26, 2024

@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.

justmat avatar justmat commented on August 26, 2024

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.

millxing avatar millxing commented on August 26, 2024

Wouldn't the solid/reverse ramp/pulsing LED clarify what mode the user is in?

That was my reaction also

from quence.

tildebyte avatar tildebyte commented on August 26, 2024

@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.:

  1. This is an invasive change which puts grid updates on their own metro.
  2. 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:

  1. Does the grid display seem smooth (try different tempos)?
  2. Does the grid display update rate seem consistent?
  3. Do you think that the play mode button flashing is a good feature?
    1. Can you easily tell the difference between play modes?
    2. Do you think, in particular, that forward play is flashing too fast?

from quence.

justmat avatar justmat commented on August 26, 2024

I'll take a look this morning.

from quence.

justmat avatar justmat commented on August 26, 2024

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.

ben-alkov avatar ben-alkov commented on August 26, 2024

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).

from quence.

justmat avatar justmat commented on August 26, 2024

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.

justmat avatar justmat commented on August 26, 2024

We could also just put BPM and Tonic on the same row, something like this...

test-m

from quence.

millxing avatar millxing commented on August 26, 2024

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.

tildebyte avatar tildebyte commented on August 26, 2024

@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.

justmat avatar justmat commented on August 26, 2024

@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.

tildebyte avatar tildebyte commented on August 26, 2024

@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.

tildebyte avatar tildebyte commented on August 26, 2024

@justmat; Like so? ;p
norns_ss
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.

tildebyte avatar tildebyte commented on August 26, 2024

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.

justmat avatar justmat commented on August 26, 2024

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.

justmat avatar justmat commented on August 26, 2024

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.

tildebyte avatar tildebyte commented on August 26, 2024

@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.

millxing avatar millxing commented on August 26, 2024

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.

tildebyte avatar tildebyte commented on August 26, 2024

Nice! I’m glad you like it :)

from quence.

justmat avatar justmat commented on August 26, 2024

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.

millxing avatar millxing commented on August 26, 2024

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.

millxing avatar millxing commented on August 26, 2024

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)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.