Ну да, приятнее. Обновил, и исходики тоже.
Но жирновата, может потом чуть уменьшу.
Вид для печати
Программно только 8 каналов обсчитываются. Остальные молчат. На NeoGS успевает на 24 мгц. Или ты 32 в исходниках увеличил количество обсчитываемых каналов до 32 ?
- - - Добавлено - - -
Раз прошивка работает, надо потестировать загрузку файлов, выбор из памяти. Значит на начальном экране виснет, пока ещё старая прошивка GS и почему то она не загружает новую. Я все же склоняюсь к битам готовности команды и данных - как то они не так защелкиваются или медленно и не успевают. Я не исключаю что и я как то не стандартно загружаю начальную информацию из NGS посмотри процедуры load_NGS и save_NGS . но на реале NGS и в эмуляторе работает
Круто получилось. Вообще, такой интерфейс с вкладками я наверное впервые вижу в ZX-программе. Только курсор мышки бегает медленно - она норовит съехать с коврика. Надо как в стартовой меню ERS в Base Conf.Цитата:
победил мышку. сделал поведение привычным для PC-шников
Я под свою подстраивал - у меня наоборот было слишком быстро - не прицелится никуда. Значит надо будет сделать подстройку, хотя бы 4 уровня деления.
Для интерфейса специально писал объектно ориентированный движок. С указателями, структурами, в общем планирую его потом отдельно выделить и оформить для свободного использования в любых программах.
Не совсем понял, NeoGS программно успевает на 24МГц 32 канала? Мало вероятно )
Для DivGMX аппаратно UDMA получилось максимум выжать - 172 канала при выборке 48кГц, проц Спектрума вряд ли успеет их обсчитать, аналогично и проц в DivGMX, т.к. нужно успеть загрузить регистры DMA за 875 тактов/прерывание 48кГц. А вот 32 канала в самый раз, можно и сделать, но есть проблемы - поддержка в эмуляторе и в NeoGS )
Нет конечно. И в плеере сэмплируются только 8. Это ты сказал что на 32 канала жуткие тормоза, вот я и спрашиваю, как ты получил 32 ? В плеере же только 8 (но запас небольшое есть на пару каналов), или ты увеличил в исходниках до 32 ? Но там и аудио буфера, для них нету - только для 8 ми.
Или это гипотетически ?
Современные мыши рассчитаны под большое разрешение экрана. Когда-то давно мы это обсуждали (https://zx-pk.ru/threads/11971?p=335349#post335349).Поэтому в ZXEvo теперь и сделана возможность переключения масштаба мыши. Но за эталон думаю надо взять движение курсора как в Evo Reset Service, а то в разных программах будет разнобой. И сетап в плейере не помешает.Цитата:
Я под свою подстраивал - у меня наоборот было слишком быстро
Обновление 28.11.18 билд 1,07
+ в Setup регулировка скорости мыши (думаю 3 уровня масштаба хватит)
+ в Samples возможность прослушать выбранный сэмпл. (а кому то и возможность поиграть на клавиатуре, как на пианино)
Как пользоваться. После загрузки модуля не нажимаете сразу Play а идете в меню Samples, выбираете инструмент (в заголовках - в черной таблице)
Нажимаете клавиши z,x,c,v,b,n,m,s.d.g.h.j.q.w.e.r.t.y.u.i.o.p.2.3.5. 6.7.9.0 и играете. Можно одновременно нажать до 8 клавиш (каналов всего 8) и послушать аккорд.
Caps "J"(-) и "K" (+) выбор октавы.
В реальном времени работает только на реале. В эмуляторе идет заметное отставание звука и играть сложно. И эмулятор не корректно обрабатывает много одновременно нажатых клавиш, так что аккорд тоже может получится не тот что хотели. Но в принципе побаловаться вполне можно.
Одновременно с "Play module" тоже можно играть, но каналы будут друг другу мешать.
Но например Можно сделать так (на PC) создать трэк с басами и ударными на каналах 5-8 а каналы 1-4 оставить свободными, и загрузив трек в Neo8Player играть под аккомпанемент.
Обновление 30.11.2018
+ добавлена прокрутка окна воспроизводимых каналов. Можно послушать недоступные ранее каналы дальше 8-го по 32-ой. в примерах есть несколько модулей, где игра идет на каналах с 8-го по 16-ый
+ снято ограничение Scream Tracker 3 на длину сэмпла до 64 кб. Сэмпл теперь может быть любой длины на, сколько хватит памяти. в подборке примеров трэки где используются сэмплы более 64 кб https://cloud.mail.ru/public/NBsr/RSMru3aKe
+ в закладке Samples добавлена визуализация параметров сэмпла. (но сами параметры пока не редактируются). Во время воспроизведения картинка сэмпла грузится постепенно. При остановленном воспроизведении загружается быстро.
Спасибо за крутой плеер! Реквестую кнопочку удалить, чтобы сразу отправлять непонравившиеся треки в мусорку.
Потестил немного версию от 30.11. Курсор при управлении от моей мыши бегает нормально на значении "+1". Только теперь надо как-то сохранять сетап-значения.
Обнаружил баг: если курсор мыши завести на "нотный стан" во время проигрывания, то за ним потянется след.
Хотел спросить вот о чем: при проигрывании некоторых файлов на "нотном стане" иногда пишется "This pattern is not loaded into memory." Что это значит и как отражается на воспроизведении?
Это не баг - это фича. Стереть курсор перед скроллом не сложно, но так прикольнее, - спецэффект.
На звучании ни как. Модуль весь внутри NGS. Но в память ZX - для отображения нотного стана загружаются копии паттернов - на сколько хватит памяти. Сколько памяти определилось - написано в в Setup. При 512 и тем более 1024 хватало полностью под все что я проверял. На 128 конечно помешается мало паттернов, а во время воспроизведения его уже поздно подгружать. При редактировании в Patterns будут подружатся все по очереди.
Один известный видеоблоггер АлексейНавальныйвыпустил фильм-разоблачение, где критикует NeoPlayer:
Скрытый текст
SoftLight, Ни когда не понимал таких "блогеров", ну нашел косяк (не берусь судить если он там реально) ну сообщи автору. Автор вполне пинабелен. На фига сразу "жаловаться" окружающим?
Мда, подленький поступочек. Многое говорит о натуре. Одно слово, - видеоблогер - звучит нарицательно.
Конечно обидно, - художника каждый может обидеть.
Принципиально не буду искать этот обгрызенный модуль и трассировать, что за спецкоманды там не правильно обрабатываются.
Это - не критикует. Это обливает грязью, не разбираясь и не вникая в суть вопроса.
Hacker Grey,
Отличный плеер. Буквально за месяц плеер прошел статус от неработоспособного на ZX EVO до полнофункционального с поддержкой мыши, загрузкой с SD карты и HDD!
Огромное спасибо!
Я собственно кинул ссылку сюда только чтобы у Автора была возможность ознакомится и ответить по существу. Если плеер от этого станет лучше все только выиграют!
ссылка, на модули (спасибо калантаю и ААА)
https://yadi.sk/d/xtfuyNTt8XCrWA
Кое что пофиксил, на ваш суд. - обновление в шапке. Проверяйте.
Специфичная – это мягко сказано. Тут весь азарт и энтузиазм держится на благодарностях пользователей и одним словом можно убить все желание продолжать работу или просто публиковать её.
По существу. Проверенный мною один модуль - 21 bytes - swank games , выявил следующее.
Он написан вообще в противовес концепции S3M. S3M – это треккер оцифрованных звуков- сэмплов. В данном же модуле используется всего один инструмент длинной всего 21 байт. Искусственно нарисованная, пилообразная синусойда. Автор модуля использовал её со спецэффектами изменения частоты тремоло арпеджио и вибрато, показывал свое мастерсвто. То есть это имитация волнового синтеза или скорее имитация синтезаторов типа AY 8910 и к сэмплированному звуку не имеет ни какого отношения.
Однако при этом были выявлены не корректно обрабатывающиеся 3 спецкоманды. (Возможно попадутся и ещё, нет - я уверен что есть ещё)
H – вибрация. При взятии каждой новой ноты опорная частота вибрации должна сбрасываться, я же продолжал вибрацию от предыдущей ноты – исправил.
SDx – Задержка взятия ноты. При этом должна продолжать звучать предыдущая. Я же выключал взук и просто делал паузу перед взятием ноты. Полностью 100% пофиксить пока не получилось, так как при расчете строки все старые данные затираются – убрал отключение старого звука и сделал сохранение частоты и смещения прошлого – в данном модуле звучит как положено, но возможно это будет не везде.
I – тремоло . звук, тишина/звук – Я перепутал местами параметр, сколько тиков играть сколько молчать – пофиксил. Но в 3-х проверенных на PC трекрах и плеерах она обрабатывается немного по разному , В чем писал автор именно этого трека – не знаю да и подгонять именно под него, считаю несправедливо.
Команды F и E - двигают частоту вверх или вниз и согласно документации, дойдя до предела периода плеер в праве сам решить что делать дальше – 1- выключить звук, 2 – остановить изменение частоты, перескочить через 0 и начать снизу или сверху. Опять же на PC разные плееры по разному поступают в зависимости сколько бит у них отведено под целую и дробную часть периода частоты. Тут даже фиксить нечего – это спецэффект от спектрума когда звук дойдя до низшей ноты начинает играть с самого верха – Диапазон то расчетов у плееров разный.
То, что ААА тащиться именно от синтеза а не от сэмплов говорит тот факт что он рекомендует написать плеер под tsfm и другие синтезированные стандарты. Поэтому и модули для тестов он выбрал, напоминающие старинный звук 8 битных компьютеров .
кайф от того что людям это нужно не есть тщеславие...
Слушая на PC под Windows не честное сравнение . В любом случае DirectSound делает постобработку звука, да и есть аппаратные фильтра, выравнивающие АЧХ на PC звуковой карте. В плеерах на PC по умолчанию включена интерполяция, сглаживающая цифровой свист. Частота дискретизации на PC 48кгц 16 бит на NeoGS 37.5 кгц 8 бит. И голый выход с ЦАП без единого выравнивающего фильтра.
Для корректного сравнения надо взять ретро PC с SB-Pro, запустить под DOS оригинальный ScreamTracker 3 или даже Impulse Tracker. Там будет 22 кгц 8 бит. без интреполяции . Я сравнивал и качество было не в пользу оригинала.
Да, есть искажения из-за моих ошибок в коде и я их отлавливаю, но есть из-за объективно существенных аппаратных различий, надо отделять мух от котлет.
от AAA:
"После 10 минут работы у меня на пентеве плеер повис зеленым экраном, произошло это на мелодии: Awesome/hiddenempire
передайте автору пусть потестит на реале."
"папка Awesome, внутри архива по ссылке:
https://zxaaa.net/view_demo.php?id=11452"
https://youtu.be/7PNptZKaJu4
скачал архив там эта папка есть.
модуль hiddenempire вот
Вложение 67132
ещё выловил причину редких но неприятных кратковременных посторонних щелчков и скрипов. Громкость я менял сразу при расчете строки патерна а в это время в буфере мог быть остаток прошлой ноты, заглушенной нулевой громкостью, а тут я её включал. Сделал наоборот чуть более позднее изменение громкости после заполнения буфера. Звук стал на слух более "мягким", без резких всплесков.
Hacker Grey, В память загружено два модуля. При удалении одного (Last), второй модуль проигрывать отказывается, приходится загружать заново.