|
|
|
|
Здесь затронули данную тему. Продолжаем. IDiod: динамический диапазон оркестра ужимают Кто это Вам такое сказал? Это попсню ужимают, а симфонический оркестр как-раз славится своим большим динамическим диапазоном. а потом результат поделить Можно, конечно, и так, но процедура получится более длинной. Собственно я это к тому, что 4-битный источник опорного напряжения, вряд ли, в данном случае, подойдёт в качестве ЦАП. иногда используют такой трюк Получим "цифровой дисторшн". Для драм-модуля, наверное, "прокатит", но, для воспроизведения синуса, вряд ли. AnSi: можно недопускать "молчащие" голоса. У меня это было реализовано, в самой начальной версии (то, про что я говорил, как о многочастотных посылках). Для тон-генератора звучит отвратительно. Для сэмплера не знаю, но полагаю, что так же.
|
|
|
Теперь о самом синусе. Я тут прикинул. Если записывать самую нижнюю октаву, а для других октав, пропускать "лишние" отсчёты, то для одной ноты понадобится отсчётов: Fдискретизации / Fноты. При 22,050 KHz, и 8-ми битного квантования (что, согласитесь, мягко говоря, не очень качественно), для ноты До понадобится: 22 050 / 8,175798916 ~ 2 697 отсчётов. Даже, если выкинуть первые две октавы, получится около 675 отсчётов. А их надо 12 штук... Можно, конечно, записАть верхнюю октаву, а при более низких, заполнять промежутки усреднёнными значениями, но, по-моему, понадобится довольно сложный алгоритм. Далее, по поводу "сборки" звуковых данных, для прошивки. В 7-м номере, за 2005 год, нашёл статью "Речевой информатор". Там автор прилагает программу, которая, из RAWов собирает прошивку. В начале помещается информация о фрагментах (адреса в массиве, названия). Но вот, как там эти адреса шифруются, не сказано. Пытался сам понять. Пока не понял. Может кто разобралсязобрался, или знает другую программу? |
|
|
Почему тема раздваиваится? Причём в одном разделе. ИМХО преимущества волновых таблиц - сэмплов, не в основных гармониках (легко поддающихся FM синтезированию), а в реально записанных с источника звука. Чем шире база сэмплов, тем лучше. Здесь экономить - грех. PS Сам юзаю древнюю как кал археоптерикса AWE64, на которой предусмотрены слоты расширения для этих ...64. Уж не знаю, до какой цифры предполагалось расширить... |
|
|
если делать "звонок"(не профессиональный инструмент), то достаточно, как было уже сказано , записать одну таблицу например на 256(можно больше) значений, а частоту ноты(любой) вычислять - легко и что важно в данном примменении -быстро. При таблице 256значений в наихудшем варианте получится около 1% гармоник, а при 8битном ЦАПе это сопоставимо с младшим разрядом. Зачем забивать таблицу порожняком(одинаковыми цифрами). промежуточные значения вставятся сами после аналогового фильтра. если писать чистый синус и позволяет скорость, то можно записать четверть таблицы. |
|
|
AnSi: на 256(можно больше) значений В том-то и дело, что и 256 - довольно большое значение. Но оставим пока эту проблему в стороне, обратимся к другой. То, что Вы называете "порожняком", есть значения нот октавы. Я предлагаю так сделать, поскольку плохо представляю, как получить корень двеннадцатой степени. Вообще же, как уже говорил ранее, обычно делают как-раз по Вашему методу. Т.е. записывают сэмпл для каждой октавы, и "гоняют" его, по октаве, изменением "скорости воспроизведения". Я же предлагаю записАть таблицу синусов для самой низкой октавы, и "гонять" их по всем октавам, также изменением "скорости". Просто, в этом случае, делить надо на 2, что гораздо удобнее. Безусловно, если кто прояснит ситуацию, с делением на корень двеннадцатой степени из двух, то можно будет сэкономить кучу места. Промежуточные же значения сами не вставятся, поскольку частота ЦАПа - постоянна, и в каждый отсчёт туда надо будет что-то записывать. Но, как рассчитать промежуточные значения (опять-таки, при умножении на два), я примерно представляю. Кстати, о выходном фильтре. Так понимаю, если собираемся использовать ШИМ, на выходе надо поставить "амплитудный детектор". Как его рассчитать? По поводу четверти таблицы. Я посмотрел сэмпл синуса, с уровнем 0 дебилов, сгенерированный в СоундФорже. Нулевой уровень там - 80h, а значение 00h не наблюдается вовсе (что, кстати, можно использовать, как "флаг" окончания сэмпла).
|
|
|
И всё-таки, как подготовить прошивку с сэмплами? Пока речь идёт о синусе, можно его и вручную записывать (кстати, кто подскажет удобный хекс-редактор?). Но, когда встанет вопрос о сэмплах... Даже, если удастся понять адресацию, в в/у программе, то, насколько понял, никакой информации о фазе сэмпла она не содержит. Опять-таки, если речь идёт о драм-аппарате, или о том же речевом информаторе, там это не надо. А если идёт о нормальном сэмплере, даже хотя бы об упоминавшейся "музыкальной шкатулке", без этой информации не обойтись. |
|
|
По ходу вопрос может кто занимался воспроизведением *.mid файлов ? |
|
|
Diko: занимался воспроизведением В каком смысле? К ранее упомянутому тон-генератору, я подцепил миди-интерфейс и воспроизводил ноты через него. Только прошу, если что-нибудь хотите обсудить по этой теме, создайте отдельную ветку. |
|
|
По ходу вопрос может кто занимался воспроизведением *.mid файлов ? |
|
|
уп-ссс, глючки. ОК. Gregory спасибо.
|
|
|
|
|