PDA

Просмотр полной версии : 12-бит, стерео.



Denn
03.08.2016, 13:08
На волне всеобщего помешательства на ковоксах, подумалось вот что... 4-х или 8-битный звук это же совсем "порнография" !
У нас в Орионе имеется порт, который умеет выводить аж целых 24 бита. Понятное дело, что труъ 24-битный ЦАП на рассыпухе резисторов - это бесперспективняк, но оно и не нужно. А вот если разбить имеющийся ресурс пополам, то получается два канала по 12 бит на каждый, и это мне уже кажется интересным. Во-первых, 12 бит - это 144 уровня квантования, против 64-х при 8 битах, т.е. качество звука ощутимо подрастёт. Во-вторых, два канала - это стерео, приемущества которого очевидны.

Итого, делается стерео вариант 12 битного ковокса (горстка резисторов).
Звуковой файл содержит трёхбайтовые отсчёты сразу обоих каналов, код для воспроизведения которых на О-128 примерно такой:



; в паре [DE] буфер WV-файла
; взятие трёх байт отсчёта
LDAX D
INX D
MOV L,A
LDAX D
INX D
MOV H,A
LDAX D
INX D
; вывод их в порт
SHLD 0F600H
STA 0F602H
; задержка, проверка на конец, го в начало


Понятное дело, что нужно для писи написать конвертер обычных писишных WAV'ов в новый орионовский формат (пусть это будет *.WV), решить некоторые вопросы чтения больших файлов на Орионе, но это уже всё дело техники (некоторого кол-ва жопочасов кодинга).

Для уменьшения объёма звукового файла, можно вместо самих отсчётов хранить только дельты для каждого канала, это сократит объём в 1,5 раза. А на Орионе-ПРО с его 10 МГц можно уже подумать в сторону алгоритмов компрессии...

У кого какие мысли? Какие могут быть подводные камни у такой затеи?


П.С. вариант: два 10-битных канала + 4 битный сабвуфер чур не предлагать )))

Error404
03.08.2016, 13:21
Думаю, подводный камень тут только один (на который с плеерами от ivagor-а уже наступали) - большие объемы WAV-ов. При этом чтобы подгружать их с носителя не хватает ресурсов (нужен контроллер носителя, отдающий по DMA), а если грузить файл целиком в память, то всей памяти ориона хватает примерно на 1 минуту моно 12-бит. Возможно, проблему решит упаковка/распаковка.

Hacker VBI
03.08.2016, 13:30
Error404, а это резко уменьшит частоту вывода
вот проигрывать небольшие семплы - хватит

Denn
03.08.2016, 13:34
Мысли в сторону алгоритмов компрессии. Предположим, что вот прям совсем быстро (на всю шкалу +/-128) последующий отсчёт измениться не может (звук - он медленный в масштабах компа :)) и вполне хватит +/-8, поэтому достаточно будет одного байта для кодирования дельты обоих каналов (по 16 на каждый). Т.е. это уже в 3 раза сократит объём.
На случай внезапных крутых скачков можно предусмотреть т.н. key-frames, например через каждые 256 байт, т.е. иногда всё же синхронизироваться с абсолютными значениями отсчётов для надёжности.

- - - Добавлено - - -

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

Error404
03.08.2016, 13:53
Частота семплов при декомпрессии "на лету" (когда файл в память кладем упакованным, а при воспроизведении разжимаем и тут же выкидываем в поток) конечно уменьшится, но учитывая что даже 16-битные семплы воспроизводили, то у 12битных какой-никакой свободный ресурс проца есть. Т.е. возможно все получится, тут надо поискать метод упаковки по принципу "неважно какой сложности упаковщик, лишь бы распаковщик был быстр и линеен", а паковать такие файлы на PC. А если на Z80, то все равно же скорость упаковки не важна - один раз запаковал, и на носителе WAVы хранятся уже пакованные.

Denn
03.08.2016, 14:22
Упаковывать в менее одного байта на отсчёт думаю смысла нет, т.к. в этом случае по любому будет сложная математика при декомпресии, т.е. скорее всего не хватит ресурсов для получения приемлемого битрейта.

Самое простое, что называется с ходу, это попробовать "внагляк" предположить, что для кодирования дельты между соседними отсчётами одного канала достаточно будет 2-х бит (-2..+2), тогда в один байт влезут аж целых два стерео отсчёта! Компрессия в ~6 раз. Примерно потому что key-фрэймы точно понадобятся, и возможно довольно часто.
Тут надо проводить исследование реальных звуковых файлов, сконвертированных под 12 бит, смотреть насколько различаются соседние отсчёты и насколько фатальны для качества звука будут ошибки и их исправления key-фрэймами.

- - - Добавлено - - -

Думаю по поводу реализации железной части. 48 резисторов - это конечно жесть. Может есть в природе готовые 12-битные ЦАПы? Или взять 16-битные, а младшие 4 бита кинуть на землю...

Из готовых железок наковырял следующие варианты:

http://www.chipdip.ru/product/kr572pa2a/

http://www.chipdip.ru/product/594pa1/

http://www.chipdip.ru/product/dac8562fs/

Всё же красава вот этот - http://ru.mouser.com/search/ProductDetail.aspx?R=0virtualkey0virtualkeyDAC8562 FSZ
Но цена ваще ужас ((

Что-то уже склоняюсь к мысли, что лучше заморочиться с резисторами :)

ivagor
03.08.2016, 17:04
Надеюсь Дмитрий2012, который накопил немало опыта в практической реализации ковоксов, меня извинит, что лезу поперек него и дополнит. 8битный у него в итоге получился очень хорошо (на резисторах было не так хорошо). Может ли кто-нибудь навести на хорошо работающую схему >8 битного ковокса?

Denn
03.08.2016, 17:20
8битный у него в итоге получился очень хорошо (на резисторах было не так хорошо)

Это как? Ковокс - это по определению пассивный девайс на резисторах. Не на резисторах - это значит на специализированных м/сх ЦАП, это уже не ковокс.

- - - Добавлено - - -

В общем, надо проверить идею на резисторах, обкатать ПО, а потом всё таки разработать полноценную "звуковушку" на нормальных ЦАП, с аналоговыми фильтрами на выходе, грамотной разводкой и всеми плюшками. Оформить в виде карты расширения, со своей отдельной "защёлкой" ВВ55.

П.С. посмотрел у нас в Микронике высокоточные выводные резисторы стоят 30 руб/шт. Итого надо 48 шт. - это 1440 руб! о_О
Макетка 200+ руб, и примерно столько же разъём DIN. В общем, нуна два штукаря на проверку идеи с резисторами :)

HardWareMan
03.08.2016, 17:58
Во-первых, 12 бит - это 144 уровня квантования, против 64-х при 8 битах, т.е. качество звука ощутимо подрастёт.
Всегда считал, что 4 бита это 16 уровней (2^4), 8 бит это 256 уровней (2^8) и 16 бит это 65536 уровней (2^16). 12 бит это по идее 4096 уровней (2^12). Или я что-то упустил?

Так же, ADPCM скорее всего спасет гигантов мысли. У SNES аудиосистема построена на основе SPC700 (https://ru.wikipedia.org/wiki/SPC700) от Sony, подпёртого 64КБ ОЗУ. Этого объема хватало для хранения модульной мелодии (плеер + рифы + сэмплы) с относительно приличным звучанием.

SPC700 представляет собой микропроцессор, который управляет работающим в паре с ним сигнальным процессором, который обеспечивает воспроизведение семплов из 2x32kb ОЗУ. Внутри Super Famicom/SNES микросхема SPC700 находится над микросхемой сигнального процессора, на левой стороне звукового модуля.

SPC700 имеет шесть регистров, и набор из 256 команд, очень похожий на набор команд семейства процессоров 6502, но содержащий несколько дополнительных операций. Среди них такие операции, как XCN (eXChange Nibble, обмен полубайт), меняющую местами содержимое старших и младших 4-битовых половин 8-разрядного аккумулятора; и умножение двух 8-разрядных чисел с 16-разрядным результатом. Тактовая частота процессора — 1.024 МГц. Встроенное ОЗУ состоит из двух микросхем по 32кб итого 64 КБ, в нём хранится управляющая программа (плеер) , а также семплы и эхо в сжатом с помощью Bit-reduction (ADPCM-подобного) алгоритма виде.

Denn
03.08.2016, 18:09
16 бит это 65536 уровней (2^16)

Допустим у нас питание ЦАПы 5 Вольт. Тогда при такой математике получается, что младший уровень 5/65536 составляет 0,0000762939453125 Вольт... т.е. 76 мкВ... такое реально? :)

П.С. Если совсем честно, то про 64 уровня для 8 бит я вычитал у авторов ковокса для Ориона: "Собранный COVOX необходимо
проверить на линейность и наличие 64 ступенек уровней квантования, наблюдая осциллографом "пилу" на выходе."
Цитата отсюда - http://denn.ru/8bit/orion/128/covox/covox.txt

П.П.С. с другой стороны здесь (http://avrdevices.ru/r-2r-cap-praktitcheskoe-primenenie/) пишут: "Таким образом, восьмибитный ЦАП способен выдать 256 различных напряжений с шагом около 20 милливольт", значит всё таки действительно получается разница 256 vs. 4096 уровней квантования! Так это вообще просто праздник!!

HardWareMan
03.08.2016, 20:09
Реально. И 24 бита реально. Не реально посмотреть на 8ми битном осциллографе все ступеньки. Вот и предлагают сверять линейность только по 64м для 8ми-битника, которые явно видно. Справедливо полагая, что ошибка в младших разрядах много косяков не привнесет.

Denn
04.08.2016, 00:37
Оставлю это здесь - http://microsin.net/programming/pc/wav-format.html
В таких "интимных" подробностях еле нашёл..

add - http://kazus.ru/articles/52.html

OrionExt
04.08.2016, 00:43
Оставлю это здесь - http://microsin.net/programming/pc/wav-format.html
В таких "интимных" подробностях еле нашёл..

Классный ресурс. Много чего полезного нашел для старта в Easily Applicable Graphical Layout Editor (EAGLE).

Denn
14.08.2016, 15:43
Мини отчёт. :v2_dizzy_step:

Добрался до ковокса, спаял пока только 8-битные каналы (2 шт.), получилась вот такая "звуковушка":

https://pp.vk.me/c630618/v630618907/3f591/iltE0pDf_0Q.jpg

https://pp.vk.me/c630618/v630618907/3f59a/4WccfmzZ73c.jpg

:D

Резисторы R-2R матрицы: 5,6 ком и 11 ком, 1% точности. После матрицы сделал фильтр (https://pp.vk.me/c630618/v630618907/3f3cd/kECTw-UWuVk.jpg) на ОУ AD823 (SR 22V/mkS, Rail-to-Rail), Fсреза примерно 20 кГц (12 дБ на октаву), многоступенчатая фильтрация питания аналоговой части.

В общем, ВВ55-я это ещё то г... При выставлении её выхода в "1", эта самая единичка жутко грязная, причём грязь попадает в звуковой диапазон - слышна работа всего компа, особенно процесс сканирования клавиатуры, видимо он самый низкочастотный. Причём попадает оно видимо через сигнал выборки кристалла и/или ШД, т.к. клавиатурная ВВ55 находится в другом конце платы. Как только кладём все выходы в "0", гробовая тишина. Жалею, что не поставил ВВ55 на кроватку, т.к. думаю положительный результат дала бы замена её на CMOS-вариант 82C55A-2. Но, увы, запаяна наша отечественная ВВ55 насмерть. Для избваления от "музыки работы компа" по хорошему надо отвязывать матрицу доп. буферами, например 1533АП6 или опять же CMOS-аналогом 74AC245.

Печаль номер два. В нормальной разрешухе (8 бит, 44 кГц, стерео) в один файл помещается фрагмет не более 0,5 секунд. Стримить через СОМ-порт видимо нереально, т.к. при воспроизведении Орион работает на пределе быстродействия (в цикле POP H, SHLD PORT... всё, больше ничего не влезает). Форматы типа "11 кГц, моно" звучат препоганейше, в общем-то также как и на писи :)
Надо что-то думать с упаковкой и хранением больших объёмов данных... Пока думаю в сторону пофайловой "нарезки" и "сшивки" во время воспроизведения.

Пробовать 12 бит на Орионе-128 думаю смысла нет, это уже на ПРОшке (10 МГц).

AlexG
14.08.2016, 16:00
Мини отчёт. :v2_dizzy_step:

В общем, ВВ55-я это ещё то г...
А если питание на 55 подать от другого источника? от чистого источника питания.
ПС обычно аналоговые схемы питают отдельно от цифровой , да и земли соединяют "по особенному".

Denn
14.08.2016, 16:24
А если питание на 55 подать от другого источника?

Бесполезно, наводка случается внутри ВВ55-ой. Пробовал брать питание прямо с ноги этой ВВ55 и через разделительную ёмкость подавать в звуковой тракт - нету этих помех. Внутри ВВхи есть какая-то грязная шина, с которой берутся лог. "1" на выходы. Ведь выхлоп у неё не 5в, а всего 3,7в... Поэтому и думал, что КМОП версия могла бы решить проблему, т.к. там лог."1" - это тупо коммутация на питание.



обычно аналоговые схемы питают отдельно от цифровой , да и земли соединяют "по особенному".

Аналоговую часть по питанию разделил как мог (одна LC и для RC цепочки). Вообще говоря, такого плана разработки тянут на полноценную звуковую карту, в данном случае собиралась конструкция для проверки идеи. Для О-128 идея малоперпективна, увы.

AlexG
14.08.2016, 17:41
Есть конечно ньюансы (мне из далека не всё видно).
Но я говорил об "чистом" отдельном питании самой 55. это несложно провернуть - один порез и вставить качественный фильтр.
не факт что "подавал на усилитель" это адекватная проверка.
С другой стороны можно впаять кмоп инверторы между 55 и цап.
Можно по пробывать поставить фильтры на цифровые выходы 55
пс я даже не удивлюсь если на выходах 55 уровень лог 1 будет разный...

Denn
15.08.2016, 12:44
Но я говорил об "чистом" отдельном питании самой 55. это несложно провернуть - один порез и вставить качественный фильтр.
не факт что "подавал на усилитель" это адекватная проверка.

Факт. Если проверка на чистоту питания на вводе в ВВ55-ю подтверждает, что оно чистое, то доп. фильтрация не требуется. Помехи насасываются на внутренней шине питания чипа, относительно которой работают ключи коммутации ШУ и ШД. Нужна буферизация сигналов выходных линий порта.
Повторюсь, сабж изготавливался исключительно для проверки идеи, а не для практического использования. В "боевом" варианте предполагалось использование специально выделенного порта ВВ55 (в пр-ве портов расширения F7xx) и использование интегральных м/сх 12-битных ЦАП, с использованием правильной схемотехники и топологии.
Пока что идея показала себя сомнительной, т.к. городить навороченную звуковуху (за много денег) ради 0,5 секунд звука как-то очень странно, имхо.

***

Вчера удалось сваять программу плеера - http://denn.ru/orion/128/software/waveplayer.rar
(для Орион-128, ЦПУ i8080 clk=2.5 МГц, ОС DSDOS)
Он поддерживает 12 форматов стандартных *.WAV файлов:
- 8 бит, 8 кГц, моно;
- 8 бит, 8 кГц, стерео;
- 8 бит, 11.025 кГц, моно;
- 8 бит, 11.025 кГц, стерео;
- 8 бит, 22.050 кГц, моно;
- 8 бит, 22.050 кГц, стерео;
- 8 бит, 32.000 кГц, моно;
- 8 бит, 32.000 кГц, стерео;
- 8 бит, 44.100 кГц, моно;
- 8 бит, 44.100 кГц, стерео;
- 8 бит, 48.000 кГц, моно;
- 8 бит, 48.000 кГц, стерео;

Последние два практической ценности не представляют, т.к. длительность звучания ограничена 0,2 секундами (размер файла ограничен 49152 байтами, выше уже идёт экранная область ПРК), а вот побороться за возможность исполнения кода на ЦПУ 2,5 МГц пришлось :)

Схема ЦАП аналогичная этой:

http://www.mikrocontroller.net/attachment/318/r2r.gif

У меня используются две таких схемы, каждая на свою линию порта #F600 (линия А - левый канал, В - правый).
При воспроизведении монофонических файлов, информация дублируется в оба порта. Монофоническая реализация ковокса также будет прекрасно работать.

OrionExt
15.08.2016, 23:17
AlexG, все ключевые моменты написал. Еще крайне необходимо такие штуки питать от отдельного источника (идеальный вариант гальв. развязка).
Вряд ли из дремучих годов разработчики Intel или д.р. думали, что на ВВ55 будут звуковухи делать. Хи.;)

- - - Добавлено - - -

Ох, как мне подход нравится, спаял чего-то маленькое и сразу в бой:)

Denn
16.08.2016, 11:39
Ох, как мне подход нравится, спаял чего-то маленькое и сразу в бой:)

Как раз написал, что в бой пока не рвусь, т.к. затея практического смысла не имеет. По крайней мере на Орионе-128.

UA3MQJ
16.08.2016, 12:06
Пробовал я цап на r2r резисторах. Подключал USB-I2S далее в ПЛИС, и из нее уже на R2R. До кучи пробовал еще ШИМ и дельтасигма. Потом всей толпой сидели и в слепую слушали, пытались отличать, где какой ЦАП. Так вот, R2R оказался практически хуже всех (на тихих звуках шум). Видимо, из за разброса параметров резисторов. Теперь есть идея сделать 24 битный стерео ЦАП тоже на R2R (считай красота, все линейно), но уже на подстроечных многооборотных резисторах (с ручной настройкой). Иначе, ИМХО, неравномерность все убьет.

https://habrastorage.org/files/4d9/8e3/b71/4d98e3b718db4983950b760c80f716bf.jpg

https://habrastorage.org/files/0ca/c46/7bb/0cac467bb4f145ae8b727db6ee31e5ac.jpg

https://habrastorage.org/files/97f/801/685/97f8016853a545d48be0038d1e5d9842.jpg

https://habrastorage.org/files/332/3c9/e20/3323c9e20dc749ccac4a422bc23d07bb.jpg

https://habrastorage.org/files/280/f1d/414/280f1d4148cd4134b4c6d813051c3c69.jpg

https://habrastorage.org/files/fb5/e67/5e7/fb5e675e77fb45738e7400fe0f634ee6.jpg

Denn
16.08.2016, 12:17
Так вот, R2R оказался практически хуже всех (на тихих звуках шум). Видимо, из за разброса параметров резисторов.

А при чём тут разброс и шум? Неидеальность уровней никак не связана с шумом.
Шум как раз от грязных цифровых сигналов на входе R/2R-матрицы.



Теперь есть идея сделать 24 битный стерео ЦАП тоже на R2R (считай красота, все линейно)

Для Ориона 24 бита бессмысленно. Совсем.

UA3MQJ
16.08.2016, 12:18
А при чём тут разброс и шум? Неидеальность уровней никак не связана с шумом.
Шум как раз от грязных цифровых сигналов на входе R/2R-матрицы.
Ну у меня то была не ВВ55


Для Ориона 24 бита бессмысленно. Совсем.

Кстати, на счет практического смысла. Да, wav's играть может смысла и нет. И даже кусками wav инструменты, как в трекерах (что более вероятно). Но ведь можно вполне попробовать заняться синтезом звука программно. Огромные перспективы: эмуляция аналогового синтеза (пила, меандр, синус, шум, ADSR, LFO, VCA) или FM синтез попробовать.

HardWareMan
16.08.2016, 12:29
Это называется "Функциональный генератор". И тут больше подходит ПЛИС даже чем контроллер или компьютер.

Denn
16.08.2016, 12:30
Ну у меня то была не ВВ55

А какая разница? Разве ПЛИС не может выдавать грязь? У неё документирован уровень лог."1" в виде значения, попадающего в допустимый диапазон, а идеальный "стояк" никто не обещал.
А для R/2R ЦАПы важен именно полнейший "стояк", в противном случае "колбасня" напрямую попадает в звуковой тракт.
Шумы резисторов зависят только от величины их сопротивления, от небольшого разброса величин - нет ;)



Но ведь можно вполне попробовать заняться синтезом звука программно. Огромные перспективы: эмуляция аналогового синтеза (пила, меандр, синус, шум, ADSR, LFO, VCA) или FM синтез попробовать.

Я тоже думал на эту тему. Хотя бы банальный генератор испытательных сигналов. Но опять таки, обслуживать 24 бита будет накладно. Хотя, если в "моно" варианте, то может и можно...

UA3MQJ
16.08.2016, 12:33
А для R/2R ЦАПы важен именно полнейший "стояк"
А как получать? Регистром? Просто мне этот вопрос тоже интересен.

Denn
16.08.2016, 12:43
И тут больше подходит ПЛИС...

Но это же совсем не по олдскулу... J

- - - Добавлено - - -


А как получать? Регистром? Просто мне этот вопрос тоже интересен.

КМОП-буфер, запитанный чистейшим питанием. Имхо. Но это надо пробовать на практике. Т.к. опять может оказаться, что реальная шина питания внутри чипа будет тонкая и хлипкая, и не удержит должным образом лог."1".

- - - Добавлено - - -

Идеально было бы сделать на дискретных буферах, с соответствующей грамотной разводкой платы. Это если городить ХЭ :)

AlexG
16.08.2016, 13:24
забудьте как страшный сон 24 бит на резисторах!!! и 16 тоже... для разрядов больше 12 НУЖНО отдельное качественное питание и куча всего остального...
Для самопальных цап на резисторах 8 бит и не более...

Denn
16.08.2016, 13:34
для разрядов больше 12 НУЖНО отдельное качественное питание и куча всего остального...

Это всё не проблема. Вопрос лишь в целесообразности огорода.

Например, для генерации испытательных сигналов в радиолюбитеьской практике наверное будет достаточно 8-битного квантования. Для изучения всяких форм звуков и "поиграться с LFO" - тоже. Понятное дело, что 24 бита будет лучше, но не такой ценой же! :)
Сделать синтезатор из Ориона не получится, даже одноголосный, т.к. воспроизведение звука отнимает все ресурсы ЦП, т.е. уже невозможно будет отслеживать MIDI-события от клавиатуры ((

UA3MQJ
16.08.2016, 13:53
Для самопальных цап на резисторах 8 бит и не более...
Да. Согласен. Похоже на то. В итоге ШИМ и сигмадельта ПЛИСовые даже 8 битные играли чище, чем 8 битный R2R. Так что я забросил это дело и перешел на I2S ЦАПы (WM8716 и более дешевый и простой TDA1543 по 32 рубля)


Сделать синтезатор из Ориона не получится, даже одноголосный, т.к. воспроизведение звука отнимает все ресурсы ЦП, т.е. уже невозможно будет отслеживать MIDI-события от клавиатуры ((
Жаль, было бы интересно посмотреть на такой проект даже хотя бы со стороны.

Denn
16.08.2016, 14:34
UA3MQJ, MIDI-"секвенсор" у меня есть готовый на Орионе, делал ещё в юности для своего синтезатора Yamaha PSS-780.
Под ORDOS :)
Разбор MIDI-протокола даже программный был (подключал через ВВ55).

Denn
24.08.2016, 12:12
Вчера удалось сваять программу плеера - http://denn.ru/orion/128/software/waveplayer.rar
(для Орион-128, ЦПУ i8080 clk=2.5 МГц, ОС DSDOS)
Он поддерживает 12 форматов стандартных *.WAV файлов:
- 8 бит, 8 кГц, моно;
- 8 бит, 8 кГц, стерео;
- 8 бит, 11.025 кГц, моно;
- 8 бит, 11.025 кГц, стерео;
- 8 бит, 22.050 кГц, моно;
- 8 бит, 22.050 кГц, стерео;
- 8 бит, 32.000 кГц, моно;
- 8 бит, 32.000 кГц, стерео;
- 8 бит, 44.100 кГц, моно;
- 8 бит, 44.100 кГц, стерео;
- 8 бит, 48.000 кГц, моно;
- 8 бит, 48.000 кГц, стерео;


При попытке играть "всякие файлы из интернетов" обнаружилась бага в узле разбора протокола WAVE-контейнера, в результате некорректно вычислялась длина воспроизводимого фрагмента. Fixed.

Добавил Fade-In/Fade-Out до и после воспроизведения файла, соответственно, чтобы не было щелчков при обнулении порта ковокса (факин' ВВ55-я). Дело в том, что настройка порта обнуляет его выходы, а ноль в 8-битном квантовании соответствует максимальному значению амплитуды отрицательной полуволны (нулевое значение амплитуды это 80h). Т.о. при воспроизведении всегда получался скачёк 00h -> 80h -> 00h, что давало громкий щелчёк в динамиках.

Обновил архив.

Также добавил кучку переведённых в формат *.ORI звуковых файлов (звуки выстрелов и всякие звуки из писишных игр), плюс bat-файлы "плэй-листов".
Ссылка для закачки прежняя.

PS в планах написание GUI'шной версии плеера, с поиском "своих" файлов на дисках, паузой/перемоткой, составлением плэй-листов и т.п..

alx32
24.08.2016, 20:19
На этой волне можно задуматься и о звуковой карте для Ориона, а так же о трекерной музыке...

Отправлено с моего X5max через Tapatalk

OrionExt
25.08.2016, 03:17
На этой волне можно задуматься и о звуковой карте для Ориона, а так же о трекерной музыке...
Не то. Хотя по теме (Трекерная музыка. Там не все так просто. Для 8-бin платформы под силу. Нид хотя бы простой чип (для семплов (звуков), поищите на досуге)). Дети.


Я бы задумался о вменяемых чипах для звука предназначенных для 8-bit платформы. А не DAC мучать, вот бы энергию туда ТС. А их полно. Только стоит отойти от темы DAC.

Denn
25.08.2016, 10:12
Спец чип для 8-битки - это AY, он по сути уже прикручен к Ориону, и его поддержку в плеере я тоже планирую сделать.

OrionExt
26.08.2016, 21:38
Спец чип для 8-битки - это AY, он по сути уже прикручен к Ориону, и его поддержку в плеере я тоже планирую сделать.

AY - хорошо:) Но это все уже до дыр затерли. Вот бы чего новенького для Ориона, для начала, например YM2413. А дальше можно еще более продвинутые чипы прикрутить.

HardWareMan
26.08.2016, 22:24
YM2612/YM3438 в паре с SN76489 и тонны GYM файлов с Зофара (а если установлен Z80, то можно и нативно TFM/GENS играть). Я подключал в 90х. Вот подготовил еще:
http://savepic.ru/11089014m.jpg (http://savepic.ru/11089014.jpg)

OrionExt
27.08.2016, 00:07
YM2612/YM3438 в паре с SN76489 и тонны GYM файлов с Зофара (а если установлен Z80, то можно и нативно TFM/GENS играть). Я подключал в 90х.

Вот:eek: А то DAC, DAC!

- - - Добавлено - - -

alx32, вот бывает, спешу с выводами.

Не то. Хотя по теме (Трекерная музыка. Там не все так просто. Для 8-бin платформы под силу. Нид хотя бы простой чип (для семплов (звуков), поищите на досуге)). Дети.

Такого понятия как трекерная музыка не существует, у музыкантов. Это “жаргон”. Есть метод семплами музыкальную мелодию (барабаны, пианино, гитара и т.д) воспроизводить. Все это хранится в не маленьком ПЗУ и по делу выдергивается. Для 8-биток очень хорошо подходит, в силу своей 8-битности. 8-битка только дает команду, какой семпл в какой тональности (ноте) играть.

HardWareMan
27.08.2016, 01:12
Есть синтезатор и есть сэмплер. "Треккерная" музыка (я ее называю MODная, тоже местная хохма) это семплер.

OrionExt
27.08.2016, 03:25
Есть синтезатор и есть сэмплер. "Треккерная" музыка (я ее называю MODная, тоже местная хохма) это семплер.
Модная (популярная) музыка – попса. Тогда уже трекерна - музика:v2_dizzy_punk:

Denn
27.08.2016, 12:47
Не выдержал слушать "музыку ВВ55", вколхозил буферы:

http://denn.ru/8bit/orion/128/covox/cvx+buf(1).jpg

http://denn.ru/8bit/orion/128/covox/cvx+buf(2).jpg

Предположение оправдалось - теперь тишина гробовая! :v2_dizzy_roll:
В качестве буферов использовал 74HCT245N (а-ка АП6), запитал их от фильтрованного питания аналоговой части.

Denn
28.08.2016, 14:50
Итоговая схема 8-битной версии стерео-ковокса:

http://denn.ru/8bit/orion/128/covox/cvx_stereo_schematic.jpg

* на схеме не указаны блокировочные конденсаторы непосредственно на выводах питания микросхем буферов и ОУ. Я использовал SMD конденсаторы 100нф с диэлектриком NP0.

В качестве буферов можно использовать любые КМОП шинные формирователи:
74HC245N
74HCT245N
74AC245N
74ACT245N
Из отечественных аналог КР1554АП6

Уровень выходного сигнала вполне достаточный даже для раскачивания высокоомных наушников. Для низкоомных (менее 300 ом) наушников нужно увеличить ёмкость выходных разделительных электролитов до 470..1000 мкф.

HardWareMan
28.08.2016, 16:03
Я помню на недопц обсуждали (http://www.nedopc.org/forum/viewtopic.php?f=68&t=9465) стереосовк с аппаратным ШИМом. Тоже 2 регистра на 8 бит, затем 2 4хбитных сумматора и 2 4хбитных счетчика ("быстрый" ШИМ, по терминологии Atmel) и ТМ2 на выходе как буфер левого и правого выхода. Очень простая схема но с не кислым потенциалом. Я думаю они не обидятся:
http://savepic.ru/11088583.gif

Error404
28.08.2016, 19:24
Хм, ИМ3 у меня имеются. :)
Что до цифровой реализции ковокса, то я бы еще предложил добавить туда буфер на регистровом файле или FIFO ОЗУ каком. Чтобы с хоста задав частоту дискретизации (т.е. частосту прогона FIFO) на чем-то типо ВИ53 (у нас например всегда остается 1 свободный канал на платах COM-портов), выкидывать в буфер очередную порцию не меряя тики от байта к байту, а пополняя по исчерпанию буфера. Это даст возможность укрупнить циклы разделения между обслугой ковокса и остальными, что даст возможность в "остальное время" делать полезную нагрузку, например - подчитывать блоки с носителя, т.е. вот тогда это уже будет плеер.

Denn
28.08.2016, 20:08
К сожалению в "остальное время" влезают три NOP'а при клоке проца 2,5 МГц. Это образно, но к сожалению реальность именно около того.

HardWareMan
28.08.2016, 20:28
Только обрати внимание, что на функциональной схеме перепутаны старший-младший нибблы, как у счетчиков так и у регистров. Принципиалку тогда вывели примерно вот такую:
http://savepic.ru/11133447.gif
Ну и в качестве послесловия, я думаю что правильнее применить СП1 вместо ИМ3. Тогда получится настоящий ШИМ. А ИМ3 это же сумматор. Принципиалка подтверждена по крайней мере одним пользователем недопц. Причем он говорит что от перепутывания нибблов звук остается приличным, но принимает какую-то "окраску". Более детально здесь. (http://www.nedopc.org/forum/viewtopic.php?p=110730#p110730) Копировать сюда смысла не вижу.

- - - Добавлено - - -


К сожалению в "остальное время" влезают три NOP'а при клоке проца 2,5 МГц. Это образно, но к сожалению реальность именно около того.
Потому, что DMA нужен для непрерывного звука.

- - - Добавлено - - -

PS Там на недопц дают ссылку на оригинал (http://www.belti.ru/~electron/raznoe/schems/covox.htm). Так вот что там написано:

Схема цифpо-аналогового пpеобpазователя ковокса. Используются обычный слотовый
ковокс до 555ИР23, (Условно не показан), паpа счетчиков, паpа тpиггеpов, паpа
сумматоpов. Пpимечание: Использовать 555 сеpию вместо 155 не pекомендуется;
155ИЕ2 непpименимо по быстpодействию, 155ИМ3 не найдена в спpавочнике (Снята с
пpоизводства?), годится в пpинципе любой сумматоp или компаpатоp типа 555СП1.
Hеиспользуемые входы pекомендуется подвесить на +5в чеpез 1к. Конденсатоpы на
выходе подбиpаются по вкусу (У меня их вообще нет, но для записи или выдачи на
усилитель может оказаться необходимым не то что конденсатоp, а целый фильтp с
частотой сpеза 22 кГц). Важная тонкость: на младший pазpяд сумматоpа
идет младший pазpяд с pегистpов, но СТАРШИЙ со счетчика. И наконец, выходной
шнуp обмотан 10-20 витками на здоpовом феppитовом кольце.

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

OrionExt
28.08.2016, 21:47
Ого. Давно я такого «не детского» фильтра по питанию не встречал в этом сообщении (http://zx-pk.ru/threads/26836-12-bit-stereo.html?p=883534&viewfull=1#post883534).


К сожалению в "остальное время" влезают три NOP'а при клоке проца 2,5 МГц. Это образно, но к сожалению реальность именно около того.
Я тут поискал/почитал. Если Z80 на 20 МГц еще реально заставить работать без хитростей с ОЗУ, ПЗУ. То с периферией тех годов – облом. Максимум 10 МГц.

Вот кстати интересный проек (http://rc2014.co.uk/)т в сети нашел. Так примерно для себя и вижу концепцию будущего Ориона. Максимальное разделение на функциональные узлы. Мечта для экспериментатора и радиолюбителя:) Вот интересно, почему в 90-х такой простой компьютер не придумали. Хотя были попытки ЮТ-88. Но там потом все загубили.

Error404
28.08.2016, 23:42
Вот кстати интересный проек (http://rc2014.co.uk/)т в сети нашел. Так примерно для себя и вижу концепцию будущего Ориона. Максимальное разделение на функциональные узлы. Мечта для экспериментатора и радиолюбителя:) Вот интересно, почему в 90-х такой простой компьютер не придумали. Хотя были попытки ЮТ-88. Но там потом все загубили.

Далеко и ходить не надо - такой же проект, и даже не один, в соседнем треде (http://zx-pk.ru/threads/25682-karmannyj-kompyuter-na-z80-i-ne-tolko.html) (в особенности последние Женины проекты с Микрософт Васиком). Хотя и не в виде составной этажерки (как оно работать то будет с таким количеством коммутационных элементов? Надежность будет как у бредборды).

В 90-х такой простой комп придумали, назывался он АОН (Русь и т.п.). :)

OrionExt
29.08.2016, 01:20
Далеко и ходить не надо - такой же проект, и даже не один, в соседнем треде (http://zx-pk.ru/threads/25682-karmannyj-kompyuter-na-z80-i-ne-tolko.html) (в особенности последние Женины проекты с Микрософт Васиком).

Не это не то. Таких проектов с 2000 пруд пруди. Тут другой подход. Модульность. Минимализм. Тем более в наше время. Пример. Меняем 8 ОЗУ на один чип. Тут чего-то от ЮТ-88. Только в новой обвертке. Хотя и раньше такое видел у партнеров из-за рубежа. Системный разъем у них был на 2-х DB-15 VGA (может кол-во контактов попутал). Стоял у них отдельный модуль на генерацию частоты с встроенной системой типа «шагатель» для CPU.

Типа как в книге. От простого к сложному. Своими руками. Супер учебный проект. А в наше время можно и на оборот. От сложной схетотехники к простой (прикрутили там к этому безобразию 4-Core 1ГГц (http://rc2014.co.uk/modules/pi-zero-serial-terminal/), цена вопроса 4 фунта). Но мы тут простых путей не ищем;)

- - - Добавлено - - -

Не вот! Разве плохо на таком примере детей учить в школе. И стоит копейки.

- - - Добавлено - - -

Error404? А потом что мне делать с мега(мини) проектами (Орион, Спектрум, и тд). делать. на полку повесить. И гордится. Нет, я за движение, вперед.

uart
29.08.2016, 13:21
Error404, тогда уж на DMA посадить :)

Denn
29.08.2016, 14:40
Вот кстати интересный проек (http://rc2014.co.uk/)т в сети нашел. Так примерно для себя и вижу концепцию будущего Ориона. Максимальное разделение на функциональные узлы. Мечта для экспериментатора и радиолюбителя:) Вот интересно, почему в 90-х такой простой компьютер не придумали. Хотя были попытки ЮТ-88. Но там потом все загубили.

Про концепцию развития Ориона безусловно интересно, но не в ветке про ЦАПы.

b2m
29.08.2016, 16:51
Вот кстати интересный проект в сети нашел. Так примерно для себя и вижу концепцию будущего Ориона.
Raspberry Pi в одном из слотов (там, где видеовывод) смотрится особо шикарно :)

Error404
29.08.2016, 18:00
Raspberry Pi в одном из слотов (там, где видеовывод) смотрится особо шикарно :)

ага :)