Просмотр полной версии : Эмуляция звука
tenebris
22.01.2008, 12:09
Привет всем!!! Я тут впервый раз, и это моё первое сообщение, так что не судите строго. Написал в этот раздел, так как в нём наибольшая активность и много тем. Вот. Если что, добрые модераторы знают что делать. Я собственно по какому вопросу.
Я занимаюсь эмуляцией приставки денди. Да Денди. К сожалению у меня нету, и не было спектрума. И в наше время, я не знаю где его можно купить. Вот. Но с большинством консолями я знаком. Меня направили на Ваш ресурс, сказали, мол, здесь я точно получу ответы. Значит, если мне с эмуляцией памяти, процессора, видео всё понятно, то со звуком мне вообще ничего не понятно. Что говорить тогда о сеге у который для этого отведён даже специально процессор Z80. Вот я не пойму. Это же обычный процессор как он может музыку обрабатывать? Что можно любым процессором обрабатывать звук. Или он ещё куда то подключён? Ответьте пожалуйста на эти вопросы.Как всё же там получается звук?
Вот что написано про неё в вики
Звук: пятиканальный звукогенератор
(Я незнаю что такое n-канальный :(, подскажите что почить или объясните плиз)
Два частотных канала с прямоугольной формой сигнала, с переменной скважностью (25 %, 50 %, 75 %, 87,5 %), 16-уровневым контролем над громкостью, встроенной подтяжкой высоты ноты, поддерживающие частоты от 54 Гц до 28 кГц.
Один частотный канал с треугольной формой сигнала, с фиксированной громкостью, поддерживающий частоты от 27 Гц до 56 кГц.
1 канал белого шума, с 16-ю уровнями громкости, поддерживающий два режима на 16-и заранее запрограммированных частотах.
1 канал Дельта-ЦАП с разрядностью в 6 бит, использующий однобитный формат кодирования на одной из 16 частот дискретизаций от 4,2 КГц до 33,5 КГц. Также позволяет выводить произвольные цифровые данные разрядностью в 7 бит через равные промежутки времени.
И пожайлйуста, не надо говорить, мол, что в Инете куча открытых проектов, с исходниками - бери и разбирайся. Я взял денди как самую простую и не хочу подсматривать другие работы, хочу понять всё сам. И не давайте ссылки на эмуляторы.
Вот там написано что есть каналы белого шума, треугольный. Как из этого получаются ноты и эффекты. Это что при смещивании получаются ноты. Это что базис какой-то. Ну как rgb -панель, при смешивании которой получаются разные цвета, так что и в звуке чтоль?
Так как всё же её эмулировать.Идёт опкод и что с ним делать то?
Извините что столько много вопросов и всё в кучу, незню как это всё рассортировать, честно.
Спасибо.
Смотреть здесь: http://bulba.untergrund.net/main.htm
Написал в этот раздел, так как в нём наибольшая активность и много тем.
Есть специальный раздел "Другие компьютеры", думаю там ты скорее нашел бы ответы на свои вопросы. Модераторы, я думаю и вправду разберутся:), но можно было их не напрягать:)
Это же обычный процессор как он может музыку обрабатывать?
в денди не обычный процессор. а кустомная версия MOS 6502 - Ricoh 2A03 (для NTSC) и Ricoh 2A07 (для PAL). в принципе, отличия только в частоте, если я правильно помню. так вот, он [процессор денди], в отличии от обычного 6502, имел дополнительные регистры ввода\вывода, с помощью которых управлялся набортный PSG (Programmable Sound Generators, звуковой сопроцессор, тобишь).
Я взял денди как самую простую и не хочу подсматривать другие работы, хочу понять всё сам.
мощно, только википедия не самый лучший источник инфы.
Добавлено через 32 минуты
если с аглицким дружишь, читай сдесь:
http://www.romhacking.net/docs/apu_ref.txt - чисто звук.
http://www.romhacking.net/docs/%5B120%5Dnestech.txt - целиком про приставку, есть глава по муляции.
[bETA]mEN
22.01.2008, 16:39
http://www.zophar.net/tech/tech.phtml
tenebris
22.01.2008, 20:10
Смотреть здесь: http://bulba.untergrund.net/main.htm
Вот это хорошая ссылка, спасибо. Буду курить доки, но хотелось бы что кто-нибудь рассказал чуток теории, как получается звук, ноты и эффекты, а на сеге даже голоса в рестлинге
Добавлено через 1 минуту
mEN;116860']http://www.zophar.net/tech/tech.phtml
Это к сожалению знаю. Вот. Ну что там про z80. Только опкоды и программирование, но никак не пойму, как с помошью него можно получить звук.
Добавлено через 10 минут
если я правильно помню
Да, ты правильно помниш.
с помощью которых управлялся набортный PSG (Programmable Sound Generators, звуковой сопроцессор, тобишь).
А вот это для меня в новинку. Т.е . проц подключается к звуковому процу. Чёт я не пойму, а почему тогда в сеге стоит 86000 и z80, который управляет этим синтезатором. Почему нельзя было подключить 86000 сразу к PSG? А тут они ещё притулили z80?
Добавлено через 11 минут
только википедия не самый лучший источник инфы.
Да ладно, что есть альтернативы?
Добавлено через 12 минут
если с аглицким дружишь, читай сдесь:
Ой, дружу, спасибо.
Что говорить тогда о сеге у который для этого отведён даже специально процессор Z80. Вот я не пойму. Это же обычный процессор как он может музыку обрабатывать? Что можно любым процессором обрабатывать звук. Или он ещё куда то подключён? Ответьте пожалуйста на эти вопросы.Как всё же там получается звук?
А в чём проблема любым процессором обрабатывать звук ? В нём чего, математических операций нет ? Весь вопрос в быстродействии этого процессора. Естественно, при мощностях Z80 много не наобрабатываешь, хотя и можно на нём сделать кое-чего. Вот, General Sound для ZX на Z80-12Mhz построен. А в сеге, собственно, этот процессор просто управляет чипами Yamaha YM2612 (FM-синтез) и Texas Instruments TI76489 (PSG), т.е. является частью звуковой подсистемы.
И пожайлйуста, не надо говорить, мол, что в Инете куча открытых проектов, с исходниками - бери и разбирайся. Я взял денди как самую простую и не хочу подсматривать другие работы, хочу понять всё сам. И не давайте ссылки на эмуляторы.
ИМХО, не самый правильный выбор, разбираться полностью самостоятельно, намного удобнее и быстрее учиться на готовых примерах.
Добавлено через 10 минут
Это к сожалению знаю. Вот. Ну что там про z80. Только опкоды и программирование, но никак не пойму, как с помошью него можно получить звук.
Батенька, вы с математикой знакомы ? Представляете, как выглядит цифровой звук с математической точки зрения ? Если да - то явно им можно оперировать теми же математическими операциями, не находите ? А если нет - курить азы цифрового звука.
А вот это для меня в новинку. Т.е . проц подключается к звуковому процу. Чёт я не пойму, а почему тогда в сеге стоит 86000 и z80, который управляет этим синтезатором. Почему нельзя было подключить 86000 сразу к PSG? А тут они ещё притулили z80?
Не 86000, а MC68000 тогда уж...
Z80 прикручен в качестве обыкновенного сопроцессора выполняющего определённые функции (в данном случае функции управления звуковой подсистемой) и разгружающего основной процессор. В те времена, это явно было дешевле, чем переходить на MC68020 на пример, отказавшись от сопроцессора.
Да ладно, что есть альтернативы?
Ага и просто дофига, как не странно. Тонны технической документации, как официальной так и самописной, даташиты различные от производителей хотя бы.
тут почитай, о том что такое звук:
http://websound.ru/articles-theory_r.htm
http://www.npk.ru/articles/article.html?id=126
Только опкоды и программирование, но никак не пойму, как с помошью него можно получить звук.
? звук формируется PSG на основе данных, которые пишутся в его регистры процом. какие данные и куда пишутся, смотри в приведенной мной ссылке выше.
Чёт я не пойму, а почему тогда в сеге стоит 86000 и z80, который управляет этим синтезатором. Почему нельзя было подключить 86000 сразу к PSG? А тут они ещё притулили z80?
чтобы не грузить основной проц лишней работой + мегадрайв обратно совместим с мастер систем (основной проц которой Z80). обычно (в режиме мегадрайва) в адресном пространстве Z80 крутится звуковой драйвер.
Денди - простая? Насмешил, честно. Это только на первый взгляд всё просто, чтоб его понять, надо полностью отречься от привычных стереотипов программирования 8080, Z80 и иже...
Ладно, чтоб прочитать подробнее о сабже, смотрим тут, http://www.zx.pk.ru/showpost.php?p=113269&postcount=113
Далее, есть еще, http://www.qsl.net/rw6hrm/arc/nes.djvu
А что касается как звуки получаются - так это обычная нотная грамота нужна
Это к сожалению знаю. Вот. Ну что там про z80. Только опкоды и программирование, но никак не пойму, как с помошью него можно получить звук.
Чисто теоретически: что есть звук - колебания. Как можно в цифровой схеме сделать колебание? Путём установки какого-либо сигнала в определённые состояния переодически, например из 0 в 1 и потом из 1 в 0. Как это можно сделать процессором? Выводить в порт ввода/вывода с определённой периодичностью последовательно 0 и 1. Будет звук :)
Денди - простая? Насмешил, честно.
ситуация со звуком усугубляется тем, что некоторые мапперы содержали дополнительные звуковые сопры.
tenebris
23.01.2008, 17:26
Спасибо, что помогаете. Я думал, что если тему перенесли в этот раздел - то всё, её никто не прочтёт. Ща прочту ответы и буду комментировать :)
Добавлено через 7 минут
Не 86000, а MC68000 тогда уж...
Ой, пардон, да 68000, перепутал.
Добавлено через 9 минут
В те времена, это явно было дешевле, чем переходить на MC68020 на пример, отказавшись от сопроцессора.
Не знаком с MC68020, видать тама наверное сопроцессор есть.
Добавлено через 16 минут
Ага и просто дофига, как не странно. Тонны технической документации, как официальной так и самописной, даташиты различные от производителей хотя бы.
Согласен, гуг + правильное пользование запросами.
Добавлено через 20 минут
Денди - простая? Насмешил, честно. Это только на первый взгляд всё просто, чтоб его понять, надо полностью отречься от привычных
Для меня представляют сложность только мапперы и всё.
Добавлено через 23 минуты
А что касается как звуки получаются - так это обычная нотная грамота нужна
Не повериш - у меня 3 музыкальных образования.
Добавлено через 25 минут
Вот вроде всё проккоментировал. Теперь о наболевшем, и о том что я ещё надумал.
Добавлено через 34 минуты
1) Значит, я тут читал доки, по сеге случайно, и наткнулся на такую вещь. И не пойму какая в них разница. Оказывается, в сеге есть музыкальный синтезатор и программируемый звуковой генератор. В чём их разница? И есть ли они в дендике?
2) При эмуляции ЦПУ, всё сводитя к замене опкодов эмулируемого ЦПУ на опкоды ЦПУ, на котором должна будет выполняться прога. С этим всё понятно. Вот. А теперь самое главное. Допустим я сэмулирую z80, и мне нужно передать эти данные звуковому генератору, т.е. мой настоящей звуковой карте, как это сделать? Какие у неё адреса, порты. Как в ней порыться низкоуровнево. Про это где-нить написано? Как быть, если на какой-то машине установлена редкая карточка(а не AC97 или как он там), или у них есть определенный базис, как у видео карты, в которой зашыты ASCII символы?
Добавлено через 41 минуту
Ах да, вот что ещё. В институте, мы проходили ряды, ну естественно, скоро яузнал, что любой звук можно разложить в косинусы и синусы различной частоты, и амлитуды, и при смешивании(читай объединении) получиться этот звук. До знакомства с денди я думал что только так создаётся звук. Думал что нужна дюжина генераторов синусов и косинусов, и вперед. А тут в доках я читаю что какие - то пилообразные, прямоугольные, овальные, треугольные, и т.д. генераторы используются. А у меня такой склад ума, что я хочу понять почему так, почему имеенно эти формы сигналов и никакие не другие, и как до этого додумались. Да и ещё как получить эти сигналы. Ну к примеру как получить пилообраызный сигнал? Из косинусов и синусов какой частоты и амплитуды? Фу. Вроде всё.
Добавлено через 2 часа 32 минуты
Хоть бы ответили, а то тишина.
Хоть бы ответили, а то тишина.
жги дальше не стесняйся.
А что касается как звуки получаются - так это обычная нотная грамота нужна
Нотная грамота учит получать ЗВУКИ ? Не знал...
Нотная грамота - это не более, чем способ записи мелодии, но не как не звука. И нотная грамота не учит писать музыку. Композитор, это человек который, в первую очередь знает КАК применить ноты, как "собрать" из них мелодию и только в третюю-пятую очередь - как их записать на бумаге. А вот получением звуков синтетическими методами - это задача саунд-дизайнера.
Добавлено через 15 минут
Не знаком с MC68020, видать тама наверное сопроцессор есть.
Нету там не каких сопроцессоров, просто вычислительные мощности выше. Частоты, по крайней мере - 14 и 25 Mhz, разрядность - 32 бита. Собственно эт продолжение MC68xxx-линейки. Сопроцессором для него обычно применяют MC68882.
Значит, я тут читал доки, по сеге случайно, и наткнулся на такую вещь. И не пойму какая в них разница. Оказывается, в сеге есть музыкальный синтезатор и программируемый звуковой генератор. В чём их разница? И есть ли они в дендике?
В названии и возможностях. Оба они занимаються синтезом звука. Чего есть в денди - уже говорилось, да и спецификацию на него, по моему, почитать не сложнее чем на сегу.
Допустим я сэмулирую z80, и мне нужно передать эти данные звуковому генератору, т.е. мой настоящей звуковой карте, как это сделать? Какие у неё адреса, порты. Как в ней порыться низкоуровнево. Про это где-нить написано? Как быть, если на какой-то машине установлена редкая карточка(а не AC97 или как он там), или у них есть определенный базис, как у видео карты, в которой зашыты ASCII символы?
Для тебя имеют какое-то значение слова: Драйвер, API, Direct-Sound ? Если нет - категорически следует начать с самых азов, а не с написания эмулятора.
В институте, мы проходили ряды, ну естественно, скоро яузнал, что любой звук можно разложить в косинусы и синусы различной частоты, и амлитуды, и при смешивании(читай объединении) получиться этот звук. До знакомства с денди я думал что только так создаётся звук. Думал что нужна дюжина генераторов синусов и косинусов, и вперед.
Этот способ был предложен Фурье и носит он название аддитивного синтеза. Это один из многих видов синтеза звука.
А тут в доках я читаю что какие - то пилообразные, прямоугольные, овальные, треугольные, и т.д. генераторы используются. А у меня такой склад ума, что я хочу понять почему так, почему имеенно эти формы сигналов и никакие не другие, и как до этого додумались. Да и ещё как получить эти сигналы. Ну к примеру как получить пилообраызный сигнал? Из косинусов и синусов какой частоты и амплитуды?
А в голову не приходила такая простая мысль, что эти генераторы изначально генерируют такую форму сигналов, а не синтезируют выстроенным рядом синусов ?
Или такой наводящий вопрос: из чего тогда получается синус ? Из сложения каких форм волн каких частот, скважностей и амплитуды ?
Похоже стоит так же обратиться к основам радиоэлектроники и звукосинтезирования.
tenebris
24.01.2008, 08:46
Спасибо Большое
Добавлено через 48 минут
Для тебя имеют какое-то значение слова: Драйвер, API, Direct-Sound ? Если нет - категорически следует начать с самых азов, а не с написания эмулятора.
Api -знаю, но звуковым не пользовался. Доступ через драйвер - даже не имею представления.
Добавлено через 54 минуты
А в голову не приходила такая простая мысль, что эти генераторы изначально генерируют такую форму сигналов, а не синтезируют выстроенным рядом синусов
Спасибо что помогаеш. Скажи а как его получить, ну технически, это что искажение синусов, или какие-нить фильтры, режеторные или что-нибудь в этом роде.
Или такой наводящий вопрос: из чего тогда получается синус ? Из сложения каких форм волн каких частот, скважностей и амплитуды ?
Наверное он получается при изменеии сопротивления на какой-то ноге транзистора, сначало плавно вверх потом плавно вниз
Похоже стоит так же обратиться к основам радиоэлектроники и звукосинтезирования.
Это главная моя проблема, я не в какую не понимаю аналоговую технику, цифру понимаю, а аналог нет.Вообще не в какую. Блин, и в наше время никаких нормальных цчебников не ту. Сразу на первой странице дифференциальные уравнения и производные. :(
Добавлено через 54 минуты
А в голову не приходила такая простая мысль, что эти генераторы изначально генерируют такую форму сигналов, а не синтезируют выстроенным рядом синусов
Спасибо что помогаеш. Скажи а как его получить, ну технически, это что искажение синусов, или какие-нить фильтры, режеторные или что-нибудь в этом роде.
Или такой наводящий вопрос: из чего тогда получается синус ? Из сложения каких форм волн каких частот, скважностей и амплитуды ?
Наверное он получается при изменеии сопротивления на какой-то ноге транзистора, сначало плавно вверх потом плавно вниз
Похоже стоит так же обратиться к основам радиоэлектроники и звукосинтезирования.
Это главная моя проблема, я не в какую не понимаю аналоговую технику, цифру понимаю, а аналог нет.Вообще не в какую. Блин, и в наше время никаких нормальных цчебников не ту. Сразу на первой странице дифференциальные уравнения и производные. :(
Api -знаю, но звуковым не пользовался. Доступ через драйвер - даже не имею представления.
Может быть тогда стоит об этом почитать для начала ?
Спасибо что помогаеш. Скажи а как его получить, ну технически, это что искажение синусов, или какие-нить фильтры, режеторные или что-нибудь в этом роде.
Наверное он получается при изменеии сопротивления на какой-то ноге транзистора, сначало плавно вверх потом плавно вниз
Не сопротивления а напряжения тогда уж.
Ну и пила получаеться так-же линейно вверх, потом сразу линейно вниз, прямоугольник соответственно - моментальной установкой напряжения и снятия его через определённое время. Неужели тебе форма сигнала сама по себе не о чём не говорит, чего происходит с напряжением в каждый момент времени ?
tenebris
24.01.2008, 10:24
Может быть тогда стоит об этом почитать для начала ?
А где почитать то, про драйвер?:v2_blush:
Добавлено через 5 минут
Ну и пила получаеться так-же линейно вверх, потом сразу линейно вниз, прямоугольник соответственно - моментальной установкой напряжения и снятия его через определённое время. Неужели тебе форма сигнала сама по себе не о чём не говорит, чего происходит с напряжением в каждый момент времени ?
Э... говорит, конечно, но это просто рисунок. Понятно что так должно быть. Мне не понятна техническая реализация. Я смотрю на схемы, и ничего не понимаю, как она такое делает. А второе, я хочу понять, как узнали про другой вид синтеза, ну отличный от фурье, и почему имеенно эти фигуры используются. Я не знаю, почему бы не овал какой-нибудь ещё использовать. И как из этих простейших сигналов получается звук. Вот. Была бы какая-нить программка эмулятор, с этими генераторами, чтоб их покрытить, а результат бы выходил на звуковуху.
А где почитать то, про драйвер?:v2_blush:
www.Google.com
Э... говорит, конечно, но это просто рисунок. Понятно что так должно быть. Мне не понятна техническая реализация. Я смотрю на схемы, и ничего не понимаю, как она такое делает. А второе, я хочу понять, как узнали про другой вид синтеза, ну отличный от фурье, и почему имеенно эти фигуры используются. Я не знаю, почему бы не овал какой-нибудь ещё использовать. И как из этих простейших сигналов получается звук. Вот.
Ищи литературу, читай. Расписывать на форуме слишком долго.
Была бы какая-нить программка эмулятор, с этими генераторами, чтоб их покрытить, а результат бы выходил на звуковуху.
Да полно, как грязи. В любом секвенсоре типа cubase или logic встроенные есть, плагинов всяких куча существует, есть и более сложные программы, посвещённые именно моделированию звука, такие как Reactor на пример. Всё это можно взять тут: www.websound.ru
tenebris
24.01.2008, 11:11
Спасибо.
http://ru.wikipedia.org/wiki/%D0%A1%D0%B8%D0%BD%D1%82%D0%B5%D0%B7%D0%B0%D1%82%D 0%BE%D1%80_%28%D0%BC%D1%83%D0%B7%D1%8B%D0%BA%D0%B0 %D0%BB%D1%8C%D0%BD%D1%8B%D0%B9_%D0%B8%D0%BD%D1%81% D1%82%D1%80%D1%83%D0%BC%D0%B5%D0%BD%D1%82%29
Интересен раздел "Виды синтеза".
Одну и ту же волновую форму можно получить разными способами. Можно складывать бесконечный ряд из синусов и косинусов, это будет аддитивный синтез. Можно взять сигнал, в котором присуствуют сразу все гармоники (в лекциях написано, что это за сигнал =) и вычитать ненужные пропуская его через фильтры, это субтрактивный синтез. Классические синтезаторы, до-FM-ной эпохи, да и сейчас снова, используют в основном субтрактивный синтез. Оказывается, что отрезать ненужное экономически более выгодно.
Хорошо, если есть цифровой осциллограф (или компьютер с программой анализатора спектра) и аналоговый синтезатор. Очень интересно крутить ручки и смотреть, как теория сходится с практикой.
tenebris
24.01.2008, 17:26
Спасибо, что помогаете. Думаю, что найдутся люди которые ещё напишут сюда.
Powered by vBulletin® Version 4.2.5 Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot