xrrhythmsuk / xruk-player

A pattern-based drumming machine based on TypeScript, beatbox.js, Vue.js and Bootstrap.
https://player.xrrhythms.uk
GNU Affero General Public License v3.0
1 stars 0 forks source link

Provide easy access to mnemonics #84

Closed timrog closed 9 months ago

timrog commented 10 months ago

Adds a mnemonics toggle button to the pattern viewer.

Only a few mnemonics provided so far (just for Funk)

Fixes xrrhythmsuk/xruk-player#82

github-actions[bot] commented 10 months ago

:eyes: A preview has been generated. Click here to view.

BirchBirchBirch commented 10 months ago

See how that lot goes in!

I haven't seen the preview yet and I don't trust my code reading abilities at this hour to check (let alone try to implement), but I think it would be a good idea if there's ghost/shadow notes (".") in a pattern and not enough syllables in the mnemonic, to see if filling it with spaces/dots for the ghost notes would work.

Basically as a snare player I do the mnemonics for the accents over the top of a single roll so I think that would be good to support that. Maybe extend to things like hand mutes ("0") on surdos in case people want that?

timrog commented 10 months ago

I haven't seen the preview yet and I don't trust my code reading abilities at this hour to check (let alone try to implement), but I think it would be a good idea if there's ghost/shadow notes (".") in a pattern and not enough syllables in the mnemonic, to see if filling it with spaces/dots for the ghost notes would work.

@BirchBirchBirch I thought about that but I think in some instances you'd want mnemonics for the ghost notes, and others not, so it would be hard to automate. I think the best way to achieve it is to include the ghost notes in the mnemonic e.g.

Sa- . . tur- . . day . . . Sun- . . day . .

Other things i'd like to consider in future are

BirchBirchBirch commented 10 months ago

The future features sound good. One of the things we didn't get round to at camp was recording audio for the shouts, which shouldn't take very long at the next big meeting (getting people to slowly go "Ex tin ction re be llion hey act now ah woo"), but for now always showing the mnemonic there sounds sensible.

And that was why I suggested having it fill in ghost notes only if it didn't think there were enough syllables: so if you had the pattern 'X..X..X.X..X..X.X..X..X.X...X..." and entered mnemonic ["Hedge", "hog", "a", "hedge", "hog", "a", "hedge", "hog", "a", "small", "guy"], instead of rejecting it straight away you could check that the number of non-ghost hits in the pattern matches the mnemonic length and if so fill it using the pattern as a mask to ["Hedge", ".", ".", "hog", ".", ".", "a", ".", "hedge", ".", ".", "hog", ".", ".", "a", ".", "hedge", ".", ".", "hog", ".", ".", "a", ".", "small", ".", ".", ".", "guy", ".", ".", "."]. But then if you already had enough syllables (like the mnemonic we've got for Samba Reggae 1) it would still get through. Personally I find putting in all the ghost notes pretty fiddly and easy to mistype/miscount, so I'd certainly appreciate it and I imagine other people would too.

A thought during my mnemonics marathon was that it could be helpful to be able to go e.g. "@ls" in the mnemonic section in places where the hits are different but the mnemonic is the same. (Apologies if that's already in there!)

BirchBirchBirch commented 10 months ago

Perhaps related to this point, from the typos I'm picking up it looks like if you did enter

Sa- . . tur- . . day . . . Sun- . . day . .

it would read each hyphen as a separate note as though you'd typed e.g.

Sa x . . tur x . . day . . . Sun x . . day . .

and chop off the end.

BirchBirchBirch commented 10 months ago

It might also be good to loop mnemonics for when tunes have different length parts. For instance, in Afoxé the surdos and repi are two bars but everything else is one so it would save copying them twice

BirchBirchBirch commented 10 months ago
Screenshot 2023-12-12 at 15 53 28

Things like this (which I appreciate can be neatened up, but still, there's quite a few) make me more convinced that the mnemonics view should still include the notes (or at the very least have that as an option). That would also deal with parts that don't have a mnemonic just disappearing. (In the meantime I'd suggest making them show up with their notes in the absence of a mnemonic.)

BirchBirchBirch commented 10 months ago

In light of all that micro-nitpicking it'd feel wrong not to say that this already looks like such a great, helpful feature that bands are going to love as well!

timrog commented 10 months ago

Hi @BirchBirchBirch

Thanks very much for adding all the mnemonics. I haven't had a chance to look through them all, but I'll check them at some point before merging.

I think we should probably communicate a good way for people to suggest better mnemonics and encourage group ownership. Not to belittle the amount of work you've put in to them, but some of them sound more natural than others.

I created a mockup of a grid with both notes and mnemonics. I honestly think it's too cluttered and overloading (try and imagine this on a phone screen). That's not to say with enough work it couldn't be made to look better, but I think it's important to remember this isn't a static PDF - it's interactive. You can switch back and forth easily, but I think we should try hard to make each individual view as clear as possible. So if it's ok, i'd like to live with this for a bit and see how it feels a few weeks and what the feedback is.

image

Regarding the ghost notes, I can probably create a helper function to ignore certain parts so maybe you could write something like

sn: ignore(".", "Sat-ur-day Sun-day")

thus telling it explicitly what you're ignoring. I'd much rather do that than have obtuse logic baked in that treats certain sounds differently to others.

BirchBirchBirch commented 9 months ago

Good call with group ownership of mnemonics – I was thinking it might even be worth delaying launch until you can edit them for your session and link to people. I thought the ones we've had on the PDFs for over a year would be a good starting point as the community hasn't complained as far as I'm aware (and they're largely based on existing common ones). Much as I dread yet more notifications, perhaps having a Telegram group to discuss and propose changes to the default mnemonics would work, since previous discussions have overwhelmed people. And then maybe a Google Form or something for yes/no votes on the end proposal?

Good point with keeping the notes and mnemonics separate and seeing what people say.

And fair enough with going with a helper function if that'll be clearer!