Важная информация

User Tag List

Страница 4 из 4 ПерваяПервая 1234
Показано с 31 по 36 из 36

Тема: AY:воспроизведение WAV-файла

  1. #31
    Veteran
    Регистрация
    08.05.2007
    Адрес
    Dnepropetrovsk
    Сообщений
    1,055
    Спасибо Благодарностей отдано 
    219
    Спасибо Благодарностей получено 
    47
    Поблагодарили
    31 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Для начала надо точнее определиться с задачей и изучить, что такое wav-файлы, что такое цифровой звук и импульсно-кодовая модуляция (ИКМ). Без этого будет трудно даже понять предложенные здесь решения.

    Навскидку, вот простая процедура воспроизведения куска цифровой записи звука на AY из памяти:

    Код:
    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
    При этом каждый проход цикла выполняется за 51 такт, следовательно при тактовой частоте 3.5МГц за одну секунду цикл выполнится 68627 раз, то есть частота дискретизации будет равна 68627. Это слишком большая частота, которая ведет к нерациональному расходу памяти. Поэтому цикл надо замедлять, вставляя в него команды NOP, каждая из которых кушает 4 такта.

    Я рекомендую использовать частоты дискретизации в районе 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.

  2. #31
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  3. #32
    Veteran Аватар для GriV
    Регистрация
    18.02.2005
    Адрес
    Набережные Челны
    Сообщений
    1,574
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Barmaley_m Посмотреть сообщение
    У Спектрума памяти слишком мало чтобы играть цифровой звук в записи сколько-нибудь долго. Несколько секунд - и все.
    Это не так. Но слушать цифровую музыку со спекка - я понимаю - никто и не собирается. Речь, видимо, про звуковые эффекты.
    Биты рулят лучше байтов, байты рулят шустрее!
    View, Звук, Цвет

  4. #33
    Veteran Аватар для GriV
    Регистрация
    18.02.2005
    Адрес
    Набережные Челны
    Сообщений
    1,574
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    3
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    в конце темы почитайте: http://zx.pk.ru/showthread.php?t=386
    Биты рулят лучше байтов, байты рулят шустрее!
    View, Звук, Цвет

  5. #34
    goblinish
    Гость

    По умолчанию

    вчитайтесь вы в тему. какие кодеки?
    специально для товарищей прапорщиков:

    существует алгоритм генерации музыки, код гонит файл в WAV,изначальный затык был в сжатом файле.
    если кого интересует - пробуйте, читайте.

  6. #35
    goblinish
    Гость

    По умолчанию

    Вернусь к теме, нашел на WoS Wav2AY-5.zip, найти не могу, дошли руки, попробовал Wav созданный с помощью алгоритма, вот и результат.
    Вложения Вложения
    • Тип файла: rar test.rar (3.3 Кб, Просмотров: 115)

  7. #36
    goblinish
    Гость

Страница 4 из 4 ПерваяПервая 1234

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. Ответов: 43
    Последнее: 17.08.2023, 18:30
  2. Чтение файла в tr-dos
    от hippiman в разделе Программирование
    Ответов: 14
    Последнее: 29.09.2011, 11:11
  3. воспроизведение AY+SOUNDRIVE возможно?
    от solegstar в разделе Музыка
    Ответов: 7
    Последнее: 25.05.2011, 09:19
  4. Воспроизведение YM на ATM 2+
    от POIND в разделе ATM
    Ответов: 8
    Последнее: 25.07.2005, 16:09

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •