PDA

Просмотр полной версии : О звуковых чипах



Romanich
17.05.2007, 08:15
В общем благодаря замечательному человеку CHRV я стал (да и многие из нас тоже) обладателем Ямаховских чипов. Рассмотрим по-подробнее:

1) YM2149 - SSG, есть очень много тем, есть редакторы. Но он как-то мне быстро наскучил.

2) YM2612 - OPN2 FM, темы только с SEGA Genesis. Другого я ничё не видел! Темы в неблагородных форматах - сп*зженные с эмулей SEGA.
Звучит прикольно, только качаество звука очень хромает. Ни разу не видел чего-то отличного от SEGA в благородном формате. От того и надоел.

3) YM2203 -OPN2 FM + SSG. Молодое развивающееся направление. МАЛО ТРЕКОВ!!!!!!!

4) YMF721 - OPL3 + MPU401. Вот ЭТО(!!!) я считаю классным направлением!!! ;) Куча музыки с DOS-игр. Да и FM King с Adlib Tracker'ом не подкачали - КУЧА тем! - дай Бог чтоб так TFM-maker так лихо пошёл тоже! :v2_thumb:

В общем интересно узнать Ваше мнение по чипам и их возможностям.
Плюс прошу помочь:

1) Adlib-часть: Подробнее о форматах файлов: d00,a2m,a2t,dmo,dtm,rad
2) MPU401-часть: Как декодировать MIDI SMF0-файлы. Я хочу засылать его в MPU401 синтезатор.
3) Каким алгоритмом разжимаются компресованные файлы (а то Adlib Tracker жмёт на выходе файлы)

Весь инет перерыл ничего исчерпывающего по 1) и 2) не нашёл :(

CHRV
17.05.2007, 09:33
2) MPU401-часть: Как декодировать MIDI SMF0-файлы. Я хочу засылать его в MPU401 синтезатор.
Что за SMF0?

Romanich
17.05.2007, 09:34
Что за SMF0?
Sample Midi Format Layer 0 - самый древний формат миди-файлов. Поддерживается мобилами и VS1003

CHRV
17.05.2007, 10:55
Sample Midi Format Layer 0 - самый древний формат миди-файлов. Поддерживается мобилами и VS1003

Дома посмотрю, может есть чего!

736b
17.05.2007, 15:02
3) Каким алгоритмом разжимаются компресованные файлы (а то Adlib Tracker жмёт на выходе файлы)

В комплекте с AdLib Tracker идёт полное описание "родных" форматов a2* и исходники плеера на паскале.

Romanich
18.05.2007, 01:39
В комплекте с AdLib Tracker идёт полное описание "родных" форматов a2* и исходники плеера на паскале.

Кстати да! Заметил вчера - TECHINFO.doc называется. Короче Adlib tracker на каждое своё расширение (a2m,a2t,...) имеет десяток версий :eek_std: Естественно под ВСЁ декодеры писать мне чё-то не хочеца! Мне больше приглянулись форматы RAW (гыыы... просто дамп регистров + задержки) и RAD - как простенький формат для хранения трекерной музыки (заголовок, данные инструментов, последовательность инструентов с параметрами и точки зацикливания). Хорошо что не пожат. Adlib Trackerовский a2replay.pas конечно всё содержит - но его перелопачивать для микроконтроллера как-то неподъёмно (вот один из недостатков монструозных шаблонов). Тем более мне осто*б*нело с паскаля на си переводить!

Поэтому вижу выход в конверсии форматов в RAD или RAW. Кто-нибудь может назвать утилиты-конвертеры одного формата в другие?

На счёт MPU401. VS1003 устроена так что можно сразу весь миди-файл забивать (SMF0), а YMF721 более на низком уровне - сэмпл можно вызвать записью в единицы регистров. Кто укажет линк или поделится сорцами - как засылать поток миди-файла в MPU401? :v2_conf2:

Добавлено через 3 часа 8 минут
Ещё на счет MPU401. Есть такая карточка от Cmedia называется CMI8738 -для win98 дрова идут с поддержкой "DOS MPU401 Emulator". Ради шалости в то время стал долбить рандом в порты $330 и $331 - каково было удивление, что из колонок начали доноситься качественные waveTable сэмплы!!! Очень хорошая штука :v2_thumb:
Так вот на YMF721 сэмплы почти один-в один по звучанию как на ПЦ :)
16bit 44100 Stereo - очень качественно! Никаких шумов в НЧ-тракте по сравнению с тем же YM2612 :smile:

Дело осталось за малым - разабраться с МИДИ-файлами:v2_conf2:

Sonic
18.05.2007, 09:18
К чему чипы цеплял? Неужели к Спеку?
OPL3 при грамотном обращении рулит адназначна. Помнится в старые добрые времена у одного моего друга был MSX и он к нему цепанул FM-PAC. Я к нему в гости ходил музоны слушать, изошел слюной, соплями и прочим... Тогда у меня был PC Pentium-100 с Virba16, так вот, FM там _ТАК КЛАССНО_ не звучало.
ИМХО Спеку оно тоже не помешало бы...

Romanich
18.05.2007, 09:21
К чему чипы цеплял? Неужели к Спеку?
OPL3 при грамотном обращении рулит адназначна.

Принципиально неважно к чему цеплять - шины стандартные.
D0-D7, ~CS OPL,MPU, ~WR,~RD, Busy, IRQ

Я цеплял чип к контроллеру

Romanich
20.05.2007, 12:47
Написал свою грабилку OPL-регистров!
Существующую грабилку нашёл только одну RAC - но она ребутит комп при запуске (??? !!!) и не работает ес-но.

Получил дамп регистров. Написал свой простейший плеер.
Пока только с RDosPlayer'а d00-файлы грабятся отлично.
И с Duke3D.exe тоже

В общем плоды в аттаче.

Может кто-нибудь чем-нибудь поможет?
На данный момент интересуют d00- и rad- файлы (описание форматов, сорцы декодеров). И к MID- тоже равнодушен не останусь ;)

OPL рулит однозначно!!! 20МБ Adlib музыки скачал

736b
20.05.2007, 13:48
Может http://adplug.sourceforge.net/ чем то поможет?

Romanich
21.05.2007, 04:55
И всё-таки я понял почему всё грабится некорректно, кроме d00-формата!
В обработчике прерывания(таймер) одни и те же регистры в группе меняются более чем 1 раз! Поэтому грабилось не всё :(

А d00-формат за каждый тик таймера меняет один раз всю группу регистров - от того грабится превосходно...

Счас я совершенствую грабилку - обработчик прерывания трекера вызываю в программе грабилки, а на таймер вешаю регистровый сканер. Плюс таймер разогнал (теперь не 18Гц а намного более) - для частого сканирования...

Написал конвертилку(см. аттач ниже) - конвертит мои bin-файлы в стандартный Adlib'овский raw - теперь на винампе можно слушать :)

Romanich
23.05.2007, 02:08
Пока сграбить что-то отличное от d00 не получается! - похоже, что это единственный формат при проигрывании которого, плееры за прерывание таймера один(!) раз меняют группу регистров OPL (9 инструментов).

Обработчик прерывания(она же процедура по FAR CALL) вызывался в программе в цикле. А на таймер навешал свой обработчик (сканер регистров) и разогнал таймер (делитель до 1024). При сканировании регистров возможна следующая ситуация:

В Port[$388] уже занеслось значение регистра OPL, а в Port[$389] - данные - не занеслись. Тут вызывается обработчик прерывания(сканер) - и читает все регистры. НО! Для того чтоб прочитать какой-то регистр - надо его указать(читай-записать!) в Port[$388] далее из Port[$389] читается значение того самого регистра. Получайтся что при выходе из прерывания нужно восстанавливать регистр и его значение, которые были ДО входа в прерывание!!! Порт $389 - доступен по чтению и записи, а порт $388 при записи обращается к индексу регистра, а при чтении(!) - возвращается СТАТУСНЫЙ РЕГИСТР!!!

Вопрос - что делать??? Как программно сохранять регистр и его значение ДО СКАНИРОВАНИЯ?

Если решения нет - то прийдётся довольствоваться граблением только d00-файлов...

Romanich
24.05.2007, 02:09
В аттаче ПРЕД-релиз грабилки!!! И мануал к ней. И ещё RdosPlay
Грабит нормально d00

Просьба сообщить о косяках если таковые будут!

P.S. Под пеньками может и не заработать (в релизе - обязательно заработает!) Испытывалось на амд Дюрон @750

Romanich
24.05.2007, 09:34
ТОЛЬКО ПОЖАЛУЙСТА, НЕ ОТМАЛЧИВАЙТЕСЬ, КАЧАЯ АТТАЧИ! МНЕ-Ж ТОЖЕ ИНТЕРЕСНО ВАШЕ МНЕНИЕ И ПОЖЕЛАНИЯ И ПОМОЩЬ!!!

Я конечно понимаю, что тема "Другие компьютеры" засунута глубоко в Ж... но тем не менее- уделите плиз, внимание ;)

Возникла идея - а что если перехватить обращение к портам из-под форточек? какой драйвер или апи-функция это могут сделать?

DOS-программа стучится к портам (которые идут на VXD), а вторая отслеживает эти "порты" и пишет в файл...

736b
24.05.2007, 20:46
В исходниках adplug нашёл отладочную возможность создания дампа регистров. Дамп я получил, но что с ним делать дальше я не знаю. Смотри аттач.

Romanich
25.05.2007, 04:39
В исходниках adplug нашёл отладочную возможность создания дампа регистров. Дамп я получил, но что с ним делать дальше я не знаю. Смотри аттач.
Прийду домой и буду разбираца:v2_conf2:

Добавлено через 4 часа 22 минуты
Кстати ещё о DOS-звуковухах...
поставил на XP себе VDMSound
Короче штука перехватывает обращение к:
1) MPU401 портам $330
2) Adlib портам $388
3) И SB портам $220

в настройках ini-файла можно задать порты, дма, прерывания и качество эмуляции! Работает! Правда эмуляция желает лучшего и подтормаживает иногда...

736b
25.05.2007, 14:45
Помедитировал немного и понял что это не что-то записывается. Вот куски из исходников:

// создаётся файл и пишется заголовок из 6 байт
#ifdef OPL_OUTPUT_LOG
if(!opl_dbg_fp)
{
opl_dbg_fp = fopen("opllog.opl","wb");
opl_dbg_maxchip = 0;
}
if(opl_dbg_fp)
{
opl_dbg_opl[opl_dbg_maxchip] = OPL;
fprintf(opl_dbg_fp,"%c%c%c%c%c%c",0x00+opl_dbg_maxchip,
type,
clock&0xff,
(clock/0x100)&0xff,
(clock/0x10000)&0xff,
(clock/0x1000000)&0xff);
opl_dbg_maxchip++;
}
#endif

...

// пишутся данные 3 байта
#ifdef OPL_OUTPUT_LOG
if(opl_dbg_fp)
{
for(opl_dbg_chip=0;opl_dbg_chip<opl_dbg_maxchip;opl_dbg_chip++)
if( opl_dbg_opl[opl_dbg_chip] == OPL) break;
fprintf(opl_dbg_fp,"%c%c%c",0x20+opl_dbg_chip,length&0xff,length/256);
}
#endif

Тем не менее считаю что это вполне реализуемо - запатчить adplug на предмет записи дампа в нормальном формате. Функция записи в регистр есть, не понял только где мне задержки брать.
Ещё, вроде, есть патченая версия эмулятора DosBox с возможностью записи в .DRO файл. Тоже вариант.

Добавлено через 1 минуту
VDMSound штука хорошая. Когда под виндой сидел игрался.

736b
27.05.2007, 03:15
Практически сделал на базе adplug, конвертор в raw. В аттаче результат работы. Правда пришлось руками в raw прописать clock, но думаю разберусь и с этим.
Если такая софтина (конвертор * в raw) нужна то могу это дело довести до победного, но что-бы сделать это быстрее хотелось бы знать из каких форматов предполагаеся конвертить. adplug их знает много, причём чуствую большинство из них никому не нужная экзотика. Разом все поддержать не получается, приходится с классом каждого ковырятся.

Romanich
28.05.2007, 05:47
Ура!!! Получилось!!!
Выкладываю аттач с отконверченными *.rad и *.cal - в формат *.raw - ну просто идеально!!! Зацените ;)

Теперь моя программа не является грабилкой, скорее всего - это ЛОГГЕР!!! Я перехватил прерывание системного таймера и нашёл там процедуру записи в OPL регистры!!! Немножко её модифицировал - добавил туда int 0xFF ($CD $FF -2 байта), которое тырит регистры al и ah (OPL Index, Data) - тоесть вклинил туда своего ИНТРУДЕРА:v2_thumb: И не недо больше сканировать каждый раз ВСЕ регистры OPL.
При каждом вызове функции записи в OPL-регистры прерывание-интрудер снимает текущий регистр и его значения,не читая порты OPL!!!

Свой OPLLogger зарелизю чуть позже ;) И мануал с принципом действия выложу тоже... работать будет на пару с RdosPlay.exe v0.21b

P.S. Выложил фотки своей ISA-шной Ямаховской карточки
P.P.S 736b, результаты посмотрю дома! Спасибо за поддержку :)

736b
28.05.2007, 08:03
Неплохо. Слегка извратно конечно, но главное что-бы задачу решало. Интересно только откуда ты получаешь значение clock и задержки?
Свою прогу я тогда особо упиратся делать не буду. Мне то оно вообщем-то не надо :)

Romanich
28.05.2007, 09:05
Неплохо. Слегка извратно конечно, но главное что-бы задачу решало.
Почему извратно? всё чисто - по завершении работы всё восстанавливается!



Интересно только откуда ты получаешь значение clock и задержки?

Пока пишу ручками, но потом сделаю по чтению регистров таймера (Port $40..$43)



Свою прогу я тогда особо упиратся делать не буду. Мне то оно вообщем-то не надо :)
А жаль! Она-б тоже пригодилась - можно ЛОГать треки с точным сначалом и концом...

736b
28.05.2007, 15:10
Почему извратно? всё чисто - по завершении работы всё восстанавливается!

Первое это то что надо ждать полное время проигрывания трека. Они же длинные.
Во вторых это то что под ДОСом и только с реальной железкой я так понял. Если бы не Dosbox, то мне под Linux вообще бы никак.
В третьих это масса ручного труда. Массово кучу треков не сконвертить.



А жаль! Она-б тоже пригодилась - можно ЛОГать треки с точным сначалом и концом...
Нет, раз так постараюсь доделать конечно.

Romanich
29.05.2007, 04:10
Нет, раз так постараюсь доделать конечно.
Сообщаю форматы файлов:
в первую голову:
rad,a2m,a2t,d00
во вторую:
sdb,sqx,cal,dmo,dtm

Возился вчера с rdosplayer'ом - оказалось что во время его работы - он полностью заменяет обработчик прерывания клавиатуры (тоесть без вызова старого) - хреново - вкл/выкл. прерывания таймера не сделаешь :( - для отлова начала и конца темы...

Постараюсь поковырять сам rdosplay. Он зажат pklite. Tron его декомпрессует - но без релокэйшенов - в итоге работает, но шрифт VGA не утащил... Это я к тому, что первый сэмпл темы всё-таки не в обработчике делается :( и он не утаскивается....

Протрахался вчера с системным таймером. При чтении возвращается лажа, а не делитель. Тоесть:


mov al,$36 ; или $20, $00
out $43,al
cli
in al,$40
mov ah,al
in al,$40
xchg ah,al
sti


ax - содержит мусор, а не делитель. Кроме того, таймер после чтения парализуется, если в него не запишешь... Доки на регистры таймера не помогли :(

Romanich
31.05.2007, 02:06
Наконец-то поставил себе программу записи с линейного входа...

В аттаче звуки МИДИ-синтезатора YMF721 и софтварного(VDMSound)

Сэмплы реального чипа и софтварщины очень различаются, хотя оба - General Midi и та же последовательность сэмплов. ИМХО реальный чип звучит круче :)

На шумы в начале оцифровок не обращать внимания! Это у меня AC97 шумит...

Romanich
31.05.2007, 02:08
Далее звук YMF721 FM-синтезатора OPL3 и программа тестирующая MPU401 на ПЦ

Romanich
31.05.2007, 04:13
Вопрос к знающим:
в даташите на YMF721 даны регистры MPU401 и WaveTable синтезатора.

возникло недоразумение - это разные вещи или одно и тоже(тоесть - обращение к тем-же сэмплам в ПЗУ через разные регистры)?

Romanich
21.08.2007, 08:33
Вопрос к знающим:
в даташите на YMF721 даны регистры MPU401 и WaveTable синтезатора.

возникло недоразумение - это разные вещи или одно и тоже(тоесть - обращение к тем-же сэмплам в ПЗУ через разные регистры)?

Все недоразумения сняты! Читаем тутЪ:
http://www.nedopc.org/forum/viewtopic.php?t=8822

Mike
30.08.2007, 08:57
Наконец-то поставил себе программу записи с линейного входа...

В аттаче звуки МИДИ-синтезатора YMF721 и софтварного(VDMSound)

Сэмплы реального чипа и софтварщины очень различаются, хотя оба - General Midi и та же последовательность сэмплов. ИМХО реальный чип звучит круче :)

На шумы в начале оцифровок не обращать внимания! Это у меня AC97 шумит...

Романыч, General Midi - это стандарт набора инструментов (НО НЕ ИХ СЕМПЛОВ !!!), контроллеров и управления на уровне нот.
Каждое GM-решение звучит по своему, у всех разный набор инструментов. Возьми тот же несчастный sb live, поищи SF2-банки к нему, с каждым банком один и тот же midi-файл звучит совершенно иначе.
Любая тема под GM пишется на конкретном девайсе и звучит корректно только на таком же девайсе с таким же набором семплов или хотя бы, с очень похожем набором. Самый простой способ добиться такого же звучания - прилагать к midi-файлу семпл-банк на котором он писался. Вроде даже sb live (видимо, при условии пользования родным плейером) поддерживал автоматическую загрузку sf2-банка при нахождении такового в одной папке с midi-файлом и одинаковым именем (theme.mid + theme.sf2), что бы играть этот midi-файл этим банком. Т.е. получается нечто вроде трекерного формата, только ноты и семплы в отдельных файлах.

Romanich
12.09.2007, 09:31
....Самый простой способ добиться такого же звучания - прилагать к midi-файлу семпл-банк на котором он писался...

Спасибо за информацию!

Только хде взять банк именно для YMF721?
Из ПЗУ его что-ли вычитать ? ;)

fan
12.09.2007, 14:55
Сомневаюсь что там есть ПЗУ , звучки качаются через шину .
Насколько мне известно только для YMF-724/744/754 была приблуда для создания и смены банков .
Лучший вариан нарыть чёнить из оперы ES1373 и т.д. , стоит копейки и супортит банки типа .sf2 (главное что есть человечьи редакторы банков и описания кним).

Mike
12.09.2007, 17:40
Спасибо за информацию!

Только хде взять банк именно для YMF721?
Из ПЗУ его что-ли вычитать ? ;)

На сколько я понял, этот чип уже содержит намертво зашитый банк. Значит именно под него надо писать и никак иначе. Либо искать банк, выдранный из YMF721 или наоборот, использованный в YMF721 и на нём писать.

Добавлено через 4 минуты

Сомневаюсь что там есть ПЗУ , звучки качаются через шину .
Насколько мне известно только для YMF-724/744/754 была приблуда для создания и смены банков .
Лучший вариан нарыть чёнить из оперы ES1373 и т.д. , стоит копейки и супортит банки типа .sf2 (главное что есть человечьи редакторы банков и описания кним).

Я давненько смотрел спецификацию на YMF721, но вроде там указывалось наличие 1 или 2 Мб ПЗУ. ES1373 - это PCI - чип, естественно он из RAM семплы юзает и явно через DMA. Если он вообще умеет работать семплплейером, а то ведь, там и софтварный мог быть, от креатива. :rolleyes:
Это E-MU 8000 являлся семплером, при том весьма не плохим, он и ставился на AWE32/64, а познее перетёк в E-MU 10K для лайвов с аудиджами.

Romanich
13.09.2007, 04:40
В соём железе я ориентируюсь на YMF721, поэтому других таких подобных чипов не предлагать!

а семплы именно с YMF721 мне нужны для того, чтоб на ПЦ сделать порт для Advanced MicroMachine

это нужно для разработки ПО на ПЦ, а потом отлаженные зарелизенные сорцы "шить" на Микромашину...

кстати в винде не прокатывает такое:

compose.mid и compose.sf2 -Winamp всё равно юзет стандартную банк от M$

какие программы могут подгружать банки?

Mike
13.09.2007, 08:42
В соём железе я ориентируюсь на YMF721, поэтому других таких подобных чипов не предлагать!

а семплы именно с YMF721 мне нужны для того, чтоб на ПЦ сделать порт для Advanced MicroMachine

это нужно для разработки ПО на ПЦ, а потом отлаженные зарелизенные сорцы "шить" на Микромашину...

кстати в винде не прокатывает такое:

compose.mid и compose.sf2 -Winamp всё равно юзет стандартную банк от M$

какие программы могут подгружать банки?

При чём тут винда ? Я говорил про лайв/аудиджи и, возможно, при условии использования родного креативовского плейера.

Можно конечно и вручную подгрузить, через софт прилагающийся к карте, либо в любом секвенсоре умеющим подгружать банки в E-MU 8k/10k на прямую: cubase, sonar.

Romanich
13.09.2007, 09:17
Одним словом - требуется миди-плеер под вин32, который мог подгружать файл sf2 для проигрывания файлов mid

fan
13.09.2007, 14:24
Одним словом - требуется миди-плеер под вин32, который мог подгружать файл sf2 для проигрывания файлов mid
Плеера завутся "AWEPLAY Midi File / Sound Font Player" , "AWE MIDI PLAYER 32" , но они будут фурычить только с реальными картами из оперы AWE32 , но возможно заработают с кривотивовским эмулятором WT синтезатора (такая же фигня шла в составе AWE64 дабы оправдать название "64" :D ), как оно конкретно зовётся в упор не помню , вроде со всякими вибрами в комплекте шло (не уверен) или было отдельным апгрейдом для SB16/AWE32 . Вроде крякнутая версия работала со всеми картами (подробностей не помню) :(

Добавлено через 1 час 23 минуты
Нашёл нечто с эроглифами - Audio Compositor 4.4

works pretty good as software AWE32/64 emulator for those who don't own one, just load a MID, open the matching SF2 and hit play!

Если я правильно понял то эта штука позволяет плеить минишники с фонтами на любой карте .

http://www.soundtrackers.de/awe_without_frames.html

Romanich
17.09.2007, 01:19
Нашёл нечто с эроглифами - Audio Compositor 4.4


у меня без ироглифов!



Если я правильно понял то эта штука позволяет плеить минишники с фонтами на любой карте .


кривая до ужаса! тормозит! и токо 30 секунд играет(и конвертит стокоже) - из-за демоверсии...

Добавлено через 8 часов 32 минуты
d

Добавлено через 8 часов 32 минуты
d

Добавлено через 8 часов 32 минуты
d

736b
17.09.2007, 10:51
Может я чего недопонял, но ведь есть широко известный проект TiMidity.

http://timidity.sourceforge.net/index.html.en

Features

* Plays MIDI files without any external MIDI instruments at all
* Understands SMF, MOD, RCP/R36/G18/G36, MFI
* Converts MIDI files into various audio file formats: .wav, .au, .aiff, .ogg and so on
* Uses Gravis Ultrasound compatible patch files and/or SoundFonts as the voice data
* Displays information about the music that is now playing
* Various user interfaces: ncurses, gtk, Win32-GUI, and others
* Plays remote MIDI files over the network
* Plays MIDI files in archive files
* Displays sound spectrogram for the playing music
* Trace playing

Romanich
18.09.2007, 01:17
см. аттач

Romanich
18.09.2007, 02:14
http://www.borg.com/~jglatt/midi/software/mididsm.exe
миди ассемблер/дизассемблер

CHRV
20.09.2007, 14:31
Романыч , напиши мне письмо чтото до тебя не доходят письма на ...@mail.ru
Я тебе кину РОМ от предшественника этого чипа.

Romanich
21.09.2007, 01:54
Романыч , напиши мне письмо...
Написал!

Добавлено через 5 часов 35 минут
У меня win98SE/DOS MPU-401 emulator
как(и где) можно изменить миди-банк?

Romanich
22.09.2007, 09:19
В общем получил я от CHRV банк от предшественника YMF721.
Начал разбираться... в ходе разбирательств выяснил, что семплы там 12-битные и знаковые - тоесть в диапазоне -2048..+2047. Немножко поизвращавшись, сконвертил их в 16 бит -32768..+32767 и запихал в DirectX-программу(Direct Sound) - инструменты заиграли нормально! :)
Скорость 22050 Гц.

Потом решил заняться YMF721. Короче, с помощью AT91RM9200, Мультимедиа-карточки мне удалось грабануть банк и от YMF721 ;)
Сграбил все 4МБ (WaveTable Synth Addr. bits A21..A0) - согласно спецификации на YMF721 - там 1МБ, по остальным адресам всё повторилось... (4раза по 1МБ)

В YMF721 семплы 8-битные и знаковые(-128..+127). Поизвращавшись со стартовой точкой и диапазоном(0..255) - засунул в директ-икс. Гыы... тоже самое!!!

P.S. Теперь я обладатель ROM'а от YMF721 :)
Вот только что дальше с ним делать?

P.P.S. Пишу с дома. На работе - какая-то хрень стоит - больше двух строчек написать не могу - не отправляется (буду аттачить...)

fan
22.09.2007, 16:39
В общем получил я от CHRV банк от предшественника YMF721.
Начал разбираться... в ходе разбирательств выяснил, что семплы там 12-битные и знаковые
Предшественник YMF704 ?

Romanich
23.09.2007, 06:40
Предшественник YMF704 ?
YRW801(честно говоря я сам от CHRV впервые о нём услышал)

Я ошибся по разрядности семплов! Бывают трёх видов:8,12,16-битовые.
В YMF721 только 8 и 12.
Почитав внимательно даташит на YMF278B(OPL4) сделал выводы:

1) Вначале РОМ'а хранится хедер, описывающий Start/Loop/End Address,
формат и прочие атрибуты для каждого инструмента (12 байт на
описание каждого)
2) Семплы можно сдёргнуть из YMF721 через регистры табличного
синтезатора (3,4,5 - Address, 6 - Data)
3) Зная стартовый и конечный адреса семплов, возможно их прослушать
4) Реально в YMF721 инструментов больше чем 128 (обнаружил пока 338)
5) General MIDI использует только 128 семплов и 16 каналов
6) WaveTable синтезатор - 24 канала

mp3 со всеми семплами(с неким количеством циклов) приаттачу завтра...

Добавлено через 20 часов 48 минут
короче, с нашим дурацким интернетом я фиг чё приаттачу! :(

Romanich
26.09.2007, 01:47
Проблема отпала сама собой-поставил на комп софтовый синтезатор Yamaha S-YXG50. Звучание близкО к YMF721

Romanich
26.09.2007, 01:49
Из-за моих ограничений инета - залил 8-битовую версию семплов YMF721. и Loop'ы урезал
Total Recorder тоже более 1мин записывать не даёт :( В общем зажали меня!

Romanich
26.09.2007, 05:05
Есть ещё интересные чипы:YMU75*(7,8,9). На 757-й есть описание как программить. Токо миди там не нашёл, токо FM

Добавлено через 1 минуту
хотя можно 128 патчей для FM набить чтоб получилось подобие General Midi

Romanich
01.10.2007, 03:14
Прошу написать в сюда личку если есть возможность отдать ISA-шную адлиб карту

fan
01.10.2007, 16:19
Прошу написать в сюда личку если есть возможность отдать ISA-шную адлиб карту
ИМХО проще собрать на OPL3 (благо их валом) по схеме AdLib , чем искать реальную AdLib . Если нужна рашен схема AdLib (на OPL2) то закину .

Romanich
02.10.2007, 02:27
ИМХО проще собрать на OPL3 (благо их валом) по схеме AdLib , чем искать реальную AdLib .

Согласен! Это мне для пополнения коллекции (собираю допотопные видяхи/звучки)



Если нужна рашен схема AdLib (на OPL2) то закину

закинь пожалуйста сюда или в личку!

Добавлено через 1 минуту
Скачал midi-файлы из игры Descent-1. И проиграл их вышеупомянутым ямаховским софтовым синтом - очень впечатлило - ибо классической мидёй не пахнет :)

fan
02.10.2007, 14:37
Это мне для пополнения коллекции (собираю допотопные видяхи/звучки)
Адабрям .


закинь пожалуйста сюда или в личку!
Вот оно -

fan
03.10.2007, 15:30
Чёто я не понял юмора , я кидал GIF а получился JPG раза в четыре жирнее и к тому же весь нафиг размазанный...
Вобщем кидаю GIF в упаковке .

Romanich
05.10.2007, 04:17
недавно просматривал даташиты ямаховских чипов на наличие ножки ~wait(ardy,ready). Только YMF721 имеет данную ножку, у которой обнаружил глюк - если питать микросхему от БП компа (USB) и в тройник(куда комп подключен) быстро втыкать/вытыкать паяльник(или др. мощный потребитель), то данная ножка ~wait залипает в 0 то тех пор, пока питание не переподключишь! это приостанавливает AT91RM9200, который эту ножку использует. Проверил вольтметром.

Вопрос - как избавиться от залипания ноги ~wait YMF721?

Romanich
08.10.2007, 02:02
вот я и разрулил проблему!
от остальных милости ждать не приходится...
печально, блин, что никто на большее НЕ способен!

CHRV
08.10.2007, 09:47
вот я и разрулил проблему!
от остальных милости ждать не приходится...
печально, блин, что никто на большее НЕ способен!
Ну в общем эта проблема рассматривается в любом учебнике...

Romanich
08.10.2007, 09:51
Ну в общем эта проблема рассматривается в любом учебнике...

скинь пожалста ссылки сюда или сами учемники в мыло!

CHRV
08.10.2007, 10:52
скинь пожалста ссылки сюда или сами учемники в мыло!

http://analog.com.ru/pub_semin.htm

Особенно тебе будет интересно вот это:
http://analog.com.ru/Public/10.pdf

Romanich
09.10.2007, 02:21
Следующий мой важный шаг - обнаружение источника цифровых шумов в тракте ЗЧ и их удаление

Romanich
17.10.2007, 09:04
Следующий мой важный шаг - обнаружение источника цифровых шумов в тракте ЗЧ и их удаление

и это оказалось фигнёй. На входы усилка тянулись километровые провода от VS1003, проходящие через плату с АРМом. В момент считывания с MMC в наушниках пищит!

исключается резистором на 220 Ом и кондером на 470 мкф в цепи питания усилка. Лроссель на 100 мкгн вместо резистора не спасает.

Резистор - не лучшее решение - уменьшается динамический диапазон усилка. Лучшее решение - грамотная разводка :v2_thumb:

Romanich
30.10.2007, 07:26
Есть ещё интересные чипы:YMU75*(7,8,9)...
...Токо миди там не нашёл, токо FM

YMU757 - 4 голоса 2-х операторного FM(карта регистров и объяснения есть)
YMU759,762 - кроме FM есть WaveTable
(в шитах карта регистров и объяснений нет :(

Добавлено через 4 минуты
Остаётся гадать:
1) FM синтез какого древнего чипа затолкали в 759,762 ?
2) Чисто WaveTable или ещё дополнительно MIDI Events ?

Добавлено через 5 минут
Почитал доки на SMAF от Ямахи...не проговорились!!! :(
P.S. SMAF - Syntetic Mobile Audio Format - .MID+FM

Добавлено через 6 минут


хотя можно 128 патчей для FM набить чтоб получилось подобие General Midi
Ямаха уже набила

Добавлено через 6 минут
а YRW801 - это ROM от YMF278

Romanich
01.11.2007, 11:17
Я оказывается и там:
http://bulba.at.kz/news_e.htm

7 of June 2006
Romanich's project "YM2149F on LPT" was upgraded: drawing of board, photo of device and description in Russian was added into LPT-YM.7z archive. Download from for Engineer section.
28 of May 2006
Little update in for Engineer section. Romanich made new connecting scheme of YM2149F via LPT-interface with YM3 and YM5/YM6 file players and sources. Also, famous AY-LPT (since 2000) by Vitaly Mayatskih & Alexander Kulik was uploaded (many ZX Spectrum emulators support it).