NeoGS for 32-channel XM, IT, S3M

NeoGS software and hardware

Postby TS-Labs » 20 Apr 2010, 10:41

Вообще, там есть формула, которая однозначно превращает значение периода ноты из паттерна в этот самый дробный инкремент, причем с учетом FineTune индивидуально для инструмента, считай - частота его оцифровки для нас пофиг, может быть хоть 8287, хоть 18000, хоть 48000 (надо только не вывалиться за 16 бит в процедуре деления), Arpeggio, и частоты выводимого звука. Загляни в исходники, там довольно хорошо это все видно.

Вообще, блин. Рекомендую послушать, как эта хрень играет, тока модку выбери получше, и сравни с ГС. Потом обсудим нюансы :)
TS-Labs
 
Posts: 1150
Joined: 19 Apr 2010, 10:10
Location: Wildest West
Group: Registered users

Postby breeze » 20 Apr 2010, 12:26

Так когда ждать тестовый прототип прошивки ? :)
breeze
 
Posts: 538
Joined: 07 Feb 2009, 16:19
Group: Registered users

Postby TS-Labs » 20 Apr 2010, 13:15

Ситуация такая:
- я стою в очереди на получение железяк (это около 2 месяцев)
- между тем занимаюсь раздуплением VHDL и FPGA (по срокам, к приезду железа уже буду писать на обоях вхдл)
- по приезду NeoGS я начинаю проектирование музыкального чипа для ЦАП-конвееров, по ходу дела, определяясь с теми возможностями, которые
удастся реализовать на 30к альтере (задача-максимум описана в первом посте данного топика, я пока считаю, что она реализуема)
- после тестирования чипа, как аппаратной составляющей плеера я приступаю к нопейсанию программного плеера. На этом этапе надо определиться: если для обработки 32-канальных XM/IT/S3M хватит Z80 на частоте 24, то хрен с ним, пишу под него. (Да, вопрос: я так понимаю на дворе уже 2010. Скажите пожалуйста, а Z80 все еще выполняет ноп за 4 такта?) Если же не хватает, я пишу под AVR.
1) Вариант 1: зе-восемисят хватает. В этом случае, плеер пишется универсальный, с поддержкой стандарта ГС.
2) Вариант 2: отмелка. Пишется плеер для своих нужд, вторым этапом принимается решение о том, что делать с ГС. тут тоже 2 варианта:
а) расширенные модули играет атмелка, стандарт свой, на z80 играем только унылые 8-канальные мод-ки, поддерживаем ГС, ничего не выигрываем - требуется серьезная мотивация для написания (не финансовая, но хотя бы идейная).
б) делаем ВСЕ на атмелке с поддержкой ГС. Тут рубается код Z80 как сопроцессорный. В этом случае, ящитаю, пора переходить (УЖЕ!!! наконец то) на какие более серьезные мощности, и использовать АРМ или АВР-32 (не помню, поддерживает ли АВР32 выполнение кода из внешнего ОЗУ). Опишите кто-нибудь, по какой технологии используют ГС как сопроцессор: для него код пишется отдельно, или он как-то эмулирует основной компьютер? Если код пишется отдельно, то что стоит писать его под атмел? ПРОФИТ!!!
Такие планы.
TS-Labs
 
Posts: 1150
Joined: 19 Apr 2010, 10:10
Location: Wildest West
Group: Registered users

Postby lvd » 20 Apr 2010, 13:16

TS-Labs wrote:Да, но мы же не будем слушать 1 канал на максимальной громкости колонок. А так, в общем потоке 1/16 громкости и будет звучать как 1/16 громкости.

Как оцифровка на АУке.
TS-Labs wrote:и громкость=20/32=0,625 от максимальной. Ну, в принципе, можно подогнать через индивидуальные громкости.

В принципе, можно (и нужно) забить. амплитудное отличие 0.6 это не та величина, которой стоит париться. Многие моды имеют больший разброс громкостей.
TS-Labs wrote:(блин, есть какой-то термин для этого?)

Называется "арифметика с фиксированной точкой"
TS-Labs wrote: используется 1 байт до запятой и 2 байта после

Противоречие вот с этим:
TS-Labs wrote:Имеем, ADDR - адрес выборки wave-формы, SADDR - субадрес (1 байт). Читаем байт из ADDR - B(ADDR). Формула:DAC=PSM*(256-SADDR)+B(ADDR)*SADDR.Далее, увеличиваем SADDR на некий шаг, если перевалило за нуль, то 1) B(ADDR)->PSM, 2) ADDR+1->ADDR.
F̞͖̭̿̔ͯu̐̅cͬ̑ͩk̨̤̳͇̮̭̪̠̽̿̓̆ͭͩ ̷̩̰͎̩͓̘̾̀ͬ̊ͭ͛ͅda̝̺͙̬͎̝̾͟ ̰̜̝̯͉̯̖̓̎́ͨ̽ͫ͟f̟͇̭̀ͬͨͭ̐̚u̹̼̹̗̞͑̔͂͐̚cͭ̅̊̆̒̆ǩ̝̩̯́ͥ̔̍̑ḭ͓͍̳̬ͦ̽͂n͍͎͈̈̅ͩͬ ̊ͫ̂̾̑̈́f̲͚͉͓͗̋́ͧͦ̅ȗ͇̲̻͈̲̅̎͗͒ͭ͡c̬̟̠̹̯̈́ͩ͘ͅk̫̠̻̋͜a̲͒̾̇!͙͕̺͉̗̩̲̂̏̄̀
User avatar
lvd
 
Posts: 7226
Joined: 07 Apr 2007, 21:28
Group: Registered users

Postby lvd » 20 Apr 2010, 13:17

TS-Labs wrote:- между тем занимаюсь раздуплением VHDL и FPGA (по срокам, к приезду железа уже буду писать на обоях вхдл)

верилог лучше. Букф меньше. :)
TS-Labs wrote:Ситуация такая:

Ниосилил, причём тут атмелка и НГС.
НГС - законченная железяка, и менять её архитектуру какбэ не планируется.

да, и нафиг авр32? АРМ делают всё, даже ленивые, а авр32 - только атмел.
Last edited by lvd on 20 Apr 2010, 13:20, edited 1 time in total.
F̞͖̭̿̔ͯu̐̅cͬ̑ͩk̨̤̳͇̮̭̪̠̽̿̓̆ͭͩ ̷̩̰͎̩͓̘̾̀ͬ̊ͭ͛ͅda̝̺͙̬͎̝̾͟ ̰̜̝̯͉̯̖̓̎́ͨ̽ͫ͟f̟͇̭̀ͬͨͭ̐̚u̹̼̹̗̞͑̔͂͐̚cͭ̅̊̆̒̆ǩ̝̩̯́ͥ̔̍̑ḭ͓͍̳̬ͦ̽͂n͍͎͈̈̅ͩͬ ̊ͫ̂̾̑̈́f̲͚͉͓͗̋́ͧͦ̅ȗ͇̲̻͈̲̅̎͗͒ͭ͡c̬̟̠̹̯̈́ͩ͘ͅk̫̠̻̋͜a̲͒̾̇!͙͕̺͉̗̩̲̂̏̄̀
User avatar
lvd
 
Posts: 7226
Joined: 07 Apr 2007, 21:28
Group: Registered users

Postby lvd » 20 Apr 2010, 13:24

TS-Labs wrote:Опишите кто-нибудь, по какой технологии используют ГС как сопроцессор: для него код пишется отдельно, или он как-то эмулирует основной компьютер? Если код пишется отдельно, то что стоит писать его под атмел? ПРОФИТ!!!

Жду дему для твоей железки с атмелкой, воткнутой в спектрум.
Перед этим жду твою железку в продаже, с софтовой поддержкой.
F̞͖̭̿̔ͯu̐̅cͬ̑ͩk̨̤̳͇̮̭̪̠̽̿̓̆ͭͩ ̷̩̰͎̩͓̘̾̀ͬ̊ͭ͛ͅda̝̺͙̬͎̝̾͟ ̰̜̝̯͉̯̖̓̎́ͨ̽ͫ͟f̟͇̭̀ͬͨͭ̐̚u̹̼̹̗̞͑̔͂͐̚cͭ̅̊̆̒̆ǩ̝̩̯́ͥ̔̍̑ḭ͓͍̳̬ͦ̽͂n͍͎͈̈̅ͩͬ ̊ͫ̂̾̑̈́f̲͚͉͓͗̋́ͧͦ̅ȗ͇̲̻͈̲̅̎͗͒ͭ͡c̬̟̠̹̯̈́ͩ͘ͅk̫̠̻̋͜a̲͒̾̇!͙͕̺͉̗̩̲̂̏̄̀
User avatar
lvd
 
Posts: 7226
Joined: 07 Apr 2007, 21:28
Group: Registered users

Postby TS-Labs » 20 Apr 2010, 13:31

lvd wrote:Как оцифровка на АУке.

На такой громкости колонок смешается с шумом усилителя, инфа100%
lvd wrote:верилог лучше. Букф меньше.

Учту. Я пока только определяюсь с ориентацией :)
lvd wrote: АРМ делают всё, даже ленивые, а авр32 - только атмел.

Согласен
lvd wrote:Называется "арифметика с фиксированной точкой"

Спасибо, кэп :)
lvd wrote:Противоречие вот с этим:...

Ты путаешь (или я чего-то не понимаю) инкремент выборки (8.16 бит, дохуя запаса по частоте) с целью проигрывания разных нот и алгоритм линейной интерполяции.
Последний не делает ничего, кроме как "замазывает" переходы между выборками убого оцифрованного инструмента с частотой выходного звука. То есть, при частоте 44100 мы успеваем выбрать инструмент раз 5, но каждая суб-выборка отличается от предыдущей суб-выборки в сторону следующего реального байта оцифрованного инструмента. Ну КАК еще объяснить....

Та будет какая-то дема наверное, но я ни разу не демо-мейкер. Это будет скорее похоже на бенчмарку :)
TS-Labs
 
Posts: 1150
Joined: 19 Apr 2010, 10:10
Location: Wildest West
Group: Registered users

Postby TS-Labs » 20 Apr 2010, 13:31

Опишите кто-нибудь, по какой технологии используют ГС как сопроцессор: для него код пишется отдельно, или он как-то эмулирует основной компьютер?
TS-Labs
 
Posts: 1150
Joined: 19 Apr 2010, 10:10
Location: Wildest West
Group: Registered users

Postby lvd » 20 Apr 2010, 13:45

TS-Labs wrote:Ты путаешь (или я чего-то не понимаю) инкремент выборки (8.16 бит, дохуя запаса по частоте) с целью проигрывания разных нот и алгоритм линейной интерполяции.Последний не делает ничего, кроме как "замазывает" переходы между выборками убого оцифрованного инструмента с частотой выходного звука. То есть, при частоте 44100 мы успеваем выбрать инструмент раз 5, но каждая суб-выборка отличается от предыдущей суб-выборки в сторону следующего реального байта оцифрованного инструмента. Ну КАК еще объяснить....

Я ничего не путаю. Прошу расписать алгоритм в формулах тогда полностью. Со всеми битами и интерполяциями.

TS-Labs wrote:Опишите кто-нибудь, по какой технологии используют ГС как сопроцессор: для него код пишется отдельно, или он как-то эмулирует основной компьютер?

Код пишется вместе, в том же ассемблере. Если немного хоть думать при записи кода - его можно отладить и на спеке, условной компиляцией сделав так, чтоб работал и там, и там.
F̞͖̭̿̔ͯu̐̅cͬ̑ͩk̨̤̳͇̮̭̪̠̽̿̓̆ͭͩ ̷̩̰͎̩͓̘̾̀ͬ̊ͭ͛ͅda̝̺͙̬͎̝̾͟ ̰̜̝̯͉̯̖̓̎́ͨ̽ͫ͟f̟͇̭̀ͬͨͭ̐̚u̹̼̹̗̞͑̔͂͐̚cͭ̅̊̆̒̆ǩ̝̩̯́ͥ̔̍̑ḭ͓͍̳̬ͦ̽͂n͍͎͈̈̅ͩͬ ̊ͫ̂̾̑̈́f̲͚͉͓͗̋́ͧͦ̅ȗ͇̲̻͈̲̅̎͗͒ͭ͡c̬̟̠̹̯̈́ͩ͘ͅk̫̠̻̋͜a̲͒̾̇!͙͕̺͉̗̩̲̂̏̄̀
User avatar
lvd
 
Posts: 7226
Joined: 07 Apr 2007, 21:28
Group: Registered users

Postby breeze » 20 Apr 2010, 13:57

TS-Labs wrote:по какой технологии используют ГС как сопроцессор: для него код пишется отдельно, или он как-то эмулирует основной компьютер?


Ну вообще он не эмулирует основной компьютер :) а работает параллельно «на своей волне» :) вообще более подробно на эту тему лучше поговорить с Alone Coder'ом, автором демки The Link, которая собственно и использует на всю катушку прелести DMA NeoGS. Если интересно можешь скачать саму демку, в образе диска есть сорцы и примеры.
breeze
 
Posts: 538
Joined: 07 Feb 2009, 16:19
Group: Registered users

PreviousNext

Return to NeoGS - софт и железо

Who is online

Users browsing this forum: No registered users and 1 guest