OK - I mean something like this
tonic: C
scale: major [0, 2, 4, 5, 7, 9, 11, 12]
1xx.. 2.... 3x... 4.... 5.... # chord:C
1||.. 2.... 3.... 4x... 5.... # chord:Csus2
1||.. 2.... 3x... 4.... 5.... # chord:C
1.... 2.x.. 3.... 4xx.. 5.... # chord:F
Each line is a time point. Horizontally, 1,2,3,etc. represent columns.
The # at the end is a comment allowing rest of line to talk about things like 'this is a chord', etc.
Note the vertical bar usage to indicate sustain of note. I've used x's to indicate play, but we could adopt a naming scheme to indicate pressure/bend/etc. (like guitar tab, e.g. b=bend). and/or we could also indicate digit suggestion for play (e.g. a=first finger, b=second finger, etc.) - this of course is didgy due to left/right handedness. I personally prefer expression characters rather than fingering.
One advantage of this is you only need to express the number of columns/rows you need - making the tab physically transposable if you shift the keygroup around the keyboard.
I think having the declarations be lines of Belcanto might be interesting...(impliciltly having the keygroup listening)
: tonic to notec set
: scale to major set
1xx.. 2.... 3x... 4.... 5.... # chord:C
1||.. 2.... 3.... 4x... 5.... # chord:Csus2
1||.. 2.... 3x... 4.... 5.... # chord:C
1.... 2.x.. 3.... 4xx.. 5.... # chord:F
It would open the opportunity for being able to specify differnt key layouts, tunings, etc. without having to define a new grammar