-
О! Это точно самый лучший музон из Арканоида на Векторе. Хотя в моей биперной аранжировке было чуть больше нюансов. Бас ровно то, что надо. А вот лид может быть менее флейтой пана, очень уж разухабисто звучат шумные атаки.
Ты планируешь это выпустить в свет? db норм трекер :)
-
Вложений: 1
Если под нюансами ты подразумеваешь громкость каждой ноты, то да, эти громкости я игнорирую. Желающие могут послушать "старые" нетрекерные варианты с громкостью. А так мне тоже очень понравилось. Вариантов по крупному 2:
1. Сгенерировать в памяти из одного семпла варианты с несколькими громкостями. Плюс - частота дискретизации не пострадает, свист не появится. Минус - нужно много памяти и ее может не хватить.
2. Вставить в основной цикл регулировки громкости. Плюс - не надо много памяти. Минус - частота дискретизации понизится, скорее всего придется переходить на ковокс.
Выложить исходники в принципе уже можно, но есть нюанс. У каждого варианта свои достоинства и недостатки, у последнего вот убрал из основного цикла проверку окончания семпла ради максимальной частоты. Скорее всего получится сделать проверку каждый 256й отсчет, тогда семплы надо будет маленько дорабатывать напильником. Или все же плюнуть на шим (примеры уже есть, побаловался и хватит) и сделать с ковоксом дубовый низкочастотный вариант. Пока думаю.
- - - Добавлено - - -
Что касается подбора семплов, то я, можно сказать, им не занимался, что лежало под фонарем, то и взял. По быстрому могу только поменять семпл мелодии на еще один из того же stma (других "нормальных" там нет, только барабаны и аккорды).
-
Я больше за таймер, хотя конечно ковокс — это ковокс. Что до семплов, для пруфа концепта уже достаточно. Делай релиз :)
-
Сообразил, как с минимальными потерями проверять окончание семпла. Частота понизится чуть-чуть, до 19231 Гц, и надо будет чтобы семпл заканчивался нулем в нечетной позиции (или двумя нулями).
Остается вопрос формата записи музыка. Арканоидный вариант устроит? Громкости оттуда почти не используются, только значения -1, которые трактуются как выключение канала/пауза.
-
Хорошо бы для каждой ноты иметь возможность задавать семпл.
-
Точно, сначала сам хотел, но в процессе забыл.
- - - Добавлено - - -
Пока такой план:
инструмент первого канала, высота ноты первого канала, инструмент второго канала, высота ноты второго канала, длительность
инструмент первого канала=0 - завершение мелодии
высота ноты канала=0 - пауза/молчание канала
- - - Добавлено - - -
Паттерны не планирую, но если придет музыкант и скажет - "нужны паттерны", то я попробую что-то изобразить.
-
Пауза подразумевает, что если там была нота, она продолжает звучать, пока все не вызвучит?
-
Нет, это будет молчание. Можно сделать отдельный идентификатор (например -1=0FFh) - повтор/сохранение предыдущей ноты.
-
Какое-то "пусто" надо иметь. Иначе не понятно, как вообще мелодию и бас делать.
-
Все же я не очень понял терминологию, "пусто"=пауза или повтор последней ноты? Пауза точно будет, повтор можно добавить, но особого смысла в нем нет, разве только для удобства записи.
Еще желательно договориться про таблицу частот. Смотрю семплы, например здесь. Практически все - до малой, первой или второй октавы. При частоте основного цикла 19.2 кГц, частоте семпла 8000 Гц и ноте C4 (до первой октавы) диапазон вверх получается до D#5 (ре-диез второй октавы) включительно. Ту же таблицу можно использовать для семплов C5 с частотой дискретизации 16000 Гц или C3 c частотой дискретизации 4000 Гц.
- - - Добавлено - - -
Возможно под "пусто" ты имеешь в виду вариант, когда не просто сохраняется высота ноты, но и воспроизведение семпла не начинается с начала, а продолжается с достигнутой в прошлый раз позиции. Сделать это можно, но вряд ли будет хорошо звучать, DMA нет и стыки будут слышны.