Pitcher pretty ideas this morning
#PitcherPlant
#NaturePhotography
#WetlandPlants
#wetlandplants #naturephotography #PitcherPlant
It's official: #pitcherplant is now called #nepenthe and a very, very early/rough version is available as a Node package; install with
npm install -g nepenthe
or
yarn global add nepenthe
and 💥 you should be able to run the `nepenthe` command from your terminal.
Parts/Layouts are poorly documented because I've realized that declaring layouts in the YAML front-matter doesn't quite cut it; They really want to be document tags, which means back to the handlebars drawing board. But the example in my last post is pretty representative. #lilypond #npm #nodejs #sheetmusic
#sheetmusic #nodejs #npm #lilypond #nepenthe #PitcherPlant
Ok, this is pretty cool. One document, three different outputs and so far it Just Works. #pitcherplant #lilypond
I've come up with a better name for #pitcherplant, but I'm keeping it under wraps until I actually claim the npm namespace, and I'm not ready to publish a package yet.
Currently working on tablature concerns, and figuring out how best to support the concept of "Given this one input document, I want to generate these multiple output documents"
#pitcherplant progress: I have successfully implemented the concept of 'parts' and 'layout' as separate concerns, with default behaviors for each (In other words, if you just have a chunk of #Lilypond, it will be rendered as a \staff within a \score)
It's about to get tricky as I try to figure out where it makes the most sense to specify certain attributes, and reminding myself not to try and get *too* clever; like, if you're doing stuff with key and time signature changes and multiple parts, it's still going to be on you to handle the key/time changes in each part
Run through #pitcherplant, this becomes standard #lilypond, which can be engraved as usual.
The elevator pitch for this is "lilypond but with shortcuts for all the tedious crap that you wind up googling how to do every single time"
Which, for me, includes:
* where exactly you're supposed to put \transpose
* how to order and/or group stuff in the \score block
* overriding fonts
* multiple score formats (score only/tab only/score+tab)
* etc.
I'll be releasing the source once I get it a little bit further along.
I'm sorry to say that I'm writing this in node.js. In a vacuum it would not be my first choice, but I need to work on my node chops for my day job, so 🤷♂️
Alright, I'm working on my own #Lilypond preprocessor, and it's going to be called #PitcherPlant.
There are a couple of cans of worms in my near-future, but for all of the sorts of metadata that usually goes in a Lilypond \header{} block, I think YAML front-matter works pretty well: