User Tag List

Страница 17 из 23 ПерваяПервая ... 131415161718192021 ... ПоследняяПоследняя
Показано с 161 по 170 из 246

Тема: general sound, general sound... А почему бы не DMA ultrasound?

Комбинированный просмотр

Предыдущее сообщение Предыдущее сообщение   Следующее сообщение Следующее сообщение
  1. #1

    Регистрация
    25.09.2007
    Адрес
    г. Донецк
    Сообщений
    16
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от psb Посмотреть сообщение
    я это не оспариваю, я лишь сравнил, что проще, подоткнуть флешку или подоткнуть dma
    Опять же, флешка не панацея от глюков в прошивке - сколько разных случаев попадания устройств с перепрошитыми флешами в сервисный центр? Очень много, потому что инет кишит глючными прошивками, их штампует все кому не лень, а потом чайник прошивает свой, допустим ГС, и обнаруживает, что он вообще уснул мертвым сном, т.к. прошивка глючная, свет выключили при прошивке и т.п. и т.д.

    Цитата Сообщение от psb Посмотреть сообщение
    это большой минус идеи дма в _существующей_обстановке_. имхо.
    Давай расширим обзор - не только ДМА, но и любого нештатного устройства, т.к. без паяльника и скальпеля в спеке много чего не подключишь.

    Добавлено через 7 минут
    Цитата Сообщение от psb Посмотреть сообщение
    т.е. я правильно понимаю, что пока ты не обработаешь прерывание, из цапа будет тишина? а ведь это достаточно много тактов Z80 уйдет
    обратотаешь прерывание ты сразу, если они разрешены. и давай разберемся что мы за файлик слушаем? Wavе? Ну он же с частотой до 48кГц, Z80 успеет до следующего тика забросить команду проигрывания, нужно только закинуть адрес его расположения и длину - он продолжает звучать, ты не услышишь ни щелчка, ни затишья.Трекерный музон? тут опять же, много ли сэмплов, занимающих >64кБ? не очень, при учете, что частота дискретизации у них маленькая. Сжатый звук? Без буфера тут не обойтись, а под буфер вполне достаточно 8-16 кб
    Последний раз редактировалось Hard; 02.10.2007 в 09:28. Причина: Добавлено сообщение

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

  3. #2

    Регистрация
    25.01.2005
    Адрес
    Miass, Chelyabinsk region
    Сообщений
    4,094
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Hard Посмотреть сообщение
    а потом чайник прошивает свой, допустим ГС, и обнаруживает, что он вообще уснул мертвым сном, т.к. прошивка глючная, свет выключили при прошивке и т.п.
    ну, от этого-то можно защититься, если сделать бутблок.

    Цитата Сообщение от Hard Посмотреть сообщение
    Давай расширим обзор - не только ДМА, но и любого нештатного устройства, т.к. без паяльника и скальпеля в спеке много чего не подключишь.
    ну, давай возьмем ковокс/саунддрайв.. резать ниче не надо. возьмем контроллер винта немо. тоже ниче резать не надо кроме iorq, как и для гс.. че там еще подключают? XTR-Modem? мышку? тоже ниче резать не надо.. от паяльника, естес-но, не избавишься, тока в если в тех клонах, которые с разьемом уже..

    Цитата Сообщение от Hard Посмотреть сообщение
    обратотаешь прерывание ты сразу, если они разрешены. и давай разберемся что мы за файлик слушаем? Wavе? Ну он же с частотой до 48кГц, Z80 успеет до следующего тика забросить команду проигрывания, нужно только закинуть адрес его расположения и длину - он продолжает звучать, ты не услышишь ни щелчка, ни затишья.
    голословное утверждение.. посчитаем? для проигрывания на частоте 48кГц, между сэмплами есть 72,9 тактов, за это время надо успеть запустить новый буфер. берем прям идеальный вариант:

    int ;17 - вызов прерывания
    out(c),d ;12 - запись подготовленного нового адреса буфера 1 канала
    out(c),e ;12 - ---"---
    exx ;4
    out(c),d ;12 - запись подготовленного нового адреса буфера 2 канала
    out(c),e ;12 - ---"---
    ld b,#ac ;7 - по-любому надо
    out(c),a ;12 - запуск проигрывания

    итого: 88 + (0..3) тактов, кто меньше? не знаю, как умудриться меньше, но в лимит мы не вписываемся, => задержка будет, хоть и незаметная. однако для меня лично сей факт - полное разочарование в этой _музыкальной_ карте. хоть и частота дискретизации может ставиться точно, джиттер не большой, но тормознутость спека убивает все преимущества.. это все ИМХО, никому ничего не навязываю.

    п.с. для 44100 тактов будет всего 79,365. и это только для 8 битного стерео! кто писал о 14 бит?

  4. #3
    ZEK
    Гость

    По умолчанию

    Цитата Сообщение от psb Посмотреть сообщение
    ну, давай возьмем ковокс/саунддрайв.. резать ниче не надо. возьмем контроллер винта немо. тоже ниче резать не надо кроме iorq, как и для гс.. че там еще подключают? XTR-Modem? мышку? тоже ниче резать не надо.. от паяльника, естес-но, не избавишься, тока в если в тех клонах, которые с разьемом уже..
    А вот к примеру что бы подключить внешний формирователь VGA картинки который подслушивает память ZX-BUS недостаточно, тоже лезть внутрь нада.

  5. #4

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

    По умолчанию

    Давайте посмотрим на вопрос иначе.
    Что мы хотим чтобы было на спекке?

    1. Нужно ли нам DMA (ПДП)?
    Я считаю да, хотя до этого спекк без него обходился и наверное и сейчас обойдётся
    2. Нужно ли нам отличный (хай фай) звук?
    Видимо это вопрос вкуса. Я тут думаю так - хай-фай звук, это прежде всего способы его обработки и хранения (лучше курите мою статью в последнем IG), а так как с последним у спекка слабо, то хай фай звук получить проблематично. Даже проигрывать чистое стерео 16 бит на 44100 Гц уже будет сложно, так как придётся выкручиваться в плане одновременной загрузки и проигрывания. Даже если эта проблема будет решена, остаётся, как было указано выше, проблема наводок по линии питания, джиттер сигнала из-за джиттера тактового генератора, и из-за прочих параметров схемы формирования звука, наводки цифровой части на аналоговую... Это только вершина. Я считаю что сделать серьёзное аппаратное решение для воспроизведения хай-фай звука на спекке просто нереально сложно. Таким образом учитывая всё это - ответ нет, нам не нужен хай-фай звук, слишком это дорого во всех смыслах.
    3. Нужны ли нам ускорители на спекке? Ответ да, хотя опять же без них жили, и наверное проживём.
    4. Является ли DMA USC тем устройством, которое будет компромиссно отвечать всем этим требованиями? ответ - да.
    5. Устраивает ли железячников и самоделкиных та схема DMA USC которая уже есть? этот вопрос для меня не ясен.

    Добавлено через 3 минуты
    Цитата Сообщение от psb Посмотреть сообщение
    итого: 88 + (0..3) тактов, кто меньше?
    Тут дело в другом. Ты на слух не заметишь того разрыва в звучании между фактически двумя различными сэмплами, который составляют один логический сэмпл (т.е. сэмпл размер которого более 64 кб). Причём эта пауза может быть вплоть до 1000 тактов, только потом начинается сертьёзно чувствоваться пробел в выводимых значениях.
    Последний раз редактировалось GriV; 02.10.2007 в 21:10. Причина: Добавлено сообщение
    Биты рулят лучше байтов, байты рулят шустрее!
    View, Звук, Цвет

  6. #5

    Регистрация
    11.02.2005
    Адрес
    Москва
    Сообщений
    3,789
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    4
    Поблагодарили
    4 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от GriV Посмотреть сообщение
    5. Устраивает ли железячников и самоделкиных та схема DMA USC которая уже есть? этот вопрос для меня не ясен.
    Однозначно с рассыпухой врятле кто будет заморачиваться . Вся надежда на матрицы , причём как отдельное устройство врятле возродится , но как интегрированное в матрицовый комп пойдёт на ура (как и прочий лом сомнительной в данный момент надобности). Осталось нарыть HDL сырок таймера...
    Спек128 - испанская выдумка, навязанная Сэру Клайву. © Shaos
    REAL HARDWARE MUST LIVE ! - http://SBLive.narod.ru/ZX-Spectrum/

  7. #6

    Регистрация
    04.08.2005
    Адрес
    Новосибирск
    Сообщений
    738
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    "Однозначно с рассыпухой врятле кто будет заморачиваться . "
    Не надо обобщать ...

    "4. Является ли DMA USC тем устройством, которое будет компромиссно отвечать всем этим требованиями? ответ - да."
    Не совсем ... Нужно доработать - до ДМА без торможения ЦП ...
    Однако не везде это получится ...

  8. #7

    Регистрация
    22.02.2005
    Адрес
    Украина, Харьков
    Сообщений
    1,528
    Спасибо Благодарностей отдано 
    13
    Спасибо Благодарностей получено 
    6
    Поблагодарили
    5 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ASDT
    Нужно доработать - до ДМА без торможения ЦП ...
    Однако не везде это получится ...
    Какие все умные, просто поражаешься. Кругом концепции космического масштаба...

  9. #8

    Регистрация
    25.09.2007
    Адрес
    г. Донецк
    Сообщений
    16
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    0
    Поблагодарили
    0 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от ASDT Посмотреть сообщение
    Нужно доработать - до ДМА без торможения ЦП ...
    Однако не везде это получится
    Получится, но нужно в коренном смысле изменить архитектуру спека, уж больно Зетник ревностно относится к памяти.
    Еще, у ВТ37 есть режим совместимости, при котором она тратит 4 такта на выборку 1 байта, 2 такта из них тратится на wait, с целью, чтоб устройства, не совместимые по временным характеристикам успели переключиться, именно в этом режиме все расчеты и проводились - если твоя память и зетник успеет отработать в режиме с отключенной совместимостью - вперед Скорость работы ДМА будет 2 раза быстрее, и торможение Зетника будет еще 2 раза меньше

    Цитата Сообщение от psb Посмотреть сообщение
    ну, от этого-то можно защититься, если сделать бутблок.
    Опять же без паяльника и скальпеля тут не обойтись.
    Что касается подключения ДМА к компу, если ты пошел на то чтоб порезать один проводник - недалек от того, чтоб порезать еще 3-4. Если нет на то смелости и умений, то опять же, Пентагоны частенько вылетали из-за плохого питания, или еще чего-то, куда ты понесешь его ремонтровать? Правильно, к дяде, а ему пофиг сколько проводков перерезать и ДМА он подключит без проблем. Опять же, в начале темы обсуждалось внедрение ДМА или ГС в новый комп, на ПЛИС и прочих матрицах. Что проще и дешевле реализовать в этом случае? Однозначно ДМА, т.к. эмулить зетника с ПЗУ никто не будет, а если наворачивать схему, то уже намного дороже будет, на что не каждый пользователь согласится - неоправданная для него стоимость, если к звуку у него рвения нет.
    Про паяльник и скальпель еще, а как ты сделаешь расширенный экран без скальпеля? Однако он есть у многих

    Цитата Сообщение от psb Посмотреть сообщение
    тока в если в тех клонах, которые с разьемом уже..
    В частности у каждого клона свой разъем, в большинстве случаев не совместимый с другими, хотя бы по распиновке, от паяльника ты уже не избавишься.

    Цитата Сообщение от psb Посмотреть сообщение
    голословное утверждение.. посчитаем? для проигрывания на частоте 48кГц, между сэмплами есть 72,9 тактов, за это время надо успеть запустить новый буфер
    Знаешь, ты меня убедил Я подавлен и огорчен, что же делать? Но... Но... Но...
    Забыл, а что мы слушаем? Ах-да, мы с винта читаем и воспроизводим оцифровочку... напомню ГС-у это вообще не по зубам Даже с таким бешеным джитером, коего даже самый ушастый не услышит.

    Ладно, твой приведенный код можно несколько оптимизировать, причем имеется на вскидку 2 варианта, но подробности особо приводить не буду, только идею, т.к. эта тема уже превращается в мастерство программирования ДМА, а не см. сабжект.
    Не будем говорить про то, что команды, не обращающиеся к памяти и выполняемые не в ПЗУ TR-DOS, на проце Z80 с 7МГц выполняются в 1.8-1.9 раза быстрее. Про то, что турба есть у большинства населения планеты Спектрум, мы тоже говорить не станем, это факт.
    1. Это не совсем "правильный" со стороны ушей вариант, но не дает того джитера о коротом ты вел речь, однако появляется другой побочный эффект хоть и тоже не очень заметный, но скажи, что это не вариант Во время считывания с винта проц не будет заниматься графикой, правильно? Да. Во время проигрывания оцифровки мы не будем играть мод, правильно? Да. Значит у нас задействован только один канал, остальные простаивают (ну если успеем считать достаточно инфы, то 2 задействованы, 2 стоят). вариант заключается в том, что мы запускаем проигрывание звука на канале А, инициализируем канал В, и в это время читаем в буфер, на который настроили канал В, с винта оцифровку. По приходу прерывания нам надо всего лишь забросить в регистр масок новое значение, т.е. что-то типа:
    int ;17 - вызов прерывания
    ld b,#ac ;7 - по-любому надо
    out(c),a ;12 - запуск проигрывания
    Сколько тактов?
    Начинается воспроизведение второго буфера на канале В и мы неспеша инициализируем канал А и заполняем его буфер.
    2. Идея только что, по дороге на работу явилась. Но для ее реализации необходимо 64кб памяти, но опять же, при считывании с винта звуковых данных мы больше ничем другим, как-то графикой, генерированием сверхсложных сцен и пением, заниматься не будем - все равно не успеем, поэтому этот вариант тоже имеет право на существование. ДМА не обнуляет регистры по окончанию передачи, счетчик устанавливается на следующий байт, когда проигрывается блок 64кб, хочешь, не хочешь, а при переполнении 16битного регистра он обнулится, на этом и сыграем. Делим эту область на 4 буфера, по 16кб, пока играется первый буфер - читаем во второй следующую порцию данных, потом по приходу прерывания - не загружая адрес начала сэмпла, только его длину, загружаем регистр масок - играем второй буфер, читаем в третий... и так далее по кольцу.

    psb, я спрашивал у тебя на счет проигрывателя на ГС, как он умудряется воспроизводить звук интерполируя его на лету (хотя эта операция не очень быстро выполняется), обрабатывать паттерны мода, отыскивая новую ноту, и как кто-то упоминал, при этом получая команду на проигрывание эффекта во время игры, которую он самостоятельно обрабатывает, запихивая этот звук в нужный канал.
    И это с учетом того, что ты вчера доказал, что между тиками при проигрывании не особо с вычислениями-то и разгонишься, пусть даже при частоте дискретизации 37.5кГц период будет и по-более, частота проца у ГС выше, но все же, надо обработать все 4 канала одновременно.
    Ты утверждаешь, что в прошивке ГСа нет ошибок? Ты просчитал все тайминги его проигрывателя и утверждаешь что он не воспроизводит звук с джитером?

  10. #9

    Регистрация
    04.08.2005
    Адрес
    Новосибирск
    Сообщений
    738
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    "Какие все умные, просто поражаешься. Кругом концепции космического масштаба..."
    Ну вот и глупые бывают ...

  11. #10

    Регистрация
    25.01.2005
    Адрес
    Miass, Chelyabinsk region
    Сообщений
    4,094
    Спасибо Благодарностей отдано 
    0
    Спасибо Благодарностей получено 
    2
    Поблагодарили
    2 сообщений
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от heroy Посмотреть сообщение
    А вот к примеру что бы подключить внешний формирователь VGA картинки который подслушивает память ZX-BUS недостаточно, тоже лезть внутрь нада.
    мое имхо: я против внедрения и дма, и новых граф.адаптеров. раньше их никогда не было, а сейчас они добавят лишней монструозности, использовать их все равно массово не будут - программ под расширенные программы ну оочень мало.

    Цитата Сообщение от fan Посмотреть сообщение
    но как интегрированное в матрицовый комп пойдёт на ура (как и прочий лом сомнительной в данный момент надобности).
    о, хорошая фраза! действительно, надобность - очень сомнительная, хоть и легко вошьется в такой комп..


    Цитата Сообщение от Hard Посмотреть сообщение
    именно в этом режиме все расчеты и проводились - если твоя память и зетник успеет отработать в режиме с отключенной совместимостью - вперед
    вот, правильно проводились. иначе - кому нужна программа, которая работает не на всех компах?


    Цитата Сообщение от Hard Посмотреть сообщение
    ну, от этого-то можно защититься, если сделать бутблок.
    Опять же без паяльника и скальпеля тут не обойтись.
    здесь жертв меньше, чем при дма а то и вовсе ниче резать не надо я это уже обдумываю.
    Цитата Сообщение от Hard Посмотреть сообщение
    Что проще и дешевле реализовать в этом случае?
    согласен, дма проще в этом плане, но _лично_ для меня оно какое-то чужеродное.. спек уже начинает работать иначе, если его(дма) использовать.. причем, слабопредсказуемо, если играть мод (это я про кол-во тактов в инт)..

    Цитата Сообщение от Hard Посмотреть сообщение
    а как ты сделаешь расширенный экран без скальпеля? Однако он есть у многих
    опять же _лично_ я его не то что делать не буду, даже думать про него не буду. в профи экран, в атм, в скорпе.. че толку-то? а картинки, если надо, можно и на пц посмотреть, в любом случае гораздо качественнее, чем возможно на спеке. всего же программ под расширенные экраны мизер.. полезных из них еще меньше.. да и не надо забывать, что далеко(!!!) не у всех есть этот самый экран, память больше 128к.. никто не будет писать полезную программу, если она никому не нужна.

    Цитата Сообщение от Hard Посмотреть сообщение
    Забыл, а что мы слушаем? Ах-да, мы с винта читаем и воспроизводим оцифровочку... напомню ГС-у это вообще не по зубам
    это по зубам 48к спеку с двумя 8 битными ковоксами. факт. картинку же не перерисовываем? нет. все, скорости спека хватает на это без каких либо дма. да, код одуренный, но когда на спеке было просто?
    а с гс - да, передача данных - узкое место.. но переводим его в режим ковокса и все ок

    Цитата Сообщение от Hard Посмотреть сообщение
    Про то, что турба есть у большинства населения планеты Спектрум, мы тоже говорить не станем, это факт.
    у большинства?? хрен знает.. у меня нет, и никогда не было. я так-то беру спек 128к+тр-дос. остальное для меня - довески. кто-то вон и спринтер спеком называет..

    Цитата Сообщение от Hard Посмотреть сообщение
    1. Это не совсем "правильный" со стороны ушей вариант,
    он был бы идеальным, если б все 4 канала миксились в цифре. там было бы пофиг, один это канал играет или другой. в случае аналогового миксинга.. мне кажется, если вслушаться, будет заметно, т.к. никто прецизионные компоненты не ставит..
    это кстати, только для 8 битного звука

    Цитата Сообщение от Hard Посмотреть сообщение
    пока играется первый буфер - читаем во второй следующую порцию данных, потом по приходу прерывания - не загружая адрес начала сэмпла, только его длину, загружаем регистр масок - играем второй буфер, читаем в третий... и так далее по кольцу.
    чем это отличается от варианта с двумя буферами?1й играем - второй заполняем, потом наоборот.. я же в коде, кстати, и не устанавливал длину, думал, она там останется старая.. т.е. кол-во аутов то же самое. или я че-то не понял.

    Цитата Сообщение от Hard Посмотреть сообщение
    psb, я спрашивал у тебя на счет проигрывателя на ГС, как он умудряется воспроизводить звук интерполируя его на лету
    http://zx.pk.ru/showpost.php?p=100630&postcount=95 вот здесь в самом низу описано. будут еще вопросы - спрашивай.

Страница 17 из 23 ПерваяПервая ... 131415161718192021 ... ПоследняяПоследняя

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

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

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

Похожие темы

  1. General Sound
    от newart в разделе Звук
    Ответов: 133
    Последнее: 11.10.2006, 22:58
  2. Куплю General Sound
    от dhau в разделе Барахолка (архив)
    Ответов: 13
    Последнее: 02.03.2006, 10:32
  3. UnrealSpeccy sound bug
    от [bETA]mEN в разделе Эмуляторы
    Ответов: 57
    Последнее: 18.05.2005, 17:10

Ваши права

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