Берёте оригинал музыки, запихиваете его в AY-emul, там переводите его в WAV, далее загружаете его, например, в Sound Forge, а там на выходе делаете его в OGG. Всё, именно так оригинал и играет. В вафке да, звучание другое.
Берёте оригинал музыки, запихиваете его в AY-emul, там переводите его в WAV, далее загружаете его, например, в Sound Forge, а там на выходе делаете его в OGG. Всё, именно так оригинал и играет. В вафке да, звучание другое.
Последний раз редактировалось GriV; 07.08.2012 в 14:48.
Может, мы обидели кого-то зря,
Сбросив пару лишних мегатонн,
И горит зелёным пламенем земля,
Там, где был когда-то Пентагон!..
Profi-576 v3.2/AY-3-8912A GI/FDD-5.25'
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Вопрос: как воспроизвести WAV на аигрике. Ты знаешь, как проиграть WAV на аигрике?
Последний раз редактировалось GriV; 07.08.2012 в 14:52.
ТС, сделай простой тест. загрузи в sound forge нужный звук. законверть его в 8-бит моно. сохрани как RAW беззнаковый.
напиши программку, которая будет брать байт из этого файла, сдвигать его вправо на 4 бита (чтобы старшие 4 бита в итоге были =0) и выводить в регистр громкости ау. и это в цикле для каждого байта.
всё! услышишь звук - полдела сделано. чтобы было более лучше - надо найти табличку, по которой байт конвертится в 4 бита (не тупо сдвигом как здесь).
лолв zx-format 8 статья про это самое, даже с табличкой! угадайте, блин, чья
))
Последний раз редактировалось GriV; 07.08.2012 в 14:55.
Пользуйтесь поиском на форуме:
http://zx.pk.ru/showthread.php?t=13526
и списком рекомендуемых для ознакомления тем:
http://zx.pk.ru/showthread.php?t=5335
Плеер по MCC (middle channel correction) есть в Basil Demo (в приложении к ZX-Guide 2.5 trash) и в Born Dead #0G.
Для начала надо точнее определиться с задачей и изучить, что такое wav-файлы, что такое цифровой звук и импульсно-кодовая модуляция (ИКМ). Без этого будет трудно даже понять предложенные здесь решения.
Навскидку, вот простая процедура воспроизведения куска цифровой записи звука на AY из памяти:
При этом каждый проход цикла выполняется за 51 такт, следовательно при тактовой частоте 3.5МГц за одну секунду цикл выполнится 68627 раз, то есть частота дискретизации будет равна 68627. Это слишком большая частота, которая ведет к нерациональному расходу памяти. Поэтому цикл надо замедлять, вставляя в него команды NOP, каждая из которых кушает 4 такта.Код:LD BC,#FFFD LD A,7 OUT (C),A ;Выбрать регистр управления LD A,#3F LD B,#BF OUT (C),A ;Отключить генерацию тона и шума на всех каналах LD B,#FF LD A,9 OUT (C),A ;Выбрать регистр громкости канала B LD B,#BF LD HL,sound_start LD DE,sound_length SOUNDLOOP: LD A,(HL) ;7 OUT (C),A ;12 INC HL ;6 DEC DE ;6 LD A,D ;4 OR E ;4 JR NZ,SOUNDLOOP ;12/7
Я рекомендую использовать частоты дискретизации в районе 10кГц, что обеспечивает воспроизведение звуков с частотами до 5кГц при умеренном расходе памяти. Как только определится частота дискретизации, необходимо подготовить звуковой файл. Для этого:
1) загружаем его в любой звуковой редактор
2) передискретизируем его (Resample) на требуемую частоту дискретизации
3) выполняем другую обработку (фильтрацию, усиление). Нужно стремиться к возможно более полному использованию динамического диапазона, ведь у AY ЦАП имеет разрядность всего 4 бит. Есть смысл использовать компрессию динамического диапазона и усилить сигнал так, чтобы загнать его немного в насыщение (Clipping). Все равно шум квантования будет сильный, поэтому надо стремиться, чтобы сохранялся приемлемый баланс между шумом квантования и шумом от насыщения. Фильтрация звука необходима для того, чтобы убрать из него те частоты, которые не слышно или ими можно пожертвовать. Тем самым уменьшится энергия сигнала и его амплитуда, что позволит усилить его дополнительно без искажений от насыщения.
После обработки сохраняем файл в формат wav или raw (без заголовка) и без компрессии. Никаких MP3, никаких OGG, никаких ADPCM. Формат должен быть PCM, 8 или 16 бит.
Сохраненный файл необходимо обработать программой, которая удалит из него заголовок (если он есть) и сделает данные 4-битными. После этого его можно проигрывать программой, которую я привел выше.
Ну и настоятельно рекомендуется изучение основ цифровой обработки сигналов. Мою программу можно усовершенствовать, чтобы она более рационально использовала память. Ведь из каждых 8 бит памяти она использует только 4, таким образом можно будет повысить длительность проигрываемого файла в 2 раза! Но все равно будет мало. У Спектрума памяти слишком мало чтобы играть цифровой звук в записи сколько-нибудь долго. Несколько секунд - и все.
Последний раз редактировалось Barmaley_m; 09.08.2012 в 23:27.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)