Show more

old people whose eyes are burning for some Mandatory Sleeping

My Snark tuner's clip broke :blobsad: I am more attached to the little thing than I would have thought.

Wonder what the odds of being able to replace just the clip are 🤔

Tenor banjo rhythm works better than I would have thought behind a plunky fretless banjo in "Briggs" dGDF#A tuning (a full fourth below modern "concert" banjo tuning.)

Having picked up my tenor for the first time in a quite a while, I find myself re-infatuated by the logical beauty of an instrument tuned in perfect fifths

SomeBODY once told me your plums were getting lonely
They’re not the only fruit in the fridge
They were looking pretty yum, they were chilly, sweet, rotund
So I ate them even though they’re your breakfast

Hey now
I’m real sorry
That I ate them

Oh man those were the days
RT @andrhia
Nooo ooooone noms like Gaston
All your plums like Gaston
No-one says he’s real sorry they’re gone like Gaston

O the icebox was hiding your breakfast
Cold and so sweet, they were yours
But he ate them so now you have nothing
Can you blame him when you left ‘em there like a dork?

Yeah, my fretless banjo chops are pretty rusty, and I never did much chording out of first position. Also it's wicked humid which is no fun with a real hide head

Show thread

:brain1: Breaking streaming services DRM by cracking the encryption algorithm

:brain3: Breaking streaming services DRM by recording the music to cassette tapes

I'm now in "mad that I spend several hours of a weekend figuring a thing out and it worked but raised a thornier problem" mode, which means I should make myself set this aside for awhile.

The only solution I can think of that would allow a simple {{banjo5thStr}} tag would be to somehow take a part, parse it rhythmically, and construct a whole other part containing only those vertical 16th notes separated by silence based on the non-5th string note durations from the actual part.

Which... seems like it would be brittle

Show thread

...this works, except for the fact that putting a given note into a grouping with two voices breaks beaming from surrounding notes 🤕

Not sure if there's a sane workaround

Show thread

While working on it occurred to me that I might finally be able to come up with a relatively painless solution for expressing 5th string notes in standard notation.

... on a five string banjo, the 5th string is pretty much always played as an open string; in the older "stroke" style and more modern clawhammer and scruggs styles, it often functions as a drone. In the classic fingerstyle era, the fifth string is often cleverly used as a way to facilitate left-hand jumps up or down the neck; you don't have to fret it, so a note on the fifth string gives you a little extra time to move your left hand.

Back when banjo music was published in standard notation, the convention for communicating "play this note on the open 5th string" was to engrave the note+duration as usual, but add an upright stem with a sixteenth note flag.

A few years ago a kind soul on the mailing list showed me how it is possible to achieve this by using multiple voices and overriding the beaming/duration for the 16th note, but as you might imagine it's a bit of a pain in the ass when you've got multiple 5th string notes in a given piece; it's exciting to think I might be able to implement a tag to do most of the dirty work.

Anyway, on to the tip: While thinking about logic for such a tag, I found myself wondering how one would handle a half or whole note on the fifth string; When Lilypond encounters the same note with different durations in two voices, it engraves the two side by side, which makes sense... but not for this highly specific fringe case.

Poking around for solutions, I found that Lilypond has two helpful commands for exactly this situation, '\mergeDifferentlyHeadedOn` and `\mergeDifferentlyDottedOn`.

For the example in the graphic, the Lilypond markup that lets the sixteenth and half notes occupy the same space is:

\fixed c' { \once \mergeDifferentlyHeadedOn \once \mergeDifferentlyDottedOn \once \autoBeamOff g16*8\5 }
\fixed c' { g2\5 }
>> d4 b

... so to automagically generate everything within << >>, I'm imagining a tag like:

{{banjo5thStr dur="2"}}

...with logic to calculate the duration override for that 16th note, and an optional 'pitch' attribute to support the older so-called 'Rice' and 'Briggs' tunings.

... the tradeoff here is that MIDI output from this markup will have that note doubled up; when writing Lilypond "by hand" I've adopted a practice of putting 5th string notes in a separate part with silences between them and then just omitting that part from MIDI, but I'm not about to try to implement support for *that* pattern here. I can live with it.

I should say that I don't think I've ever actually seen a banjo piece with a half or whole note sounded on the fifth string, but I like handling fringe cases when they occur to me.

*slaps roof of stringed instrument* this bad boy can fit so many sounding boards in it

This one's coming together faster than I thought it would, which is encouraging (although working the funky chord changes up on a fretless is going to be a challenge.)

Feel like I might actually finally be finding my musical mojo after a work project from hell consumed all of my mental bandwidth even if I wasn't working long hours

Show thread

@djsundog you're gonna dig the funky-ass middle part, it's like Brubeck got hold of a time machine and went back to 1868

Show thread

progress: I think I've got a handle on the rewrite, and now it's a matter of adding support for various tag attributes, etc, and then mundane build/packaging concerns.

This is what a Nepenthe document looks like now. Explicit `score` and `staff` tags make it a bit more verbose than the first iteration, but having worked on some OG last night I think this is still going to be a more pleasurable way of dealing with wrangling chunks of Lilypond into scores.

All of this work is ongoing on the `dev-typescript` branch of the repository at (Very much an unstable WIP at the moment.)

Show thread

I really do seem to have a talent for finding my way straight to use cases that libraries really weren't intended for; in this case I'm trying to use with custom helpers to implement my own simple/lightweight document format, and that gets me about 90% of the way there, but the way I'm using custom helpers and partials, I'm realizing there no way to access the root context without explicitly passing it to my under-the-hood helpers and/or partials in the source document.

Which makes sense when considering handlebars from the perspective of a developer tool where you're going to dial in your templates and forget about them... but doesn't make sense when trying to provide a simple document format for myself and others.

I think I've got a workaround though.

Show thread

FYI If you need older binaries of #Audacity, including their sources, Fosshub has them

Just remembered this because one time I needed an older version due to a weird glitch with a very long wav file. Happens to come in handy since the new owners of the project turned out to be user hostile

Show thread
Show more

The Hon. Mayor of Banjotown's choices:


The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!