Вход

Просмотр полной версии : autosiril standalone MIDI 2 VTi



siril
11.09.2012, 14:17
Предлагаю вашему вниманию неофициальную, неподдерживаемую, поставляемую "as is", "на ваш страх и риск" standalone версию autosiril (пока только для windows): утилиту преобразования и даунмикса midi-модулей в модули vortex tracker.


Инструкция и пример использования - внутри, в каталоге autosiril, Vortex Tracker Improved (by me) - включён в архив.

Если есть какие-то вопросы по использованию - задавайте (но исключительно после прочтения инструкции). Если будет время - отвечу и поясню =)

Link: https://dl.dropbox.com/u/969122/autosiril_v1.zip

Возможно это видео даст ответы на невысказанные вопросы: AutoSiril screencast ep01, rus (http://www.youtube.com/watch?v=XmUfUuD6W7c).
В скринкасте действия выполняются над файлом tottoro_example.mid (https://dl.dropbox.com/u/969122/make_your_own_tottoro.zip).


---------- Post added at 16:17 ---------- Previous post was at 16:16 ----------



Краткая инструкция по параметрам конвертора:

autosirilK01.exe <file.mid> <channel1>,<channel2>,<channel3> N1 N2 N3 N4 N5 N6 N7

Для примера:

autosirilK01.exe imrav.mid 2me[2f]-6p[3]+,3m[1e]-7m[6d]-6p[3]+-2mew+,4m[3c]-5m[2b]+-2me+ 8 6 12 0 64 2 24

autosirilK01.exe - название исполняемого файла
<file.mid> - путь к MIDI-файлу формата SMF1
<channel1>,<channel2>,<channel3> - опции даунмикса миди-треков в каналы 1,2,3 редактора VortexTracker Improved. (см.ниже)
N1 - строчек на 1/4 ноту (beat) (по-умолчанию 4, при этом на такт в редакторе VTi будет приходиться 4*4=16 строчек и паттерн из 64 строчек будет содержать 4 такта)
N2 - смещение в строчках для первичного эха (по-умолчанию 3)
N3 - смещение в строчках для вторичного эха (по-умолчанию 6)
N4 - размер паттерна в строчках (по-умолчанию 64, максимум - 255)
N5 - смещение в строчках до начала информации о нотах (по-умолчанию 0) - используется, если в начале миди-трека есть пауза
N6 - позиций орнамента на одну ноту аккорда (обычно 1 или 2, при конвертировании аккорда в орнамент каждой ноте аккорда будет соответствовать указанное количество позиций орнамента)
N7 - количество полутонов от медианной ноты аккорда, характеризующее "ширину" аккорда, который будет взят для анализа и превращения в орнамент. если количество орнаментов в сконвертированном модуле превышает 15 - то имеет смысл уменьшить этот параметр, либо вручную провести оптимизацию аккордов в исходном миди-треке.

<channelN> - Настройки даунмикса миди-дорожек в каналы VortexTracker Improved.
Содержит перечисление миди-дорожек, их тип, приоритет при смешивании, свойства смешивания.
Если в один канал смешивается более одной дорожки они разделяются знаком "-":
1m-2m
приоритет уменьшается слева направо (слева - наиболее приоритетная дорожка), в примере 1m-2m - дорожка 1 приоритетнее дорожки 2.

Типы дорожек:

d - (Drums) - ударные.
m - (Mono melody) - мелодия (монофония) - аккорды на дорожке с этим типом будут преобразованы в одну ноту (самую высокую ноту аккорда)
p - (Polyphonic melody) - гармония (полифония) - аккорды на дорожке с этим типом будут преобразованы в орнаменты.
Тип дорожки указывается вслед за её номером: "1m" или "2p" или "4d".

Подтип дорожки:

e - (Envelope) - сочетается с дорожкой типа "m", указывается после типа, применяется в основном для басов, ноты будут преобразованы с использованием огибающей: "1me".

Модификаторы свойств дорожек:

u - (mUte echo) - для данной дорожки эхо не будет генерироваться
w - (double echo) - эхо будет в 2 раза длиннее (см. параметы N2 и N3).
Модификатор указывается после типа дорожки:
1du - у ударников не будет эха.
2mew - у огибающей будет удвоенное эхо.
3pw - у гармонии (аккордов, преобразованных в орнаменты) будет удвоенное эхо.

Опция смешивания:

+ - (plus) - опция указывается после модификатора дорожки, указывает на то, что если текущая позиция в модуле VTi уже занята нотой из предыдущей (левой, более приоритетной дорожки) то нота из текущей дорожки пропустится.
по-умолчанию (без опции "+") если текущая позиция в модуле VTi уже занята нотой из предыдущей (левой, более приоритетной дорожки) то нота из текущей дорожки будет вставлена в следующую строчку (то есть прозвучит чуть позднее).
Пример: 1d-2me-6p+
Уданик из дорожки 1 (1d) будет установлен в первую очередь, если в дорожке 2 (2me) есть бас, то он будет установлен ниже, затем в самую последнюю очередь будет попытка установить аккорд из дорожки 6 (6p+), однако если в предыдущих дорожках была хоть одна нота, то аккорд пропустится.


Опции присваивания конкретных семплов и орнаментов смешиваемым дорожкам:

[SO] - (Sample Ornament). После модификатора свойств дорожки может быть выполнено присваивание данной дорожке конкретного номера семпла или семпла с орнаментом: 2me[2f]-6p[3]+
нота из дорожки 2 будет поставлена с огибающей, вторым семплом, с орнаментом "F" (15), а нота из дорожки 6 будет поставлена с семплом 3 (так как это "полифоническая" дорожка орнаменты к которой присваиваются автоматически, ручное присваивание орнамента - игнорируется).


Для тестирования работы конвертора вы можете запустить прилагаемые .bat файлы:

do_flim.bat
do_imrav_hard.bat
do_imrav_medium.bat
do_imrav_simple.bat
которые сконвертируют прилагаемые .mid модули с разными настройками в текстовый файл VortexTracker Improved.

VortexTracker Improved (VortexTracker улучшенный by oisee/siril^4d) - находится в соответствующей папке. (Последняя версия может быть найдена на форуме zx.pk.ru).

newart
11.09.2012, 16:23
Road map есть?

siril
11.09.2012, 17:05
Road map есть?

нет.

есть общее представление о том, что неплохо было бы сделать:

1) GUI-frontend для просмотра миди-треков и простого маппинга их на каналы AY (желающие могут сделать самостоятельно =).
2) дополнительные опции преобразования треков (транспонирование и т.п.)
3) ручной маппинг типов midi-ударников на семплы VortexTracker.
4) конвертация pitch в слайды VTi.

---------- Post added at 19:05 ---------- Previous post was at 18:45 ----------

Общие рекомендации по преобразованию midi в VTi:

самым приоритетным треком в канале выбирайте ударники или бас.
часто для ударников можно отключить эхо и звук будет лучше. "1du"
бас интереснее конвертировать с опцией "e" (envelope). "2me"
не стесняйтесь конвертировать с опцией "е" дорожки на разные каналы одновременно - конфликты на огибающей разрешаются автоматически.
часто ударники и бас могут быть замиксованы в один канал, ударники приоритетнее баса. "1du-2me"
часто в тот же канал может быть втиснута и гармония (аккорды, дорожка с опцией "p"). "1du-2me-3p"
если миди-трек имеет BPM около 125, то первые три цифровые параметра (N1, N2, N3) могут быть 4 3 6 или 4 6 12.
если BPM ниже или выше - имеет смысл попробовать 8 6 12 или 8 12 24 и поставить темп 3 (в VortexTracker'е).
если размер не 4/4, а 3/4, или в MIDI-треке используется ярковыраженная синкопа, попробуйте отдать под четвёртую ноту 12 линий. то есть первые три параметра 6 0 0 или 12 0 0 (значение эха - потом подберёте).
для миди модулей, в которых используется размер 3/4 имеет смысл задавать длину паттерна (N5) - 48 или 96 линий.
если модуль не загружается в VTi — возможно у вас получилось слишком много паттернов или орнаментов (больше 15-ти), проверьте входные данные, уменьшите "ширину" аккордов, чтобы больше аккордов совпали и преобразовались в одинаковые орнаменты. либо оптимизируйте аккорды в секвенсоре. либо удалите "лишние" орнаменты из текста модуля — модуль загрузится, но аккорды на орнаментах нужно будет проверить и прослушать их корректность вручную, в VTi.

newart
11.09.2012, 17:39
просмотра миди-треков и простого маппинга их на каналы AY (желающие могут сделать самостоятельно =).
Тебе сподручнее ибо с форматом уже досконально знаком...

Или как вариант, можно научить автосирил генерить midi в виде txt файла по типу вортекса.

Тогда сторонний GUI написать будет очень просто.

siril
11.09.2012, 18:02
Тебе сподручнее ибо с форматом уже досконально знаком...
да не, для стороннего GUI нужна только библиотека поддержки midi-файлов (+стандартный плейер) и умение создавать маломальские графические объекты.

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

Присваиваем каждой из дорожек свойства (Bass, Drum, Poly, Melody).

Графически указываем для каждого из каналов VTi какие треки в него пойдут и с какими опциями.
Устанавливаем глобальные параметры (линий на четвёртую ноту, линий на эхо, размер паттерна и т.п.
На выходе имеем простую консольную команду для запуска автосирила, в которой прописан путь к исходному midi файлу. Эту команду тут же можно и запустить. То есть этот GUI совсем не обязательно должен какие-то преобразования с миди-файлом выполнять кроме его просмотра и мало-мальски похожего на секвенсоры отображения.

Как дополнительный приятный бонус в GUI-оболочке — возможность прослушивать исходный миди трек с отдельными включенными или выключенными каналами (чтобы точнее определить содержимое дорожки — к чему она относится: bass, drum, poly, melody). Вот и всё.

GM BIT
13.09.2012, 09:37
Спасибо за конвертер! Вот попробовал перевести, побаловался с настройками

scl^mc
13.09.2012, 11:04
результат всегда должен допиливаться напильником :)

siril
13.09.2012, 11:27
Да, как раз для последующего "напильника" есть возможность заранее указать номера семплов и орнаментов.

newart
13.09.2012, 11:41
siril, c табличкой ты кстати ловко придумал!

Понятно что в трезвом уме на 4-й никто писать не будет, а значит если трек с этой табличкой то он является конверсией из midi. :)

siril
13.09.2012, 15:27
siril, c табличкой ты кстати ловко придумал!

Понятно что в трезвом уме на 4-й никто писать не будет, а значит если трек с этой табличкой то он является конверсией из midi. :)

на самом деле преобразователь не привязан к конкретной тональной табличке.
Талица номер 4 (пятая по счёту) выбрана по-умолчанию из-за того, что в ней наиболее чистые соотношения огибающей и тона (в большинстве своём нет ошибки округления при делении периода тона на 16).

в действительности можно просто изменить файл module_template.rb и задать там другую табличку по-умолчанию (параметр NoteTable=4). изменить инструменты, скорость и т.п.

Также при изменении тональной таблицы в VTi автоматически происходит переконвертация значений огибающих. Так что всё прозрачно =)

Crash Nicker
15.09.2012, 11:38
Отпиарил на Speccy Live (http://speccy-live.untergrund.net/2012/09/autosiril-v1-released/) и World of Spectrum (http://www.worldofspectrum.org/forums/showthread.php?t=40825), разумеется, с переведённым на английский мануалом. У народа мало-помалу просыпается интерес к программе. :)

Как по мне, так лучше и проще набивать каверы MIDI-треков ручками, чем редактировать конверсии, да ещё и адаптируя под свою технику. :) Хотя... Хотя Автосирил выдаёт просто шикарные огибающие, так что всё равно беру на вооружение. Может, и конвертить научусь, как следует.

siril
16.09.2012, 00:09
Crash Nicker, ого! Спасибо большое! Планировал перевести мануал, очнь рад, что ты меня опередил :)

newart
16.09.2012, 00:25
siril, а мало этого. Нужен мотивирующий видео тутор, с субтитрами.

siril
16.09.2012, 00:48
Скринкаст для консольной тулзы? :) Ну, хотя да. Основная работа - на предварительном этапе анализа исходного миди-модуля.

nodeus
16.09.2012, 03:25
Siril, заскринкастить и завидеокастить можно у меня.

siril
16.09.2012, 12:52
Ok, вот более выразительный пример конверсии: make your own tottoro (https://dl.dropbox.com/u/969122/make_your_own_tottoro.zip).

Архив содержит в себе "нормализованный midi" (сохранены только значимые треки) и do_tottoro.bat.

Скопируйте эти два файла в каталог с autosirilK01.exe, и запустите .bat.

Затем просто нужно загрузить получившийся tottoro_example.mide.txt в VTi, изменить скорость на 3, и изменить 15(f) орнамент на:
-12
-12
(00 Loop)

Спектрум-версия шедевра готова =)

Crash Nicker
16.09.2012, 17:45
Ещё вопросик... Насколько будут чувствительными сэмплы в module_template.rb к отконвертированному модулю?

То есть, получается, берём оригинальный template и отредактироваванный и сразу же на их основе конвертим пару песен (с теми же настройками в автоцуриле, разумеется :)). Будут ли отличаться собственно паттерны в обоих конвертах?

Kakos_nonos
16.09.2012, 18:12
Замечательная программа!

newart
16.09.2012, 19:04
Kakos_nonos, серьезно? А можно оценить результат твоих конверсия.

По двум трекам Сирила сложно судить.

siril
16.09.2012, 20:15
Ещё вопросик... Насколько будут чувствительными сэмплы в module_template.rb к отконвертированному модулю?
То есть, получается, берём оригинальный template и отредактироваванный и сразу же на их основе конвертим пару песен (с теми же настройками в автоцуриле, разумеется :)). Будут ли отличаться собственно паттерны в обоих конвертах?

При конвертации используются следующие сэмплы:

2 - для тона и тона + огибающая. (зацикленный, громкость постоянна - 15) по умолчанию все дорожки "melody", "polyphonic melody" и "bass" (melody + envelope) - конвертируются в ноты с семплом 2 и нулевым орнаментом.

Если при конвертации используются ударники (дорожка с типом "d" - drums) То могут использоваться следующие семплы:

Hat2 = L
Kick1 = 9
Kick2 = A
Clap = B
Snare1 = C
Snare3 = V
Tom = J

То есть вышеперечисленные семплы лучше изменять с умом, зная для чего они предназначены.

Остальные (перечисленные и неперечисленные ниже) можно менять по своему усмотрению:

Были созданы, но не используются при конвертации следующие ударники:
//Kick5 = R
//Kick3 = D
//Kick4 = H
//Snare2 = K
//Hat1 = 8
//Noise1 = O
//Noise2 = P
//Noise3 = U (Noise + tone)
//P1 = E
//P2 = F

Кроме того в шаблоне содержатся семплы, которые удобно использовать для тона (ручной мапинг):
3 - тон+вибрато
4 - тон смещён вверх (для одновременных одинаковых нот на разных каналах)
6 - тон, громкость быстро меняется от 15 к 0 (за 15 фреймов).

и другие.

P.S. То есть содержимое паттернов не зависит от того как и какие семплы существуют.

Kakos_nonos
17.09.2012, 14:16
Вот пара сконвертированных мной мелодий.

scl^mc
17.09.2012, 18:59
кто чем удаляет лишние каналы и вступления в мидяхах?

Crash Nicker
17.09.2012, 21:13
кто чем удаляет лишние каналы и вступления в мидяхах?

Всё это можно организовать и Автосирилом: тебе ж не все каналы нужно конвертировать с миди в pt3! Плюс, у Авты есть функция удаления паузы в начале миди-трека перед конвертацией.

scl^mc
18.09.2012, 08:00
я про то, что физически в мидяхе может быть 64 канала, а использоваться дай бог половина. меня интересует, чем их прямо в мидяхе удалить.

siril
19.09.2012, 22:39
scl^mc, возможно это видео даст ответ: AutoSiril screencast ep01, rus (http://www.youtube.com/watch?v=XmUfUuD6W7c)

Вместо Logic Express можно использовать Reaper (он бесплатный и есть для win/macosx/linux).
В скринкасте я его не стал использовать, под маком он вылетал =)

newart
19.09.2012, 23:21
Кстати, а почему ты упускаешь такой факт что TS тоже пожжерживается?

siril
19.09.2012, 23:26
Кстати, а почему ты упускаешь такой факт что TS тоже пожжерживается?
почему это я его упускаю? =)
это же тема для следующих выпусков! не все же карты сразу на стол! =)

(у автосирила есть ещё 2 секретных доп-параметра, кстати. можешь с ними поэкспериментировать, правда они глючат с ударниками).

Crash Nicker
19.09.2012, 23:39
Кстати, а почему ты упускаешь такой факт что TS тоже пожжерживается?

1 обыкновенный модуль VT + 1 такой же модуль = 1 трек на Турбе.

Я и так давно об этом догадался. :D

Enigmatic
19.09.2012, 23:45
Пишет Fatal Error Invalid opcode и далее какие то цифры.Как её запускать,в досбоксе что ли?

newart
20.09.2012, 00:01
Пишет Fatal Error Invalid opcode и далее какие то цифры.Как её запускать,в досбоксе что ли?
В CMD

diver
20.09.2012, 06:50
Сирил, теперь осталось мне победить тебя на каком-нибудь пати типа Парадокса в музыке :-D
Я даже музон так же назову - "Бритни Спирс в прострации" ;)

nodeus
20.09.2012, 21:08
Попробовал. Офигел.

Нормализованный миди + транспозиция канала B на -12.

1em,2p,4d-3m

MP3 (http://ge.tt/27H8k5O?c)

newart
20.09.2012, 21:40
Попробовал. Офигел.
От того, что как ни крути настройки, а получается - сирилчатина? :)

nodeus
20.09.2012, 22:52
Только обрезка начала трека.

6d-7d-8d-9d-10d,5me-1mu-3p,2p-4me

MP3 (http://ge.tt/1hiC66O?c)

nodeus
20.09.2012, 23:48
И на последок быстрый TS. Чистая конверсия без перебора параметров.

9d-10d-11d-12d,4p-5m-7m,6m-8m | 1me,2me,3p

MP3 (http://ge.tt/8EXJI6O?c)

siril
21.09.2012, 16:13
Исправил ошибку в описании/инструкции: на самом деле параметр N4 - это размер паттерна (если указано число 0 - то по-умолчанию используется 64), а параметр N5 - это сколько нужно пропустить линий от начала трека (если указано число 0 - то ничего не пропускается).

Обратите на это внимание, plz.

P.S. сам архив и текст в нём пока не изменял.

GM BIT
21.09.2012, 17:29
А с рипером кто работал? почему midi загружается и играет без звука? куда ткнуть? win7 64bit

Crash Nicker
21.09.2012, 17:41
А с рипером кто работал? почему midi загружается и играет без звука? куда ткнуть?

Ну, если это Windows XP, то вполне вероятно, что громкость синтеза MIDI стоит на нуле. :D

Хотя я вряд ли чем-то помогу, написав этот пост.

siril
21.09.2012, 17:56
А с рипером кто работал? почему midi загружается и играет без звука? куда ткнуть? win7 64bit

в Reaper под windows нужно в каждом треке нажать кнопку IO и выбрать устройство для MIDI Hardware output: Microsoft software Wave-Table synth или что-то похожее.

в Reaper под macosx нужно в каждом треке нажать кнопку FX и добавить AUi: Apple: DSLMusicDevice.

GM BIT
21.09.2012, 17:59
Заработало, а есть такая кнопочка для всех каналов сразу?

siril
21.09.2012, 18:38
Заработало, а есть такая кнопочка для всех каналов сразу?

я не нашёл, из-за этого на Reaper злюсь =)

---------- Post added at 20:09 ---------- Previous post was at 20:07 ----------


Сирил, теперь осталось мне победить тебя на каком-нибудь пати типа Парадокса в музыке :-D
Я даже музон так же назову - "Бритни Спирс в прострации" ;)

ирония уместна и приветствуется, но ради сохранения общего количества справедливости в мире, замечу, что bspp - была срисована ручками с тетрадки в цвете, на ч/б мониторе =)

а трек с тебя в любом случае! =)

siril
21.09.2012, 18:39
Ну как, нужны ещё скринкасты по advanced-настройкам? Или уже можно объявлять "Auto Party"? =)

nodeus
21.09.2012, 18:55
Ну как, нужны ещё скринкасты по advanced-настройкам? Или уже можно объявлять "Auto Party"? =)

Вот, именно advanced остались в тени, так что нужны.

Crash Nicker
21.09.2012, 21:30
Начал переписывать с midi одну песенку... Бас и ударники (последние заменены на свои) переконвертированы Автосирилом, а остальное (соляки и т.д.) сам буду накладывать.

Интересно, что получится в результате данного эксперимента?

nodeus
22.09.2012, 00:48
Попытка сконвертировать в TS

Смотрим (http://youtu.be/crWKwv_zW8g?hd=1)

newart
22.09.2012, 01:37
Ну как, нужны ещё скринкасты по advanced-настройкам? Или уже можно объявлять "Auto Party"? =)
Нужны! С субтитрами, что бы западных товарищей привлечь.

Crash Nicker
23.09.2012, 20:30
что бы западных товарищей привлечь.

Way ahead of you, bro. (http://www.worldofspectrum.org/forums/showthread.php?t=40825)

Оин уже привлечены. :)

newart
23.09.2012, 20:47
На WOS 2 музыканта. Они погоды не делают.

nodeus
23.09.2012, 21:04
А тут почти 1,5 музыканта. ОК.

siril
25.09.2012, 14:54
Некто kgmcneil на WOS изготовил набор скриптов для AutoIT, которые облегчают использование autosiril: http://www.worldofspectrum.org/forums/showthread.php?t=40825&page=2 =)

Rindex
25.09.2012, 15:32
Некто kgmcneil на WOS изготовил набор скриптов для AutoIT, которые облегчают использование autosiril: http://www.worldofspectrum.org/forums/showthread.php?t=40825&page=2 =)

Почему некто, он есть и на этом форуме - http://zx.pk.ru/member.php?u=6291

nodeus
02.10.2012, 07:38
Ну что, кто-то еще баловался?

scl^mc
02.10.2012, 08:13
Ну что, кто-то еще баловался?
баловался. делиться результатами не буду :)

NVitia
25.11.2012, 20:51
Вот что получилось у меня.
Исходный файл - известная тема с атари Jet Set Willy - w2.midi
Хорошо-бы добавить выбор инструментов и громкости. И чтобы по умолчанию без эха конвертировалось и мелодия не прерывалась т.е. длительности нот были-бы как в исходном миди файле.

siril
25.11.2012, 21:55
Вот что получилось у меня.
Исходный файл - известная тема с атари Jet Set Willy - w2.midi
Хорошо-бы добавить выбор инструментов и громкости. И чтобы по умолчанию без эха конвертировалось и мелодия не прерывалась т.е. длительности нот были-бы как в исходном миди файле.

Без эха можно конвертировать указав соответствующие параметры (модификатор 'u' для каждого канала) - см. инструкцию и видеоподкаст =)

Длительности нот и так как в миди файле (нота- соответсвует событию "нажать клавишу" в midi-файле, а команда R - выключение ноты, соответствует событию "отпустить клавишу" в midi-файле). А прерываются они потому, что даунмиксятся в один канал =) А в одном канале может одновременно звучать только 1 (одна) нота.

P.S. результат в .txt довольно милый =) что говорит о качественном и осмысленном разделении тобой исходных каналов по функциям (аккорды, басы, тема).

---------- Post added at 23:55 ---------- Previous post was at 23:46 ----------

P.P.S. попробуй задать параметр N1 равным 8 (вместо 4) - и тогда на одну четвёртую ноту будет приходиться 8 линий, а не 4. (Однако в результирующем модуле нужно будет повысить темп с 4 до 3 или даже выше).

Благо экспериментировать теперь можно быстрее и проще =)