Hi Walt (+ list), Thanks for your thoughts here - this is all really useful.
I’ve put some work in progress here for you and anyone else who has an interest: https://github.com/AlexHarker/psg-tablature The test-pig.ly file should give output. psg-tablature.ly is the hardcore stuff, but the separation should make it easy to see the more end user stuff. The example shows how the same notes would require different frets under different pedal conditions and then shows the same bar position producing different chords as pedals/levers go on and off. I don’t check that the bar is all on the same frets (partly because it’s restrictive and partly due to the complexity) so that is left to the person writing the score. What you can do/is implemented now: - define your own copedent for an arbitrary set of strings and pedals/knee levers - define stopped knee levers or pedals with two positions - typeset the same music on tab and staff without the need for alteration of any kind (for the simple example I have at least) - copedents are type checked and set on the context in which they are being used (so could be multiple per score) - set when pedals/levers go on/off (or into an extended position) - for given specified pitches and pedal/lever sets the tab then reflects the correct frets by altering the tuning of the tab on-the-fly - it will throw warnings and errors about stupid or impossible pedalling commands See osg-copedent to see the syntax for defining a copedent See test.ly <http://test.ly/> to see the syntax for adding pedalling (which apply to the note before as most things in lilypond) What is NOT implemented at the moment (but will be): - currently and importantly I don’t currently display what the pedal settings are anywhere yet, because that’s another problem to what’s there already - are I am likely to display under the stave, but I recognise the next to the note usage which is possibly more complex - I may have no personal use for the above, so not sure if I will implement a suitable engraver for that What is likely on the way - fractional pedalling (the hooks are mostly there) - some way of indicating speed I’ll respond to your (Walt’s) comments also: > Indication of pedal number and knee lever number presses. Usually a pedal > letter or knee lever symbol is attached to the fret number on the string > itself. To follow…. > Re-entrant E9 tuning with the two lower pitch strings on top. I think > lilypond can handle this automatically like it does for banjo but I haven't > tried it. Already works > Some way to make coding of on the fly tuning changes not too cumbersome with > quick pedal presses off and on. Especially when pedals are combined several > times in a single measure. Measures could end up being quite messy to code > and maintain. I have found sometimes what seems like an easy tweak to a > measure can cause unexpected results. I hope that I’ve acheived that so far but comments welcome. > Indication of how quickly to press a pedal - which indicates a quick bend or > slow bend. On the way - here the main issue for me is whether this is a generic “amount” or specified in durations by indicating when the pedal is finished (so there would be a way to start a pedal action and a finish point. The latter seems more flexible/precise, but likely a bit more user specification. > Indication of string "bends" as pedals are pressed. And some times pedal > presses can be combined with bar slides. Plus indication if string is string > again after the bend or slide or just let ring and if other non bent strings > are to continue ringing. > Indication of note slurs on some strings while other strings are "bent" with > pedals. There’s several points here that are worth looking at but these comments are a bit unclear to me at the moment - do you mean bends on the tab or on the stave notation? I’d suspect the restraining can already be dealt with in things already available in lilypond, but it’d be easier to see examples for discussion > Show a pedal/knee lever legend (copedent) somewhere at the bottom of page > since not all pedal steels have the same number of pedals and levers. And > this is assuming player is using a standard pedal configuration. That’s another engraver I guess - not a priority for me, but if presented in the sort of box form I’ve seen probably not too hard. There’s no need for it to be standard in what I’m doing, but again there’s quite a variety out there in terms of how this is done so any pointers to examples welcome. Alex