Пролог
Две недели назад на хабре анонсировали онлайн-проигрыватель GuitarPro-табов.
К этому времени моя реализация с возможностью загружать свои табы и открытыми исходниками была почти готова к тому, чтобы ее было не очень стыдно показывать.
Функциональность
Guitar files viewer позволяет загружать любые табы в форматах Guitar Pro версий 1, 2 и 4 (поддержка других появится в ближайшее время).
Есть возможность просматривать каждый трек по отдельности.
Реализована отрисовка:
- пауз
- названий секций
- названий аккордов
- слайдов
Вот как все это выглядит:

Реализация
Вообще-то я все это писал не ради стартапа, а просто чтобы подучить новые технологии.
Поэтому я старался использовать открытые технологии по максимуму:
- Исходный код верстки и бекэнда доступен в виде git-репрозитория.
- В процессе написания парсера gp*-файлов я пользовался исходниками tuxguitar и dguitar, так что весь код открыт под GPL-лицензией (хотя ни одна строчка кода не была скопирована, поскольку dguitar и tuxguitar написаны на java, а мой бекэнд — на perl).
- Отрисовка табулатур реализована как результат XSLT-преобразования из внутреннего xml-представления распарсенного файла в SVG. На стороне клиента, между прочим.
Из последнего пункта есть одно важное следствие: сайт не работает в IE. Ну и фиг с ним, если честно.
Кроме того, MIDI с javascript'ом не интегрирован, поэтому звука пока нет и не планируется.
Только для разработчиков
Некоторые смешанные впечатления о процессе.
- git очень удобен, хотя имеет большой порог вхождения;
- svg тоже крут, по крайней мере для статических векторных картинок, но все реализации сыроваты, и он загнется, если его не поддержит MS;
- и наконец, писать на XSLT подобные вещи — сплошное удовольствие, хотя… динамическую ширину тактов, например, я до сих пор не придумал, как посчитать.
Больше всего обидно за SVG: я не нашел на нем ни одного приличного приложения во всем вебе. Да и там, где он кое-как используется, обычно предлагается поставить Adobe SVG Viewer, поддержку которого Adobe собирается прекратить c 1 января, потому что у них теперь есть Flash.
Помогите!
Очень приветствуются:
- предложения о том, как назвать проект;
- отзывы о том, что самое важное (в gp-www/private/TODO можно почитать очень примерный roadmap на будущее);
- советы по написанию лицензионного соглашения;
- мнения, насколько это вообще законно — реверс-инжиниринг закрытых форматов (дадада, я в курсе про dguitar, но все равно не знаю точного ответа);
- ну на патчи я и не рассчитываю, конечно :)