И снова о цифровом звуке (GS и т.п.)

Старый спектрумистский форум

Moderator: Shaos

Shiru Otaku
Retired
Posts: 490
Joined: 16 Mar 2002 17:00

И снова о цифровом звуке (GS и т.п.)

Post by Shiru Otaku »

Немного размышлений на тему устройств воспроизведения цифрового звука на ZX. Компиляция различных обсуждений с разными людьми, и возникших в этом процессе идей.

На текущий момент единственным более-менее стандартным и, так сказать, массово внедрённым устройством воспроизведения оцифровок до сих пор остаётся Covox (правда, вешающийся на разных клонах на разные порты), и, в какой-то мере, Sound Drive. Понятно, что этот агрегат никого не устраивает, т.к. почти не позволяет во время воспроизведения оцифровки делать что-либо ещё. Поэтому народ желает нечто, что может дать такие возможности. Возможности эти обеспечивает два устройства - GS и DMA USC. Так как это достаточно сложные конструкции, на самостоятельную сборку решаются немногие, и народ желает иметь возможность готовое устройство.

Важный момент: народ не желает платить много. Поэтому все варианты решения проблемы должны иметь минимальную цену, т.е. упрощение схемы, уменьшение кол-ва элементов (не только для снижения цены, но и для упрощения сборки - думается, кое-кому паять вручную по 200 микросхем давно надоело;).

DMA USC я не считаю перспективной темой, т.к. его подключение требует конкретного перепахивания компьютера, поэтому говорить о нём я не буду. Да и софта под него толком нет.

GS легко подключается, и имеет софтовую поддержку. Однако, народ (суммируя мнения оного) не очень-то желает получить современный его вариант, т.е. функциональный аналог на каком-либо МК (без возможности выполнения загружаемого кода). Таким образом, единственное направление развития GS - повторение оригинальной конструкции с изменениями в элементной базе. но всё с тем-же Z80 на борту (или придётся делать ещё более сложное устройство, которое сможет эмулировать Z80, а это уже слишком, имхо). Т.к. я фиговый электронщик (а тут ещё и схема в текстовом виде, фиг поймёшь, что там нарисовано), особых идей у меня нет - заменить Z80 в DIP40 на более современное исполнение; поставить одну SRAM 512K вместо четырёх 62256; переделать аналоговую часть. Ещё мне сильно не нравится наличие аж 8 штук ПА1 (ЦАП'ы каналов - выход+громкость, причём недешёвые), однако заменить их особо нечем. В идеале, конечно, засунуть всю логику в ПЛИС (впрочем, проблему ЦАП'ов это только усложняет), но я так смотрю, что на этот подвиг никто не решится.

Ещё есть две идеи, которые имеют один существенный недостаток: полное отсутствие софта под них.

Первая: добавление в схему компьютера возможности выбора частоты прерываний (с флажком в каком-либо порту - кадровое или нет). Это может пригодиться для разных вещей, в том числе и для цифрового звука. Проблему это полностью не решает, т.к. всё равно всё упрётся в процессор, однако совмещать цифровой звук (через Covox/SD; а можно и просто цифровые ударники в AY-музыке) и параллельно выполняющуюся программу будет проще. Как я понимаю, такую возможность достаточно легко добавить в уже существующем ATM2, в этом направлении стоит подумать. Дополнительный недостаток - зависимость этого дополнения от модели клона, и опять требуется ковырять его схему.

Вторая: по отдельности высказывалась AlCo, lvd, и мной; была реализована в Sprinter'е. Простая схема на МК с небольшим ОЗУ. Вешается на какой-либо порт, или (вроде lvd так предлагал) на порт AY-ка. Т.е. во втором случае даже не требуется ковырять схему компьютера. МК читает записываемые в порт данные, буферизирует их в ОЗУ (буфер нужен примерно на 1/10 секунды), и проигрывает с заданной (или фиксированной) скоростью через ЦАП. Опять-же основная нагрузка идёт на процессор, но появляется возможность пихать данные с максимальной скоростью на обычных прерываниях. При наличии у компьютера турбо-режима вполне реально играть цифровую музыку параллельно с не шибко навороченной игрушкой (для 22khz нужно каждое прерывание готовить и засылать ~500 байт, ~10k тактов на прерывание при тупом проигрывании звука из памяти).


Ну а тему MP3, которую мы так любим обсуждать, я поднимать и не собирался:)
User avatar
jtn
Novelist
Posts: 25
Joined: 16 Dec 2004 12:15
Location: Perm/Russia

Post by jtn »

верной дорогой идёте товарищ :)
designed by Bill Gilbert
Shiru Otaku
Retired
Posts: 490
Joined: 16 Mar 2002 17:00

Post by Shiru Otaku »

jtn wrote:верной дорогой идёте товарищ :)
Да, под напором общественного мнения я остыл к идее NedoGS, так как народ хочет нечто близкое к оригиналу. Кстати, вроде ты занимался переработкой схемы, были результаты?
lvd
Maniac
Posts: 230
Joined: 01 Mar 2005 21:42

Post by lvd »

Shiru Otaku wrote:
jtn wrote:верной дорогой идёте товарищ :)
Да, под напором общественного мнения я остыл к идее NedoGS, так как народ хочет нечто близкое к оригиналу. Кстати, вроде ты занимался переработкой схемы, были результаты?
Текущие идеи такие - z80 в плцц на 20мгц (с возможностью 12 - для совместимости), мег памяти на 512 кбайт срамах, флешка, епм3256, I2S цап, пара буферов на шину спектрума.
В епме в том числе умножитель последовательный с выдачей на I2S.
User avatar
jtn
Novelist
Posts: 25
Joined: 16 Dec 2004 12:15
Location: Perm/Russia

Post by jtn »

Shiru Otaku wrote:
jtn wrote:верной дорогой идёте товарищ :)
Да, под напором общественного мнения я остыл к идее NedoGS, так как народ хочет нечто близкое к оригиналу. Кстати, вроде ты занимался переработкой схемы, были результаты?
за 1,5 года перебрали кучу вариантов, пока что остановились на том, что написал LVD. но опять таки мне не очень нравится. хочется хотя бы 6 (8 ) каналов. epm256 в tqfp144 - это жуткая вещь (запаять конечно можно), в которой всего лишь будет умножалка громкости да диспетчер портов и памяти.
designed by Bill Gilbert
User avatar
HardWareMan
Banned
Posts: 2139
Joined: 20 Mar 2005 13:41
Location: От туда

Post by HardWareMan »

Народ, вам хечется сделать нормальный толковый (в идеале 8ми голосый) аппаратный стерео сэмплер? Тогда я с вами. :) По схемным решениям я бы очень помог. Немного был опыт с такими девайсами и в свое время прикупил почти мешок ПА1ых (примерно штук так 100+) ;)
lvd
Maniac
Posts: 230
Joined: 01 Mar 2005 21:42

Post by lvd »

jtn wrote:за 1,5 года перебрали кучу вариантов, пока что остановились на том, что написал LVD. но опять таки мне не очень нравится. хочется хотя бы 6 (8 ) каналов. epm256 в tqfp144 - это жуткая вещь (запаять конечно можно), в которой всего лишь будет умножалка громкости да диспетчер портов и памяти.
Ну да, зато именно в таком корпусе если чо (если чудо =) можно поменять на 3128. А 3256 в плцц не бывает :(
Насчёт 'всего-то' - ну нету других плмок, которые 5в толерант и 3.3в выход. При этом именно epm обладает фишкой, что ячеек относительно мало, зато в каждую можно кучу вводов сделать, от которых она сделает хитрую логическую функцию. В то время как всякие fpga - наоборот, ячейки тысячами и десятками тысяч, а входов в каждую 4-5 штук всего.
lvd
Maniac
Posts: 230
Joined: 01 Mar 2005 21:42

Post by lvd »

HardWareMan wrote:Народ, вам хечется сделать нормальный толковый (в идеале 8ми голосый) аппаратный стерео сэмплер?
Не, нам хочется нормальный ГС сделать - не на рассыпухе, с мегом памяти, на убыстренном процессоре и с 8 каналами.
По схемным решениям я бы очень помог.
Ну пока можешь помочь с I2S цапом - надо найти доставаемый/недефицитный в единичных экземплярах/недорогой в РФии, желательно с LSB first вводом.
Немного был опыт с такими девайсами и в свое время прикупил почти мешок ПА1ых (примерно штук так 100+) ;)
Вот ПА1 как раз фтопку - один мелкий I2S цап вместо их всех.
lvd
Maniac
Posts: 230
Joined: 01 Mar 2005 21:42

2CHRV

Post by lvd »

Рома, ты, если чо, поможешь запаять tqfp144? =))
User avatar
CHRV
God
Posts: 1101
Joined: 29 Dec 2003 01:00
Location: Москва

Re: 2CHRV

Post by CHRV »

lvd wrote:Рома, ты, если чо, поможешь запаять tqfp144? =))
Я все могу и ЦАПы я вам давал..
jdigreze
God
Posts: 1388
Joined: 02 Jan 2006 02:28
Location: Abakan

Post by jdigreze »

lvd wrote: Ну пока можешь помочь с I2S цапом - надо найти доставаемый/недефицитный в единичных экземплярах/недорогой в РФии, желательно с LSB first вводом.
Я наверно вандал, но если не ошибаюсь, то в cd приводах стоят восьминожки i2c: стерео, 16бит, 44кГц. И, есть у меня подозрение, что они все между собой совместимы...
lvd
Maniac
Posts: 230
Joined: 01 Mar 2005 21:42

Re: 2CHRV

Post by lvd »

CHRV wrote:
lvd wrote:Рома, ты, если чо, поможешь запаять tqfp144? =))
Я все могу и ЦАПы я вам давал..
Ога! Токо я до сих пор не пойму одной вещи про tda1543.
Вот у других цапов в даташитах ясно сказано - базовая частота должна быть *256 от частоты семплов, и от фронта частоты семплов начинается ввод семпла (каждый бит вводится по фронту базовой частоты). Это например у cs4340, WM8725 и тд, а как у ТДА этой - не понятно! В даташите ни слова. Потому пока я лично тда не рассматриваю, доколе мне не ясен алгоритм ввода в неё данных.
lvd
Maniac
Posts: 230
Joined: 01 Mar 2005 21:42

Post by lvd »

jdigreze wrote:
lvd wrote: Ну пока можешь помочь с I2S цапом - надо найти доставаемый/недефицитный в единичных экземплярах/недорогой в РФии, желательно с LSB first вводом.
Я наверно вандал, но если не ошибаюсь, то в cd приводах стоят восьминожки i2c: стерео, 16бит, 44кГц. И, есть у меня подозрение, что они все между собой совместимы...
Не путай i2c и i2s!
lvd
Maniac
Posts: 230
Joined: 01 Mar 2005 21:42

Post by lvd »

jdigreze wrote:
lvd wrote: Ну пока можешь помочь с I2S цапом - надо найти доставаемый/недефицитный в единичных экземплярах/недорогой в РФии, желательно с LSB first вводом.
Я наверно вандал, но если не ошибаюсь, то в cd приводах стоят восьминожки i2c: стерео, 16бит, 44кГц. И, есть у меня подозрение, что они все между собой совместимы...
Ну да, вроде того! Но не выдирать же их для 'серийного' девайса из цдромов... =)
User avatar
CHRV
God
Posts: 1101
Joined: 29 Dec 2003 01:00
Location: Москва

Re: 2CHRV

Post by CHRV »

lvd wrote:Ога! Токо я до сих пор не пойму одной вещи про tda1543.
Вот у других цапов в даташитах ясно сказано - базовая частота должна быть *256 от частоты семплов, и от фронта частоты семплов начинается ввод семпла (каждый бит вводится по фронту базовой частоты). Это например у cs4340, WM8725 и тд, а как у ТДА этой - не понятно! В даташите ни слова. Потому пока я лично тда не рассматриваю, доколе мне не ясен алгоритм ввода в неё данных.
Ну и зря, она в Спринтере стоит, приходишь ко мне, врубаешь осцилограф и вуаля.