Pull to refresh

Just another guitar files viewer

Reading time2 min
Views745

Пролог


Две недели назад на хабре анонсировали онлайн-проигрыватель 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, но все равно не знаю точного ответа);
  • ну на патчи я и не рассчитываю, конечно :)
Tags:
Hubs:
+4
Comments12

Articles

Change theme settings