It is currently Sun Apr 28, 2024 2:50 am




Post new topic Reply to topic  [ 20 posts ]  Go to page 1, 2  Next
 Staff Tab notation with GNU Lilypond 
Author Message
User avatar

Joined: Sat Aug 20, 2011 2:06 am
Posts: 11
Location: Shanghai
Post Staff Tab notation with GNU Lilypond
Hi *,

inspired by Eric's idea to write a Lilypond engraver for StaffTab output (see here), I decided to implement this. Eric's repository has been on github for a while without any recent changes, and I planned to learn Scheme anyway.

Here's my repository:
https://github.com/rekado/Lilystick

The engraver is functional already, although the output still needs a fair amount of tweaking. I'm just announcing it here because I hope fellow coders can take a look at the code and supply patches. Release early, release often.

Here's what's working:
- basic string markers
- note head substitution based on fingering
- fret calculation based on pitch and configured tuning

Here are a number of things that are still missing or broken:
- string markers should be arranged in chord shape
- fret numbers for chords should not be stacked but combined with dots
- easily tweakable settings (like Stick tuning, colours, etc.)
- the note heads are not polished yet

If you are interested, feel free to play with the code and submit patches. The code is GPL'd.

You can submit bug reports via the github issues interface.

_________________
About myself: http://elephly.net


Sat Aug 20, 2011 2:24 am
Profile
Multiple Donor
Multiple Donor
User avatar

Joined: Fri Dec 21, 2007 8:02 pm
Posts: 1851
Location: Monona, WI, USA
Post Re: Staff Tab notation with GNU Lilypond
I'm getting the code together that I have so far. This is my hugely busy time just before the start of a school year. It's on the list and I'll get to it soon. I promise!

-Eric

_________________
Rosewood SG12 #5966, Mirrored 4ths
Twitter: @ejknapp
http://ericjknapp.com


Sat Aug 20, 2011 9:13 am
Profile My Photo Gallery
User avatar

Joined: Sat Aug 20, 2011 2:06 am
Posts: 11
Location: Shanghai
Post Re: Staff Tab notation with GNU Lilypond
EricTheGray wrote:
I'm getting the code together that I have so far. This is my hugely busy time just before the start of a school year. It's on the list and I'll get to it soon. I promise!

-Eric


That'd be great. I'd love to see how our approach differs. Would be good if we could merge the code in the long run. Next thing I intend to do is to carve out the tunings to a separate file and make custom tuning definitions possible.

There is no need to hurry, though. I'm actually really busy, too, and should not be playing around with code. (It's just so much fun!)

_________________
About myself: http://elephly.net


Sat Aug 20, 2011 9:24 am
Profile
Multiple Donor
Multiple Donor
User avatar

Joined: Fri Dec 21, 2007 8:02 pm
Posts: 1851
Location: Monona, WI, USA
Post Re: Staff Tab notation with GNU Lilypond
rekado wrote:
Next thing I intend to do is to carve out the tunings to a separate file and make custom tuning definitions possible.

I was working on this. It should be possible to define a tuning and have the engraver determine the string and finger symbols and the fret numbers automatically. It would not be accurate always, and we would have a way to override and set everything manually. The surprise is how often it would be correct.

rekado wrote:
There is no need to hurry, though. I'm actually really busy, too, and should not be playing around with code. (It's just so much fun!)

I hear ya. Since I'm using this project to learn Scheme, I will get back to it. Just not this week. I'm at a conference and when I get back to my computer I'll start making a bundle of code for you.

-Eric

_________________
Rosewood SG12 #5966, Mirrored 4ths
Twitter: @ejknapp
http://ericjknapp.com


Sat Aug 20, 2011 10:28 am
Profile My Photo Gallery
User avatar

Joined: Sat Aug 20, 2011 2:06 am
Posts: 11
Location: Shanghai
Post Re: Staff Tab notation with GNU Lilypond
EricTheGray wrote:
It should be possible to define a tuning and have the engraver determine the string and finger symbols and the fret numbers automatically. It would not be accurate always, and we would have a way to override and set everything manually. The surprise is how often it would be correct.


My code currently has one tuning defined (the default 12 string tuning) and the fret numbers are calculated based on the given string number. That is always accurate (if the tuning is correct). If no string number is provided, the previous string number is used. This simplifies the score quite a bit, as only string and fingering changes have to recorded.

But I don't see how one could let the engraver guess the finger symbol just from a pitch. This seems to me too much like magic (and I don't think I would like Lilypond to guess the fingering for me).
Guessing the strings is possible but I don't see the value in it. When one writes scores with Lilypond for a Stick arrangement, one would certainly know the preferred positions and fingering already. Adding lots of code to allow a user to leave away something like "-2\5" ... this doesn't seem worth the effort.

Adding tunings is trivial, but it cannot yet be overridden due to the way I nested the code. When I can find an excuse to work on the code rather than study I will fix this.


EricTheGray wrote:
Since I'm using this project to learn Scheme, I will get back to it. Just not this week. I'm at a conference and when I get back to my computer I'll start making a bundle of code for you.


Great. Once that's ready I'll take some moments to merge your code with mine. There are only so many ways one can implement an engraver, so it shouldn't be too difficult.

_________________
About myself: http://elephly.net


Sat Aug 20, 2011 7:42 pm
Profile
Site Donor
Site Donor
User avatar

Joined: Wed May 25, 2011 3:28 pm
Posts: 4106
Post Re: Staff Tab notation with GNU Lilypond
Rekado / Eric,

Hey guys, what are the chances of getting involved with this. I was getting ready to take the plunge with performer but would love to hear your thoughts on lilypond and developing for lilypond.

Fascinating to read about! Hope you are both well, take care!

Gene

_________________
Gene Perry
http://www.geneperry.com
http://www.freehandsacademy.com


Sun Dec 01, 2013 7:27 am
Profile My Photo Gallery
Multiple Donor
Multiple Donor
User avatar

Joined: Fri Dec 21, 2007 8:02 pm
Posts: 1851
Location: Monona, WI, USA
Post Re: Staff Tab notation with GNU Lilypond
earthgene wrote:
Rekado / Eric,

Hey guys, what are the chances of getting involved with this. I was getting ready to take the plunge with performer but would love to hear your thoughts on lilypond and developing for lilypond.

Fascinating to read about! Hope you are both well, take care!

Gene

Hi, Gene.

I love Lilypond, it is the best notation software for accurate layout and quality of the finale scores. There is a learning curve and the people who can learn it the quickest are programmers. Lilypond is essentially a compiler. It takes text files with a custom LaTeX syntax and creates a postscript file. That postscript file is then converted to a PDF document. The program is written in C++ and you can customize it with that language. However, Lilypond includes a Scheme interpreter and the more common way to customize it with with Scheme scripts. That's what LilyStick is, a custom engraver written in Scheme. Once you know the Lilypond syntax and the way it works, adding LilyStick is straightforward.

Lilypond is not only the best software for music notation, it is also an open-source project and is therefore free. There is a very active community of developers and users. I'd be very happy to help you learn and use it in any way I can. Let me know if you have questions.

-Eric

_________________
Rosewood SG12 #5966, Mirrored 4ths
Twitter: @ejknapp
http://ericjknapp.com


Sun Dec 01, 2013 2:26 pm
Profile My Photo Gallery
Multiple Donor
Multiple Donor
User avatar

Joined: Thu Nov 21, 2013 5:53 am
Posts: 768
Location: Dayton, Ohio
Post Re: Staff Tab notation with GNU Lilypond
Has anyone looked at MuseScore for notating StickTab? It is also an open source project but works more like a Finale/Sibelious than code.

Randy

_________________
Randy Brown

Rosewood Alto #5764


Sun Dec 01, 2013 2:43 pm
Profile
Multiple Donor
Multiple Donor
User avatar

Joined: Fri Dec 21, 2007 8:02 pm
Posts: 1851
Location: Monona, WI, USA
Post Re: Staff Tab notation with GNU Lilypond
carvingcode wrote:
Has anyone looked at MuseScore for notating StickTab? It is also an open source project but works more like a Finale/Sibelious than code.

Randy

If you can add a font to MuseScore then you should be able to notate StaffTab with it.

-Eric

_________________
Rosewood SG12 #5966, Mirrored 4ths
Twitter: @ejknapp
http://ericjknapp.com


Sun Dec 01, 2013 3:11 pm
Profile My Photo Gallery
User avatar

Joined: Sat Aug 20, 2011 2:06 am
Posts: 11
Location: Shanghai
Post Re: Staff Tab notation with GNU Lilypond
earthgene wrote:
Rekado / Eric,

Hey guys, what are the chances of getting involved with this. I was getting ready to take the plunge with performer but would love to hear your thoughts on lilypond and developing for lilypond.

Fascinating to read about! Hope you are both well, take care!

Gene


If there's demand I could improve the LilyStick code some more and try to get it merged into mainline lilypond. It would be possible to do that now (I've done it in a local branch before), but there are a few features missing that I'd like to implement before it's merged. I haven't worked on LilyStick in a while because it works well enough for me and it didn't seem like there were enough people interested in it to justify spending more time on polishing it.

If you are interested in hacking on LilyStick and you need an introduction to the code, just let me know.

_________________
About myself: http://elephly.net


Mon Dec 02, 2013 5:10 am
Profile
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 20 posts ]  Go to page 1, 2  Next


Who is online

Users browsing this forum: No registered users and 133 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  

board3 Portal - based on phpBB3 Portal Powered by phpBB © phpBB Group. Designed by Vjacheslav Trushkin for Free Forums/DivisionCore.
Heavily modified by Stickist.com. Stickist.com is an authorized Chapman Stick® site. The Chapman Stick® and NS/Stick™ and their marks are federally registered trademarks exclusively licensed to Stick Enterprises, Inc., and are used on Stickist.com and NSstickist.com with SEI's permission.
Click here for more information.