shurik-ua, там вроде бы не про ресемплинг ,а про генератор управляемый кодом (ГУК) , но тоже интересно.
Карта на логике без прямой поддержки TSFM с возможностью проигрывания TSFM сторонним плеером, 5-7$
Карта на логике с поддержкой TSFM ,цена 7-10$
Карта на CPLD , цена не знаю примерно 20$ может и больше
shurik-ua, там вроде бы не про ресемплинг ,а про генератор управляемый кодом (ГУК) , но тоже интересно.
Увы общий формат форума вышел из рамок моего любимого места , более тут не бываю.
JV-Soft, я так же делал, но, правда, не на скорость. Это известный случай использования дробного ресемплинга в целочисленной среде.
out port,(hl)
inc hl
делается одной командой - outi
только она ещё и B меняет
Тут именно на скорость необходимо.
То что я пришел к этой формуле думаю вполне логично ,у всего программирования общие принципы и их решение ,но тут радует что своим мозгом.
Да ,спасибо ,но в нашем случае это не подходит, я в коде изобразил виртуальный макрос , в реале через память пишем наш звук.
Еще по сторонним VGM плеерам , как уже говорил выше ,плеер teensy и msx не поддерживают PCM ,вот еще один классный проект и он так же не поддерживает PCM,
я задал вопрос автору ,он говорит та музыка что у него есть идет без PCM и поэтому он не реализовывал поддержку PCM , но я глянул его код и он видимо просто списан с плеера на teensy 3.5 , при чем в коде пытались частично реализовать PCM но не доделали ,хотя мегагерц там куча.
Играет приятно ,наш будет не хуже думаю - https://www.youtube.com/watch?v=WoAp...26349612053122
Увы общий формат форума вышел из рамок моего любимого места , более тут не бываю.
если звук PCM одноканальный то может сделать простейший DMA на дискретах, который бы полностью разгрузил проц от "дурной" работы )
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Новая задача , проверка на конец банка , вот работает наш парсер , выбирая команду за командой от #C000 до #FFFF ,выбираем постоянно через HL, все команды разной длинны , и идет ветвление при исполнении , и проверка после каждого INC HL отнимает много времени , есть какие нибудь мысли как нам проверять HL ?
Думал в конце банка поставить метку типа ноля , но она может попадать как на команду так и на данные , и проверять каждый раз не годится ,ничего не выиграем.
Сделать циклы по 256 байт и потом проверять H , так же не получится ,команды идут разной длинны и с ветвлением легко прозевать > 256
перекомпановывать все данные как вариант ,что бы в конце каждого банка поставить свою команду смены банка для ориентации ,что бы в новом банке данные начинались с команды , это тоже не очень хочется ,на длинных мелодиях долго парсить и двигать.
Есть мысли ?
Пример под конец банка идут команды ,где число это команда для парсера , а XX это то что будет исполнятся уже по переходу в обработчик команды
50,xx,52,xx,xx,53,xx,xx,95,xx ;конец банка #FFFF но не конец команды ,она продолжается в следующем
xx,xx,xx,62,50,xx ;следующий #C000
Увы общий формат форума вышел из рамок моего любимого места , более тут не бываю.
да у меня так же сейчас в одной из версий , но это времени жрет много.
вторая версия парсера у меня вообще через стек работает , что бы скорость получить ,и SP вообще проблема проверять , и все больше склоняюсь к тому ,что придется парсить и реорганизовывать мелодию перед проигрыванием , но очень не хочется ,вот и думаю над идеями.
- - - Добавлено - - -
PS в VGM еще один "классный" момент , в отличии от человеческих форматов ,там инструмент может иметь длину более 64к (#FFFF) ,там используется 32 битная длинна семплов ,но это я уже решил.
- - - Добавлено - - -
goodboy, вот есть команда
52,xx,xx
нам надо выбрать команду 52 , перейти на ее подпрограмму , выбрать ее xx,xx данные , это уже три раза inc L (hl) и три раза проверить на конец банка , а потом эту команду надо обработать и исполнить и на все от выборки проверок и исполнения желательно потратить только 79 тактов )))
Увы общий формат форума вышел из рамок моего любимого места , более тут не бываю.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)