nedoPC.org

Community of electronics hobbyists established in 2002
Atom Feed | View unanswered posts | View active topics It is currently 18 May 2022 00:22



Reply to topic  [ 9 posts ] 
Звуки на Спринтере ? 
Author Message
Doomed
User avatar

Joined: 11 Dec 2003 15:34
Posts: 413
Reply with quote
Каким образом на Спринтере извлекать звуки ?.
Есть у кого-нить работающий кусок кода по
этой теме ?. Как-то помниться в старо-давние
времена я попробовал, но ничего вразумительного
не вышло ;(.

_________________
Vasil Ivanov
vasil-i@yandex.ru


04 Oct 2004 14:20
Profile
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 20194
Location: Silicon Valley
Reply with quote
Vasil Ivanov wrote:
Каким образом на Спринтере извлекать звуки ?.
Есть у кого-нить работающий кусок кода по
этой теме ?. Как-то помниться в старо-давние
времена я попробовал, но ничего вразумительного
не вышло ;(.


Я внятного ответа с примером так от Петерсов и не получил в свое время. Пищать то его можно заставить, как я понимаю (через тот же ковокс-интерфейс), но делать устойчивый семплрейт наверное трудновато будет. Видимо надо плеер дизассемблировать.

_________________
:eugeek: https://twitter.com/Shaos1973


04 Oct 2004 16:55
Profile WWW
God
User avatar

Joined: 29 Dec 2003 02:00
Posts: 1101
Location: Москва
Reply with quote
Василий!
Я тебе отправил мылом все собранные мною примеры с форума (я их оформил ввиде файла). Там в том числе пример как работать со звуком от И.Мака.


04 Oct 2004 23:47
Profile ICQ WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 20194
Location: Silicon Valley
Reply with quote
CHRV wrote:
Василий!
Я тебе отправил мылом все собранные мною примеры с форума (я их оформил ввиде файла). Там в том числе пример как работать со звуком от И.Мака.


Ну и мне отправь - я выложу на сайт ;)

_________________
:eugeek: https://twitter.com/Shaos1973


05 Oct 2004 06:38
Profile WWW
Doomed
User avatar

Joined: 11 Dec 2003 15:34
Posts: 413
Reply with quote
Shaos wrote:
Vasil Ivanov wrote:
Каким образом на Спринтере извлекать звуки ?.
Есть у кого-нить работающий кусок кода по
этой теме ?. Как-то помниться в старо-давние
времена я попробовал, но ничего вразумительного
не вышло ;(.


Я внятного ответа с примером так от Петерсов и не получил в свое время. Пищать то его можно заставить, как я понимаю (через тот же ковокс-интерфейс), но делать устойчивый семплрейт наверное трудновато будет. Видимо надо плеер дизассемблировать.


Это идея, в данной ситуации, тем более что плейер не большой - 4 кило.

_________________
Vasil Ivanov
vasil-i@yandex.ru


07 Oct 2004 14:49
Profile
God
User avatar

Joined: 29 Dec 2003 02:00
Posts: 1101
Location: Москва
Reply with quote
Shaos wrote:
Ну и мне отправь - я выложу на сайт ;)

Отправил тоже!


08 Oct 2004 00:26
Profile ICQ WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 20194
Location: Silicon Valley
Reply with quote
Тут всплыла информация, которая является актуальной и несколько противоречит тому, что было написано в старой документации на Спринтер:

Code:
Звук
            Ivan_Mak
            (Sprinter Team)
            2002/09/13 04:28
                   Re: Программирование звука [re: Shaos]



            Звук через COVOX-Blaster (COVOX с буферным ОЗУ)

            CBL=COVOX-Blaster

            Порт управления: 004Eh (16-bit port!!!, писать только через OUT
            (c),reg)

            ; bit 7 - COVOX-Blaster on (если 0 то обычный режим COVOX)
            ; bit 6 - STEREO-mode on
            ; bit 5 - 16bit-mode on
            ; bit 4 - Interrupt on - включение прерываний

            ; bits 3..0 - частота
            ;
            ; 0 16khz -- mono/stereo --- это старые режимы -- не использовать!
            ; 1 22khz -- mono/stereo --- это старые режимы -- не использовать!
            ; 2 reserved
            ; 3 reserved
            ; 4 reserved
            ; 5 reserved
            ; 6 reserved
            ; 7 reserved
            ;
            ; 8 7.8125 KHz -- mono/stereo 8/16 bit
            ; 9 10.9375 KHz -- mono/stereo 8/16 bit
            ; A 15.625 KHz -- mono/stereo 8/16 bit
            ; B 21.875 KHz -- mono/stereo 8/16 bit
            ; C 31.25 KHz -- mono/stereo 8/16 bit
            ; D 43.75 KHz -- mono/stereo 8/16 bit
            ; E 54.6875 KHz -- mono/stereo 8/16 bit
            ; F 109.375 KHz -- mono/stereo 8/16 bit

            Порт 0FEh - биты запроса прерываний от CBL

            bit 7 - запрос данных для CBL
            bit 5 - синхронизация экрана (кадровый импульс, 4мс длиной, 20мс
            период)


            Запись данных в COVOX-Blaster производится с помощью акселератора,
            записью в страницу ОЗУ 0FDh (просто записать блок 128/256 байт с
            адреса 0C000h)
            или через порт 4Fh командами OTIR блок записываемых данных по
            запросу. Для 8 бит режима - 128 байт; для 16 бит - 256 байт


P.S. Оказалось, что это из архива CHRV, который он тут выше озвучивал - так что слепляю темы вместе и приаттачиваю сам архив


Attachments:
sound.zip [34.1 KiB]
Downloaded 60 times

_________________
:eugeek: https://twitter.com/Shaos1973
20 Oct 2021 23:13
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 20194
Location: Silicon Valley
Reply with quote
Quote:
Самый простой пример:
Code:
Test:
 LD BC,04Eh
 LD A,8Bh  ; включить 8 бит 22khz mono
 OUT (C),A ; - CBL - включен!
 INC C
 LD HL,Sample
 OTIR  ; загрузить все 256 байт
 RET

Sample:
  DB 80h,81,82h,....   ; (256 отсчетов звука с нулем на уровне 80h)


Должен пищать одну ноту (если в Sample записать синус, то должно чисто звучать).

Запрос данных в бите 7 порта FE появляется для каждых 128 байт (256 в режиме 16 бит). Его следует проверять, если его не оказалось, то прерывание экранное, а не от CBL.

При выставленных прерываниях от CBL, стоит использовать режим IM 2, иначе, будет часто вызываться DOS-овая процедура прерываний и могут появиться тормоза на высоких частотах.


В режиме 8 бит сэмплы должны иметь уровень нуля на 80h,
16 бит сэмплы - уровень нуля - 0000h,
Stereo-сэмплы - должны иметь чередующиеся отсчеты левого и правого канала.

Code:
mono_8bit:
  DB 80h,81h,7Fh....

mono_16bit:
  DW 0,1000,-1000...

stereo_8bit:
  DB 80h,80h,81h,80h,7Fh,80h...  ; здесь один канал играет, второй молчит

stereo_16bit:
  DW 0,0,1000,0,-1000,0...  ;  аналогично, один канал играет, второймолчит


(При тестировании 16 бит режима следует помнить, что звук с амплитудой в единицы почти не слышен)

P.S. Формат данных выбран так, что бы из WAV-файлов данные в CBL пересылать простой операцией блочной пересылки.

_________________
:eugeek: https://twitter.com/Shaos1973


20 Oct 2021 23:17
Profile WWW
Admin
User avatar

Joined: 09 Jan 2003 00:22
Posts: 20194
Location: Silicon Valley
Reply with quote
Ну и обычный ZX-бипер должен работать, и обычный пентагоновский Covox:
Quote:
Стандартный спектрумовский бипер (бит 5 порта #FE) выведен через ту
же схему, что и Covox, и AY. (TDA1543) Программируется стандартно.

Covox - 8-бит -- позволяет выводить WAV сигналы. В стандартной
конфигурации Covox подключен на порт #FB и #4F. Вывод последовательности
байтов в любой из этих портов приведет появлению сигнала на звуковом выходе.

В стандартной конфигурации на выходы левого и правого канала выдается один
и тот же сигнал (монофоническое звучание).

_________________
:eugeek: https://twitter.com/Shaos1973


21 Oct 2021 00:19
Profile WWW
Display posts from previous:  Sort by  
Reply to topic   [ 9 posts ] 

Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron

Powered by phpBB® Forum Software © phpBB Group
Designed by ST Software.