Представляем tabr: гитарные вкладки с R

  1. Монтаж
  2. Основной пример
  3. Создание музыкальной фразы
  4. Оценка метаданных и доступ к LilyPond
  5. Код R
  6. Состояние разработки, контекст и предостережения

Этот пост представляет новый пакет R, над которым я работаю, называется   Табр   для создания гитарной табулатуры («табуляции») из кода R

Этот пост представляет новый пакет R, над которым я работаю, называется Табр для создания гитарной табулатуры («табуляции») из кода R. Пакет tabr обеспечивает программную нотную запись и обертку вокруг заверешен для создания качественной гитарной табулатуры.

[ Нажмите здесь для оригинального сообщения ] (в процессе переключения, откуда я отправляю сообщения в R-Bloggers)

tabr предлагает функции для описания и организации музыкальных структур и оболочек вокруг бэкэнда LilyPond. LilyPond - это программа гравировки музыки с открытым исходным кодом для создания высококачественных нот на основе синтаксиса разметки. tabr генерирует файлы в соответствии с синтаксисом разметки LilyPond для последующей обработки LilyPond в ноты.

Может быть создан автономный файл LilyPond (.ly) или пакет может сделать системный вызов LilyPond напрямую, чтобы отобразить вывод табулатуры гитары (pdf или png). В то время как LilyPond обслуживает ноты в целом, tabr стремится использовать их специально для создания качественной гитарной табулатуры.

В то время как музыка может быть довольно сложной, и полный счет будет намного длиннее, что-то такое простое, как следующий фрагмент кода, создает нотную запись в сопроводительном изображении.

p ("r a2 cfdaf c4", "4 8 * 6 1")%>% track%>% score%>% tab ("out.pdf")

pdf)

Монтаж

Вы можете установить tabr из GitHub с помощью:

# install.packages ('devtools') devtools :: install_github ("leonawicz / tabr")

Основной пример

В качестве краткого примера воссоздайте табуляцию, показанную в логотипе tabr, которая почти совпадает с первой мерой в приведенном выше примере кода. Он немного больше в форме метаданных и не требует столько быстрых клавиш, но он все еще короткий. Вот шаги.

  • Определите музыкальную фразу с помощью фразы или сокращенного псевдонима p.
  • Добавьте фразу в трек.
  • Добавить трек в счет.
  • Представьте счет в PDF с вкладкой.

Создание музыкальной фразы

Фраза здесь не требует строгого определения. Думайте об этом как о самой маленькой части музыкальной структуры, которую вы намереваетесь связать вместе. Первым аргументом фразы является строка, описывающая ноты определенной высоты (или остатки: «r»), разделенные во времени пробелами. Для аккордов просто удалите пробелы для обозначения одновременных нот. Целые числа добавляются для обозначения номера октавы, чтобы высота звука была уникальной. Например, отдых, сопровождаемый последовательностью нот, может быть задан в виде notes = "r a2 c3 f3 d3 a3 f3".

Второй аргумент - похожая строка, дающая метаданные заметки. В этом примере добавить нечего, кроме продолжительности времени. Целые ноты, занимающие всю меру музыки, даются 1, половинные ноты - 2, четвертные ноты 4, восьмые ноты 8 и так далее. Чтобы указать остаток четвертной ноты, за которым следует последовательность восьмых нот, используйте info = "4 8 8 8 8 8 8". В этом базовом примере не требуется указывать дополнительную информацию о нотах, такую ​​как ноты с точками для разных долей времени, ноты стаккато, галстуки / лозунги, слайды, изгибы, заколки и отрывы и т. Д. Эти спецификации в настоящее время доступны в Табре с различной степенью разработки и описаны в уроках виньетки.

Третий аргумент, string, является необязательным, но обычно важен для табулатуры гитары. В аналогичном формате он определяет струны гитары, на которой играются ноты. Предоставление этой информации исправляет комбинации ладов и струн, так что LilyPond не нужно угадывать, какую позицию на шее гитары играть конкретной нотой. Неспособность указать это в различном программном обеспечении для обозначения табулатур (или лень со стороны пользователя) является распространенной причиной неточных вкладок, рыскающих по интернету, где, даже когда примечания правильные, они пишутся на вкладке, предполагая, что они воспроизводятся в позициях, в которых никто разумно использовать. Обратите внимание, что показанный ниже символ х - это просто заполнитель, указывающий, что нет необходимости указывать строку для остатка четвертной ноты.

Оценка метаданных и доступ к LilyPond

Наконец, укажите метаданные песни для воспроизведения оригинального состава: тональность ре минора, общее время и темп. Если LilyPond установлен в вашей системе (и добавлен в системную переменную PATH в системах Windows), tab должен вызвать его успешно. Кроме того, в Windows его можно добавить явно, вызвав tabr_options. Эта опция для указания пути LilyPond по-прежнему доступна в других системах. Пример этого закомментирован ниже.

Код R

library (tabr) # path #> #### Гравировка партитуры на фразу .pdf #### #> GNU LilyPond 2.18.2 #> Обработка `./phrase.ly '#> Parsing ... #> Интерпретация музыки. .. #> Предварительная обработка графических объектов ... #> Интерпретация музыки ... #> Вывод MIDI в `./phrase.mid '... #> Поиск идеального количества страниц ... #> Подгонка музыки на 1 странице ... #> Системы рисования ... #> Макет вывода в `./phrase.ps '... #> Преобразование в` ./phrase.pdf' ... #> Успешно: компиляция успешно завершена
Смотрите результат в формате pdf на веб-сайт табр ,

Состояние разработки, контекст и предостережения


Во-первых, почему LilyPond? LilyPond - это уникальная программа для гравировки нот. Он производит профессиональную, высококачественную продукцию. Это с открытым исходным кодом. Он предлагает точку доступа для программного подхода к нотной записи. Он разработан и используется большим сообществом. Большинство приложений на основе графического интерфейса пользователя WYSIWYG и накладывают более жесткие ограничения на то, что вы можете делать и как это будет выглядеть после того, как вы это сделаете. С другой стороны, я не заинтересован в написании файлов LilyPond. tabr сделал его более приятным, немного менее уродливым и позволяет мне придерживаться LilyPond за его качество, поскольку я пытаюсь оградить себя от его исходных структур ввода. Я уверен, что есть гораздо больше пользователей LilyPond, которые не возражают против этого и никогда не слышали о R; каждому свое.
Пакет tabr находится на ранней стадии разработки. Разрывные изменения могут произойти в более поздней версии. Многие возможности отсутствуют. Другие не полностью реализованы. Приглашаем других в сообществе разработчиков R, которые, вероятно, намного лучше музыкантов, чем я. Это тип пакета, который будет разрабатываться только в ответ на конкретные потребности его участника (-ов). Есть много вещей, которые Табр не рассматривает на данном этапе разработки. Например, tabr предполагает стандартную настройку гитары. Он не способен распознавать или обрабатывать нестандартные настройки или инструменты, такие как бас, с другим количеством струн. По сути, в LilyPond доступно множество других аспектов музыкальной нотации, которые tabr не охватывает. Цель не в том, чтобы сделать все это, а в том, чтобы сделать гораздо больше, чем сейчас.
Я не эксперт в теории музыки, ни в нотной записи и транскрипции, ни в LilyPond. На самом деле, мои умения в музыкальной нотации достаточно ироничны, поэтому я не нахожу более сложной задачей или препятствием для описания песни в коде R, а не просто для того, чтобы выложить ее вручную. Однако основная цель Tabr - просто создавать файлы разметки, которые LilyPond принимает и понимает, без необходимости писать эту разметку напрямую.
Наконец, существуют ограничения для самого LilyPond. Это было разработано для ноты вообще, и особенности табулатуры гитары были добавлены как относительная запоздалая мысль. Есть множество функций, которые я еще не разработал. Есть и другие функции, такие как сгибание струн, которые технически доступны, но еще не полностью разработаны на стороне LilyPond. Например, гравировальный станок LilyPond все еще находится в разработке; указание чего-то такого же общего, как отгиб-релиз-отрыв, мягко говоря, сложно. R-bloggers.com предложения ежедневные обновления по электронной почте около р новости и учебные пособия на такие темы, как: Наука о данных , Большие данные, R рабочих мест визуализация ( ggplot2 , присущи рефлективный, вербальный , карты , анимация ), программирование ( RStudio , Sweave , Латекс , SQL , Затмение , мерзавец , Hadoop , Web Scraping ) статистика ( регрессия , PCA , Временные ряды , торговый ) и многое другое ... Если вы зашли так далеко, почему бы не подписаться на обновления с сайта? Выберите свой вкус: Эл. почта , щебет , RSS , или же facebook ...