PDA

Просмотр полной версии : Биперная музыка на Векторе-06Ц



Страницы : [1] 2

ivagor
23.09.2017, 08:47
В 2012 году адаптировал Z80->i8080 проигрыватель MusicStudio (взял из Beepola) со спека и (на львовском форуме) выкладывал версии для Львова ПК-01. Несмотря на большие усилия по оптимизации не удалось получить приемлемый результат для Львова. А для вектора почти удовлетворительно.
Лучше звучит в VV при включенном (насколько помню так по умолчанию) LF Filter

Upd 29.06.2023: Избранные биперные движки в картотеке (https://www.sensi.org/scalar/categories/beeper/)

ivagor
27.09.2017, 07:43
Для тех кому нужно покачественней - вариант использующий covox как двухканальный бипер. Разница слышна невооруженным ухом.

ivagor
01.10.2017, 12:39
На реалах covoxов маловато, зато у многих есть AY/YM (Sound Tracker). Вот и вариант Music Studio для "двухканального бипера на AY" (да, сомнений уже нет, я извращенец).

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

Отмечу один момент. Вариант для AY/YM при более внимательном подходе оказывается лучше походит для AY. В эмуляторах нет проблем - и в emu и в VV (по умолчанию там выбран AY) звучит нормально (хотя и тихо). Но если выбрать YM в VV, то звук будет похуже. На реалах, насколько я знаю, преобладают именно YM. В проигрывателе на счету каждый такт и каждый регистр, малой кровью улучшить качество для YM не получится. Но может что-нибудь придумаю.

ivagor
26.01.2019, 19:48
Взял и совершенно бездумно и механически адаптировал на вектор проигрыватель модулей Music Box (который Wham! The Music Box (http://www.worldofspectrum.org/infoseekid.cgi?id=0008965)) с использованием таймера вместо бипера.

Авторство проигрывателя из исходника:
; * The Music Box Player Engine
; * Based on code written by Mark Alexander for the utility, The Music Box.
; * Modified by Chris Cowley

Музыкальные модули:
amelie - L'autre valse d'Amelie / irrlicht project (orig. by Yann Tiersen)
arpchaos - arp chaos / irrlicht project
cauldr2 - Cauldron2 / ?(Richard Leinfellner, Steve Brown, Richard Joseph)
hotm - Heavy On The Magick / ?(Roy Carter, Greg Follis)
ithotmk - In the Hall of the Mountain King / ?(Matthew Smith) (orig. by Edvard Hagerup Grieg)

Подскажите, если знаете, где можно скачать еще модули для этого проигрывателя.

goodboy
26.01.2019, 19:52
на ZX в редакторе есть пяток мелодий.
ну и может десяток наберётся в играх

ivagor
26.01.2019, 20:26
Добавил авторов для архива MusicBox1

svofski
26.01.2019, 23:05
О, я чего-то про эту ветку забыл. Заслушиваюсь музоном из MusicStudio_V06C.zip через v06x с рациональным полифазным. Мммм, повидло.

ivagor
27.01.2019, 08:26
На тот момент v06x не было, а в нем да, бипер звучит получше.

Pyk
27.01.2019, 15:25
Да, биперная музыка на v06x звучит супер! Полифазный фильтр рулит :)
svofski, кстати, есть какие-нибудь мысли насчет фильтрации AY?

svofski
27.01.2019, 15:40
Pyk, а надо? У меня не возникало желания дополнительно его фильтровать, потому что на известных мне примерах у него и так вроде хорошо. ВИ53 меня задел за живое свистом в ШИМ-музыке ivagor-а. Если есть аналогичные примеры с AY, где реал звучит хорошо, а в эмуляторе соло на альте, я задумаюсь.

Pyk
27.01.2019, 16:40
svofski, не уверен, но...

Запусти driller.rom в v06x. Вместо тишины в промежутках между звуками там слышен довольно громкий свист.
AY там программируется на период 1 (по крайней мере, в версии для ПК8000 так, думаю, что на Векторе аналогично), что дает ультразвук частотой кажется в 200 с чем-то кГц.
Наличие громкого свиста вероятно свидетельствует о неэффективности фильтра в том случае, если на его вход поступает уже искаженный сигнал (насколько я могу судить по логике работы AYWrapper.step2()).
Можно, конечно, такие крайние случаи обработать в эмуляторе отдельно. Я у себя так и сделал, но если эту проверку убрать, то даже с моей простейшей фильтрацией посторонний свист получается едва слышимым. Сложно сказать, что там происходит на самом деле, но этот громкий звук заставляет задуматься о том, нет ли посторонних призвуков и при проигрывании обычной музыки, пусть и неразличимых не слух...

Я не пробовал, но можно для сравнения попробовать в v06x проигрывать ультразвук через таймер. В этом случае по идее должна быть тишина - полифазный фильтр должен сработать.

svofski
27.01.2019, 21:23
Pyk, хороший пример. Собственно я не добавлял фильтрацию из-за того, что хорошего примера не было.

Можно попробовать вот так в sound.cpp:



- soundf = this->resampler.sample(soundf * 0.2f);
+ soundf = this->resampler.sample((ay + soundf) * 0.2f);

...

- float sound = soundf + ay * 0.2;// + covox/256.0;
+ float sound = soundf;


В Driller-е свист ушел, обычные AY-музоны вроде хорошо звучат, но я с AY знаком шапочно. Пробная сборка http://sensi.org/~svo/b/v06x.exe

Pyk
27.01.2019, 21:47
svofski, cейчас только увидел, что AY вообще на фильтр не поступал, так что я был не совсем прав насчет причин свиста.
Думаю, что стало вполне приемлемо - свист сейчас едва слышен, хотя и не ушел совсем.
Наверное все-таки свою роль играет некратность частоты AY частоте процессора...

Кстати, какова частота AY на Векторе - 1.75 или 1,77? В разных эмуляторах по-разному...

svofski
27.01.2019, 22:21
Кстати, какова частота AY на Векторе - 1.75 или 1,77? В разных эмуляторах по-разному...
Если я правильно понимаю, что сам когда-то написал :) то 12*14/96 = 1.75

ivagor
13.02.2019, 19:41
Предлагаю вашему вниманию адаптацию Music System (https://zx-pk.ru/threads/30080-muzyka-okeana(-240).html?p=998652&viewfull=1#post998652) для вектора. Дополнительные ссылки и 41 файл с примерами мелодий здесь (https://zx-pk.ru/threads/30104-muzykalnaya-sistema.html).
Адаптация Quick&Dirty, использует в качестве biosa эмулятор РК-Микроши (http://www.sensi.org/scalar/ware/548/). Подробнее про использование написал в readme.txt, обязательно почитайте, есть отличия от РКшного варианта!
Пара моментов не отраженных в readme.
Т.к. вектор не может использовать для звукоизвлечения специальные команды музыкального акселератора ei и di (они быстрые, не требуют задания параметров в регистрах, не влияют на флаги и регистры), то биперный векторовский вариант несколько уступает по скорости разогнанному РКшному (неразогнанный РКшный медленнее). Зато векторовский намного удобнее - нажатием УС можно прервать проигрывание мелодии, у варианта РК такой фичи нет.
Тем, кого не устроит биперный вариант предлагаю ковоксный. Он быстрее, громче, качественнее.

Теперь об ограничениях. Использовать эту систему с удобством на данный момент можно только в emu (желательно обновить до последней версии, но это не обязательно). От эмулятора нужна поддержка перехвата РКшных магнитофонных процедур, чтобы можно было грузить файлы .rk. В VV эту поддержку можно сравнительно просто добавить, а вот в v06x, как я понимаю, пока магнитофонного перехвата нет. Т.е. для VV и v06x придется переводить файлы .rk в wavы.

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

Заметил, что ковоксный вариант иногда кликает. В самом проигрывателе переполнения не происходит, но то, что я использовал полный диапазон от 0 до 255 вероятно при микшировании в эмуляторе иногда приводит к переполнению.

Upd 20.02.2019: Обновил биперную и таймерно-биперную версии, теперь они сравнялись по скорости и диапазону с ковоксной.

Upd 21.02.2019: Добавил точную трехканальную таймерную версию (это лучший вариант), убрал ковоксную.

ivagor
13.02.2019, 21:53
У вас нет ковокса? Это не проблема, он и не особо нужен! Используйте двухбитный таймерный ЦАП!
Заменил архив, добавил версию MSVecTD, которая собственно реализует описанную штуку. Она по качеству почти как ковоксная (но на реале, конечно, будет весьма тихой, если не подключить магнитофонный/звуковой выход вектора к усилителю, а слушать через пищалку), и чуть быстрее биперной. Однозначно рекомендую эту версию. Аналогично можно сделать для Апогея и ПК8002. Хотя для ПК8002 с его ЦАПом можно и ковоксный вариант.

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

В readme.txt поторопился и написал "двухбитный бипер" вместо "двухбитный ЦАП". Еще раз архив из за этой мелочи менять не хочу, но прошу учесть эту неточность.

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

У повышения качества звучания есть и оборотная сторона. Лучше слышна фальш, иногда становится очень похоже на Portsmouth Sinfonia. Также заметнее ограничения или ошибки аранжировок - замена высоких нот на более низкие, если они не влезают в воспроизводимый диапазон, возможно иногда ошибки набора.

svofski
14.02.2019, 16:27
Т.е. для VV и v06x придется переводить файлы .rk в wavы.
Да, наслаждение биперной музыкальной системой в v06x -- удовольствие не для слабых духом. Пришлось поправить и bin2wav и сам v06x (https://github.com/svofski/vector06sdl/releases/tag/exolonportc) (v06x не хотел играть вав, когда уже указан ром).

На всякий случай, если вдруг кто-то захочет повторить подвиг, вот склеенный wav с музыкальной системой и музыкой из Усавичей с длинными ракордами, чтобы можно было успеть хитрые команды.
http://sensi.org/~svo/b/msvec-choral.zip (всего 15кб, но распаковывается в wav 2мб)

Запуск:
v06x.exe --rom micro_rk.rom --wav long.wav

(Там стремглав жмем: )
<space> I <enter>
(Ждем, не засыпаем, как только появляется чексум, набираем)
G11F0 <enter>
(появляется приветствие музыкальной системы)
G <enter>
(ждем загрузки)
R
(испытываем катарсис)

То же самое должно быть применимо и к VV.

Надо бы мне подумать о каком-то интерфейсе для интерактивного жонглирования внешними файлами, даже если это будут вавы.

ivagor
14.02.2019, 17:34
Квест по запуску выполнил, качество бипера заценил - очень здорово звучит. Тебе надо было эмулятор спектрума делать, там много крутого бипера.

Ramiros
14.02.2019, 18:51
Чтоб В VV упростить квест, надо в файле cas.ini после строки "Эмулятор РК-86/Микроша" раскоментировать две следующие строчки и тогда будет работать перехватчик для .rk файлов.

ivagor
14.02.2019, 19:05
Ramiros, это хорошо, а доработать планируешь, чтобы убрать шероховатости (пищание в диалоге и несовпадение контрольной суммы)?

svofski
15.02.2019, 19:25
Предлагаю обладателям винды tool-assisted speedrun квеста по запуску биперной прелюдии BWV147 в v06x:
http://sensi.org/~svo/b/v06x-tas.zip
В архиве все, что нужно. Распаковываем, запускаем start.bat и ничего не трогаем. Можно трогать регулятор громкости, потому что уровень проигрывателя вавов сильно выше, чем проигрывателя прелюдий.

Внимательные слушатели увидят в этой демонстрации намек на новую интересную фичу в v06x ;)

ivagor
15.02.2019, 19:42
Круто, у b2ma есть фича по роботическому нажатию клавиш, но у тебя как-то чересчур наворочено. Наверно тут есть глубокий смысл, и если достаточно долго смотреть на usavich.chai, то он (смысл) станет понятен.

svofski
15.02.2019, 19:59
ivagor, смысл в том, что можно не только роботно нажимать на клавиши, а скриптовать все аспекты эмуляции. Например, ту же поддержку загрузки .rk не надо будет делать в самом эмуляторе. Или перехват каких-нибудь портов. Никогда не знаешь где пригодится.

Но пока я на пробу сделал только кнопконажимание и вавопроигрывание.

ivagor
15.02.2019, 20:12
Раскрой секрет, как ты быстро сделал интерпретатор скрипта? У тебя была заготовка или адаптировал под свои нужды общеизвестный (но не мне) опенсорсный?

svofski
15.02.2019, 20:19
ivagor, ты что, конечно я не делал его сам! Это чай-скрипт: http://chaiscript.com/

Вставить его в таком объеме оказалось делом нескольких часов. То есть вставить его вообще минута, но вот прикрутить там и сям, чтобы получилось осмысленное взаимодействие с эмулятором, на это ушло время.

Ramiros
16.02.2019, 11:34
Ramiros, это хорошо, а доработать планируешь, чтобы убрать шероховатости (пищание в диалоге и несовпадение контрольной суммы)?
Да, надо будет попробовать ))

svofski
16.02.2019, 17:04
Протащил API отладчика и наскриптовал через него подгрузку файлов rk. Получилась крайне удобная система для биперного меломанства.

По ссылке полный комплект эмулятора + музыкальной системы + набор музона. Только раззиповать:
http://sensi.org/~svo/b/MusicSystemVectorV4-TAS.zip

Я настроил ассоциацию на Enter в FAR-е на .rk: ..\msvec.bat !.!, а можно просто запускать:
msvec.bat "Other Arrangements\ANTIRAS.rk"
или то же самое из подкаталога
..\msvec.bat ANTIRAS.rk


Всем приятного меломанства! (и, пользуясь случаем, хочу передать привет Portsmouth Sinfonia)

ivagor
16.02.2019, 17:29
"- Стоп, стоп! Вы что это, и конфеты за меня есть будете?
- Ага!"
После запуска руки потянулись что-то набрать, а оно все само. Для полного дожатия темы нужно, чтобы после окончания музыки эмулятор закрывался, открывался браузер, форум и робот печатал там свои впечатления - "Сойдет." или там "Отстой!".
Система тотального скриптования теоретически открывает широкие возможности. Например, b2m высказывал (в шутку, конечно) идею, чтобы при детекте набора в эмуляторе слова "ivagor" совершались бы какие-нибудь странные действия. Теперь для этого даже не надо портить эмулятор.
Если серьезно, то планируешь еще добавить загрузку разных форматов, хотя бы бейсиковских файлов?

svofski
16.02.2019, 18:01
ivagor, вот таким неожиданным образом пригодился отладчик, который сам по себе получился не самым удобным. Текущего API (я как раз на скорую руку записал то, что есть (https://github.com/svofski/vector06sdl/blob/master/README.md#available-api)) должно быть достаточно, чтобы поддержать Бейсиковую загрузку. Может быть ты хочешь попробовать сделать? Причем Бейсики же разные, можно для каждого делать перехватчики для каждого свой.

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

PS По поводу автоматического закрытия эмулятора, это идея. Можно повесить брекпойнт на завершение проигрывателя ;) Правда прибить эмулятор через API сейчас нельзя, но это добавить нетрудно.

KTSerg
16.02.2019, 18:11
...
По ссылке полный комплект эмулятора + музыкальной системы + набор музона. Только раззиповать:
http://sensi.org/~svo/b/MusicSystemVectorV2-TAS.zip
...
А для какой ОСи собран v06x.exe ?

ivagor
16.02.2019, 18:11
Текущего API (я как раз на скорую руку записал то, что есть) должно быть достаточно, чтобы поддержать Бейсиковую загрузку. Может быть ты хочешь попробовать сделать?
Пока я не готов, думаю (пытаюсь думать) о другом.

svofski
16.02.2019, 18:22
А для какой ОСи собран v06x.exe ?
64-битная винда. А ты наверное хочешь win32?

KTSerg
16.02.2019, 18:30
64-битная винда. А ты наверное хочешь win32?
:v2_blush:

ivagor
17.02.2019, 16:27
Попробовал сделать двухканальный биперный движок с управлением скважностью, а потом (отдельно) с управлением громкостью. Причем каналы честные, таймерные. Управлять скважностью и громкостью получилось, но оба варианта страдают сильной вертолетностью, особенно там, где управление скважностью. Это не совсем то, что я хотел, выраженное стаккато не для всех мелодий подойдет. Но я решил выложить, может кто захочет показать класс и сделать лучше.
Музыки в примерах нет, только две ноты (до и ми) с меняющейся громкостью или скважностью. Пример с управлением громкостью лучше слушать в VV или v06x, в emu не то. Вариант с управлением скважностью нормально звучит в любом эмуляторе.

svofski
17.02.2019, 23:39
:v2_blush:

Сборка для win32, проверил в XPsp3 под виртуалбоксом. Нужен SSE, так что надеюсь, что все-таки у тебя не меньше пентиума 3 ;)
http://sensi.org/~svo/b/v06x-i686.zip

svofski
18.02.2019, 15:38
Музыки в примерах нет, только две ноты (до и ми) с меняющейся громкостью или скважностью.
По-моему очень здорово получилось. Два канала отлично подойдут для музыки из Арканоида. Подскажи как пользоваться твоим движком, а я может быть попробую забацать.

Meanwhile, думаю, что Коробейники на Океане тоже вполне в два канала влезут.

ivagor
18.02.2019, 15:50
Подскажи как пользоваться твоим движком, а я может быть попробую забацать.
Я думал, что несовершенство этих движков воспрепятствует их практическому применению, отложил их и даже не стал брать исходники на основной комп. В выходные выложу или лучше тебе пришлю, может у тебя будут идеи, как довести до ума.
На океан конкретно эти движки не пойдут, там два канала таймера в "режиме шима".

svofski
18.02.2019, 16:16
В выходные выложу или лучше тебе пришлю, может у тебя будут идеи, как довести до ума.
Хорошо, давай так. Я про ум не заикался, просто думал на скорую руку забацать чего попроще.

ivagor
18.02.2019, 16:42
Попробуй эксолоновский движок (https://zx-pk.ru/threads/11067-igra-quot-exolon-quot.html?p=996336&viewfull=1#post996336), может подойдет. Ноты там в Notes уже расставлены по октавам, самая низкая (255) - до-диез большой октавы. Чем выше, тем хуже точность, огрызок третьей октавы (17-12) совершенно ужасный.

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

Сама музыка тройками - нота первого канала, нота второго и длительность. 0 - признак окончания.

svofski
18.02.2019, 16:50
ivagor, я хотел именно в твоем с потрясными громкостями, чтобы было блямканье с затуханием.

ivagor
18.02.2019, 16:55
Ну тогда на выходных. И сразу скажу, что там все очень сурово, громкость1-нота1-громкость2-нота2-длительность. Т.е. эффекты типа затухания можно сделать только вручную. У скважного аналогично, только скважность вместо громкости.

svofski
18.02.2019, 17:27
Ок. Я наскриптую пока рыбу.

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

Это все байты? Громкость 0..255 - нота в каких пределах? - длительность в кадрах? Что предпочтительней, скважность заранее посчитать наверное проще?

ivagor
18.02.2019, 17:43
номера нот - везде байты
громкость - байт от 1 до 50
скважность - у меня там делается прерасчет, по таблице периодов формируются 16 таблиц скважности, коэффициент заполнения от 1/32 до 16/32 с шагом 1/32. В музыке указывается числитель коэффициента заполнения (байт от 1 до 16).
Длительность задаю одним байтом.

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


номера нот - везде байты
А вот диапазон по памяти не назову, увы. Вроде там где громкость диапазон близкий к эксолону, а где скважность - забыл.

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

Малая и первая октавы - наверняка, большая и вторая - скорее всего, может не полностью.

svofski
18.02.2019, 17:47
Спасибо, пока этого достаточно. Все равно детали придется дорабатывать когда уже будет плеер.

svofski
18.02.2019, 20:02
Записал пока на скорую руку http://sensi.org/~svo/arkanoid/

ivagor
18.02.2019, 20:12
Записал пока на скорую руку
Ты на слух подбирал или копал исходники или еще как?

svofski
18.02.2019, 20:18
Ты на слух подбирал или копал исходники или еще как?
О, это трогательная история. Году в каком-то 80-последнем у товарища был Поиск и на нем не играл музон в Арканоиде. Я выдрал музон из версии игры, где он играл, и мы вбивали его в Бейсике в DATA как-то воскресным утром. Вбили, и он разумеется не зазвучал. Тут мы начали подозревать, что в Поиске этот орган не совсем совместим c писишкой ;)

Но зато в процессе этих экспериментов я выкопал оттуда ноты и научился играть их на пианино двумя руками. Вообще я не умею играть на пианино, особенно двумя руками, но эту мелодию я навсегда запомнил. Сейчас я по памяти вколотил просто в ABC.

ivagor
18.02.2019, 20:37
Интересно, спикерная музыка первого арканоида (https://www.youtube.com/watch?v=-UPxh7KJPHM) в другой тональности (ре минор), а вот во втором (https://www.youtube.com/watch?v=HeQcsvNPK8c) - соль минор, как у тебя. Похоже ты хотел скрыть, что играл во второй, а не в первый :) Или у них просто для спикера была другая тональность

KTSerg
18.02.2019, 20:41
Записал пока на скорую руку http://sensi.org/~svo/arkanoid/
Мне больше напомнило тему из сериала "Мир Дикого Запада" (про парк с роботами).
Понимаю, что музон не тот, но что-то......

ivagor
18.02.2019, 20:45
west world не смотрел (но конечно много слышал про него), поэтому у меня другая ассоциация - бас немного напомнил начало песни wrecking ball

svofski
18.02.2019, 20:57
Интересно, спикерная музыка первого арканоида (https://www.youtube.com/watch?v=-UPxh7KJPHM) в другой тональности (ре минор), а вот во втором (https://www.youtube.com/watch?v=HeQcsvNPK8c) - соль минор, как у тебя. Похоже ты хотел скрыть, что играл во второй, а не в первый :) Или у них просто для спикера была другая тональность

Вот была версия Арканоида для писишки, цгашная, которая музыку играла бипером на два голоса, что было в то время неслыханное дело. Я тогда другой версии вообще не видел, а сейчас по ютубным сусекам ее не наскрести. Она была совершенно точно первая, но может быть какая-то неофициальная. Копирайта TAITO я на ней не помню. В той же версии была фича, в которой ракетка за мячиком следила, как бы притормаживала, чтобы его не обгонять. Это делало игру с клавиатуры не только возможной, но и приятной.

Вряд ли я сам тогда осилил бы транспонировать в другую тональность.

ivagor
18.02.2019, 21:10
Вот еще вариант (https://www.youtube.com/watch?v=v-az38oF444) первого, тут вроде опять спикер, но как минимум двухголосый (или даже и трехголосый?), но тут тоже ре.

tnt23
18.02.2019, 22:31
Meanwhile, думаю, что Коробейники на Океане тоже вполне в два канала влезут.

Реквестую "Из-за острова на стрежень" или "Раскинулось море широко"

svofski
19.02.2019, 00:02
ivagor, вот тот самый Арканоид https://youtu.be/4N8h2P_e5-g?t=504 - Это европейский релиз Imagine 1987 года. К сожалению он здесь не в v06x (пока еще) и качество звука ох.

Вот музоны из версии C64, которая насколько я понимаю той же фирмы Imagine. И тут по-моему соль-минор.


Вот немного про различия:
http://nerdlypleasures.blogspot.com/2015/11/arkanoid-and-arkanoid-again.html

К сожалению все интернеты заполонены неправильной с моей точки зрения версией Арканоида, причем о существовании правильной вообще почти ничего неизвестно. Тем не менее все-таки нашелся тот самый (https://www.old-games.ru/game/download/131.html). Он, как и ожидалось, вообще никакой тональности не имеет, вернее тональность регулируется клавишами +/- циклов в досбоксе.

ivagor
19.02.2019, 07:31
Тем не менее все-таки нашелся тот самый. Он, как и ожидалось, вообще никакой тональности не имеет, вернее тональность регулируется клавишами +/- циклов в досбоксе.
Теперь все понятно, надеюсь для тебя поиск той самой версии был не только напрягом, но и в некоторой степени сентиментальным удовольствием.
Насчет фактически биперной музыки в этой версии, то на мой взгляд ее ближайший "стабильный" аналог на спеке (https://www.youtube.com/watch?v=i_FlinBI6ck), там что-то в районе соль-диез.
А на C64 музыка другая (https://www.youtube.com/watch?v=JHtF4AoKAJs). Там получается две музычки, вторая (https://youtu.be/JHtF4AoKAJs?t=235) совсем забойная.

svofski
19.02.2019, 10:56
В твоем видео с C64 все хорошо, только там почему-то нету экрана, где вводишь имя в таблицу рекордов, в котором звучит эта тема. Вот, например: https://youtu.be/1yKnkAVho_I

ivagor
19.02.2019, 11:09
Сдаюсь, тут четкий соль. На других компах эта музычка играет в начале (может и в конце тоже), не услышав ее там не стал искать дальше.

svofski
19.02.2019, 11:23
Самый канон должен быть аркада, все игрушки на компах делались с нее https://youtu.be/Th-Z6QQ5AOQ?t=1914

ivagor
19.02.2019, 11:29
Fatality, в аркаде соль

ivagor
20.02.2019, 21:01
Почитал описание музыкальной системы и посчитал, насколько точно соответствуют официальному диапазону (до большой октавы - ре третьей октавы) векторовские версии (https://zx-pk.ru/threads/28132-bipernaya-muzyka-na-vektore-06ts.html?p=999068&viewfull=1#post999068). Неожиданно оказалось, что ковоксный вариант (MSVecCvx.rk) практически точно попал в требуемые рамки. Это я не специально, оно само так удачно получилось. Можно считать, что это версия с эталонным по диапазону и скорости звучанием. Таймерно-биперая (MSVecTD.rk) несколько ниже и медленнее, биперная (MSVec.rk) еще немного ниже и медленнее. Их можно немного разогнать, но ковоксную они не догонят.

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

Когда стал понятен ориентир, к которому надо стремиться, я подумал и оптимизировал биперную и таймерную версии до уровня ковоксной. Архив заменил (https://zx-pk.ru/threads/28132-bipernaya-muzyka-na-vektore-06ts.html?p=999068&viewfull=1#post999068). Т.е. теперь все векторовские версии соответствуют оригинальному диапазону Music System.

KTSerg
21.02.2019, 17:43
Т.к. для v06x уже всё настроено до нажатия одной кнопки :) то этот музон только в нём запускаю.
Громкость у MSVec.rk значительно ниже чем у MSVecTD.rk
А в MSVecCvx.rk совсем тишина, может чёт пропустил, и как-то настроить нужно...

ivagor
21.02.2019, 18:34
Достигнута вершина развития Music System на векторе - версия использующая три канала таймера как генераторы частот (MSVecTim), т.е. стандартный векторовский музыкальный режим. Точность нот этой версии недостижима для бипера с 8080 на 3 МГц. Теперь "Аллилуйя!" Генделя не вызывает физической боли при прослушивании, фуга ре минор и маленькая фуга мне тоже очень понравились. Для большинства примеров однозначно рекомендую эту версию, она и на реале будет лучше и во всех эмуляторах будет играть с максимальным качеством. Есть и оборотная сторона - теперь голоса слышны достаточно четко, и недостатки аранжировки, если они есть, тоже четко слышны. Пример - третья часть лунной сонаты, начало восходящего пассажа раньше терялось в каше, а теперь, к сожалению, его слышно.
Ковоксную версию убрал, т.к. у меня появилась идея, почему она кликает в эмуляторах, а исправить это с сохранением скорости проблематично.
Архив обновил (https://zx-pk.ru/threads/28132-bipernaya-muzyka-na-vektore-06ts.html?p=999068&viewfull=1#post999068).

Если вернуться к биперной версии, то после ее оптимизации стало возможно втиснуть 4 канала в основной цикл без изменения его периода. Но музыкальная система это не поддерживает и примеров таких нет.
У меня в итоге сложилось мнение, что для адаптаций классики и просто "обычной" музыки лучше 3 точных канала, чем 4 "почти точных". А вот для целевого сочинения специально для компа уже биперный движок имеет преимущества - бОльшее число голосов, специфический тембр (в биперной системе маленький коэффициент заполнения, а в таймерной 3х канальной - меандр).


А в MSVecCvx.rk совсем тишина, может чёт пропустил, и как-то настроить нужно...
В v06x ковокса, насколько я знаю нет. Но если бы он был, то, скорее всего, покликивал бы иногда. Малой кровью я это поправить не могу, да и смысла при наличии новой версии нет, поэтому ковоксную убрал.

svofski
21.02.2019, 20:02
У меня не было причин не включать Ковокс, кроме как отсутствие тестов для него. По идее достаточно просто раскомментировать там хвостик одной строчки, но это ж 8255, так что наверняка начнется.

svofski
23.02.2019, 02:07
Архив обновил.
Ну и я тогда тоже (заодно v06x с ковоксом) (http://sensi.org/~svo/b/MusicSystemVectorV4-TAS.zip).

Версия MSVecTim звучит очень круто.

ivagor
23.02.2019, 07:18
Если вернуться к биперной версии, то после ее оптимизации стало возможно втиснуть 4 канала в основной цикл без изменения его периода.
Самые последние достижения в оптимизации позволили бы втиснуть даже 5 каналов без изменения диапазона.

ivagor
23.02.2019, 11:25
Пример - третья часть лунной сонаты, начало восходящего пассажа раньше терялось в каше, а теперь, к сожалению, его слышно.
Оказалось, что в VV и v06x это место звучит не идеально, но приемлемо, т.е. таймерная версия и тут вполне подойдет. Ну и, конечно, она не фальшивит, что очень приятно.


заодно v06x с ковоксом
Послушал ковокс (wavы и спецверсию Music Studio, не путать с Music System) - все хорошо, но очень тихо. Может стоит добавить ковоксу громкости?
Насчет примеров для музыкальной системы - я переделал (https://zx-pk.ru/threads/30104-muzykalnaya-sistema.html?p=1000310&viewfull=1#post1000310) там два файла, желательно их заменить.

Ramiros
24.02.2019, 14:56
Ramiros, это хорошо, а доработать планируешь, чтобы убрать шероховатости (пищание в диалоге и несовпадение контрольной суммы)?

Доработал. вот: VV6.95 (https://cloud.mail.ru/public/F5Uu/JcAeRc9J2)

ivagor
24.02.2019, 15:08
Ramiros, контрольная сумма хорошо, а вот хака для пищания как-то не вполне, после закрытия диалога сначала громкость задавлена.

svofski
25.02.2019, 12:48
Музон из Арканоида для бипера.
[Ссылка (https://svofski.github.io/pretty-8080-assembler/?https://gist.githubusercontent.com/svofski/cc30930c1a5f3a3d9bc2c000eaaa46e8/raw/b6cfa4573b205fb1e145cbc37ae59a18a8380daf/arkmus.asm)] на сорец в прекрасм.

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


Послушал ковокс (wavы и спецверсию Music Studio, не путать с Music System) - все хорошо, но очень тихо. Может стоит добавить ковоксу громкости?

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

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

Вот как музыканты успокаиваются я вообще не понимаю. Сегодня с утра мне больше нравится, когда затухание второго голоса еще медленней, вот так


Release2: ; затухание ноты второго канала в два раза медленнее
mov a, d
ani 3
jnz Released

Ссылка, опять же в прекрасм: [дубль два (https://svofski.github.io/pretty-8080-assembler/?https://gist.githubusercontent.com/svofski/cc30930c1a5f3a3d9bc2c000eaaa46e8/raw/082bcd6d98e28b8d7eceb615b39faf1e8311a60c/arkmus.asm)]

ivagor
25.02.2019, 14:40
ссылки на эти чудо-программы
Ковоксная Music Studio (https://zx-pk.ru/threads/28132-bipernaya-muzyka-na-vektore-06ts.html?p=929502&viewfull=1#post929502)
WAVы c проигрывателями (https://zx-pk.ru/threads/11029-vektor-06ts-emulyatsiya-kr580vi53.html?p=888368&viewfull=1#post888368), там для разных устройств воспроизведения, у ковоксных cvx в имени.

svofski
25.02.2019, 15:15
Хм, мне не показалось, что как-то особенно тихо. То есть играет с той же громкостью, что AY. PWM играет чуть чуть погромче.
Может быть введу потом отдельно громкости для разных каналов звука.

Ramiros
25.02.2019, 20:03
Ramiros, контрольная сумма хорошо, а вот хака для пищания как-то не вполне, после закрытия диалога сначала громкость задавлена.

Допилил: VV_6.96 (https://cloud.mail.ru/public/4UFR/X9XycTGFM)

ivagor
02.03.2019, 10:37
Мне все же очень хотелось услышать, как звучала бы пятиканальная музыкальная система. И я на базе ее идей сделал пятиканальный биперный движок. Периоды нот взял прямо из музыкальной системы, основной цикл идеально подошел (ну или я специально так рассчитал).
Недостаток - нормально (и даже, не побоюсь этого слова, хорошо) звучит только в v06x.
Исходники прилагаются, может кто-нибудь захочет ввести какую-нибудь композицию или написать препроцессор (лучше кросс-препроцессор для ПК) по типу музыкальной системы, чтобы учитывал тональности и т.д.

Upd: V2 - чуть сократил и увеличил громкость

svofski
02.03.2019, 13:09
Богато звучит, но пьеса немного однообразная ;)

ivagor
02.03.2019, 14:51
Забудьте все, что вы знали о бипере на векторе.
Шестиканальный движок с независимым управлением громкостью каждого канала! И это при сохранении (отклонение на пару процентов, извините, если ваc это напрягает) диапазона, т.е. остались периоды от Music System! Да еще и в VV стало почти нормально звучать, но маленькие громкости адекватно отрабатываются только в v06x.
Исходник прилагается.


Богато звучит, но пьеса немного однообразная
Не могу с этим спорить. На векторе обычная история, что техническая сторона на уровне, а творческая - как получится.

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

Уточнение - в исходнике написал, что суммарная громкость должна быть <=89, а на самом деле чуть больше - суммарная громкость 6 каналов может быть до 90 включительно, что довольно удобно, т.к. 90/6=15.

svofski
02.03.2019, 16:21
техническая сторона на уровне, а творческая - как получится.
Это хорошо, что ты остаешься верен традициям. На всякий случай, удобная утилита http://www.fourmilab.ch/webtools/midicsv/

ivagor
02.03.2019, 19:54
За наводку на утилиту спасибо, но чтобы воспользоваться результатом ее работы надо еще свою утилиту писать. В лучшем случае это дело далекого будущего.

Если в шестиканальном движке убрать один канал, то получится почти с тем же частотным диапазоном увеличить громкость в 3 раза. Число ступеней регулировки громкости не изменится, но каждая ступень станет в 3 раза увесистей.

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

Сделал пятиканальный с увеличенной громкостью. Увеличение громкости не только хорошо само по себе, но и улучшило совместимость с эмуляторами - теперь даже в emu более-менее что-то слышно. Кроме того улучшил качество звука, теперь когда ничего нет - таймер полностью молчит (в 6 канальной версии на это нет времени). Вернул длительность основного цикла до полного соответствия Music System. Ну и раз каналов 5, то ту же максимальную допустимую общую громкость делим на 5, а не на 6, поэтому каждый канал не только в 3 раза громче из-за дополнительных каналов таймера, но ему можно и прописать бОльшую громкость (90/6=15, 90/5=18).
Все хорошо, только каналов 5, а не 6.

svofski
03.03.2019, 17:15
Чуть-чуть уменьшил дистанцию до будущего. Не шибко изящно выходит и боюсь, что без ручной работы хорошего мало получится. Но все же. Сорцы и "утилита" тут (https://gist.github.com/svofski/fe4daffd9a889c3ab84dc4bb22755c34).

ivagor
03.03.2019, 17:39
svofski, очень круто, большой респект!
Но на разном "неадаптированном" материале стали слышны недостатки движка.
Высокие ноты фальшивят, как и в Music System, тут ничего не поделаешь, можно только выбирать произведения, где их поменьше. В данном случае Пахельбель дает жару.
У Баха удивили трели, пока не смотрел, что получилось после конверсии, но надеюсь их можно несколько улучшить.
В песнопении своеобразно звучат моменты, когда вступает громкий голос, возможно дело в нелинейности шкалы громкостей.
Но в каждом примере есть моменты когда прямо - "ого, надо же!".

svofski
03.03.2019, 18:29
Трели в музыке из Соляриса как-то особо жестоко пострадали, Пока не было сил разбираться, но наверняка это что-то с noteoff. Не похоже, чтобы это была проблема движка, тут явно конверсия колченогая.

Стелла спленденс поначалу может быть кажется страшноватенькой, но на самом деле это мой любимый результат пока. Это единственная пьеса, про которую я, включив воображение, могу представить себе, что вот так примерно оно и могло бы быть. Еще по-моему это единственный пример, где 6 голосов звучат хотя бы иногда.

Пахельбель получился на зависть всем резиновым петухам. Чтобы не слишком страдать, можно считать, что это такая особенная темперация.

Это не все, что я пробовал, но я совсем откровенные фейлы не стал развивать. Некоторые вещи требуют совсем минимальной доработки, типа убрать ударные, которые имеют тенденцию превращаться в адский хор. В некоторых просто голоса размазаны куда-то и надо их сгруппировать в 6 доступных. А вот например в Арканоиде, который я нашел, наоборот все как-то скучено в один голос и там наоборот надо размазывать по 6 голосам наверное.

Мм, еще помню, что если музон заходит куда-то за $4000, тоже случается фейл. Не знаешь, почему?

Присылай еще мидишек, которые могли бы сконвертиться.

ivagor
03.03.2019, 19:03
Стелла спленденс поначалу может быть кажется страшноватенькой, но на самом деле это мой любимый результат пока.
Мне тоже она показалась наиболее близкой к нормальности.


если музон заходит куда-то за $4000, тоже случается фейл.
У меня же там "компиляция", откомпилированный музон наезжает на исходный. Там в начале есть
MusicComp .equ 4000h
его стоит заменить на 8000h. Не думал, что будут примеры, которые не влезут. К счастью я ошибался.


Присылай еще мидишек, которые могли бы сконвертиться.
Выслал порцию. Вчера немного поискал подходящие midi, но пока улов не очень. Если в midi <6 голосов, то имхо лучше конвертить для beep5vol, там погромче и чуть "почище" и стаккато чуть-чуть меньше и диапазон точнее. У меня комп с питоном будет только завтра, я бы и сам попробовал.

svofski
03.03.2019, 19:15
В той версии BWV639 трели какие-то левые и в оригинальной мидишке. Причем еще и не в ту сторону. Нашел другое исполнение, звучит иначе, по-моему чуть-чуть менее странно. Но тут к концу ноты уходят ниже доступного диапазона.

ivagor
03.03.2019, 19:36
bwv639y определенно звучит лучше в плане трелей, да и в целом мне этот вариант больше понравился. В bwv639 ближе к концу некоторые ноты тоже в минус ушли и это слышно.

svofski
03.03.2019, 20:23
Больше ада.

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


bwv639y определенно звучит лучше в плане трелей, да и в целом мне этот вариант больше понравился
Мне тоже. Я поторопился с выбором мидишки. В версии "y" не то что бы все идеально, но у меня не возникает ощущения omgwtf на трелях. И они сыграны в правильную сторону.

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

Ну и пока меня прет, Сати.

ivagor
03.03.2019, 20:30
Желательно еще темп учитывать, хотя можно конечно одно число вручную поправить.
Маленьким прелюдиям и фугам с темпом не повезло :)

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

Вектору не хватает второго ВИ53 и, желательно, с управлением громкостью (и для 1го и для 2го).

svofski
03.03.2019, 20:35
ivagor, я темп вручную правлю каждый раз. Некоторые мидишки 1:1 хорошо звучат, в некоторых я его ускоряю. А коллекцию прелюдий я честно просто не успел послушать.

Pyk
03.03.2019, 21:04
Не планировал пока делать сборку Emu80 с Вектором, но выяснилось, что биперная музыка на нем довольно-таки неплохо звучит.
Собрал более-менее стабильный вариант, можете послушать.
http://emu80.org/v4beta/Emu80qt_40324_upd.7z
(добавить файлы к последнему релизу 4.0.323 с заменой).

ivagor
03.03.2019, 21:12
Pyk, я кроме биперной и биперно-таймерной музычки пока больше ничего не пробовал, но про бипер (и таймер) могу сказать, что звучит очень хорошо, у v06x появился конкурент в этой области :)

Pyk
03.03.2019, 21:21
ivagor, а между тем фильтрация у меня там простейшая. Можно попробовать в настройках поставить частоту дискретизации 96000 - теоретически должно быть лучше, но я большой разницы не слышу (хотя особо и не прислушивался).

ivagor
03.03.2019, 21:29
Но над собственно эмуляцией вектора еще надо работать, например Эмулятор РК/Микроши (http://sensi.org/scalar/ware/548/) виснет после нажатия клавиши.

svofski
03.03.2019, 21:30
Pyk, хороший тест -- pwm18i2 (https://www.dropbox.com/s/dkp1w9h7ce3giz3/pwm18i2.fdd?dl=0)

ivagor
03.03.2019, 21:30
Для суперскважных биперов надо громкость в настройках до 5 увеличивать, а то совсем тихо.

svofski
03.03.2019, 21:42
А, дисковода пока нет? Были какие-то еще хорошие ромы бездисководные..

Вот они https://www.dropbox.com/s/gjp7ic1owbm8xza/PWMbeep.zip?dl=0

(Это все ivagor-а творения)

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

Мм.. чего-то PWMbeep-ы у меня вообще не звучат в Emu80.

Pyk
03.03.2019, 21:50
ivagor, да, полнота эмуляции оставляет пока желать лучшего. Также нет пока и перехватов для эмулятора РК/Микроши в конфиге.
В общем, серьезно тестировать пока нет наверное смысла, хотя кое-что уже работает.
AY можно еще в этой сборке послушать - должно быть достаточно точно реализовано, были фиксы по сравнению с ПК8000.

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


чего-то PWMbeep-ы у меня вообще не звучат в Emu80
Видимо потому, что у меня электронный диск пока не реализован ;(

ivagor
03.03.2019, 21:52
pwm14 и 15 что то в эмуляции не хватает. Вот другой пример, он звучит очень хорошо

Pyk
03.03.2019, 22:08
Вот другой пример, он звучит очень хорошо
Ух ты, я сам такого не ожидал от Emu80 :)

svofski
04.03.2019, 12:06
Переделал конвертер, кое что стало получаться лучше.
http://sensi.org/~svo/vector06c/beeper/beep6new.zip

svofski
06.03.2019, 00:01
Новая версия с 5 или 6 голосами на выбор: http://sensi.org/~svo/vector06c/beeper/babor2-56.zip
И пропущенная через нее Danse macabre (http://sensi.org/~svo/vector06c/beeper/danse_macabre.rom) (оригинал (https://musescore.com/amarantapold/dansemacabre))

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

Ну и раз так, то Dies irae (Gregorian) (http://sensi.org/~svo/vector06c/beeper/dies_irae_gregorian.rom)

И уж тогда совсем Dies irae (Mozart) (http://sensi.org/~svo/vector06c/beeper/dies_irae.rom)

KTSerg
06.03.2019, 06:35
Где громкости подкрутить? вся громкость на максимуме, а еле слышно :( (не только последние, касается всей биперной)...

Появилась мысля...
А на какой частоте звучит эта "биперная музыка"? там ведь наверное есть "несущая"? (лень логгер доставать что-бы посмотреть).
Есть подозрение, что для меня играет "тихо", т.к. "несущая" на границе слышимости (для меня)... :(

crackintosh
06.03.2019, 18:49
Да нет... у меня тоже ели-ели слышно.:v2_dizzy_sleep2:

ivagor
06.03.2019, 19:00
Речь о прослушивании на реале? Если да, то с пищалки вряд ли можно что-то расслышать, нужно подключать к усилителю. В детстве я слушал некоторые векторовские мелодии через усилитель, например rise out.
А если в эмуляторе, то тут уж можно накрутить любую разумную и неразумную громкость. Я вот сейчас большую часть времени вынужден слушать музыку через телевизор, и бипер все равно слышу. Да, громкость приходится добавлять.

KTSerg
06.03.2019, 19:37
Речь о прослушивании на реале? ...
Пока только на эмуляторах.
Сегодня добил загрузку фалов с SD. Начал приклеивать загрузку образа с SD на КвазиДиск. Тогда можно будет и на реале играться... с картотекой файлов и коллекцией образов на SD...

...А если в эмуляторе, то тут уж можно накрутить любую разумную и неразумную громкость. ...
И как на эмуляторах добавлять? на компе все бегунки громкости на максимуме, системные звуки аж по ушам бьют, а музон почти не слышен :(

ivagor
06.03.2019, 19:47
Сегодня добил загрузку фалов с SD. Начал приклеивать загрузку образа с SD на КвазиДиск. Тогда можно будет и на реале играться... с картотекой файлов и коллекцией образов на SD...
Круто


И как на эмуляторах добавлять? на компе все бегунки громкости на максимуме, системные звуки аж по ушам бьют, а музон почти не слышен
Добавить в эмуляторах почти нельзя, кроме предварительной версии Emu80, ссылку на которую постил Pyk. Но можно добавить на устройстве воспроизведения - на ресивере/усилителе, компьютерных колонках или даже на телевизоре. Системные звуки при этом лучше не извлекать, и после бипера убавить громкость. Если внешние колонки без усилителя - тут поможет только изменение уровней микширования в эмуляторе. Еще, конечно, есть вариант переделать на ковокс, но там возможно будет пощелкивать, зато громко.

ivagor
12.03.2019, 18:11
Посчитал, что на ПК-6128Ц удалось бы пратически с тем же частотным диапазоном, что у beep6 сделать beep7. А 06Ц с z80 могЁт beep8. Жаль, что эмуляторы с душевным бипером не знают 8085 и z80, а в эмуляторах умеющих продвинутые процы бипер не такой душевный.

Pyk
13.03.2019, 00:52
Думаю, что я могу оперативно сделать в Emu80 базовую поддержку Вектора с Z80.
Но, если честно, я даже не пытался изучить вопрос, что из себя представляет эта модификация.
Длина команд точно так же округляется до 4 тактов в большую сторону? Есть какие-то нюансы? Оно в железе вообще существует?

ivagor
13.03.2019, 07:00
Длина команд точно так же округляется до 4 тактов в большую сторону?
Длина циклов округляется до 4 тактов в большую сторону. В вектор-user (http://www.sensi.org/scalar/ware/572/) 15 приведены растактовки команд z80 совпадающих с командами 8080.


Есть какие-то нюансы? Оно в железе вообще существует?
Есть 3 основных варианта: кишиневский (http://www.sensi.org/scalar/ware/571/) (навороченный, с элементами эмуляции zx), омский (http://www.sensi.org/scalar/ware/569/) и владимерский (http://www.sensi.org/scalar/ware/570/). Был еще вектор-турбо+, частично описанный в вектор-user и на форуме даже есть свидетель его работы, но полной информации по этому варианту нет. И на форуме был проект по вектору на z80, но там, насколько помню, схем не было.

Pyk
13.03.2019, 09:44
ivagor, да, конечно циклов.
Кстати, эта же табличка из "Vector User" у svofski: https://github.com/svofski/vector06cc/wiki/Instruction_Timings
Как раз эти растактовки совпадающих команд да еще кое-что по мелочи и нужно сделать. Это недолго, но я в небольшом цейтноте сейчас, так что не буду обещать прямо сегодня. И растактовки специфических для Z80 команд могут быть неточными - нужно все выверять, а я навскидку даже готовой таблички с растактовкой команд Z80 по циклам доступа к памяти не нашел.

ivagor
13.03.2019, 10:04
И растактовки специфических для Z80 команд могут быть неточными - нужно все выверять, а я навскидку даже готовой таблички с растактовкой команд Z80 по циклам доступа к памяти не нашел.
Готовой для вектора нет и проверить негде. С другой стороны, расцикловки есть в родном zilogовском user manuale и по ним для вектора, в отличие от ПК8000, очень просто округлить каждый цикл вверх. Что-то сейчас с сайта zilog не хочет качать, могу выложить на yandex диск (um0080.pdf, расцикловки идут со страницы 101 pdfa).

Pyk
13.03.2019, 10:14
Я скачал http://www.zilog.com/docs/z80/UM0080.pdf
Правда, похоже, у нас разные версии этого файла - страницы не совпадают.
Все хорошо документировано, возникает только желание распарсить описание и сделать табличку с растактовками ;)

ivagor
13.03.2019, 10:53
Правда, похоже, у нас разные версии этого файла - страницы не совпадают.
У меня доисторическая ревизия 2005 года, а последняя - 2016.

Pyk
13.03.2019, 23:37
ivagor, всплыл один момент относительно Вектора на Z80, который я пока не знаю, как лучше реализовать.
На ВМ80 квазидиск, как я понимаю, отслеживает обращение к стеку на основе слова состояния, выдаваемого процессором на шину в начале каждого цикла.
А как на Z80?

ivagor
14.03.2019, 06:52
В разных вариантах или логикой или пзушкой отлавливали коды команд обмена со стеком. Минимальный набор - push, pop, xthl. b2m, насколько помню, в emu отлавливает все стековые команды.

ivagor
14.02.2020, 17:12
Начиналось все оптимистично. Почитал статью Manwe в Downgrade 28 (http://dgmag.in/N28/DowngradeN28.pdf) (и 29) про БКшные трекеры и прикинул аналогичный (2 универсальных канала+канал ударных) основной цикл выборки/микширования на векторе - получилась частота дискретизации 10 кГц, вполне сравнимо с SSTdemo и SSTplay. Т.е. в принципе БКшные SST/SPC+INS можно играть и на векторе. Но для этого надо разбираться с форматом, что мне совсем не хочется. Спековские трекеры (или тем более MOD плеер) на вектор нормально не портануть, там 3-4 канала, и скорости не хватит. Но попробовать играть семплы фазовым аккумулятором мне все же хотелось. Решил сделать "супербипер" с инструментами. Оставил один канал, частота дискретизации скакнула до 31.25 кГц, т.е. уже можно играть даже не через ковокс, а через таймер шимом без свиста. Для простоты и уменьшения размера инструменты решил не брать готовые, а сгенерировать (простенькие). Нагенерировал 16 вариантов прямоугольников с разной скважностью, пилу и треугольник. Можно еще было сгенерировать разные громкости, но я не стал.
В итоге пара простых примеров:
Skew.rom - каждую ноту меняется скважность прямоугольника. Изменения зигзагом - сначала растет, при достижении верхней границы начинает уменьшаться, при достижении нижней - возрастает. И так по кругу.
MeSawTri.rom - три инструмента (меандр, пила и треугольник) меняются по тому же принципу.
Требования минимальные - хватит голого вектора.
С эмуляторами беда - нормально звучит только аудиофильский v06x (svofski). Самый оглушительный результат в VV - просто тишина.

svofski
14.02.2020, 20:57
Почему же беда, аудиофильский эмулятор все прекрасно играет. Хорошо бы огибающую, хоть самую простенькую, и под такую музыку уже не стыдно будет вынести ёлку. Хотя ноябрь еще не наступил.

ivagor
14.02.2020, 22:12
Хватит баловства, взял настоящий семпл. По хорошему надо было еще табличку частот чуть подправить, но это уже в следующий раз (прошу прощения у всех обладателей абсолютного слуха).
Еще в предыдущих примерах при запуске на реале может не произойти зацикливания мелодии, тоже извините, здесь поправил.

svofski
14.02.2020, 23:57
Классно гремит костями йолка!

ivagor
15.02.2020, 10:43
Уменьшил частоту дискретизации до 22 кГц, теперь можно нормально послушать уже в двух эмуляторах - emu80 и v06x. Чтобы было веселее сменил мелодию и инструмент.

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

Забыл упомянуть еще одно отличие. Здесь семпл урезается до 6 бит/отсчет, в предыдущем примере было 5 бит/отсчет. Думаю все догадываются, что это связано с соотношением частот таймера и дискретизации.

svofski
15.02.2020, 11:12
Последняя версия звучит вроде бы в среднем чище, но в предыдущей были паузы между нотами, что мне по душе.

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

ivagor
15.02.2020, 11:39
В елке семпл был "ударного типа", сначала громко, потом затухает и получается нечто похожее на паузу. Здесь я специально взял "ровный" семпл, который тянется всю ноту, мне показалось, что он лучше подходит для этой мелодии.
Насчет барабанов. Вполне можно по БКшному примеру сделать полтора канала - универсальный+ударные. И частота дискретизации даже будет все еще нормальная, можно как в последнем примере 22-23 кГц и играть через таймер без свиста, т.е. будет достаточно голого вектора без ковокса. Всего лишь нужен музыкант, который захочет этим заняться.

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

Кстати, маленько посмотрел моды и stmы. Там встречаются короткие семплы, несколько десятков отсчетов. Всякие искусственные инструменты.

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

Еще подумал, неуниверсальный канал может быть не только для ударных, но и для аккордов, все равно их нельзя произвольно транспонировать.

svofski
15.02.2020, 12:03
аккордов, все равно их нельзя произвольно транспонировать
В modах и stmах такого полно на самом деле.

ivagor
15.02.2020, 12:23
Не буду отпираться, идея расширить аккордами функциональность канала с фиксированной частотой появилась после просмотра нескольких трекерных модулей.

ivagor
16.02.2020, 10:36
Наверно все же стоило завести отдельную ветку "Трекерная музыка на векторе", но уж раз начал, то продолжу здесь. Небольшие дополнения и подведение итогов.
1. Все же можно играть два универсальных канала с приемлемой (для таймера без свиста, по крайней мере для людей за 40) частотой 18750 Гц. Для этого придется ограничиться точностью 8 бит для дробной части приращения, примерно как в спековских трекерах. Это сужает диапазон без фальши, но если писать (или адаптировать) музыку специально для такого плеера, то острые углы можно обойти.
2. Можно регулировать общую громкость в диапазоне 1x-3x или 1x-2x отдельно для одного из трекерных каналов за счет трех каналов таймера. В вариант из п.1 такое добавлять не стоит, там и так напряженка с быстродействием, а вот в версию универсальный+фиксированн� �й или тем более в одноканальный вариант легко.
3. Трекерные плееры подобного типа вполне возможны не только для Вектора, но и для Апогея, Башкирии-2М, Корвета и ПК8002. Хотя для 8002 наверняка лучше будет вариант через ЦАП, пусть он и не совсем линейный.

svofski
16.02.2020, 11:37
А будет пример с двумя каналами?

ivagor
16.02.2020, 11:51
Боялся этого вопроса :)
Надо пример мелодии, или что-то набить самому или взять готовое. Прикинул биперную музыку из эксолона - в принципе если маленько подтюнить семпл из zacem2, то охватит требуемый диапазон, но крайние ноты будут фальшивить. Причем тут, если не ошибаюсь, в отличие от традиционных биперных процедур проблема будет в основном не с высокими нотами, а с низкими.
Может все же возьму елку и добавлю туда тупой бас.

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

Можно сделать совсем тупо. Повторить основную мелодию на октаву-две ниже и другим инструментом.

svofski
16.02.2020, 11:52
Арканоид же? Все просто, два голоса и есть в любом формате.

ivagor
16.02.2020, 12:08
Можно ссылку (или на почту)? Ты вроде присылал, но я так навскидку не помню, где у меня лежит.
А елку я прикинул с парой семплов - по диапазону подходят, должно получиться.

svofski
16.02.2020, 12:55
Да, я помню, что сам ведь делал, но вот где это осело? =) Ищу!

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

Вот тут, в этом же треде оказалось:

https://zx-pk.ru/threads/28132-bipernaya-muzyka-na-vektore-06ts.html?p=1000910&viewfull=1#post1000910

Сорец там в виде db для твоей же музыкальной системы (ссылка на прекрасм).

Еще нашел .mid, который точно мой и я наверняка делал его в asc, но не могу найти сорца в виде текста:
https://www.dropbox.com/s/fbb5bp1eosm8ze8/arkanoid1.mid?dl=0

ivagor
16.02.2020, 13:12
Эх, я уже сделал елку с басом, теперь даже не знаю, соберусь ли на арканоид, извини.
Но есть и один положительный момент, удалось повысить частоту дискретизации до 19737 Гц, скорее всего даже дети и собаки не услышат ощутимого свиста.

Ramiros
16.02.2020, 13:55
ivagor, ты что то сделал чтоб последние два трека заиграли в VV ? я пока не разбирался, но elka2vo и zacem2 в VV играют, и с LFfilter очень даже неплохо...

ivagor
16.02.2020, 14:23
Понизил частоту дискретизации, вероятно рубеж, выше которого лучше не подниматься без крайней необходимости (для совместимости с максимальным числом эмуляторов) - 22 кГц.

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

После елки мне не очень хотелось еще что-то делать с плеером, но сделал арканоид и не пожалел, спасибо svofski!
Можно сказать трекер на векторе состоялся, хиленький, но работает.

svofski
16.02.2020, 18:17
О! Это точно самый лучший музон из Арканоида на Векторе. Хотя в моей биперной аранжировке было чуть больше нюансов. Бас ровно то, что надо. А вот лид может быть менее флейтой пана, очень уж разухабисто звучат шумные атаки.

Ты планируешь это выпустить в свет? db норм трекер :)

ivagor
16.02.2020, 18:43
Если под нюансами ты подразумеваешь громкость каждой ноты, то да, эти громкости я игнорирую. Желающие могут послушать "старые" нетрекерные варианты с громкостью. А так мне тоже очень понравилось. Вариантов по крупному 2:
1. Сгенерировать в памяти из одного семпла варианты с несколькими громкостями. Плюс - частота дискретизации не пострадает, свист не появится. Минус - нужно много памяти и ее может не хватить.
2. Вставить в основной цикл регулировки громкости. Плюс - не надо много памяти. Минус - частота дискретизации понизится, скорее всего придется переходить на ковокс.

Выложить исходники в принципе уже можно, но есть нюанс. У каждого варианта свои достоинства и недостатки, у последнего вот убрал из основного цикла проверку окончания семпла ради максимальной частоты. Скорее всего получится сделать проверку каждый 256й отсчет, тогда семплы надо будет маленько дорабатывать напильником. Или все же плюнуть на шим (примеры уже есть, побаловался и хватит) и сделать с ковоксом дубовый низкочастотный вариант. Пока думаю.

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

Что касается подбора семплов, то я, можно сказать, им не занимался, что лежало под фонарем, то и взял. По быстрому могу только поменять семпл мелодии на еще один из того же stma (других "нормальных" там нет, только барабаны и аккорды).

svofski
16.02.2020, 19:10
Я больше за таймер, хотя конечно ковокс — это ковокс. Что до семплов, для пруфа концепта уже достаточно. Делай релиз :)

ivagor
16.02.2020, 19:26
Сообразил, как с минимальными потерями проверять окончание семпла. Частота понизится чуть-чуть, до 19231 Гц, и надо будет чтобы семпл заканчивался нулем в нечетной позиции (или двумя нулями).
Остается вопрос формата записи музыка. Арканоидный вариант устроит? Громкости оттуда почти не используются, только значения -1, которые трактуются как выключение канала/пауза.

svofski
16.02.2020, 19:35
Хорошо бы для каждой ноты иметь возможность задавать семпл.

ivagor
16.02.2020, 20:48
Точно, сначала сам хотел, но в процессе забыл.

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

Пока такой план:
инструмент первого канала, высота ноты первого канала, инструмент второго канала, высота ноты второго канала, длительность

инструмент первого канала=0 - завершение мелодии
высота ноты канала=0 - пауза/молчание канала

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

Паттерны не планирую, но если придет музыкант и скажет - "нужны паттерны", то я попробую что-то изобразить.

svofski
16.02.2020, 20:53
Пауза подразумевает, что если там была нота, она продолжает звучать, пока все не вызвучит?

ivagor
16.02.2020, 20:57
Нет, это будет молчание. Можно сделать отдельный идентификатор (например -1=0FFh) - повтор/сохранение предыдущей ноты.

svofski
16.02.2020, 21:46
Какое-то "пусто" надо иметь. Иначе не понятно, как вообще мелодию и бас делать.

ivagor
17.02.2020, 09:12
Все же я не очень понял терминологию, "пусто"=пауза или повтор последней ноты? Пауза точно будет, повтор можно добавить, но особого смысла в нем нет, разве только для удобства записи.

Еще желательно договориться про таблицу частот. Смотрю семплы, например здесь (https://freewavesamples.com/sample-type/synthesizer/organs). Практически все - до малой, первой или второй октавы. При частоте основного цикла 19.2 кГц, частоте семпла 8000 Гц и ноте C4 (до первой октавы) диапазон вверх получается до D#5 (ре-диез второй октавы) включительно. Ту же таблицу можно использовать для семплов C5 с частотой дискретизации 16000 Гц или C3 c частотой дискретизации 4000 Гц.

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

Возможно под "пусто" ты имеешь в виду вариант, когда не просто сохраняется высота ноты, но и воспроизведение семпла не начинается с начала, а продолжается с достигнутой в прошлый раз позиции. Сделать это можно, но вряд ли будет хорошо звучать, DMA нет и стыки будут слышны.

svofski
17.02.2020, 09:29
Возможно под "пусто" ты имеешь в виду вариант, когда не просто сохраняется высота ноты, но и воспроизведение семпла не начинается с начала, а продолжается с достигнутой в прошлый раз позиции.
Ну вот в любом трекере если в строке есть нота -- это note on. Пустая строка -- это просто оставить этот голос в покое. Как иначе сыграть хотя бы первый такт арканоида, где бас играет четвертыми, а мелодия восьмушками?

Стыки, ну что ж поделать. Лучше стыки, чем ретриггер там, где он не нужен. Сейчас, кстати, тоже не то что бы идеально звучит -- я не знаю, что это именно, но стыки чего-то тоже слышно. Я думал это обычные издержки тёплых ламп, типа как потрескивание пластинки.

ivagor
17.02.2020, 09:49
Удержание ноты добавлю, но вряд ли это даст нормальный результат.
А "стыки" в арканоиде я не слышу. Атака у семплов есть, поэтому начало каждой ноты четко слышно, а каких-то стыков не по месту я не слышу и им пока что особо неоткуда было взяться.

svofski
17.02.2020, 10:21
У меня вот так звучит:
https://www.dropbox.com/s/857je6qg7jh5ajm/Arkan_Sample2.wav?dl=0
Это не стыки между нотами определенно, но какой-то шелест есть. Наверное он созвучен кадровой частоте.

Хорошо бы не полениться послушать на реале. Сложность не в запуске реала, а в том, что его спикер вообще не расслышать. А проводок наружу паять лень.

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

Про семплы кстати, гнаться за очень широким диапазоном по-моему нецелесообразно. Все равно бас будет играться басовым семплом, мелодия -- мелодовым итд. Они при этом все могут быть номинально в какой-то условно первой октаве, реальная высота звука определяется семплом.

KTSerg
17.02.2020, 10:37
У меня вот так звучит:
...
Хорошо бы не полениться послушать на реале. Сложность не в запуске реала, а в том, что его спикер вообще не расслышать. А проводок наружу паять лень.
...
И магнитофонного выхода нет?

ivagor
17.02.2020, 10:42
Это не стыки между нотами определенно, но какой-то шелест есть. Наверное он созвучен кадровой частоте.
Ты почти угадал, могу сказать без спектроанализатора, что это жужжание с частотой в районе 19700/256=77 Гц. Это налог на скорость.

С семплами у меня основной вопрос сейчас - где легально взять бесплатные. Вот это (https://www.philharmonia.co.uk/explore/sound_samples/violin&&filter_pitch=C%234) совсем круто, но из другой оперы. А с ресурсом, на который я приводил ссылку, не очень понятно, легальные там семплы или пиратские.

svofski
17.02.2020, 10:45
Магнитофонный выход есть, но у меня давно нет магнитофона с DIN5.

Семплы традиционно из других модов же.

ivagor
17.02.2020, 10:51
Семплы традиционно из других модов же.
Это да (те, что я использовал, из stm и mod), но мне хотя бы один для выкладывания с исходником. Конечно, можно опять сгенерить прямоугольник, пилу или треугольник, но хотелось бы что-то повеселее.

svofski
17.02.2020, 11:14
Я могу насемплировать чего-нибудь с исландско-постпанкового синтезатора, если почему-то софтовый синт не годится в качестве источника.

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

Кстати, традицонно семплят с пластинок :)

ivagor
17.02.2020, 11:21
За те, которые с пластинок, точно надо платить.
А если с синтезатора (и не только с синтезатора), то мужик уже насемплировал (https://freewavesamples.com/), только я не уверен, правда ли можно бесплатно использовать (https://freewavesamples.com/about-us-license) эти семплы.

svofski
17.02.2020, 11:46
Если так страшно, то всю демосцену надо закрывать. Но я могу дунуть и в реальную дудку или ударить в реальный бубен.

ivagor
17.02.2020, 12:01
Да я уже смирился, что выложу с каким-нибудь искусственным семплом. За потенциальную дудку с бубном спасибо, этот вариант останется на крайний случай.

ivagor
17.02.2020, 18:27
Свободу семплам, равенство каналам, долой жужжание! Убрал нехороший низкочастотный звук, но пришлось понизить частоту до 18750 Гц, дети и юношество теперь могут услышать незначительный свист (я не слышу). Семплы те же, поэтому диапазон вверх сократился на полутон.

Еще вспомнил про давний ролик VladTru (https://www.youtube.com/watch?v=UObW-sd8D40). За прошедшее время он не стал менее загадочным. Кто автор? Где сама программа? Ну и продолжает оставаться фантастикой качество звука при заявленных частотах - если запись с реала, то должно свистеть, если записано в эмуляторе, то в каком и почем нет ни призвуков ни свиста?

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

Вторая серия избавления от жужжания. После некоторых размышлений удалось отвоевать потерянные такты и все частотные характеристики и диапазон вернулись, только теперь еще и не жужжит.

svofski
17.02.2020, 21:10
NoBuzz2 звучит невероятно чисто, поздравляю! Хоть игру Арканоид пиши теперь для Вектора.

Ролик впервые вижу. Удивительная штука. Хотя я бы не сказал, что уж так прямо совсем нет там свиста и хрюка, очень даже есть. Но все равно круто.

ivagor
17.02.2020, 21:31
NoBuzz2 звучит невероятно чисто, поздравляю!
Спасибо, но при желании можно теперь предъявить следующие претензии - слышно шипение, как я понимаю, это шум квантования, т.к. я оставил от семплов только 5 бит/отсчет (раньше его не было так слышно, потому что маскировало жужжание). Но если серьезно, то это шипение меня не раздражает и бороться с ним (повышать разрядность семплов) я пока не собираюсь. Гораздо сильнее напрягает необходимость добавить детект конца семпла для обоих каналов без снижения скорости основного цикла.

ivagor
18.02.2020, 16:52
Похоже получится сохранить все частотные параметры и добавить детект окончания семпла, если принять пару ограничений:
1. Семплы (сами аудиоданные) должны быть четной длины.
2. Если в семпле есть зацикливание, то оно должно быть с четной позиции.

Планирую два вида инструментов:
1. "Конечные", с зацикливанием последнего отсчета.
2. "Бесконечные", с зацикливанием фрагмента семпла.
Казалось бы, первый вариант можно свести ко второму, но тогда основной цикл будет колбасить и другому каналу тоже достанется. Это костыль, который должен помочь преодолеть несовершенство второго варианта.

Так пойдет?

svofski
18.02.2020, 20:10
По-моему хорошо.

ivagor
19.02.2020, 17:44
Новости трекеростроения. Внедрил проверку на окончание семпла, цикл в установившемся режиме остался прежним, но даже однократное отклонение (при обнаружении окончания и обработке) слышно. Это ставит крест на удержании ноты, там пауза будет намного больше и стык будет слышен еще лучше. Что касается улучшения обработки конца семпла, то тут надежда есть, можно будет сделать несколько веток, как уже делал в переработке эксолоновского биперного движка, в худшем случае частота понизится до NoBuzz (без 2). Только это довольно муторно (хотя и реализуемо). Зацикливания семпла скорее всего не будет, сорри.

x-code
19.02.2020, 19:59
Хоть игру Арканоид пиши теперь для Вектора

Я же правильно понимаю, что этот синтез звука довольно прожорлив к CPU, и музыку такого качества можно позволить себе только на заставке игры?

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


Ну и продолжает оставаться фантастикой качество звука при заявленных частотах

Послушал. Не услышал никакой фантастики - NoBuzz2 звучит точно не хуже. При этом, не факт, что запись не была обработана фильтром высоких частот, чтобы убрать свист. В конце-концов, в онлайн-эмуляторе с фильтром cheb2 вариант NoBuzz2 звучит просто отлично - я бы сказал, не хуже некоторых сэмплов с Амиги так точно. Слушал в наушниках Marshall Minor, не в дешёвых "затычках", если что.

ivagor
19.02.2020, 20:21
Не услышал никакой фантастики
Фантастика в том, что при заявленной частоте дискретизации обязано свистеть. Так и по теории и, если не ошибаюсь, Дмитрий2012 делал записи с реала моих экспериментов с подобными частотами - свистит. Если записи обработаны НЧ фильтром - это надо было обязательно упомянуть в описании. Все проблема моих страданий с борьбой за каждый такт - чтобы не свистело без всяких фильтров. NoBuzz2 обязан звучать лучше, т.к. там частота основного цикла 19737 Гц и частота дискретизации семплов 8750 Гц, что намного лучше заявленного в описании к тому видео.

svofski
19.02.2020, 21:09
VladTru по-моему все видео выкладывает с эмуляторов. Он мог и не знать, что в эмуляторе включен фильтр по умолчанию.

(btw, в онлайн эмуляторе аудиофильский ресемплер я делать поленился, так что там тоже просто НЧ).


Я же правильно понимаю, что этот синтез звука довольно прожорлив к CPU, и музыку такого качества можно позволить себе только на заставке игры?
Конечно, правильно. Но и в аркадном Арканоиде музон звучит только на таблице рекордов. Там конечно есть еще сказочка в начале и звучки, но можно же комбинировать способы звукоизвлечения.

Кстати, в сказочке музон с большим количеством пауз. Как раз, чтобы вывод текста сделать ;)

svofski
20.02.2020, 10:22
BTW, в видео свист приглушен, но все же слышен. Если совсем сильно не лень, можно же скачать и засунуть в спектроанализатор — но мне чего-то лень. Вообще странная немного музыка, если послушать дальше первой минуты. Определенно не мейнстрим ;)



Зацикливания семпла скорее всего не будет, сорри.
Это жаль.

ivagor
20.02.2020, 10:35
Самое интересное с тем видео VladTru - что за программа (и где ее скачать) и кто автор.


Это жаль.
Мне тоже, поэтому все же планирую альтернативный костыль - в одном канале можно будет использовать зацикленный семпл длиной 256 байт. Понимаю, что это не очень круто, но большое число искусственных инструментов уложатся в эти рамки. В первом примере я такой вариант и использовал.

svofski
20.02.2020, 12:43
Целиком зацикленный, от начала до конца?

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

Про источник — я робко спросил в коментах к видео, но 6 лет прошло, да и не самая это надежная платформа для общения.

ivagor
20.02.2020, 12:51
Целиком зацикленный, от начала до конца?
Да, по крайней мере это хорошо подходит для всяких пил, треугольников, прямоугольников, трапеций и других геометрических фигур.

svofski
20.02.2020, 13:03
Кроме атаки. Может быть можнл сделать начало семпла какой-то длины + зацикливание строго 256?

ivagor
20.02.2020, 13:45
Может быть можнл сделать начало семпла какой-то длины + зацикливание строго 256?
Такой вариант теоретически возможен, но мне бы пока доделать нормально "конечные" семплы.

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

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

ivagor
20.02.2020, 17:31
Сделал бесшовную обработку "конечных" семплов, теперь под них не нужно выделять дополнительную запасную память. Уточненные требования к семплам - они должны быть нечетной длины. И частота основного цикла все же уменьшилась до 18750 Гц.

svofski
20.02.2020, 21:48
Meanwhile VladTru ответил, что запись звука отдельно от картинок, сделана на кассету с Вектора в 1994 году. Сама программа не сохранилась.

ivagor
21.02.2020, 07:21
Сама программа не сохранилась.
Возможно это был таинственный проигрыватель файлов ST1 (https://zx-pk.ru/threads/8394-kartoteka-po-dlya-vektora-06ts.html?p=1026895&viewfull=1#post1026895)

svofski
21.02.2020, 08:57
Может быть еще его озарят какие-то воспоминания, бывает такое случается не сразу после того, как слышишь вопрос.

Отодвинув на задний план археологический интерес, твой трекер круче. Уступает старому библиотекой модулей в основном. Но те модули мы уже послушали. Удивительно, что такая необычная для Вектора программа оказалась такой малораспространенной.

vladtru
24.02.2020, 18:30
Приветствую фанатов звука! Рад, что снова возник интерес к теме музыки на Векторе и попробую ответить на вопросы, появившиеся по поводу моего ролика «Сэмплерный звук на Векторе».
К ST1 (не знаком с ним) мой синтезатор не имеет отношения :), он вообще не вышел никуда за пределы нашей группы друзей, имевших отношение к тогдашнему УСПИДу.

Особых проблем со свистом я вообще не помню – возможно, аналоговый тракт магнитофона (а мы слушали цифровой звук на Векторе точно так же, как и любой другой – через линейный выход ПК и линейный вход/динамик магнитофона) сам по себе хорошо фильтровал высокие частоты. Впрочем, вполне возможно, частота вывода отсчетов была всё же в 2-4 раза больше частоты дискретизации, т.к. иначе свист должен быть всё же слишком заметным (частота дисретизации в одноголосном режиме – 7,2 КГц, в двухголосном – всего 3,6 КГц). Кстати, свист в ролике тоже слышен, но у него же есть одно приятное свойство – чем меньше громкость звука, тем слабее свист, так что сам звук как бы его маскирует, и он не так заметен.

Звук в видеоролике специально фильтром не обрабатывался – я пробовал это делать (не столько из-за свиста, сколько из-за наличия других разных помех в звуке), но результаты мне не понравились, и разместил без фильтрации. Впрочем, не уверен, что фильтр не использовался мной раньше для этого звукового файла (например, сразу после оцифровки его с кассеты на ПК, что было лет 20 назад). Кстати, в первой половине ролика азимут головки магнитофона при воспроизведении явно не совпадает с азимутом при записи, и это как бы ещё один дополнительный фильтр (в определенный момент хорошо слышно, что звук резко становится чище (или я нажал в тот момент на кассету, или само что-то сдвинулось :) – но звук от этого лучше не становится, только помехи слышнее).

При разработке синтезатора я себя особо не ограничивал – сразу решил делать максимально универсальный вариант, с амплитудными и частотными огибающими, без ограничения длительности сэмплов и всеми разумными средствами сокращения объёма, занимаемого композициями. К сожалению, технических тонкостей почти не помню – вроде делал что-то вроде команд для автоматических приращений значений в сэмплах (тут не уверен) и в огибающих, то есть для простых огибающих, например, с линейным нарастанием или спадом, не нужно было хранить её целиком в памяти – задавались команды типа ЦИКЛ5+15, ЦИКЛ25-3 (естественно, вместо слова ЦИКЛ и занаков +/- использовались какие-то байтовые коды, но макроассемблер позволял писать именно так или LOOP или как угодно). Делал циклы с заданным числом повторений, вроде делал и «паттерны» (если я правильно понимаю этот термин) – то есть можно было задать некий фрагмент в виде нот и их длительностей, а затем воспроизводить его с разными инструментами и огибающими. Музыка вводилась только как блок данных в макроассемблере – естественно, не было какого-то интерфейса для ввода и сохранения композиций и т.д., до этого тогда дело не дошло, да и не для того создавался синтезатор, а вводить в макровссемблере было достаточно удобно, и результат получался довольно быстро.

Из-за сложности «изобразительных средств» полноценно работал только один голос – с частотой дискретизации 7,2 КГц и относительно слабым треском. Частота вроде небольшая, но вполне удобная (учитывая небольшой объём памяти Вектора и ограничения самого ВИ53) и обеспечивающая очень приличное качество музыки. В двухголосном режиме и частота была гораздо ниже (3,6 КГц), и помехи намного сильнее, так что звук уже никак не назовешь чистым и приятным :). Однако, учитывая тогдашние «конкурирующие технологии» в виде биперной музыки, «прямоугольного звука» ВИ53 или достаточно однообразного и ограниченного AY – и в таком виде звучание было поразительным, тем более никто тогда такого не ожидал от «голого» Вектора, без всяких дополнительных примочек. Да и сейчас я вижу, что такого программного звука на простых 8-битных ПК вроде бы больше и не было, тем более, не оснащенных какими-то спецсредствами типа Ковокса. Прощу прощения за нескромность :). У Спектрума с AY есть разные примеры цифровых трекеров, но звук у них простоватый, жесткий.

Кстати, двух голосов оказалось почти достаточно для вполне приличной музыки или сложных звуковых эффектов (учитывая наличие огибающих и возможность имитации нескольких голосов в одном чередованием), так что больше я даже и не стал пробовать (при 3-х голосах частота дискретизации упала бы до 2,4 КГц, а это уже слишком…).

Поскольку в то время у меня дома еще не было IBM-совместимого или другого продвинутого ПК, сэмплы инструментов брать особо было не где (на работе компьютер был вообще без звуковой карты), каких-то средств для оцифровки реальных звуков тоже не было (хотя АЦП, конечно, можно было сделать, но не настолько сильно он требовался). Так что все инструменты генерировались на Бейсике, и в основном это, конечно, самые простые волновые формы (синус, пила, треугольник, шум и т.д.) и их вариации, но и их зучание было тогда для Вектора очень свежим и необычным :).

По этой же причине не стал делать какой-то трекерный плейер в расчете на стандартные файлы типа MOD, STM и т.д. Доступа к ним почти не было, и, главное, сам формат трекерной музыки был мне неизвестен (и подробной информации о нем я нигде не видел – интернета еще не было :). К тому же я знал, что классическая трекерная музыка как минимум 4-голосная (как у первых Амиг), так что никакой надежды воспроизвести ее программно на Векторе не было – его быстродействия для этого явно не хватало.
Кстати, вспомнил еще один момент – при переносе классики (начало ролика до «шума прибоя» и сирены) с нотной записи в этот синтезатор использовал приём «оживления» музыки – ставил акценты в начале каждого такта и немного менял параметры части звуков (громкость, длительность), чтобы сделать похожим на живое исполнение, а не компьютерное. Вроде бы, удалось неплохо :).

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

ivagor
25.02.2020, 22:12
Решил все же попробовать играть БКшные модули Manwe. Для пробы взял модуль around.spc (+around.ins). В принципе играет, но основной цикл получился медленнее, чем на БК0011, поэтому играет ниже и медленнее. Разогнать в рамках 8080 затруднительно, но можно откорректировать приращения (в примере они прямо БКшные). Но самое главное - если послушать (лучше в v06x) шимную версию, то становится понятно, что так не пойдет. А ковоксный приемлемо. С использованием z80 его можно разогнать нужной скорости.

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

UPD: Маленько разогнал основной цикл, стало пободрее. Второй вариант сделал только ковоксный.

svofski
26.02.2020, 10:19
Круто, что можно играть сделанные для других трекеров моды! Надеюсь в будущем будет возможность выбора между совместимостью с БК/большим количеством каналов и лучшим качеством звука/возможностью использования ви53.

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

На всякий случай поясню, что я сравнивал с NoBuzz2. Потеря в качестве по сравнению с NoBuzz2 огромная. При том, что там ви53, а тут ковокс. (Я сравнивал в v06x/android).

ivagor
26.02.2020, 17:23
Первый опыт по проигрыванию БКшных модулей звучал не очень убедительно, поэтому я превозмог ВМ80 и себя и разогнал плеер до 11700 Гц (в spctest1 и spctest2 было <10000).
В Downgrade 28 Manwe написал, что в SPCplay 1.1 (откуда я выдергивал музычку) 12500 Гц, т.е. я почти допрыгнул. Но это не все. Если кто-то захочет послушать БКшные оригиналы в emu, то он заметит, что там не слегка, а заметно быстрее. Жестокий b2m так разогнал БКшку, что у него получается аж 15000 (предполагаю, что при эмуляции БК0011 не учитываюся тормоза от выборки видеоданных, на записях Manwe на youtube действительно помедленнее).
Большинство модулей с быстрой музычкой (зажигательное техно, транс и не только), для них плеер можно чуть упростить и сильно разогнать. Так получился FastPlayer, у него 15000 Гц. Не стал тормозить, оставил так, чтобы повыпендриваться (причем быстрый плеер можно еще немного разогнать).
А как же ШИМ? Сделал один пример. ШИМ с "аппаратным микшированием каналов" затормозил плеер до 13900 (при необходимости можно чуть разогнать). Почти хорошо (в v06x), но клики все портят, и избавиться от них в этом плеере я не могу. Но в быстрой композиции они почти к месту.

Промежуточные итоги.
Вектор может играть БКшные музыкальные модули, но чтобы делать это хорошо, нужен ковокс. Можно портануть и на другие компы с 8080 и ковоксом, по крайней мере FastPlayer.
Вектор может качественно играть музыкальные модули с использованием ШИМ, но их нужно писать с прицелом на вектор. Учитывая огромное количество векторовских музыкантов, перспективы этого варианта очень туманные, техническая возможность есть, музыкантов нет.

svofski
26.02.2020, 18:57
В pwm -- удачная композиция для кликов. Интересно, а что там такое слышно после того, как она закончилась. Души замучанных тобою машинных циклов? Ковоксная версия после завершения молчит.

ivagor
26.02.2020, 19:18
В pwm -- удачная композиция для кликов.
Да, тоже считаю, что они тут почти к месту. Но послушаешь пару-тройку композиций с кликами и захочется гладкости.


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

svofski
26.02.2020, 20:36
Клик -- это синтезатор, это звук будущего.

Что до голосов из ада, с ними интересней.

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

Это напоминает ютубный жанр "металл без дисторшона". А тут "транс без семплов". Уже долго слушаю в надежде, что пойдет какой-то генеративный процесс. Иногда его пробивает на что-то бодрое и ритмичное, причем с клевыми звучками типа ретрейнещегося модема.

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

Прослушал раза 4 по кругу. Все-таки зациклено, существенных девиаций не предвидится.

ivagor
26.02.2020, 21:10
Жаль, что музыка из хаоса не самоорганизовалась хотя бы в елочку.
А я сообразил, как можно уменьшить клики в ШИМном варианте. Еще здесь заметно меньше громкость, это не причина уменьшения кликов, а побочный эффект, связанный с борьбой за быстродействие. Зато ковокс не нужен.

svofski
26.02.2020, 21:29
Слышно свист, но что уж тут поделаешь, зато клик как будто пропал совсем. По крайней мере на динамиках телефона я его в последней версии не слышу, даже очень близко поднеся к уху.

Ничего себе ты Вектору звучачку раскрутил!

vladtru
26.02.2020, 23:25
Ковоксовские варианты звучат отлично! А вот для чего щелчки в pwm, я лично не понял... drumloopLessClick на VV, к сожалению, вообще не выводит звук - интересный метод подавления щелчков :). А на чём можно послушать? v06x для Windows скачал, но как им пользоваться не пойму - инструкции нет.

svofski
26.02.2020, 23:46
vladtru, из командной строки:
v06x --rom drumloop.rom

ivagor
27.02.2020, 07:24
Слышно свист, но что уж тут поделаешь, зато клик как будто пропал совсем.
Да, свист в таком варианте слышнее, но имхо лучше свист, чем клики. Их очень слабо слышно, если знать, что они есть и прислушиваться, но я бы сказал, что в свое время для реальщиков, которые не хотели или не могли спаять ковокс, такой вариант скорее всего был бы приемлемым.
Можно
1. Чуть-чуть увеличить громкость, хотя не уверен, что это будет заметно
2. Немного увеличить частоту, свист уйдет повыше и будет не так слышен

Вопрос - есть ли в v06x опция отключения ковокса?


drumloopLessClick на VV, к сожалению, вообще не выводит звук - интересный метод подавления щелчков . А на чём можно послушать?
drumloopLessClick можно послушать в v06x или в emu80 (шим там несколько менее качественный, зато есть интерфейс). Мой субъективный рейтинг эмуляции ШИМ (по убыванию качества): v06x, emu80, VV (когда играет). emu не рекомендую для шим, зато я в нем отлаживаю.

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

Только сейчас дошло, почему в LessClick остались незначительные клики. Их можно убрать и будет шим без кликов, просто сказка.

svofski
27.02.2020, 09:58
Вопрос - есть ли в v06x опция отключения ковокса?

Зависит от того, какая у тебя сборка. У меня сейчас вот так:


$ v06x --help | grep volume
--volume-timer arg (=1) timer sound volume
--volume-beeper arg (=1) beeper/tape sound volume
--volume-ay arg (=1) AY volume
--volume-covox arg (=1) Covox volume
--volume arg (=0.200000003) Global volume

ivagor
27.02.2020, 17:12
Реализовал улучшеения в ШИМном проигрывателе:
1. Убрал клики! Ура!
2. Увеличил частоту до 13900 Гц, так несколько меньше свистит. Можно еще увеличить, но моральных сил выравнивать все интервалы у меня нет.
3. Чуть увеличил громкость, но это не заметно.
Добавил в комплект еще один модуль (cooltech). Для прослушивания рекомендую v06x или emu80. На реале тоже должно работать и скорее ближе к v06x.
В итоге зигзагами удалось придти к первоначальной цели - проигрывать трекерную музыку на голом векторе. Для написания музыки под этот проигрыватель на БК есть редактор(ы). В идеале надо бы сделать и дисковый плеер работающий с файлами SPC+INS, может когда-нибудь соберусь, но не обещаю.
Недостатки:
1. Свистит. Если невмоготу - слушайте ковоксную версию.
2. Быстрый плеер не очень здорово проиграет БКшные модули с долгими нотами, типа around.
Тут два момента:
2.1. Таких модулей не так много, "быстрые" в подавляющем большинстве.
2.2. Если писать в расчете на вектор, то это ограничение можно обойти взяв другие семплы.
Ну и может я все же еще смогу разогнать "медленный" плеер, который можно адаптировать под шим и в текущем варианте, только он будет сильнее свистеть.
Теперь у "моего" варианта практических перспектив почти нет. Да, уменьшив число каналов мы избавляемся от свиста, но нет готовых модулей.
В принципе можно сделать специальный двухканальный плеер под БКшные модули, который не будет свистеть, но опять же, эти модули надо еще сочинить/набрать.
Еще не хватает аудиофильских эмуляторов Башкирии-2М и Корвета, туда бы тоже можно было портануть.

svofski
28.02.2020, 12:07
Попробую спаять шланг для магнитофонного выхода. Стало слишком круто, чтобы терпеть эмуляцию, пусть даже рациональную полифазно-аудиофильскую.

В том, что для музыки на Векторе, требуется трекер на БК, есть какой-то особый шарм. Все-таки хорошо бы в перспективе иметь опцию проигрывания двух каналов с повышенным качеством. Хотя, то, что есть сейчас, по любому уже запредельно круто.

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

ivagor
28.02.2020, 12:52
Попробую спаять шланг для магнитофонного выхода.
Было бы здорово.


Есть ли в цикле место на проверку нажатой клавиши, хотя бы раз за паттерн?
Можно даже каждый "большой тик" (несколько раз в секунду), там пришлось антикликовую (антикличную?) задержку вставить, чтобы все outы были ровно, ее можно заменить на что-то полезное.

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


В том, что для музыки на Векторе, требуется трекер на БК, есть какой-то особый шарм.
Manwe сделал и более крутой/быстрый новый плеер и для него можно конвертить специально сделанные S3Mы, т.е. там можно редактировать на современном компе. Но я на тот плеер с ВМ80 и шимом не замахнусь, там z80 нужен и то будет сложно.

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

Хотя если оставить два канала, то теоретически и ВМ80 что-то отдаленно похожее может выдать.

ivagor
28.02.2020, 17:40
Добавил стоп по клавише CC (в эмуляторах - левый shift, а в некоторых - еще и правый). Ну и сжал. Рестарт, как и в предыдущих вариантах, запускает с начала.

Ramiros
28.02.2020, 20:26
Обновил VV7.00 (https://cloud.mail.ru/public/3pcq/3PDaZ849v) . Исправил глюк с молчанием, и переписал алгоритм LF Filter, На мой взгляд стало гораздо лучше :)

Pyk
28.02.2020, 23:20
Для прослушивания рекомендую v06x или emu80
На emu80 звучание будет лучше, если увеличить частоту дискретизации в настройках до 96 кГц. Ну и громкость заодно можно поднять с дефолтного значения 4 до 5.

ivagor
29.02.2020, 07:00
Про громкость помнил, а про возможность изменить частоту дискретизации забыл, спасибо.
Pyk, пользуясь случаем хочу повторить свой багрепорт из другой темы - не работает im 2 в z80 (или работает, но неправильно, я не разбирался), по крайней мере в конфиге вектора.
И просьба/пожелание - добавить ковокс.

Ramiros
29.02.2020, 17:54
Еще немного допилил LF Filter, заметных изменений по сравнению с предыдущей версией почти незаметно, но все же они есть. Качать тут VV_7.01 (https://cloud.mail.ru/public/3PV9/42voz2aAt)

Pyk
29.02.2020, 21:07
ivagor, не видел тот багрепорт :( Вообще, это не удивительно, так как я с осени был занят - почти не занимался эмулятором и редко заходил на форум :(
Можешь прислать ссылку на тот багрепорт? Ну или скажи, где и как проявляется проблема с im 2?

А ковокс сделаю. Как раз появилось немного времени - взялся доделать кое-какие незаконченные фичи в эмуляторе, думаю заодно и ковокс получится.

Manwe
01.03.2020, 12:48
vladtru, из командной строки:
v06x --rom drumloop.romВроде как исполняемый файл называется VVector.exe (или я не туда смотрю)?

ivagor
01.03.2020, 13:04
Manwe, современные эмуляторы с поддержкой вектора (в алфавитном порядке): emu (http://bashkiria-2m.narod.ru/) (b2m), emu80 (https://zx-pk.ru/threads/27488-emu80-v-4.html) (Pyk), Virtual Vector (https://cloud.mail.ru/public/5uyc/2pkicQPoZ/) (Ramiros), v06x (https://github.com/svofski/vector06sdl/releases) (svofski). Мой субъективный рейтинг эмуляторов по качеству ШИМ в порядке убывания: v06x (также поддерживает ковокс), emu80, VV (virtual vector, также поддерживает ковокс). emu замечательный и уникальный во многих отношениях эмулятор, но шим в нем играется так себе (ковокс поддерживается, но надо редактировать конфиг).

svofski
01.03.2020, 13:28
Manwe, по заказу делаю сборку для macos :)

Manwe
01.03.2020, 22:05
Manwe, по заказу делаю сборку для macos :)Круто, с нетерпением жду!

Pyk
01.03.2020, 23:57
Добавил covox в emu80, тестовая сборка:
http://emu80.org/v4beta/Emu80qt_40344_test.7z

Как обычно, в архиве только измененные файлы, для тестирования заменить файлы в последней версии.

ivagor
02.03.2020, 17:16
Попробовал переписать под z80. ШИМный вариант разогнался до 21.4 кГц. Это офигенно, но все же меньше 25 кГц. Идея была в том, чтобы играть ШИМом на 25 кГц с интерполяцией в 2 раза (без свиста, с оригинальноый скоростью и высотой звуков). Так не получится, но все же это показывает, что с z80 появились бы огромные резервы скорости. Хотя если цель - качественно играть БКшные spc, то проще спаять ковокс, чем любой вариант адаптера z80, и воспроизводить без интерполяции.

svofski
02.03.2020, 20:52
Круто, с нетерпением жду!
Попробуй, пожалуйста: http://sensi.org/~svo/b/v06x/v06x-macos-10.13.4.zip

Manwe
03.03.2020, 11:55
Попробуй, пожалуйста: http://sensi.org/~svo/b/v06x/v06x-macos-10.13.4.zipРезультат такой:
./v06x --rom cooltech.rom
Killed: 9

svofski
03.03.2020, 15:14
Результат такой:
./v06x --rom cooltech.rom
Killed: 9
Ничего себе. Давай попробуем тогда такую сборку: https://www.dropbox.com/s/vg75uvyrttppfaj/v06x-macos-10.13.4-2.zip?dl=0

ivagor
03.03.2020, 18:20
Версия для AY - теперь охватил все известные мне векторовские устройства звукоизвлечения, за исключением бипера (что довольно иронично, учитывая название темы).
Минусы: мало бит/отсчет, долго распихивать по каналам - несколько тормозной вариант (оптимизировал по максимуму, но все же получилось только 11500 Гц).
Плюсы: поддерживается любым современным эмулятором вектора, практически одинаково играет в любом эмуляторе, на реалах встречается чаще чем ковокс, стерео, не свистит.

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

Еще здесь улучшенная сервисность. CC (LShift) - переход в режим паузы; УС (LCtrl) - продолжаем играть с места остановки или, если композиция окончилась, начинаем заново.

Manwe
03.03.2020, 18:30
Ничего себе. Давай попробуем тогда такую сборку: https://www.dropbox.com/s/vg75uvyrttppfaj/v06x-macos-10.13.4-2.zip?dl=0Запустился, но не играет - чёрный экран. Запускал так:
./v06x --rom drumloop.rom

Если без параметров, то грузится, рисует на экране надпись "Вектор", дискету, полосы.

ivagor
03.03.2020, 18:35
чёрный экран
Это нормально, у меня там только проигрыватель, никакой визуализации. Но звук, конечно, при нормальной работе эмулятора должен быть.

svofski
03.03.2020, 19:08
Может быть надо было подождать распаковщик и - или сделать погромче.

ivagor
03.03.2020, 19:22
Наличие звука лучше проверить на любой другой программе, которая еще что-нибудь рисует на экране, например такой (http://www.sensi.org/scalar/ware/337/).

Manwe
03.03.2020, 19:44
Ах, это я ступил - вставлял в Терминал строчку с drumloop.rom, а надо было cooltech.rom :)
Теперь всё играет! Жаль, посвистывает на биппере.

ivagor
03.03.2020, 19:48
вставлял в Терминал строчку с drumloop.rom
drumloop не играет? Все выложенные модули должны играть.

svofski
03.03.2020, 21:32
Меня глючит, или cooltechAY.rom как будто весь помедленней, пониже и помассивней? Такое ощущение, что тот же танец исполняют бегемоты или слоны.
Хрюкочет слегка. Возникает соблазн пропустить АЫ через полифазный рациональный.

ivagor
04.03.2020, 08:16
Меня глючит, или cooltechAY.rom как будто весь помедленней, пониже и помассивней?
это точно

несколько тормозной вариант (оптимизировал по максимуму, но все же получилось только 11500 Гц)


Хрюкочет слегка.
предполагаю, что это

мало бит/отсчет

Скорости AYковому варианту хватило бы с z80. Но проще к обычному вектору подключить ковокс, тогда скорости даже с запасом (кроме композиций с длительными нотами).

svofski
04.03.2020, 11:17
https://youtu.be/LL998ajnjN4

Посвистываюшие модhttps://youtu.be/LL998ajnjN4ы напомнили такой странный жанр.

ivagor
04.03.2020, 11:23
Скорее похоже на покликивающие моды. Только они должны кликать не как метроном, а псевдослучайно.

ivagor
05.03.2020, 18:34
Весенняя ШИМная коллекция. В ней частота основного цикла соответствует оригиналу (12500 Гц), а частота ШИМ 25000 Гц с дубовой интерполяцией повторением. Что это дало - в v06x не свистит или свистит так мало, что я не слышу.
Минусы:
1. Слабая совместимость с эмуляторами. В v06x нормально, в emu80 "посвистывает", в VV стало довольно плохо (скорее всего связано с преодолением магического для VV барьера 22000 Гц). Продолжаю пребывать в уверенности, что на реале ближе к v06x.
2. Малая битность, соответственно "похрустывает"/"похрюкивает" и другие похожие слова.
Что можно сделать оставаясь в рамках задачи "проиграть spc на голом векторе":
1. Если сильно постараться, то можно заменить интерполяцию на линейную. Стараться не хочется.
2. Можно немного увеличить битность, т.к. я сделал минимум исходя из наихудшего возможного случая, который на практике может и не встретится в конкретной композиции.

Если несколько откорректировать условия задачи и просто говорить о трекере с ШИМным воспроизведением для вектора, то можно понизить частоту до 9500/19000. Или, как я раньше писал, ограничиться двумя каналами, что позволит получить честные 19000 без интерполяции.

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

Забыл сразу написать - здесь все варианты с улучшенной сервисностью. CC - переход в режим паузы, УС - продолжить или, если мелодия закончилась, перезапустить.

svofski
05.03.2020, 22:30
Вектор сглючился, похоже потребуется ремонт =( Иногда включается, но потом слетает.

Один раз смог послушать cooltech.rom последней версии. Я слушал через динамики в мониторе, тот еще хайфай. Сильно тише, чем обычный бипник, но качество хорошее, свиста практически нет. К сожалению, пока я собирал стенд для звукозаписи, Вектор сглючило опять. Звук в v06x через те же динамики звучит точно так же. Ура ivagor-у!

ivagor
06.03.2020, 07:10
Спасибо за проверку! Надеюсь вектор еще оживет с твоей помощью и будет работать долго и счастливо.
А я могу даже написать генератор претензий к шимному варианту не требующий прослушивания, основываясь только на частоте ШИМа с учетом быстродействия вектора и частоты ВИ53:
<19-20 кГц - свистит
>19-20 кГц - хрустит
Можно еще добавить градацию усиленной критики:
<19-20 кГц - свистит и немного похрустывает
>19-20 кГц - хрустит и немного посвистывает
Из советских компов тут стоит отметить корвет, для него можно сделать чуть получше, т.к. быстродействие у него примерно такое же, а частота ВИ53 на треть больше.

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

Писал про желательное уменьшение частоты, что это может дать. Если снизить до 8900/17800, то можно будет отказаться от микширования трех каналов в один и это резко увеличит битность и громкость. Но будет адЪ с выравниванием всех outов.
А если еще подождать лет 20, то свист точно не будет беспокоить.

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


Если снизить до 8900/17800
Для надежности пусть будет 8500/17000, тогда точно получится

ivagor
07.03.2020, 16:29
Внимательный слушатель может спросить - а как же "полный" плеер, который правильно играет не только условно быстрые, но и медленные и тем более низкие ноты? Предыдущая версия (https://zx-pk.ru/threads/28132-bipernaya-muzyka-na-vektore-06ts.html?p=1048155&viewfull=1#post1048155) SlowPlayer давала 11700 Гц, разогнал до 12300 Гц, отклонение от 12500 <2%. Если очень нужно, то можно дожать и до ровно 12500, но плеер примет непотребный вид, решил не заниматься демомейкерством без крайней необходимости.

svofski
07.03.2020, 23:12
На этой стадии я уже затрудняюсь услышать отличия одной версии от другой. Не хочу сказать, что их нет, но не устраивая серьезную сессию с многократным слепым прослушиванием, найти отличия тяжеловато.

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

ivagor
08.03.2020, 06:24
around7cvx (https://zx-pk.ru/threads/28132-bipernaya-muzyka-na-vektore-06ts.html?p=1049930&viewfull=1#post1049930) - это процедура проигрывания, которую я на данный момент использовал бы в дисковом плеере модулей spc+ins. Т.е. если созрею (что маловероятно) на плеер, то процедура скорее всего будет эта. Основная масса ковоксных модулей здесь (https://zx-pk.ru/threads/28132-bipernaya-muzyka-na-vektore-06ts.html?p=1048155&viewfull=1#post1048155), только SlowPlayer там играет медленнее, чем нужно, а FastPlayer - быстрее.
Последние достижения ШИМа здесь (https://zx-pk.ru/threads/28132-bipernaya-muzyka-na-vektore-06ts.html?p=1049628&viewfull=1#post1049628). Еще наверно стоит написать, что тут (https://zx-pk.ru/threads/28132-bipernaya-muzyka-na-vektore-06ts.html?p=1049087&viewfull=1#post1049087) меня переклинило, и я чуть не разогнал версию для z80 без интерполяции в два раза относительно ВМ80, т.е. учитывая, что у меня получилась типа интерполяция даже для ВМ80, то для z80 интерполяция 12500->25000 получается легко и непринужденно (а в том посте я тупил), есть время на линейную интерполяцию и еще куча свободного времени.

ivagor
13.03.2020, 18:26
Большое спасибо Дмитрию2012! Он оцифровал на реале (реплика 2014) сборник spc6pwmx2 (https://zx-pk.ru/threads/28132-bipernaya-muzyka-na-vektore-06ts.html?p=1049628&viewfull=1#post1049628). Wavы можно скачать или послушать здесь (https://yadi.sk/d/ielWiiyOXoJsEg)

Ramiros
13.03.2020, 21:01
В VV_7.02 (https://cloud.mail.ru/public/4afP/41uZPc2u3) Мне удалось существенно улучшить качество фильтра, и треки (spc6pwmx2) играют как оказалось не сильно хуже чем на реале. к сожалению писк полностью победить не получается, т.к. фильтр имеет частоту среза в районе 20КГц, иначе высокие частоты начинают заметно теряться, по этой же причине он малоэффективен там, где частота ШИМа менее 20КГц.

ivagor
08.09.2021, 17:07
Адаптировал на вектор сравнительно современный биперный движок phaser1. Если кто-то слышал более раннюю адаптацию Kakos nanosa для апогея, то не спешите проходить мимо, для вектора получилось сделать полнофункциональный порт со всеми фишками оригинала (вариант Kakosa слушал, но внутрь не смотрел, заимствований 0). Более того, рискну сказать, что вариант для вектора звучит четче и громче, чем на спеке. И можно было бы добавить еще один меандровый канал или даже два при некоторых условиях, но готовой музыки для таких вариантов нет.
Как обычно в случаях с продвинутыми биперными движками возникает вопрос совместимости с эмуляторами.
1. Рекомендую v06x или VV.
2. Не могу рекомендовать Emu и Emu80. В Emu80 особого криминала нет, но не поддерживается один из нужных режимов таймера и барабаны слишком тихие.

Полные названия и авторы музыки:
gtoc64.rom - Greetings to C64 (MISTER BEEP)
hvphas.rom - Heavy Phaser (Darkman007)
phphun.rom - 1Bit Phazer Phunk (JREDD)
pirat.rom - 1Bit Pirate (JREDD)
rock.rom - 1Bit Rock (JREDD)
rublov.rom - Rubber Love (MISTER BEEP)

Upd 10.09.2021: Вторая версия - яндекс.диск (https://disk.yandex.ru/d/N7t4C8W-lCclTw), mediаfire (https://www.mediafire.com/file/rxcktf1r2jlylqi/phaser1vector06c_version2.zip/file) (временная)
1. Исправил ошибку с октавами во втором канале, теперь все звучит как в оригинале.
2. Теперь на экране отображаются название композиции и автор.
3. По поводу громкости барабанов в emu80. Оказалось, что нужный режим таймера там поддерживается, а проблема в подходе к микшированию каналов таймера и бипера. К счастью я успел пока у меня был реал сделать программку использующую микширование всех каналов таймера и бипера и записать результат с реала. Он совпадает с тем, что слышно в emu/v06x/VV и сильно отличается от emu80, проблема все же именно в emu80.

metamorpho
08.09.2021, 19:38
Звучит весьма хорошо. А сколько байт занимает ?

ivagor
08.09.2021, 20:12
А сколько байт занимает ?
Проигрыватель (+чуть-чуть инициализации) примерно 1800 байт, из них 1024 - это семплы барабанов.

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

240 байт из оставшихся 800 это еще две таблицы.

x-code
09.09.2021, 21:03
А можно, пожалуйста, выложить ещё куда-то помимо Яндекс Диска (запрещённого на территории одной соседней с РФ страны)?
Заранее спасибо!

ivagor
10.09.2021, 07:30
Приношу свои извинения, временно удалил ссылки на phaser1, т.к. там надо исправить очень серьезную ошибку. Вечером выложу на яндекс диск и mediafire.

ivagor
10.09.2021, 17:04
Выложил (https://zx-pk.ru/threads/28132-bipernaya-muzyka-na-vektore-06ts.html?p=1130092&viewfull=1#post1130092) исправленную версию.

ivagor
16.09.2021, 17:04
Еще один популярный движок Shiru - Tritone.
Долго копался с ним, но качества Phaser1 ждать не стоит, это было счастливое стечение обстоятельств, которое вряд ли повториться. Основной недостаток - шумит/свистит, а в некоторых эмуляторах и то и другое. Мой субъективный рейтинг эмуляторов для тритона:
1. v06x
2. VV или Emu80 (звучат по-разному, просто затрудняюсь выбрать)
3. Emu
Опять же был порт Kakosa Nanosa для апогея. Бинарников его варианта не видел, посмотрел/послушал на ютубе запись. Отличия этого варианта от его: здесь есть управление скважностью, возможность настроить разную громкость каналов (все же большинство музыки для тритона нацелено на разную громкость каналов), барабаны. Вариант со звукоизвлечением как у Kakosa я тоже сделал (+барабаны), но полнофункциональный порт мне представляется более предпочтительным, несмотря на шум.
Если сравнить со спековским оригиналом, то у него выше частота дискретизации и качество, но у векторовской версии есть потенциальная фишка, невозможная для спека48 - способность менять громкость каналов на ходу с точностью почти 7 бит. Но т.к. этого нет на спеке, то нет и музыки с использованием этой фишки.

Полные названия и авторы музыки:
balamons.rom - BaladinahMonstra (Raphaelgoulart)
jttip.rom - Just The Tip (Brink)
mlady.rom - M'Lady (Brink)
monty.rom - Monty on the Run (Brightentayle)
rt8416dr - RT-8416 Droid (Strobe)

Upd 20.09.2021: Переосмыслил подход к тритону. Возможность задать произвольное соотношение громкостей между каналами - это в принципе хорошо, но для практики излишне, есть 2 (от силы 3) варианта, а существующая музыка написана в основном для одного из них. С учетом этого удалось увеличить громкость, улучшить четкость и уменьшить шум. Идеально не стало, но такой вариант (https://disk.yandex.ru/d/pLJVk8Ke0Rky5w) уже можно слушать сравнительно комфортно.

svofski
17.09.2021, 02:44
Наконец собрался послушать все вместе, и Phaser и Tritone. Я не вдавался в технические детали, слушал просто музыку. Оба движка невероятно круты и удивляют. Но круче всех Phaser. Звук мощный и чистый без хрюка и свиста. Просто невозможно поверить, что это голый Вектор.

ivagor
17.09.2021, 06:35
Но круче всех Phaser. Звук мощный и чистый без хрюка и свиста. Просто невозможно поверить, что это голый Вектор.
Он как будто был сделан в расчете и на вектор тоже. Таких (хорошо подходящих для вектора) спековских биперных движков очень мало, а чтобы еще и популярных с хорошей библиотекой музыки, так пожалуй только phaser1 и есть.

ivagor
18.09.2021, 09:40
Он как будто был сделан в расчете и на вектор тоже.
Чтобы не быть излишне вектороцентричным уточню, что есть еще пара советских ретрокомпов с ВМ80 подходящих для качественной адаптации phaser1.

ivagor
20.09.2021, 17:04
Модернизировал векторовского тритона (https://zx-pk.ru/threads/28132-bipernaya-muzyka-na-vektore-06ts.html?p=1130666&viewfull=1#post1130666). Качество заметно выросло, по моему мнению стало не хуже, чем на спеке.

svofski
21.09.2021, 15:48
На Спеке наверное тоже вопрос эмуляции бипера не всегда однозначно решен?

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

svofski
21.09.2021, 17:26
Кроме того хорошую биперную музыку часто можно найти в виде записей с реалов.
Надеюсь, что скоро кто-нибудь из обладателей исправных реалов сможет найти время записать твои адаптации Фазера и Тритона.

ivagor
21.09.2021, 20:06
DDp записал пару файлов фазера (https://zx-pk.ru/threads/33743-port-bipernogo-dvizhka-phaser1-na-apogej.html?p=1131138&viewfull=1#post1131138) с реального Апогея (за что ему большое спасибо), звучат вполне нормально. Векторовские должны быть еще немного лучше, т.к. для Апогея пришлось чуть замедлить основной цикл (все же там 1.78 МГц).

ivagor
22.09.2021, 10:09
Вчера забыл написать про еще одно отличие векторовской версии - в ней барабаны громче.

ivagor
24.09.2021, 18:36
Сегодня мы разлочим скрытую фичу ВИ53 - управление огибающими. В этом нам поможет очередной движок Shiru - Stoker (https://disk.yandex.ru/d/Y7lDQeTst_jOCQ) (большой ему респект за движки и за музыку). Качество звука несколько лучше, чем у спека, т.к. каналы физически разделены. Для вектора stocker можно умощнить за счет более тонкой регулировки громкостей и добавления еще одного канала.

Upd: Совместимость с эмуляторами. Рекомендую v06x и VV. Emu свистит, в Emu80 могут пропасть барабаны.

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

Если кто-то будет сравнивать звук со спеком, то возникнет вопрос - почему векторовская версия звучит ниже, может не успевает? Успевает, там много балластных команд, которые можно было бы убрать (или заменить например на дополнительный канал), если бы не успевало.
Рассчитанные ноты в stokerе соответствуют одной длительности цикла, а на практике длительность основного цикла спековской версии немного плавает и бОльшую часть времени цикл торопится, поэтому композиция на спеке играет чуть выше и быстрее. В векторовской версии цикл стабильный и соответствует рассчитанным нотам. Для иллюстрации собрал вариант (https://disk.yandex.ru/d/wmgEkzCMGTxHuw) поближе к спеку. Абсолютно точно попасть не получится, т.к. дискретность 4 такта, можно или чуть ниже/медленнее или чуть выше/быстрее, но разница микроскопическая.

svofski
24.09.2021, 21:13
ВИ53 переживает личностный кризис. Кто я? Где я? Офигенно!

ivagor
25.09.2021, 13:04
Попытка сшить 8 шапок из одного таймера. Адаптация (https://disk.yandex.ru/d/fqOpDCRDp7RJKQ) движка OctodeXL (introspec, автор оригинального Octode - Shiru). Что касается эмуляторов, то мне субъективно больше нравится звучание v06x, т.к. кажется более четким, а при 8 голосах это важно (на спеке тоже сложно выделять отдельные голоса, когда их 8). Emu80 и VV звучат нормально, Emu сильно свистит.

Музыка:
psionic.rom - Psionic Activity (Mister BEEP)
spring.rom - Spring is Coming (Mister BEEP)

Upd: Вторая версия (https://disk.yandex.ru/d/pai7xx-n1mSLcA). Немного улучшено качество звука. При зацикливании мелодии индикатор РУС/ЛАТ меняет состояние.

KTSerg
25.09.2021, 14:00
...
Адаптация движка OctodeXL (introspec, автор оригинального Octode - Shiru).
...
Музыка:
psionic.rom - Psionic Activity (Mister BEEP)
spring.rom - Spring is Coming (Mister BEEP)
Записал их в вав-ки с реала.
Запись простым "Звукозапись", пишет 60сек.

Ссылка на записи Диск (https://disk.yandex.ru/d/c0-KqAB9GYwG4A)

ivagor, если воспроизведение музона движком зациклено, то хоть-бы РУС/ЛАТ инвертировал, что-бы понятно было, что повтор пошел... :)

ivagor
25.09.2021, 14:14
KTSerg, большое спасибо! У меня были сомнения по поводу stokera и octode, что вдруг на реале они будут примерно как в emu, но к счастью совсем нет. Основной недостаток - тонкий свист, но он действительно тонкий и на фоне музыки почти не слышен. Зато неожиданно оказалось, что на реале четкость даже лучше чем в v06x, по крайней мере я так слышу. Octode можно немного разогнать, но принципиально это звук не поменяет.
Все мелодии зациклены. У меня сначала было намерение сделать проигрыватели хотя бы с минимальным интерфейсом, но лень победила.

ivagor
25.09.2021, 17:02
Добавил (https://zx-pk.ru/threads/28132-bipernaya-muzyka-na-vektore-06ts.html?p=1131442&viewfull=1#post1131442) вторую версию OctodeXL.

ivagor
30.09.2021, 07:12
Коротко посмотрел запись вчерашнего стрима lafromma31 про демы (часть 2). Лично для меня впечатления смешанные, с одной стороны приятно, что мои поделки попали в число показанных, но с бипером получилось мягко говоря не очень. Попробую угадать, что lafromm31 использует VV с включенной опцией Sound>Filters>КР580ВИ53 Noise Filter. Исходно (в оригинальном архиве) эта опция отключена, но если ее включить и попробовать биперные движки, то
1. В Phaser1 громкость барабанов уполовинивается, немного неприятно, но жить можно
2. А вот в тритоне пропадают 2 из 3 тональных каналов и барабаны, что совсем печально.

Для полного комплекта упомяну эффекты этой опции и на движки не показанные на стриме:
3. Stoker - остаются слышны только барабаны, тональные каналы пропадают полностью.
4. OctodeXL - тишина.

Если вдруг кто-то захочет послушать вышеупомянутые биперные движки, то не включайте эту опцию VV (или послушайте в v06x).

Ramiros
30.09.2021, 10:08
Данная опция (Sound>Filters>КР580ВИ53 Noise Filter) по сути отключает звук таймера во всех режимах кроме 3-го, который обычно и используется для генерации звука, а так же режет звук таймера если его частота зашкаливает за 20 кГц т.к. эти частоты из за ресэмплинга в 44 КГц дают искаженные частоты. Она полезна например в деме Скайнет т.к. слишком "крутые програмисты вроде Нагаева" которые детектят эмулятор по таймеру забывают его переключить в нормальный режим и он генерирует высокочастотный шум, который на эмуляторе сильно мешает. В большенстве случаев данный фильтр никак не мешает и не помогает, но для всяких извращеных игр с таймером его безусловно нужно отключить в обязательном порядке.

ivagor
30.09.2021, 10:21
отключает звук таймера во всех режимах кроме 3-го
Я так и подумал. Если бы опция называлась "8253 mode 3 only", тогда бы пользователи еще подумали, включать или не стоит, а раз Noise Filter, то конечно надо включить, чего там слушать всякие извращения с таймером.

svofski
30.09.2021, 10:23
Солидарен с ivagor-ом, звук биперных движков звучал странно. lafromm31, попробуй как-нибудь экспериментальный v06x с гуи: http://sensi.org/~svo/b/v06x/v06x-godot-win32-4.zip

Ramiros
30.09.2021, 11:29
Если бы опция называлась "8253 mode 3 only"

Согласен, надо будет переименовать.

ivagor
30.09.2021, 12:08
Очень краткая сводка характеристик последних портированных биперных движков:
OctodeXL - 8 тональных каналов. Громкость каналов в принципе может быть разной, но в двух выложенных примерах она одинаковая. Синтетические барабаны.
Phaser1 - 2 тональных равногромких канала: один сложный, позволяет делать всякие эффекты, в т.ч. "а-ля C64"; второй - простой. Барабаны семплерные (есть вариант с синтетическими, я его тоже портанул, но пока не выкладывал).
Stoker - 2 тональных канала с управлением громкостью. Синтетические барабаны.
Tritone - 3 тональных разногромких (в теории могут быть и равногромкие, но я примеров такой музыки не встречал) канала с управлением скважностью. Барабаны синтетические.

ivagor
02.10.2021, 12:05
Послушал в четверг тритонские композиции (вторую версию (https://zx-pk.ru/threads/28132-bipernaya-muzyka-na-vektore-06ts.html?p=1130666&viewfull=1#post1130666)) и захотелось попробовать что-то сделать со свистом. Получилась альтернативная версия с номером 3 (яндекс.диск (https://disk.yandex.ru/d/Y_1TuXGIjorAxA), временный mediafire (https://www.mediafire.com/file/ojzomgeq96xemly/TritoneV06Cversion3.zip/file)). Она не свистит (в v06x, Emu80 и, надеюсь, на реале), но похрустывает и звук несколько тише и глуше. Поэтому вторую версию не убираю. Новую версию нормально переваривают только v06x и Emu80. Еще в третьей версии вернулась возможность задать произвольное соотношение громкостей каналов, но это в основном дает мне моральное удовлетворение, на практике это не сказывается. Можно, кстати, выкрутить громкость настолько, что будет эффект перегруза, для тритонских композиций это не нужно, но в принципе такая возможность есть (для типарока или чего-то подобного). И добавил по предложению KTSerga инверсию РУС/ЛАТ при зацикливании мелодии. В примеры добавил две интересные композиции (всего стало 7)
citadel.rom - The Citadel (Brightentayle)
trimer.rom - Triton and Mermaid (Mister BEEP)

svofski
02.10.2021, 18:21
Версия 3 радикально лучше предыдущей. Может быть дело только в свисте, но ощущение такое, что все вместе стало принципиально лучше слышно.