LINUX.ORG.RU

Немного об аппаратном MIDI на Creative Emu10k

 , ,


0

1

Чип Emu10000 (или Emu10k) пришёл на смену Emu8000 (Emu8k). На Emu10k выпускались Live!, Audigy, Audigy 2 - и вообще всё, что было до Creative X-Fi, который использует более новый чип - Emu20k. Чип Emu10k превосходно поддерживается Linux-ом, что и стало поводом для написания этого поста! Речь пойдёт прежде всего об аппаратном MIDI - сейчас мы привыкли запускать Timidity++, потому что на «интеграшках» доступно только программное

Emu8k поддерживается в Linux не менее хорошо, чем Emu10k - это AWE32 и AWE64. А также даже несколько моделей Sound Blaster 32 (не AWE32) тоже использовали чип Emu8k, воспроизводя хорошее MIDI, но для PCM-звука использовался более старый чип, нежели в AWE32... А вот Emu20k (X-Fi) работает плохо (изменилось ли что-нибудь с ними за последние 10 лет? Напишите в комменты)

Emu10K это:

  • Окончательный переход на Plug'n'Play (AWE32 имел 2 модели с ним, и 2 модели без)
  • Окончательный переход на PCI
    • Отсутствие ISA DMA создаёт проблемы для DOS-гейминга, о чём можно прочитать по этой ссылке. А в этом видео, начиная с 35 минуты, посмотреть как это работает (спойлер: карточка на IRQ 10 эмулирует SB16 на IRQ 5, причём работает FM-синтез и WaveTable на выбор пользователя)
  • На AWE32 было 1 Мб ROM-памяти для сэмплов, и 512 Кб RAM для пользовательских. А также на звуковой карте было два разъёма для модулей памяти, позволяющих вставить ещё максимум 28 Мб
  • На Emu10k памяти для сэмплов нет совсем. Используется системная. В Windows-утилите можно выставить любое количество памяти под сэмплы. При этом утилита предупреждает, если выставлено слишком много (например если глупый юзер выставил 32 Мб из 64 возможных - времена были такие, что полугигабайтные sf2-файлы подгрузить было нельзя)
  • В Linux Emu8k играет звук «из коробки», потому что звуки вшиты в память на звуковой карте. А Linux Emu10k воспроизводит тишину - в документации предлагается взять файл 8MBGMSFX.SF2 с идущего в комплекте с картой диска с драйверами для Windows
  • Скажу также про PCM-звук. Emu10k поддерживает частоту дискретизации 96k в Windows, и 48k в Linux
  • А ещё, если у вас подгружен модуль ядра snd-oss-mixer, то работает микширование звука при использовании OSS! Проверить можно, запустив музыку в плеере, а затем линуксовых Героев 3 (выпущенных в 1999 задолго до ALSA). На «интеграшках» это не сработает

Когда я вставил в свой компьютер Emu10k, openSUSE Linux её увидел. Я добавил эту карточку в YAST2, и он предложил мне установить утилиту awesfx. Утилита находится в OBS-репозитории multimedia:libs. Затем нужно выполнить два действия:

  1. Подгрузить при помощи этой утилиты - файл 8MBGMSFX.SF2
  2. Добавить в автозагрузку модулей - snd_emu10k1_synth (инфа отсюда)

Автозагрузка модулей в openSUSE прописывается здесь, в Gentoo - прописывается в файл /etc/conf.d/modules. Было бы здорово, если бы Ubuntu научилась всё скачивать и прописывать при помощи Jockey (Менеджер проприетарных драйверов)

Скачать файл 8MBGMSFX.SF2 можно с сайта ALSA, а подгружать командой:

sfxload -D 0 /opt/Creative/WaveTable/8MBGMSFX.SF2

В openSUSE файл можно прописать в той же утилите, что и на скриншоте, в разделе Hardware/Soundcard. Там же проверьте, что включен Sequencer ALSA и выключен Sequencer OSS

Теперь Dosbox будет воспроизводить MIDI без дополнительной настройки. Звук а-ля SB16, который вы слышали раньше, сменится на WaveTable. Кстати, в Doom надо выставлять General MIDI, а не Sound Blaster AWE32

Перемещено Shaman007 из talks

Ответ на: комментарий от Shaman007

Я не застал то время, поэтому для меня это было не очевидно, и пришлось разбираться. Кстати, а ты знаешь каких-нибудь нативных Linux-игр, которые используют MIDI? Например hheretic (open source Heretic) зазвучал у меня только после запуска Timidity++

ZenitharChampion ★★★★★ ()
Ответ на: комментарий от tiinn

DOOM для DOS хочет ISA DMA - эта технология нужна, чтобы воспроизводить музыку, не нагружая процессор. В PCI-карточках этой технологии нет, поэтому DOS-гейминг на Live! проблемный. И тем не менее, её можно поюзать из DOS! Creative выпустила драйвер, с которым карточка работает в DOS в режиме SB16 вместо AWE32 (но при этом умеет WaveTable)

Сложно, блин. Я в то время играл из Win98. Doom работал

ZenitharChampion ★★★★★ ()
Ответ на: комментарий от Shaman007

Я попробовал запустить Millenium Digger от Alawar. В консоль сыпятся FIXME: winmm (это либа для работы с MIDI под виндой), но звук работает. Вот только сама игра гонит: есть спрайты, но нет фонов

Если не трудно, перенеси тему в раздел Linux-hardware

ZenitharChampion ★★★★★ ()
Ответ на: комментарий от ZenitharChampion

Сложно, блин. Я в то время играл из Win98

Именно! Из-под Win98 Live! умел притворяться ISAшной карточкой, и всё работало. Вот нативного ДОСовского драйвера для Live! у меня нет :(. Впрочем, в кухонном компе у меня Creative Vibra 16

tiinn ★★ ()
Ответ на: комментарий от tiinn

У меня тоже нет. Надо поискать!

Vibra 16 - он выдаёт звук уровня SB16? В этом видео (я перемотал на 12:30, там сразу Doom) сравнивают звучание SB16 и AWE64 - послушай сам и реши, улучшит ли Live! звук на твоём DOS-компе... Также в сравнении участвует MT-32 - автор даёт все необходимые пояснения, что эти MIDI для него не предназначены

ZenitharChampion ★★★★★ ()

Emu10k + linux

Emu10k поддерживает частоту дискретизации 96k в Windows, и 48k в Linux

Вы не правы. Аппаратно звуковые карты на базе Emu10k поддерживают только частоту дискретизации 48kHz. Так как в них стоят говнокодеки SigmaTel STAC97. А для возможности воспроизведения файлов с частотой до 192kHz происходит ресемплирование в 48kHz. В Linux это можно поручить библиотеке ресемплирования media-libs/soxr. Возможно, в Windows это происходит на аппаратном уровне. Так что, заявленное производителем качество воспроизведение в формате 192/24 - это полнейшее фуфло. У Audigy2 даже нет полноценной 24-битной разрядности. Отрывок из даташита SigmaTel STAC9750,51:

«Full duplex stereo 18-bit ADCs and 20-bit DACs».

Wehrmacht_Rover ()

У меня была Turtle Beach Tropez Plus с тёплым ламповым аппаратным WaveTable MIDI, который был недоступен в линуксах.

Однако, время идёт. И на смену

8MB

звуковым шрифтам приходят звуковые шрифты почти на гигабайт:

975M Compifont_13082016.sf2

saahriktu ★★★★★ ()

какие 48к? я точно помню под линуксом 96к, Хотя, может это было на 16 битах? Вот этого не помню.

А появились после Emu10k карточки с большой памятью для мидий? Или оно так и померло?

Deleted ()