Вызов
Для данной гитарной табулатуры вы должны вывести песню, представленную на вкладке. Это могут быть динамики вашего компьютера или аудиофайл (.wav, .mp3, .midi, .aiff и т. Д.). Там также будет второй вход для синхронизации.
Вкладки могут быть введены через файл или прямо в STDIN. Вкладка будет в форме ASCII .
спекуляция
Все вкладки предназначены для 6 шестиструнных гитар со стандартной настройкой E: E2 (82,41 Гц), A2 (110,00 Гц), D3 (146,83 Гц), G3 (196,00 Гц), B3 (246,94 Гц), E4 (329,63 Гц).
Единственными приемами (помимо нормального выбора), которые вам нужно обслуживать, являются:
- Изгиб (это всегда будет полутоновый изгиб)
- Стук по
- Стаскивать
- Скольжение вверх / вниз
Поскольку вы не можете синтезировать звук приглушенной струны, рассматривайте x
как -
.
При изгибе выведите полный переход от разогнутого к строковому, чтобы снова отогнуть.
Вторым вводом будет время, которое каждый символ на вкладке представляет в секундах. Например:
Для ввода:
e|---
B|---
G|---
D|---
A|---
E|---
С учетом времени 0.5
, поскольку есть 3
столбцы символов (но нет примечаний), выводимый аудиофайл имеет значение ( 3*0.5=1.5
) 1.5
секунд молчания.
Примеры вкладок
1 - Вес (Джек Уайт, Джимми Пейдж + издание The Edge)
e|----3-----3---3----2---------3--------------------|
B|----3-----3---3----3--1-1----3--------------------|
G|----0-----0---0----2--0-0----0--------------------|
D|----0-----0---2-------2-2----0--------------------|
A|----2-----0---2-------3-3----2--------------------|
E|----3-----2---x----2--x-x----3--------------------|
2 - пахнет духом подростка
e|--------------|---------------|-------------|-------------|
B|--------------|---------------|-------------|-------------|
G|-----8h10-----|-8-8b----6--5--|-6--5--------|-------------|
D|-10--------6--|---------------|-------8-6-8-|-8b----6--5--|
A|--------------|---------------|-------------|-------------|
E|--------------|---------------|-------------|-------------|
3 - звездный баннер
e|---0-------2-5---9-7-5-----------9-7-5-4-2-4-5------|
B|-----2---2-------------2-4-5---5---------------5-2--|
G|-------2-------------------------------------------2|
D|----------------------------------------------------|
A|----------------------------------------------------|
E|----------------------------------------------------|
источник
Ответы:
MATLAB
Это своего рода незаконченный. Я использовал быстрый и грязный метод, чтобы сделать звук максимально простым. Метод, который я использовал, затруднил реализацию изгибания / удара (я также никогда раньше не слышал этих слов в этом контексте).
Сказав все это, этот скрипт будет читать текстовый файл с именем «input.txt», содержащий вкладку ascii, и проигрывать песню.
Вот ссылка на звук первого тестового входа.
Вот ссылка на звук третьего тестового входа. (Звездный баннер или мороженое?)
Второй тестовый ввод звучал для меня довольно плохо, но это может быть потому, что он использует много
b
s иh
s, которые скрипт игнорирует.Как вы можете слышать, качество печати не совсем такое же, как у оригинала. Звучит так, будто на заднем плане играет метроном. Я думаю, что эти мелодии имеют характер.
источник
Python 3
Я должен был попробовать это.
Это преобразует вкладку в MIDI-файл, который воспроизводится на пианино. Я понятия не имею, как сделать изгиб струны на пианино, так что он не может этого сделать, но ударные и отрывные довольно просты.
Я сгенерировал тестовые файлы примерно так:
$ python3 tab.py The-weight.txt 0.14
где0.14
длина одной заметки в секундах.Код также есть на github, https://github.com/Mattias1/ascii-tab , куда я также загрузил результаты примеров, предоставленных OP. Я также попробовал это на некоторых из моих собственных вкладок. Довольно странно слышать, как пианино играет на нем, но это неплохо.
Примеры:
Я добавил несколько прямых ссылок, но не уверен, как долго они остаются, поэтому я сохраню старые ссылки для скачивания.
И вкладка из мелодии Мэтти (моя любимая) ниже:
источник
2/3
из этих «ударов» на самом деле тире.Java Script
Примечание: использует аудио комплект для веб-разработки; Это выход из Лиги IE; Проверено в Google Chrome
Вы можете поместить вкладки в текстовой области. То есть вы можете поместить мелодию Мэтти из поста Мэтти в текстовой области (с буквами над примечаниями), и она все равно будет правильно анализироваться.
Нажмите, чтобы запустить программу
JavaScript:
Можете ли вы определить эту песню?
источник
| / b h p
. Почему бы просто не выполнить небольшой разбор строк, чтобы заменить их-
? Это будет звучать вполне нормально, и это работает. (И, возможно, разделить на новые строки, используя одно поле ввода.). Это сделает этот забавный скрипт для игры.Джава
Эта программа преобразует табуляцию в 16-битный формат WAV.
Во-первых, я написал целую кучу кода разбора табулатуры. Я не уверен, что мой разбор полностью правильный, но я думаю, что все в порядке. Кроме того, он может использовать больше проверки данных.
После этого я сделал код для генерации аудио. Каждая строка генерируется отдельно. Программа отслеживает текущую частоту, амплитуду и фазу. Затем он генерирует 10 обертонов для частоты с придуманными относительными амплитудами и складывает их. Наконец, строки объединяются, и результат нормализуется. Результат сохраняется как WAV-аудио, который я выбрал для его очень простого формата (библиотеки не используются).
Он «поддерживает» hammering (
h
) и pulling (p
), игнорируя их, поскольку у меня действительно не было времени, чтобы заставить их звучать слишком по-разному. Результат звучит немного как гитара, хотя (провел несколько часов, анализируя мою гитару в Audacity).Кроме того, он поддерживает изгиб (
b
), освобождение (r
) и скольжения (/
и\
, взаимозаменяемы).x
реализован как приглушение строки.Вы можете попробовать настроить константы в начале кода. Особенно снижение
silenceRate
часто приводит к улучшению качества.Пример результатов
Код
Я хочу предупредить любого новичка в Java: не пытайтесь чему-то научиться из этого кода, он ужасно написан. Кроме того, он был написан быстро и за 2 сеанса, и его не предполагалось использовать снова, поэтому он не имеет комментариев. (Могу добавить немного позже: P)
источник