RiugaBachi / necrophagy

A type-level, statically-verified Haskell embedded domain specific language (EDSL) for writing guitar tablature.
BSD 3-Clause "New" or "Revised" License
24 stars 0 forks source link

Implement GP5 backend #3

Open RiugaBachi opened 4 years ago

RiugaBachi commented 4 years ago

GuitarPro 5 is currently the de facto binary file format for guitar tablature distribution. It is the only format guaranteed to work across all major tablature hosting websites. That said, the company behind it has never released an official spec, however there are plenty of GP5 parser implementations in other languages one could easily base this off of.

Ideally I would like to use a bidrectional binary parser for this, however I have not decided on which library I'd like to hedge my bets on. I could possibly update my old library describe for this, but nothing's guaranteed yet.

Additionally, we should discuss whether it would be worthwhile to add a GP5 -> Haskell source converter. It would most definitely not be trivial going in this reverse direction, however it is essential for editing tabs made by other users in order to submit revisions.