Программист-испытатель на людях
2,4
рейтинг
12 января 2015 в 19:50

Разработка → Qmpot — программируемый звуковой редактор tutorial



Первым звуковым редактором, который я увидел в своей жизни — был Фонограф (sndrec32.exe) в Windows 98. Недолго я игрался с ним, записывал до 1 минуты звука с микрофона (потом запись прерывалась) и прослушивал полученное. А еще переконвертировал звуки из одного качества в другое.

Вторым звуковым редактором, который я увидел — был Cool Edit Pro 2000 (который теперь называется Adobe Audition). Но когда я порылся в нем достаточно — я был расстроен, эту штуку называют «звуковой редактор», но она только редактирует звук. В ней нельзя написать музыку с нуля. В ее наследнике — Adobe Audition, правда, позже добавили систему дорожек, в которые можно понапихать loop-ов и наделать музыки из них.

Потом я еще увидел Cakewalk Pro Audio (Cakewalk Sonar), Fruity Loops, Sound Forge и т.д.

Но еще с того 1998-2000 года во мне затаилось желание создавать звук и вставлять в него любые ноты в любые места во времени. Причем делать это как в простом режиме («воон туда эту ноту запихай-ка»), так и в более сложном («зажмем этот аккорд, сыграем в этом стиле, потом другой аккорд, сыграем его в другом стиле»).

И год с лишним назад, в декабре 2013 года я начал делать этот редактор.

Причем делать его начал в рамках проекта PaintCAD 4Windows, который давно умеет делать AVI фильмы из нарисованных кадров, но получающиеся AVI — немое кино, без звука. Поэтому паинткаду очень была нужна возможность создавать WAV файлы с нуля или редактировать другие, собирая из них озвучку для AVI. Ну а где создание звуковых файлов — там и написание музыки недалеко.

Чтобы попасть в Qmpot (читается «кумпот») — надо запустить паинткад:



А дальше:
— либо нажать Ctrl+Q;
— либо нажать 0 (ноль) на клавиатуре и выбрать в меню «Экстра»-«Редактор звука Qmpot»:



Открывшийся Qmpot будет пуст.



И хотя:
— в нем можно создать новый звук (через «Создать (Ctrl+N)»),
— можно загружать WAV файлы (через «Открыть (Ctrl+O)»),
— можно лазить курсором (с клавиатуры) по звуку, ускоряя перемещение в 10 раз (если зажать Shift) или в 100 раз (если зажать Ctrl+Shift),
— можно масштабировать звук с помощью Ctrl+Плюс и Ctrl+Минус,
— можно перемещать курсор в конкретное или случайное место по кнопке «Перейти (Ctrl+G)»
— можно пробелом (или по кнопке «Выделить (Пробел)») выделять фрагменты звука,
— можно включить по Ctrl+I информацию об отсчетах под курсором (амплитуда и производная) и под границами выделения (разницы амплитуд и производных, для создания собственных loop-ов)
— можно вырезать, копировать, вставлять, удалять выделенное (Ctrl+X, Ctrl+C, Ctrl+V, Del)
— можно нажать «Команды (Ctrl+K)» и править вручную амплитуды отсчетов, менять границы выделения, изменять длину массива и звука, транспонировать звук
— можно нажать «Эффекты (Ctrl+E)» и применять к выделенному фрагменту звука различные эффекты (от простого изменения громкости до перемещения источника звука в пространстве относительно слушателя),
— можно сохранить отредактированный звук в WAV файл (через «Сохранить (Ctrl+S)»),
это все не главное.

Программирование музыки


Главное начинается если нажать кнопку «Программа (F3)» и тогда откроется поле редактирования QMP программ (скриптов):



Комментарии в этом поле прописываются двойным слэшем в начале. Ими удобно помечать куплеты/припевы и др.части музыки.

Одна из команд уже введена в поле — это X. Поставьте на нее курсор и прочтите под текстовым полем программы «Завершить выполнение» и «X (без параметров)». Для любой команды под курсором здесь отображается ее назначение и синтаксис:



Поставьте курсор между комментарием и командой X. Нажмите кнопку «Команда (Shift+F3)» справа от поля ввода программы. Выберите «N — новый звук», а потом «Монозвук 16 бит». В программе появится строка:

N 11025,16,1,5S

она означает «создать новый пустой звук с частотой дискретизации 11025 Гц, разрядностью звука 16 бит, одним каналом и длиной 5 секунд».

Меню по кнопке «Команда (Shift+F3)» позволяет вставлять любые команды в программу, если лень смотреть помощь, а название команды вы забыли.



Также все команды с примерами и картинками можно посмотреть если в паинткаде или кумпоте нажать F1 и выбрать раздел помощи «Экстра» — «Звуковой редактор Qmpot» — «Список команд».

Добавим после команды N следующую команду:

LT 1,11025,16,1,0.5,0.5

она означает «загрузить треугольную/пилообразную волну в инструмент номер 1 с параметрами частота дискретизации 11025 Гц, разрядность 16 бит, 1 канал, амплитудой 50% от максимальной и заполнением 50%».

«Заполнение» для треугольной волны — это ее «пилообразность». Заполнение 50% (0.5) — это чистый треугольный сигнал (картинка посередине):


Синусоидальный сигнал — звучит очень мягко, треугольный — пожестче, пилообразный — еще жестче, и прямоугольный — самый жесткий. Любой из этих сигналов, а также шумовой сигнал можно загрузить в качестве инструментов: LS — синус, LT — треугольник/пилообразный, LR — прямоугольный, LN — шумовой.

Теперь у нас 2 команды — создан звук и загружена треугольная волна как инструмент номер 1. Добавим первую ноту. Для этого после команды LT вставьте команду:

PL 1,0,10,1S,0

она означает записать инструментом номер 1 ноту в оба канала (0 — оба канала, 1 — левый, 2 — правый, т.к. звук моно — то при 0 все равно только в первый канал будет записан звук), по смещению 10 отсчетов от начала звука, длительностью 1 секунда, и тоном ноты 0 (До 4-й октавы, С4).

Тон ноты — это смещение в полутонах относительно исходного тона инструмента. Вот на этом рисунке сверху фортепианной клавиатуры показаны номера нот:



Т.е. хотите ноту До — поставьте 0, хотите Ре — поставьте 2, хотите Ми — поставьте 3, хотите До на октаву выше — поставьте 12 и т.д.

Нажмите кнопку «Запуск (Shift+F5)» справа от поля ввода программы (или Shift+F5 на клавиатуре). Программа будет запущена и выдаст «результат».



Нажмите внизу на панели «Играть/Пауза (F5)» (или просто F5 на клавиатуре) и прослушайте его (будет 1 секунда с нотой и 4 секунды тишины, т.к. задана пятисекундная длина звука в команде N).

Напишем частушки в миноре. Это аккорды Dm,Am,E,Am. В соответствии с изображением клавиатуры фортепиано вверху и номерами нот на ней:
Dm это три ноты D4,F4,A4, т.е. в номерах нот это 2,5,9.
Am это ноты A3,C4,E4, в номерах это -3,0,4.
E это E3,G#3,B3, в номерах это -8,-4,-1.

Изменим длину звука в команде N на 9 секунд (чтоб влезли частушки). И командами PL набиваем эти аккорды с этими номерами нот, каждую ноту сделаем длиной 0,5 секунды:
— первые три ноты от DM со смещением 0 секунд и 1 секунда (дважды),
— вторые три ноты от Am со смещением 2 секунда и 3 секунды (дважды),
— третьи три ноты от E со смещением 4 секунды и 5 секунд (дважды),
— последние три ноты от Am со смещением 6 секунд и 7 секунд (дважды).

Получаем (скопируйте этот скрипт и вставьте его в поле программы заместо того что там было):

//введите сюда QMP-команды
N 11025,16,1,9S
LT 1,11025,16,1,0.5,0.5
//Dm 2,5,9
PL 1,0,0S,0.5S,2
PL 1,0,0S,0.5S,5
PL 1,0,0S,0.5S,9
PL 1,0,1S,0.5S,2
PL 1,0,1S,0.5S,5
PL 1,0,1S,0.5S,9
//Am -3,0,4
PL 1,0,2S,0.5S,-3
PL 1,0,2S,0.5S,0
PL 1,0,2S,0.5S,4
PL 1,0,3S,0.5S,-3
PL 1,0,3S,0.5S,0
PL 1,0,3S,0.5S,4
//E -8,-4,-1
PL 1,0,4S,0.5S,-8
PL 1,0,4S,0.5S,-4
PL 1,0,4S,0.5S,-1
PL 1,0,5S,0.5S,-8
PL 1,0,5S,0.5S,-4
PL 1,0,5S,0.5S,-1
//Am -3,0,4
PL 1,0,6S,0.5S,-3
PL 1,0,6S,0.5S,0
PL 1,0,6S,0.5S,4
PL 1,0,7S,0.5S,-3
PL 1,0,7S,0.5S,0
PL 1,0,7S,0.5S,4
X

Нажмите кнопку «Запуск (Shift+F5)» справа от поля ввода программы (или Shift+F5 на клавиатуре). А потом F5 для прослушивания.

Можно вызывать не по три ноты сразу, а сначала одну, а потом две других (эти две сдвинем на полсекунды). Получим (скопируйте этот скрипт и вставьте его в поле программы заместо того что там было):

//введите сюда QMP-команды
N 11025,16,1,9S
LT 1,11025,16,1,0.5,0.5
//Dm 2,5,9
PL 1,0,0S,0.5S,2
PL 1,0,0.5S,0.5S,5
PL 1,0,0.5S,0.5S,9
PL 1,0,1S,0.5S,2
PL 1,0,1.5S,0.5S,5
PL 1,0,1.5S,0.5S,9
//Am -3,0,4
PL 1,0,2S,0.5S,-3
PL 1,0,2.5S,0.5S,0
PL 1,0,2.5S,0.5S,4
PL 1,0,3S,0.5S,-3
PL 1,0,3.5S,0.5S,0
PL 1,0,3.5S,0.5S,4
//E -8,-4,-1
PL 1,0,4S,0.5S,-8
PL 1,0,4.5S,0.5S,-4
PL 1,0,4.5S,0.5S,-1
PL 1,0,5S,0.5S,-8
PL 1,0,5.5S,0.5S,-4
PL 1,0,5.5S,0.5S,-1
//Am -3,0,4
PL 1,0,6S,0.5S,-3
PL 1,0,6.5S,0.5S,0
PL 1,0,6.5S,0.5S,4
PL 1,0,7S,0.5S,-3
PL 1,0,7.5S,0.5S,0
PL 1,0,7.5S,0.5S,4
X

Нажмите кнопку «Запуск (Shift+F5)» справа от поля ввода программы (или Shift+F5 на клавиатуре). А потом F5 для прослушивания.

Добавим к звучанию инструмента эффект «эхо», для этого после команды LT вставьте команду:

SE 1,3,0,0.25S,40

она означает, что каждая нота инструмента 1 превратится в 3 ноты. Первая нота будет там, куда ее поставила команда PL. Вторая будет вставлена со смещением 0,25 секунды и амплитудой 60% (100 минус 40). Третья будет вставлена со смещением 0,25+0,25 секунды и амплитудой 20% (100 минус 40 минус 40).

Из-за эхо ноты будут сильно накладываться друг на друга, поэтому во избежание достижения предела по амплитуде (и среза звука до пределов -128 до 127 для 8 бит, или от -32768 до 32767 для 16 бит) уменьшим также в команде LT амплитуду сигнала с 0,5 до 0,3.

Получим:

//введите сюда QMP-команды
N 11025,16,1,9S
LT 1,11025,16,1,0.3,0.5
SE 1,3,0,0.25S,40
//Dm 2,5,9
PL 1,0,0S,0.5S,2
PL 1,0,0.5S,0.5S,5
PL 1,0,0.5S,0.5S,9
PL 1,0,1S,0.5S,2
PL 1,0,1.5S,0.5S,5
PL 1,0,1.5S,0.5S,9
//Am -3,0,4
PL 1,0,2S,0.5S,-3
PL 1,0,2.5S,0.5S,0
PL 1,0,2.5S,0.5S,4
PL 1,0,3S,0.5S,-3
PL 1,0,3.5S,0.5S,0
PL 1,0,3.5S,0.5S,4
//E -8,-4,-1
PL 1,0,4S,0.5S,-8
PL 1,0,4.5S,0.5S,-4
PL 1,0,4.5S,0.5S,-1
PL 1,0,5S,0.5S,-8
PL 1,0,5.5S,0.5S,-4
PL 1,0,5.5S,0.5S,-1
//Am -3,0,4
PL 1,0,6S,0.5S,-3
PL 1,0,6.5S,0.5S,0
PL 1,0,6.5S,0.5S,4
PL 1,0,7S,0.5S,-3
PL 1,0,7.5S,0.5S,0
PL 1,0,7.5S,0.5S,4
X

Выполните по Shift+F5 и прослушайте полученное по F5.

Теперь сделаем стереомелодию. Для этого:
— пропишем в команде N два канала: N 11025,16,2,9S
— загрузим второй инструмент, точно такой же как первый, и для обоих зададим одинаковое эхо
— расставим относительно слушателя первый инструмент слева спереди в 500 мм: IP 1,-500,500
— расставим относительно слушателя второй инструмент справа спереди в 500 мм: IP 2,500,500
— в каждом аккорде первую ноту будет играть первый инструмент, а две других — второй инструмент

Получим:
//введите сюда QMP-команды
N 11025,16,2,9S
//первый инструмент
LT 1,11025,16,1,0.3,0.5
SE 1,3,0,0.25S,40
IP 1,-500,500
//второй инструмент
LT 2,11025,16,1,0.3,0.5
SE 2,3,0,0.25S,40
IP 2,500,500
//Dm 2,5,9
PL 1,0,0S,0.5S,2
PL 2,0,0.5S,0.5S,5
PL 2,0,0.5S,0.5S,9
PL 1,0,1S,0.5S,2
PL 2,0,1.5S,0.5S,5
PL 2,0,1.5S,0.5S,9
//Am -3,0,4
PL 1,0,2S,0.5S,-3
PL 2,0,2.5S,0.5S,0
PL 2,0,2.5S,0.5S,4
PL 1,0,3S,0.5S,-3
PL 2,0,3.5S,0.5S,0
PL 2,0,3.5S,0.5S,4
//E -8,-4,-1
PL 1,0,4S,0.5S,-8
PL 2,0,4.5S,0.5S,-4
PL 2,0,4.5S,0.5S,-1
PL 1,0,5S,0.5S,-8
PL 2,0,5.5S,0.5S,-4
PL 2,0,5.5S,0.5S,-1
//Am -3,0,4
PL 1,0,6S,0.5S,-3
PL 2,0,6.5S,0.5S,0
PL 2,0,6.5S,0.5S,4
PL 1,0,7S,0.5S,-3
PL 2,0,7.5S,0.5S,0
PL 2,0,7.5S,0.5S,4
X

Упрощение ввода номеров нот


При написании мелодий побольше и похитрей — возникают проблемы:

Первая проблема — скрипт растет. Тут помогают комментарии, можно пометить любые части программы, чтоб не вглядываться в аргументы команд, а сразу понять «тут вступление», «тут проигрыш» и т.д.

Вторая проблема — номера нот трудно вводить по памяти.

Чтобы решить эту проблему — в Qmpot была добавлена система «Ввод нот». Она позволяет использовать виртуальное фортепиано, виртуальную шестиструнную гитару и виртуальную сетку барабанов для создания массивов команд PL (или P) и перетаскивания их в QMP программу. Также позволяет играть на физической клавиатуре как на фортепиано/барабанах и записывать сыгранное в виде QMP-команд.

Чтобы запустить «Ввод нот» — нажмите справа от поля программы кнопку «Ввод нот (Shift+F7)» или просто Shift+F7 на клавиатуре.

Ввод нот: Фортепиано


После запуска «ввода нот» фортепиано включено по умолчанию.



Можно лазить синим курсором по клавишам и зажимать их пробелом (или кнопкой «Выбрать (ПРОБЕЛ)»).

Самое простое использование фортепиано:
— зажимаем пробелом ноты аккорда,
— необязательный шаг: жмем «Звук (ENTER)» (или просто Enter) чтобы прослушать в MIDI что все правильно зажали,
— жмем кнопку «Добавить (CTRL+ENTER)» (или просто Ctrl+Enter) и ноты оказываются в виде команд справа в поле программы:



Далее можно скопировать полученные команды кнопкой «Копировать (Ctrl+C)» и затем, выйдя по ESC из ввода нот, вставить их уже в вашу программу куда надо.

На получаемые ноты влияют параметры на панели внизу окна (надо же как-то управлять их смещением, длительностью и т.д.):

Номер — номер инструмента, прописываемый в командах PL.
Смещение — смещение в мс, прописываемое в командах PL. Смещение можно быстро изменять нажатием на кнопки "-"(Ctrl+Минус) и "+"(Ctrl+Плюс) по бокам от него. При этом оно изменяется на величину «Шаг».
Длина — длительность нот в мс, прописываемая в командах PL.

Таким образом, можно:
— выставить смещение в 0 мс если оно не ноль (Ctrl+A),
— зажать первый аккорд,
— нажать Ctrl+Enter,
— зажать другой аккорд,
— увеличить смещение (Ctrl+Плюс),
— снова нажать Ctrl+Enter,
— зажать третий аккорд,
— увеличить смещение,
— снова нажать Ctrl+Enter.
И т.д. А когда будет достаточно команд — копируем их по Ctrl+C, закрываем Ввод нот по Esc и вставляем полученные команды в программу.

Если лень каждый раз увеличивать смещение — нажмите кнопку «Авто+ (Ctrl+P)» и тогда после каждого добавления нот по Ctrl+Enter смещение будет увеличиваться само.

Также можно установить параметр «Сдвиг» — и ноты будут вставляться не все по одному смещению, а каждая с этим сдвигом относительно предыдущей, как будто пианист не мгновенно все клавиши жмет, а с задержками.

Стили игры и Тест команд


Над полем программы во «Вводе нот» есть две кнопки:



Кнопкой «Тест команд (Ctrl+U)» можно, не выходя из «Ввода нот», прослушать введенные команды на треугольной волне для фортепиано/гитары и на шумовых барабанах для сетки барабанов.

Кнопкой «Стиль игры (Ctrl+B)» можно выбрать определенные стили игры. Для фортепиано это фортепианные стили, для гитары — гитарные, а для барабанов — это встроенные ритмы (рок, хип-хоп и т.д). Также можно задать свой стиль.

Текущий стиль игры отображается под кнопкой «Стиль игры». В фортепиано по умолчанию это стиль «Играть всё». Выглядит он как «A-1D».

Стили фортепиано кодируются командами и цифрами, написанными через тире:
A — сыграть одновременно все зажатые ноты;
Наборы цифр 1-9 — сыграть указанную ноту из зажатого аккорда (если зажаты три ноты — то 1 сыграет первую ноту, 2 — вторую, 3 — третью, 13 — первую и третью одновременно, 4 — ничего не сыграет, т.к. только три зажаты);
шаговD — задержка между предыдущими нотами и следующими в долях «шагов» параметра «Шаг» из нижней части окна, при этом длина предыдущих нот определяется параметром «Длина» из нижней части окна;
шаговL — задержка между предыдущими нотами и следующими в долях «шагов» параметра «Шаг» из нижней части окна, при этом длина предыдущих нот равна этой задержке (ноты тянутся до следующих нот).

Например, вышеупомянутый стиль «Играть всё» — это A-1D, где A — проиграть все, 1D — выждать один «Шаг».

А стиль «Пары (1 шаг)» — кодируется как 2-0.25L-34-0.25L-1-0.25L-34-0.25L, что означает:
2-0.25L: 2 зажатая в аккорде нота играется четверть Шага;
34-0.25L: 3 и 4 зажатая в аккорде нота играется четверть Шага;
1-0.25L: 1 зажатая в аккорде нота играется четверть Шага;
34-0.25L: 3 и 4 зажатая в аккорде нота играется четверть Шага.
В итоге целый Шаг заполнен нотами.

Таким образом, выбрав стиль «Пары (1 шаг)» и зажав аккорд из 4 нот — можно по Ctrl+Enter получать команды целой музыкальной фразы 2-34-1-34 со сдвигами во времени, а не просто аккорда.

Ввод нот со стилем игры (общий алгоритм)


1) По кнопке «Номер (Ctrl+I)» указать номер инструмента, который будет использован в QMP командах;
2) По кнопке «Очистить (Ctrl+X)» очистить предыдущую программу «ввода нот» (если она была введена до этого);
3) По кнопке «Шаг (Ctrl+S)» указать длину шага в мс;
4) По кнопке «Смещение (Ctrl+A)» выставить начальное смещение в 0 мс (или другое, если требуется выставить ноты не с начала мелодии);
5) Сбросить ранее зажатые ноты по кнопке «Сброс клавиш (Ctrl+K)» и зажать очередной аккорд из 4 нот, перемещая курсор и нажимая кнопку «Выбрать (Пробел)»;
6) По кнопке «Добавить (Ctrl+ENTER)» «сыграть» зажатый аккорд выбранным стилем игры (команды игры добавятся в QMP программу в текстовом поле справа);
7) Увеличить смещение на один шаг кнопкой "+"(Ctrl+Плюс);
8) Если дальше нужно ввести также другие аккорды мелодии — перейти к п.5 для ввода следующего аккорда.
9) Нажать «Тест команд (Ctrl+U)» для прослушивания полученной мелодии на треугольном сигнале;
10) Нажать «Копировать (Ctrl+C)» для копирования QMP команд, выйти из «Ввода нот» по ESC, вставить команды в QMP программу в основном окне Qmpot;

Совет: если предварительно включить режим по кнопке «Авто+ (Ctrl+P)», то п.7 выполнять не потребуется, смещение будет само увеличиваться на необходимое количество шагов после каждого добавления нот по кнопке «Добавить (Ctrl+ENTER)».

Другие стили могут длиться не один шаг, а более, например, предустановленный стиль «Перебор (2 шага)» использует 8 итераций по 0.25 шага (т.е. занимает 2 шага). Тогда при ручном изменении смещения необходимо после «Добавить (Ctrl+ENTER)» увеличивать смещение на 2 шага (кнопкой "+"(Ctrl+Плюс)). В случае автоувеличения смещения («Авто+ (Ctrl+P)») необходимое количество шагов будет автоматически добавляться к смещению.

Также в меню выбора стиля игры по кнопке «Стиль игры (Ctrl+B)» можно вручную вводить свои стили игры. В том же меню можно загружать/сохранять в QPS (Qmpot Piano Style) файлы со стилем игры и текущим зажатым аккордом на фортепиано.



Ввод нот: Шестиструнная гитара


Для перехода к гитаре нажмем внизу на панели кнопку «Инструмент (Ctrl+G)».



Здесь, как и фортепиано, можно бегать курсором по грифу и зажимать струны. Незажатая струна — не участвует в аккорде, поэтому, например, для простого ля-минора Am надо зажать все как обычно, а свободные струны — на нулевом ладу, и тогда по Ctrl+Enter весь аккорд будет скинут в программу:



Здесь тоже можно играть в различных стилях: обычный бой, щипки, переборы.



Ввод нот: Сетка барабанов


Для перехода к гитаре нажмем еще раз внизу на панели кнопку «Инструмент (Ctrl+G)».



Классическая сетка, которая используется в Cakewalk, Fruity Loops и много где еще. Только по вертикали не ноты фортепиано, а номера барабанов.

А по горизонтали время в пределах выбранного размера по кнопке «Размер (Ctrl+E)». Например, при выбранном размере 8/4 сетка будет выглядеть как показано на скриншоте вверху — 8 столбцов, разделены в группы по 4 столбца.

Расставьте ноты по барабанам вот так:



Нажмите «Звук (ENTER)» (или просто Enter) чтобы прослушать ритм в MIDI. Он будет проигран дважды чтобы оценить стыковку ритма с самим собой.

Нажмите «Добавить (CTRL+ENTER)» (или просто Ctrl+Enter) чтобы скинуть ноты ритма в поле программы. Нажатие на кнопку «Тест команд (Ctrl+U)» проиграет на шумовых барабанах ритм из поля программы.

Чтобы использовать в QMP-программе полученные таким способом команды ритма — надо предварительно загрузить в этой QMP-программе аж 9 инструментов (9 различных барабанов).

Поэтому в основном окне Qmpot в меню по кнопке «Команда (Shift+F3)» есть вызов «шумовых барабанов» — барабанов на шумовых сигналах. Достаточно выбрать номер стартового барабана (если 1 — то они займут номера инструментов с 1 по 9, если 20 — то с 20 по 28 и т.д.) и разрядность (8 или 16 бит) и они будут у вас в программе. Вот, например, программа с набранным выше ритмом и шумовыми барабанами:

//введите сюда QMP-команды
N 11025,16,1,4S

//барабаны
//bass
LN 1,44100,16,1,0.5,0.001S
ST 1,-66
SF 1,0.001S,0.032S
//acoustic snare
LN 2,44100,16,1,0.5,0.008S
ST 2,-48
SF 2,0.001S,0.128S
//clap
LN 3,44100,16,1,0.5,0.004S
ST 3,-36
SF 3,0.001S,0.032S
//electric snare
LN 4,44100,16,1,0.5,0.008S
ST 4,-40
SF 4,0.001S,0.064S
//closed hi-hat
LN 5,44100,16,1,0.2,0.012S
SF 5,0.001S,0.011S
//open hi-hat
LN 6,44100,16,1,0.3,0.24S
SF 6,0.01S,0.23S
//tomtom
LN 7,44100,16,1,0.5,0.0015S
ST 7,-60
SF 7,0.001S,0.048S
//crash
LN 8,44100,16,1,0.5,0.24S
ST 8,-6
SF 8,0.01S,0.33S
//ride
LN 9,44100,16,1,0.3,0.30S
ST 9,-2
SF 9,0.03S,0.27S
//конец барабанов

P 1,0,0S,0
P 1,0,1S,0
P 2,0,0.5S,0
P 2,0,1.5S,0
P 5,0,0.25S,0
P 5,0,0.75S,0
P 5,0,1.25S,0
P 5,0,1.75S,0
P 6,0,1.75S,0
P 1,0,2S,0
P 1,0,3S,0
P 2,0,2.5S,0
P 2,0,3.5S,0
P 5,0,2.25S,0
P 5,0,2.75S,0
P 5,0,3.25S,0
P 5,0,3.75S,0
P 6,0,3.75S,0
X

В меню «Стиль игры (Ctrl+B)» можно выбирать различные предустановленные ритмы.



Строка стиля «123456789-(необходимая задержка)D» устанавливается автоматически в зависимости от текущего размера, выбранного по кнопке «Размер (Ctrl+E)».

Ввод нот: игра на PC клавиатуре


Когда во «Вводе нот» включены инструменты Фортепиано или Шестиструнная гитара — то на физической клавиатуре компьютера можно играть как на клавиатуре фортепиано.

Основная часть клавиатуры — два ряда клавиш:
Верхний ряд -WE-TYU-OP-] — черные клавиши, ноты До#, Ре#, Фа#, Соль#, Ля#, До#, Ре#, Фа#.
Нижний ряд ASDFGHJKL;' — белые клавиши, ноты До, Ре, Ми, Фа, Соль, Ля, Си, До, Ре, Ми, Фа.



Эта часть клавиатуры играет ноты, начиная с октавы, в которой в данный момент находится курсор. Т.е. переставляя курсор на виртуальной клавиатуре фортепиано на более высокие по тону октавы можно получить более высокое звучание нот с физической клавиатуры. На грифе эта система также работает — на более высоких по звучанию струнах и на дальних ладах — идет более высокое звучание нот с физической клавиатуры.

Иногда с мелодией удобно играть/записывать басовый аккомпанемент, поэтому:
— ниже «нижнего ряда» есть ряд клавиш ZXC...<>? — он играет роль белых клавиш фортепиано, но на октаву ниже основной части клавиатуры.
— аналогично выше «верхнего ряда» есть ряд клавиш 123...)-= — он играет роль черных клавиш фортепиано, но на октаву ниже основной части клавиатуры.

Поэтому рекомендуется играть на рядах клавиш ASDF… и QWER… мелодию, а на рядах ZXCV… и 1234… басовый аккомпанемент к ней. Например, A — нота До, Z — нота До на октаву ниже.

При текущем инструменте «Фортепиано» все нажимаемые на физической клавиатуре клавиши отображаются на виртуальной клавиатуре в окне «Ввода нот».

Ввод нот: запись игры на PC клавиатуре


По кнопке «Запись (Ctrl+R)» можно включить/выключить режим записи, тогда все сыгранное будет дописано в виде QMP команд в поле программы. При этом первая нажатая нота получит смещение 0 секунд, остальные ноты будут записываться относительно момента нажатия первой ноты.

Чтобы записываемые смещения и длительности нот были выравнены по времени — используйте квантование:
1) Установите по кнопке «Темп (Ctrl+T)» необходимый темп игры, также можете настроить и включить метроном (MIDI или Видео) чтобы послушать темп игры и даже оставить его включенным на время записи (предупреждение: на слабых компьютерах звучание MIDI метронома может сбиваться и лагать, тогда используйте видео-метроном и следите за появляющимися на экране шариками);
2) Нажмите кнопку «Квант (Ctrl+F)» и введите, например, 2. Это означает что смещения и длительности нот будут кратны 1/2 от длительности удара темпа. При темпе 120 ударов в минуту 1 удар темпа составляет 0.5 секунды, а 1/2 длительности удара темпа составляет 0.25 секунды, поэтому все смещения и длительности записываемых нот будут кратны значению 0.25 секунды.

Важно: современные особенности устройства физических клавиатур не позволяют зажимать большое количество клавиш одновременно. Поэтому будьте готовы смириться с тем, что при игре/записи на физической клавиатуре при нажатии более 2 клавиш одновременно — некоторые нажатия клавиш могут быть пропущены системой игры/записи. Это нормально. Все зависит от вашей клавиатуры, в идеале — просто старайтесь больше 2 клавиш одновременно не нажимать, тогда все будет нормально.

Ввод нот: игра и запись игры на барабанах на PC клавиатуре


Когда во «Вводе нот» включен инструмент Барабанная сетка — то на физической клавиатуре компьютера можно играть как на всех 9 барабанах в сетке и записывать эту игру по кнопке «Запись (Ctrl+R)». Клавиши для игры/записи:

Ряд клавиш ASDFGHJKL — барабаны от 1 до 9.

Заключение


В этой статье-мануале достаточно кратко описан звуковой редактор Qmpot. А точнее описаны только программирование и система «Ввод нот».

В системе помощи (по кнопке F1 в паинткаде или кумпоте) в разделе «Экстра» — «Звуковой редактор Qmpot» вы можете найти дополнительную неописанную в статье информацию:
— об основах редактирования звука (что такое частота дискретизации, разрядность, как записывается звук в файлы и т.д.),
— о загрузке инструментов из файлов INS+WAV и просто из WAV сэмплов,
— о создании собственных инструментов,
— о поиске и задании loop-а (цикла, повторяющейся части) в создаваемых вами инструментах,
— об извлечении готовых инструментов из SF2/DLS звуковых банков,
— о применении эффектов в редакторе Qmpot (фильтрация, подавление шумов, реверс звука, перемещение источника звука относительно слушателя с учетом эффекта Допплера и т.д.),
— о записи звука со входов звуковой карты, с веб-камеры и т.д.,
— и многое другое.

В звуковом редакторе Qmpot, используя описанные выше способы, вы можете сочинить мелодии, обработать звуки и даже сделать озвучку для создаваемых вами в паинткаде фильмов и анимаций (AVI файлов).

WAV-озвучку можно прикрепить к AVI-файлу в меню Утилиты паинткада. Там же можно извлечь WAV-озвучку из любого AVI-файла:



Скачать PaintCAD 4Windows с Qmpot внутри
вы можете по ссылкам (12,6 Мб):
RAR: blackstrip.ru/pcw.rar
ZIP: blackstrip.ru/pcw.zip
SFX-EXE: blackstrip.ru/pcw.exe

Бонусная мелодия для Qmpot для тех, кто дочитал статью до конца: blackstrip.ru/bonusmusic.txt (на шумовых барабанах и двух треугольных волнах!).
Дмитрий Тимофеев @blackstrip
карма
9,0
рейтинг 2,4
Программист-испытатель на людях
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Спецпроект

Самое читаемое Разработка

Комментарии (48)

  • 0
    Запустил под вайном. Звуковой редактор вроде бы работает. Загрузил тестовую мелодию, покопипастил — все ок.
    Важно: современные особенности устройства физических клавиатур не позволяют зажимать большое количество клавиш одновременно.

    Как мне кажется, это актуально в большей мере для PS/2 клавиатур.

    //Пойду достану свой старый мобильник (SE W300i) и порисую. Вспомню былые времена.
    • +5
      Это все глупости про PS/2 или USB. На самом деле имеет значение схемотехника клавиатуры. Например, у меня есть USB клавиатуры без NKRO вообще (т.е. обычная, где в зависимости от комбинации может быть 2-KRO или чуть больше), 6-KRO и 64-KRO.
      • 0
        Возможно на меня повлиял писк от материнки при нажатии нескольких кнопок на моей первой PS/2 клаве и PS/2 клавиатуры в колледже, на которых на одной клавиатуре вдвоём было сложно играть на эмуляторах приставок, последующие мои были usb и умеют более 3 кнопок. Мне почему то казалось что это ограничение PS/2. Пойду погуглю.
        • +3
          en.wikipedia.org/wiki/Rollover_(key)
          Также тут говорится, что некоторые клавиатуры имеют NKRO через PS/2, но не имеют через USB: stenoknight.com/wiki/N-key_rollover
          • 0
            Спасибо за интересную информацию.
        • 0
          На средних USB клавах ещё хуже стало.
          Например нельзя нажать одновременно Shift+1 и 3 (вообще с 3 и Shift многие другие), очень раздражало по началу.
  • +13
    Не смотрели что-нибудь из серии Max/MSP, PureData?
    Если хочется в виде программы писать, а не стрелочек рисованных — Overtone, SuperCollider, CSound, ChucK, Faust?
    Ну и если вдруг придется упор на графику делать — Processing?
    Еще кажется Pixelang из этой серии.

    Это все специализированные языки для создания звука и изображений.
    Я очень уважаю ваш порыв, но есть ли смысл изобретать велосипед?
    • +7
      Мне кажется, смысл есть всегда.

      Т.к. чем больше велосипедов, тем выше конкуренция и взаимосвязь между ними, слабые и хилые велосипеды отмирают, сильные и мощные заимствуют друг у друга возможности и занимают определенные ниши (как граф.редакторы — этот для фоток, тот для рисования, а вот тот для пиксель-арта, так и звуковые — трекеры с таблицей команд и эффектов, редакторы комплексные для MIDI и звука, редакторы чисто для звука и т.д.).
    • +12
      Вам его все равно не остановить :D
  • –2
    надеюсь это уже с антиалиасингом или мип-мапингом, или автор хотя бы знает про это и реализует в следующих версиях
  • +1
    С трудом представляю область применения этого монстра, даже чисто умозрительно.

    Если бы это был бы какой-нибудь учебный проект ученика 9 класса общеобразовательной школы — я бы, вероятно, понял. Но в таком виде это не годится ни для чего. Программировать музыку? Даже не умея играть на музыкальном инструменте я с помощью простейшего vst-синтезатора и любого секвенсора смогу написать мелодию в разы быстрее и приличнее звучащую, чем в этом чуде. А умея — на порядки.

    Идеи, заложенные в этот редактор, настолько невероятно далеки от всего, что я знаю и умею в музыке, что просто диву даешься тому, какие осторожные отзывы он получает тут пока.
  • +1
    Как эксперимент для наочного редактирования звука и понимания электроакустики — подойдет.
    На практике я не могу найти применения этому монстру, вспоминая о VST и секвенсорах…
  • –9
    Qmpot (читается «кумпот»)

    С чего вы взяли, что вам решать, как я буду читать название программы? Компот он и есть компот.
    А редактор может быть и крут, рвет Аудишен и Лоджик в клочья, но мне его негде запустить. Да и слава богу, если честно, а то от скриншотов интерфейса я всплакнул кровью.
    • +3
      Кстати, он сначала планировался как Compot =) Но потом я решил назвать его Qmpot.
  • +6
    PbICb, неужто ты?
    • +4
      я-я
      • +3
        Сколько лет, сколько зим…
        Помню как я ещё пешком под стол ходил, и выспрашивал у тебя про вебмани, когда ты уже вполне работоспособный PaintCAD на waper выкладывал.
        Эххх… ностальгия =)
        • +2
          Тоже выходец из forum.s-c.ru? =)
          • +2
            Приятно видеть людей с соседнего сайта. Правда там не очень то сидел, а кто с seclub отзовитесь!
  • +9
    Я скучал по вашим статьям, спасибо, что вернулись!
    Генератор музыки, редактор звуков, веб-браузер, IRC-чат и все это в графическом редакторе. Ах… красота…
    • +2
      Следующим будет вооон тот неактивный пункт после IRC-чата:
      image
      • +5
        Вот как станет активным, сразу удалю блендер =)
    • +2
      Генератор музыки, редактор звуков, веб-браузер, IRC-чат и все это в графическом редакторе. Ах… красота…

      Им бы с автором личкрафта объединиться — вышла бы ОС. =)
  • +10
    Я угадаю этого автора по двум нотам скриншотам.
    • +7
      Достаточно одного скриншота =)
  • +1
    Не совсем понятно, а чем эти программы отличаются от обычного midi файла (кроме синтаксиса)? Я к тому, что термин «программирование» предполагает нечто большее. Где циклы, переменные, функции?.. Если бы у вас была возможность получить данные с сенсоров, обработать, сформировать собственные мелодические последовательности нот и изменений параметров звучания, и все это в реальном времени проиграть… вот это было бы программирование музыки. имхо.
    • 0
      Ну, все это уже есть в тех же PureData, Max/Msp, Supercollider… И, думаю, сложновато будет написать что-то, что будет хотя бы таким же, не говоря уже о лучше.
    • 0
      Ну я думал о циклах, хотя бы в ассемблерном виде, о переменных (в простейшем случае, некоторое количество регистров), чтоб можно было загнать в регистр число, а потом прыгать на строку, при этом уменьшая в регистре число на единицу. Это бы помогло выполнять N раз одни и те же фрагменты программы. Но потом подумал, что это запутает программы.

      И в итоге сделал простые однопроходные скрипты. Есть лишь команда безусловного перехода «G номер_строки», но она может лишь вперед перепрыгнуть на указанную строку (назад не может). И поэтому используется для отладки части программы, когда надо, например, только припев отладить, а куплеты и вступления уже написаны и трогать их не хочется.

      Также есть команда SO (set offset), устанавливающая смещение для работы команд, с параметрами «SO смещение, относительно». Если ставить флажок «относительно» в 1 — то смещение будет устанавливаться относительно предыдущего установленного. Тогда можно использовать одинаковый фрагмент командой с командой SO в начале чтоб добавлять в звук кусок мелодии со сдвигом, указанным в SO.

      Так, например, делается в бонусной мелодии, ссылка на которую в конце статьи. Вот эти одинаковые басы с прописанными смещениями трех нот как 0 секунд, 2 секунды и 3 секунды — на самом деле вставляются после каждой команды SO начиная с нуля, потом с 4 секунд, потом с 8 секунд и потом с 12 секунд:
      //басы
      SO 0,0
      PL 1,0,0S,2S,-15
      PL 1,0,2S,1S,-19
      PL 1,0,3S,1S,-20
      SO 4S,1
      PL 1,0,0S,2S,-15
      PL 1,0,2S,1S,-19
      PL 1,0,3S,1S,-20
      SO 4S,1
      PL 1,0,0S,2S,-15
      PL 1,0,2S,1S,-19
      PL 1,0,3S,1S,-20
      SO 4S,1
      PL 1,0,0S,2S,-15
      PL 1,0,2S,1S,-19
      PL 1,0,3S,1S,-20
      
      • 0
        Вот практически один в один как в CSound. И язык такой же нечитаемый.
  • +2
    Такие приложение интересны для изучения программирования (в частности).

    Вот например Sonic Pi проект, на базе которого сделали учебные материалы.

    Sonic Pi is an open source programming environment developed by Dr Sam Aaron, designed to explore and teach programming concepts through the process of creating new sounds.

    Пример кода:
    Скрытый текст
    use_bpm 350
    
    2.times do
      play_pattern [40,25,45,25,25,50,50]
      play_pattern [25,50,25,30,35,40,45,50]
      play_pattern [25,50,25,30,35,40,45,50].reverse
    end
    
    2.times do
      use_synth :dsaw
      play_pattern [25,50,25,30,35,40,45,50].shuffle
      play_pattern [25,50,25,30,35,40,45,50].reverse
    end
    
    in_thread do
      use_synth :dull_bell
      10.times do
        if rand < 0.5
          play 37
        else
          play 49
        end
      sleep 2
      end
    end
    
    in_thread do
      use_synth :beep
      20.times do
        play 49
        sleep 1
      end
    end
    

    www.raspberrypi.org/learning/sonic-pi-lessons/

  • 0
    «Но еще с того 1998-2000 года во мне затаилось желание создавать звук и вставлять в него любые ноты в любые места во времени. „

    но так в том же cakewalk это можно. Что угодно, фактически.
    • 0
      В те времена я увидел в Cakewalk Pro Audio редактор MIDI с вводом нот по сетке (Piano Roll), по нотной записи и т.д, ну аудиодорожку можно было вставить, загрузив в нее звук из файла. А инструментария, чтоб простыми действиями/командами записывать маленькие звуки с выбранной транспозицией в большой результирующий звук — я там не нашел.

      Мечтал чтоб записанное в MIDI переконвертировать в звук — но там такой функции (по крайней мере, на поверхности) не видел. Был там пункт Sound Fonts, но он был неактивен для меня (в помощи было написано, что он только для особенных звуковых карт). А могли бы они сделать, чтоб хотя бы конвертить MIDI в WAV/MP3 с использованием сэмплов из выбранного SF2/DLS банка. И в итоге, я нашел это только спустя годы во фрутилупсах (в плагине LSD, кажется). (хотя наверняка сегодня это есть уже в десятках других программ).
  • –3
    Если вы профессиональный разработчик, то такой софт должно быть стыдно кому-либо показывать. Если же нет, то лучше писать о том в чем разбираетесь и разбираться в том, что пишут другие о том в чем вы не разбираетесь.
    • +2
      Никто никому ничего не должен.

      21 век, 2015 год на дворе, а вы задеревенело скрипящим голосом шепчете мне на ухо «вам должно быть стыдно», «вы должны писать не об этом, а о том-то и том-то». Может еще розгами похлещете и в угол поставите?)
  • +1
    Вот именно! 2015 год на дворе, вы пишете статью о работе которая не во всяком вузе за лабораторную сойдет, по статье ощущение что 98й. А в комментариях еще пишете о конкуренции с существующими продуктами…
    • +2
      И что? =) Если у вас подгорает при этом — так и пишите

      «Уважаемый blackstrip, при виде вашей статьи у меня пошел дым из-за спины и в стуле образовалась дыра, вследствие чего я был вынужден написать этот пост:

      Мне кажется, вам должно быть стыдно (не знаю почему, просто мне обычно стыдно за свои программы, комплексы, все дела, я их делаю, а потом стыдливо боюсь показать кому либо, потому что все скажут что я непрофессиональный, и я думаю что вы должны испытывать сходные чувства, тоже не знаю почему, просто мне так показалось), и что вам лучше об этом не писать, а писать о том, о чем я вам скажу (я знаю, обычно с такими указаниями мне отвечают „не говори что мне делать — и я не скажу куда тебе идти“, но в данном случае пламя подгоняет меня сделать это)».

      И я бы все понял. А вбрасывать свои непонятные теории про масленое масло типа «лучше писать о том в чем разбираетесь и разбираться в том, что пишут другие о том в чем вы не разбираетесь» — это и в личку можно, правда чего вы этим добьетесь — мне пока неясно. Видимо просто пободаться захотелось.
      • +3
        Привет, Дим! Уж извини, но частично я согласен с комментатором выше. Да, ты делаешь хорошие вещи, интересные, и вероятно кому-то они будут полезны (собственно, оффтоп: если бы в свое время я не пошел в гугл искать «редактор png», я бы не попал на s-c где был paintcad, и вероятно не стал бы тем, кто я сейчас. Так что, наверное благодаря тебе я стал программистом, и да, я тот самый sie_c72_rus с s-c, правда не уверен что ты меня помнишь), но в данном случае — программы у тебя получаются уж слишком специфичные и узкоспециализированные. Но как минимум, в плане интерфейса приложения получаются не совсем айс, и опять же, сей вывод я могу подтвердить этим комментарием (ну, не просто так же он появился).

        Лично мой тебе совет: не придумывай сам интерфейсы, и не рисуй сам иконки. Лучше, уж простите, спизди интерфейс у какой-либо аналогичной софтины, и получится в «стопицот» раз лучше все). Ибо, основная проблема в твоих приложениях — интерфейс. Он слишком пестрый, слишком рисованный (причем не совсем хорошо), слишком непривычный. И, да, такое впечатление что ты ничего не видел кроме вин95/98.

        Хоть этот коммент и получился немного грубоватым, но я думаю что он правильный, ну а плюсы/минусы покажут мнение людей.

        P.S. Я тебя очень сильно уважаю с очень давних времен, и этим комментарием я не хочу тебя никак оскорбить/обидеть/етц… :)
        • +1
          Если бы все было так просто)

          Интерфейс паинткада должен работать для трех вариантов управления: клавиатура, мышь, сенсорный экран (так было задумано).

          Управление с клавиатуры — это показ кнопок с горячими клавишами а ля Norton Commander (иначе не запомнишь):


          можно было конечно их перерисовывать при зажатии контроля или альта, но тогда пришлось бы их сделать одинакового размера и подрисовывать к ним разные функции (тексты, иконки). Второй вариант — вывести все на экран, глазами легче выбрать что вообще можно сделать в окне.

          Управление мышью — это частично управление в самом поле действия (в поле рисования в главном окошке паинткада, например, хотя в Qmpot управления мышью типа выделения звука или перетаскивания чего нибудь — нет), и частично — кликом по этим же кнопкам.

          Управление с сенсорного экрана — это здоровые по размеру кнопки, чтобы комфортно нажимать их пальцем. И виртуальная клавиатура по F12 для перемещения курсора по полю рисования как на мобильнике.

          Если смешать все эти три вещи — на выходе получится paintcad 4windows (у меня получился, может у кого получится что нибудь покруче, поинтересней в плане интерфейса. Причем мышку я почти не использую, чаще либо клавиатуру, либо сенсорный экран).

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

          Помню когда еще выходил Windows 8, я с интересом смотрел: как они (разработчики) смогут сделать, например, автокад, 3dsmax, фотошоп или ms office под тач, оставив функционал с клавиатуры и мыши?

          Ответ — никак. Офис теперь выглядит похлеще паинткада, c этими лентами и большими+маленькими кнопками, разложенными в различных ориентациях на экране. А все другие программы — помоему не стали вообще делать полнофункциональных версий под сенсор, и вместе со своими пользователями кричали хором «microsoft глупцы, хотели смешать тач и обычное управление, мне тач на десктопе не нужен, кто это вообще придумал» и т.д.

          И конечно если взять в руки какую нибудь книгу про современный дизайн приложений — там будет написано что вот эту кнопку обязательно класть туда, а эту сюда, а поля ввода сделать обязательно посередине и шрифтов не менее N пикселей. И тысячи (миллионы) людей прочитают эту книгу и положат одинаковые кнопки в одинаковые углы приложений. И выберут одинаковый, тонкий, красивый, сглаженный до невозможности шрифт. И повторят интерфейсы известных марок. И сделают все как один серые фоны окон со светло-серым шрифтом.

          И эти рыцари клавиатуры и мыши, изучавшие эти дисциплины и уверовавшие в них, всегда будут бросаться на иноверцев) А мне не нравится вся эта шелуха и я делаю паинткад в другом стиле — в стиле Norton Commander.
          • 0
            А вы творец и вашими программами не нужно пользоваться, а только восхищаться.

            А если серьезно: для чего эти монструозные велосипеды с функционалом прошлого века? Если для обучения себя, то зачем выкладывать это сюда? Если для обучения других, то тут только одни примеры того как не нужно делать. Причем обучающей части в статье нет, только рекламная.
            • 0
              Хабр — свободный форум для всех и саморегулируемое сообщество. Если человек выкладывает неинтересные статьи или ругается в комментариях — ему обязательно воздастся. И наоборот — если все ок, то ему зачтется. «Интересность» любой статьи видна по количеству минусов и плюсов под ней.

              Если же вы хотите настроить хабр лично под себя и показывать только то, что кажется положительным, интересным, немонструозным, современным именно вам — то можно, наверное, такой плагин написать к браузеру. Сначала он проводит опрос, и можно проставить галочки «Мне нравится:» и список большой. Также ввести возраст, рост, выбрать свои страхи и фобии, хобби, кулинарные предпочтения,

              Потом этот плагин сканит скриншоты и текст статьи, и закрывает их для вас значком «ОСТОРОЖНО: здесь может быть интерфейс, который вам не понравится», а если интересно стало — то можно кликнуть по закрытому рисунку и посмотреть. Можно даже сначала прищуриться и потихоньку открывать сначала один глаз, а потом второй, чтоб если что — тут же зажмуриться.
              • 0
                Я уже понял что зря решил откоментировать этот пост. Я тогда не понимал с кем имею дело.
                • +1
                  Просто вы свое мнение пытаете представить как всеобщее. В этом проблема.

                  У вас есть граница, статьи ниже которой «не достойны публикации на хабре». Более-менее техническо-музыкальная статья про новый бесплатный продукт, позволяющий с нуля сгенерить звуки для своих целей (программ, игр и т.д.) — это «ниже границы», а вот какая нибудь двадцать пятая змейка в 30 строк кода и «вышел новый продукт ххх версии yyy, вот я статью перевел чужую, 20 строк вышло, кушайте» — это, наверное, отличная тематика по вашему мнению.

                  Вы пишете, что туториал по генерации этого самого звука с нуля, по последовательному написанию команд и получения мелодии в Qmpot, а потом про упрощение ввода нот при помощи некоторых интерфейсов Фортепиано, Гитары и Барабанов, автоматически генерирующих команды — это все туфта и вам не понравилось, и там «нет обучающей части, только рекламная».

                  Что звуковой редактор, позволяющий полноценно редактировать любой WAV-звук от эффектов над выделенными фрагментами до правки амплитуд отсчетов, использовать инструменты на основе простых сигналов и сэмплов из WAV/INS-файлов и SF2/DLS-банков, создавать собственные инструменты и подбирать границы циклической части (loop) по амплитудам/производным, программировать на однопроходных скриптах генерацию звука с эхом/расстановкой инструментов в пространстве/настройкой громкости, баланса, длительности атаки/затухания сэмпла, гуманизации (случайного разброса амплитуд, задержек и тона нот в выбранных диапазонах для имитации живой игры) — это все «не во всяком вузе за лабораторную сойдет».

                  Тут и спорить с этим глупо) Если вам не нужен такой продукт — просто не пользуйтесь. Все программы имеют фанатов и хейтеров. А нападать на людей, желающих бесплатно делать и развивать такие программы — как минимум нехорошо.
          • +1
            Думаю интерфейс программы вызывает столь бурную реакцию не из-за компоновки и размеров, а лишь своей цветовой гаммой и проработанностью иконок.
            • +2
              С начала 2012 он был примерно таким blackstrip.ru/tmp/pc438vk.jpg, а сейчас в начале 2015 он стал вот таким hsto.org/files/e4d/b88/bdc/e4db88bdc4264e4091cbfea796b2b528.png. Динамика есть, и, быть может, иконки когда нибудь приобретут сглаживание и альфа-канал, а цветовая гамма будет переработана. (но пока мне охота еще доработать немного Qmpot, а потом сделать 3D редактор Hippo или еще что нибудь, а потом все это наработанное использовать при разработке игр).
              • 0
                Логично)
  • +1
    А где можно увидеть исходный код? Было бы интересно узнать, к примеру, как работает «IP 1,-500,500».
    • 0
      Примерно так:

      — сдвиги каналов по времени: учитывает что расстояние между ушами 180 мм (среднее у людей), рассчитывает время прохода звука от источника до левого уха (это будет сдвиг левого канала) и до правого уха (это будет сдвиг правого канала), огибание звуком головы не учитывается (т.к. обычно источники ставят много дальше размера головы),

      — затухание каналов, связанное с направлением прихода звука: использует заданные в программе диаграммы направленности ушей ( про них — внизу этого поста blackstrip.ru/phpBB2/viewtopic.php?p=2168#p2168 ),

      — затухание каналов, связанное с пространственным затуханием в средах: в упрощенной форме затухание считает (в реальности оно частотно-зависимое, но я взял для простоты одно и то же для всех частот), причем оно задано гораздо сильнее, чем затухание в воздухе. Когда сначала попробовал задать настоящее воздушное — то там по разным данным типа таблицы ru-safety.info/static/pngbig/634765712.png и на одном километре всего 5-10(-20) дБ, на самом деле помоему невозможно услышать, если кто-то встанет в километре от меня и будет разговаривать, т.к. это в чистом воздухе. И даже в поле есть всякие травы и редкие деревья (иногда), или уж тем более в городе или лесу много объектов между источником и слушателем, а еще ветер сносит звуки, и от этого всего — затухание получается бОльшим.
    • 0
      А еще можно выделить фрагмент стереозвука (в обоих каналах) и вызвать эффект «Перемещение источника звука». Тогда вылезет окошко, в котором можно задать траекторию источника и скорости прохода траектории и в итоге применить эффект:
      image

      Эта штука в динамике размазывает стереозвук.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.