AVR-AY Player – it’s a player for AY-3-8910 Emulator.
Written in C# (.Net Framework 3.5+)
Just connect TX pin of USB to serial ttl converter to RX pin of Atmega8
Current version supports following file formats
YM (3,4,5,6 packed/unpacked), PSG, EPSG, VTX, AY, PT1, PT2, PT3, STC, ZXS, STP, ASC, PSC, SQT, GTR, PSM, FTC, FLS, FXM (RSF,YRG:Custom formats)
Current version supports converting to following formats:
PSG, RSF, YRG, WAV
Current version 13.7 (10.11.2021)
DOWNLOAD CURRENT VERSION >> AYPlayer version 13.7
Changes: improved Z80 emulation for AY files, improved equalizer, some optimization and playback improvement
Additional music collections
My most favourite AY song spec17_09.stc
Previous versions
New serial protocol
AYPlayer version 13.6 08.09.2019
Changes: fixed mixer and noise generator in sound card emulation mode
AYPlayer version 13.4 30.01.2019
Changes: add AY / YM emulation selection, add some settings saving after closing application window, some improvements in window dragging
AYPlayer version 13.3 08.06.2018
Changes: fixed AY files playback.
AYPlayer version 13.1 27.07.2017
Changes: fixed noise generator in sound card mode, fixed AY files playback.
AYPlayer version 13.0 07.07.2017
Changes: fixed noise generator in soundcard mode, small interface changes, small fixes in PT2/PT3 playback. In Windows XP sound quality is lower than in Vista and higher.
AYPlayer version 12.0 29.08.2016
Changes: fixed noise generator in soundcard mode, fixed ASC files noise problem
AYPlayer version 11.9 24.06.2016
Changes: fixed (not Brexit) noise generator in soundcard mode 🙂
AYPlayer version 11.8 25.04.2016
Changes: fixed beeper emulation.
AYPlayer version 11.7 19.03.2016
Changes: fixed exception if no soundcard present, improved beeper emulation, improved tone frequency indicators.
AYPlayer version 11.6 19.02.2016
Changes: fixed noise generator in soundcard mode.
AYPlayer version 11.5 19.01.2016
Changes: some PT2/PT3 files were detecter as incorrect. Fixed zero volume problem on WinXP after closing application (in soundcard mode). Improved emulation in soundcard mode. Fixed .AY files playing. .Net FrameWork 3.5 is not needed if you have 4+.
AYPlayer version 11.3 12.12.2015
Changes: improved emulation in sound card mode, added “convert all files to RSF” button, improved RSF file saving, and now it is version 3, small bugs causing errors with incorrect files fixed
AYPlayer version 11.2 27.07.2015
Changes: device selection added for soundcard mode
AYPlayer version 11.1 07.05.2015
Changes: Emulation fixed according to version 18.4 of the emulator
AYPlayer version 11.0 27.04.2015
Changes: Based on versions 10.X. Fixed PSC & ASC formats playing. Emulation fixed according to version 18.3 of the emulator
AYPlayer version 11.A 05.02.2015
Changes: Alpha version, added sound devices selection.
AYPlayer version 10.9 25.01.2015
Changes: Fixed mistakes in playing PSC and FXM files. Added BEEPER support for AY files in “Sound Card” mode. Fixed some mistakes in playing PT3 and STC format. Improved channels volume indicator. Fixed AY files playing.
AYPlayer version 10.3 14.01.2015
Changes: Now support PSM, FTC, FLS and FXM files. Some fixes in previous formats. AY emulation fixed to version 18.0 of the emulator. Added pattern information for tracker music. Improved sound quality and equalizer latency in sound card mode. Added channels frequency indicators. Small fix in GTR.
AYPlayer version 9.92 28.12.2015
Changes: Now support SQT, GTR files. Some fixes in previous formats. Improved noise generation according to emulator version 17.9 .
AYPlayer version 9.8 24.12.2014
Changes: Now support STC, ZXS, STP, ASC, PSC, PT1 files, added loop support for PT2, PT3 files. Sypport Digital AY files in soundcard mode (not BEEPER!). Low memory usage playing AY files.
AYPlayer version 9.4
Changes: fixed problem with saving WAV when playing using sound card, improved Z80 emulation, fixed some problems in playing AY files from CPC, changed AY emulation according to version 17.5 of emulator. Now Supports PT2, PT3 files. New RSF format version (version 2). More than 12000 PT2/3 files included in archive.
AYPlayer version 9.0
Changes: It now supports .AY files.
AYPlayer version 8.3 22.11.2014
Changes: It now can play files on PC using sound card! WAV conversion support.
AYPlayer version 7.1 19.11.2014
Changes: Improved UI, Improved indicators.
AYPlayer version 7.0 13.11.2014
Changes: Using multimedia timer instead of thread.
AYPlayer version 6.1 10.11.2014
Changes: fixed problem with disapearing selected index when item deleted by key Del, decreased usage of serial protocol.
AYPlayer version 6.0 01.11.2014
Changes: As serial protocol was changed this version released. Read some descriptions of the new protocol in readme.txt
Supports emulator versions up to 13.2
AYPlayer version 5.2 26.08.2014
Changes: Added new option “Fast Timer” for systems where timer works slower than expected, but it uses more PC resources.
AYPlayer version 5.1 21.08.2014
Changes: Fixed timer problem when internet browser is not started, so now player use Thread.Join method instead of Thread.Sleep. Fixed problem with adding empty element to playlist when adding was canceled.
AYPlayer version 5.0 18.08.2014
Changes: removed main timer code, changed to thread+Stopwatch, so now player don’t use huge amount of PC resources
AYPlayer version 4.4 17.08.2014
Changes: small improvements
AYPlayer version 4.3 24.06.2014
[ad name=”HTML”]
Old Changelog
Version 4.3
– added buttons for muting channels
Version 4.2
– removed path from converting filename (fixed problem with saving to different folder)
Version 4.1
– Removed DUMP button. added conversion to listbox context menu
– Improved adding elements to playlist (fast)
– added handler for refreshing com port list if USB device connected to PC
– fixed opening file (now in read only mode)
– added buttons for playing next/prev items
– added support for saving/loading playlist
– playlist stored between closing/opening application
– improved user interface
Version 4.0
– support playlist (without saving)
– improved user interface
Version 3.1
– support YM 3, YM 4 files
– added more I/O error handlers
Version 3.0
– support YM 5 files
– support packed YM files
– support VTX files
– improved user interface, added some checks for errors
Version 2.3
– fixed timer speed for 100Hz files
Version 2.2
– improved user interface
Version 2.1
– improved algorithm of sending data to AVR
– added new file format RSF (my format)
– fixed timer speed
Version 2.0
– support save dump to PSG file
– fixed mistake in saving PSG
– uses 5-10x lower of PC resourses & support opening dump files, PSG, EPSG
Version 1.0
– initial release
[ad name=”HTML”]
Версия 5.1 от 21.08.2014 – проблема со скоростью воспроизведения при незагруженном браузере воспроизводится (воспроизводится на всех версиях 5.х), на 4.4 – нет.
Я проверял на Windows Server 2003, до 5.1 там скорость была в 2 раза ниже, видимо .Net не приспособлен для маленьких периодов в таймере. Сейчас вроде всё должно быть в порядке. Если 5.1 тормозит – сообщите, а то не совсем понятно из вашего комментария.
Да, на 5.1 тоже тормозит. Проверял на w2k3 и w2k3 x64. Если входить и выходить из браузера – скорость меняется прям на ходу.
Ок, в следующей версии уберу вообще задержку, будет цикл, правда будет жрать ресурсы…
Лучше выбор того или иного таймера в настройки вынести, наверняка не у всех эта проблема возникает.
А оцифрованную музыку можно как-нибудь воспроизвести? Заодно и точность эмуляции можно будет проверить.
Например, Lyra II part 7
http://zxtunes.com/downloads.php?id=2084
Больше ссылок на оцифровки здесь
http://zx-pk.ru/showthread.php?t=1754
Ну, тут сначала надо разобраться как это играть проигрывателем 🙂 Если будет время – поковыряюсь
Попробовал написать программу для проигрывания RAW файла 8 бит 8кГц через COM порт, но увы, т.к. регистры шлются порциями по 16 байт, на скорости 19200… этого явно недостаточно… слышно только шипение и передача идет очень медленно. Тут либо играть в параллельном режиме, либо переписывать часть работы с COM портом под большую скорость и оптимизировать передачу регистров под 2 байта (номер, значение + стоповые значения)
Для режима Play using sound card не хватает регулятора громкости.
Ага, уже сделал 🙂
Дорогие друзья, оставляйте комментарии, каждый Ваш комментарий – это двигатель прогресса в развитии проигрывателя, если вас что-то не устраивает или хочется большей функциональности – пишите, не стесняйтесь!!!!!!!!! ваще не стесняйтесь!!!! 🙂
Проверено, на скорости COM порта 57600 максимальная частота передачи кадров, 1000 кадров в секунду, т.е. цифровой звук можно передавать с частотой не более 1КГц (в идеале), а так 800Гц без торможения. Так что 8КГц по последовательному интерфейсу не передать, я пробовал разгонять ком порт до 800000 бит/с, но увы, начинает тупить эмулятор, из-за частых прерываний по USART. Вывод: слушаем цифровой звук через звуковую карту 🙂
Хотелка: убрать чекбокс “Play using soundcard”, список доступных аудиоустройств (не только основное аудиоустройство) добавить в комбобокс COMPort. Комбобокс соответственно переименовать.
Хотелка: “Аналоговый” индикатор что-то вроде http://img-fotki.yandex.ru/get/6443/52650084.3e/0_a0065_c57a83cb_orig
К сожалению так достаточно трудно реализовать, т.к. к ком порту еще нужно подключаться, могу сделать звуковую карту по умолчанию (сейчас она выбирается первой, если в системе нет ком портов) и выбор аудио устройств, а галочку поменять на “Play through COM port” 🙂 Насчет индикатора, посмотрю куда бы его можно было впихнуть )
[quote]К сожалению так достаточно трудно реализовать, т.к. к ком порту еще нужно подключаться[/quote]
Запихнуть в комбобокс объекты, а не просто строковые представления.
Еще в качестве задумки (это же c# который из ООП состоит чуть менее чем полностью) – базовый класс “УстройствоВоспроизведения” и два (пока потомка) “УстройствоВоспроизведенияCOMПорт” и “УстройствоВоспроизведенияЗвуковаяКарта”.
Доброго. А нельзя ли добавить выбор частоты Эйвая? То бишь 1750000, 3500000 и 1774400. Аргументы в пользу этого дела здесь: https://bitbucket.org/djdron/unrealspeccyp/issue/2/ay-ym
Интересует, если честно, именно три с половиной мегагерца. Можно ли добавить в плеер И эмулятор? Или хотя бы только в плеер уж. Сейчас плеер показывает частоту 1773450 для всех музонов и это вызывает нервный зуд у многих жителей Ростовской области, у которых в большинстве было три с половиной заведено на Эйвай 🙂
Да, конечно можно, я как раз планирую добавить такую возможность, так же выбор частоты прерываний и смещение тона (насчет этого еще думаю). Насчет эмулятора… есть же исходники, там можно самостоятельно подправить под нужную частоту значение регистра ICR.
На всякий случай сообщаю что сейчас дорабатывается – возможность выбора устройства проигрывания из выпадающего списка, для этого разрабатывается класс “Устройство воспроизведения”. Приходится переделывать половину кода, т. к. изначально не рассчитывал, что это приложение дорастет до такого масштаба 🙂 Далее будет сделана возможность настройки приложения с автоматическим сохранением конфигурации. Если будет время, то еще и с плейлистами поколдую, чтобы можно было настраивать элементы списка, конвертировать весь плейлист за один проход без запросов подтверждений.
Неплохо бы было поддержать(только на чтение) плейлисты в формате .ayl, которые в знаменитой коллекции AY-музыки Сергея Бульбы.
Ну и вопрос почти по теме:) Вот эта китайская хреновина сойдёт для эмуляции с прошивкой на 8 МГц видимо? http://www.dx.com/p/atmega8-m8-avr-minimum-system-development-board-blue-157391#.VMplnCViLbc
Суть-то в чём. Имеется четыре жлоба, а у них ещё знакомые куча жлобов, которые паять ничё не хотят, но приобщиться к данному проекту желают:) Так вот могу я им посоветовать купить вышеозначенную штуковину или подобную ей специально под AVR-AY?
Такая штука в чистом виде не пойдет, т.к. в ней нет эмулятора COM порта, да и RC фильтры всё-равно паять нужно. Там и пайки то не много, проще купить breadboard с дырками и на ней собрать схему, если паять не охота 🙂 ну, и, конечно же, нужен переходник USB->TTL для передачи по ком порту, у китайцев они стоят от 1$, но с дешевыми придется немного повозиться на Windows начиная в Vista драйверы не поддерживают китайские чипы, если что, последний драйвер от висты подходит, если нужен будет, кину ссылку или сам драйвер.
PS: Кстати, как вариант, купить дешевую ардуину и туда вставить Atmega8, потом прошить программатором.
Да какие там Висты:) XP же поголовно есть на всякий случай хотя бы на одном из компов в комнате:) Ну, для сельской-то местности:)
А USB на TTL давно у всех такие, на CP2102: http://www.dx.com/p/cp2102-usb-to-ttl-stc-promini-download-module-for-arduino-265730#.VMqihSViLbc
Раньше шили телефоны, так у всех были на PL2303. А теперь у кого не спросил у всех на CP2102.
Фильтр паять согласны вроде все, только плата уж там больно… Ну красивая, что ли:) Синенькая, штырёчки обозначены уже:)
Тогда можно брать, раз такое дело, но кварц лучше конечно перепаять будет, всё же 8МГц версия хоть и получилась с достаточно качественным звуком, но всё же она работает в 2 раза медленнее чем другие. Вообще, смысл 8МГц версии состоит в том, чтобы не ставить внешний кварц и получить при этом более-менее качественный звук. Т.е. чтобы устройство получилось максимально простым.
Ну вот пускай делают простым, раз хотят в таком корпусе микросхему потом перепаивать как сгорит. А я решил сложным:) Корпус прозрачный из коробки от торта и в нём пять плат. Вот такая плата для эйтимеги в dip-28: http://www.dx.com/p/diy-m48-ex-standard-development-board-blue-169248#.VM6DASViLbd
Там главное можно разные кварцы на лету менять втыканием и перемычками.
Вторая плата это usb на ttl. Третья это фильтр отдельно. Четвёртая усилитель. И пятая для моргания светодиодами под музыку. Больше ничего не придумывается. А:) Ну и на корпус всей конструкции наклейку, типа, AVR-AY:) И полоски цветные как в менюшке Спектрума:)
Я вот думаю в ближайшее время еще написать для ардуины скетч для проигрывания, PT3 вряд ли осилю, но STC думаю получится. Будет это всё играть с SD карты. Осталось только найти на это время 🙂
На версии 11.2 (12.05.2015)
Сразу после запуска вместо списка COM-портов список звуковых карт, при этом чекбокс play using soundcard не установлен
http://radikall.com/images/2015/05/13/tQHEb.png
Спасибо! Забыл проверить при подключенном COM порте, вечером залью исправленную версию.
В версии 11.2 (14.05.2015) не работает переключение каналов ABC в режиме звуковой карты, при переключении каналов звук в динамиках не меняется.
Спасибо! При переносе кнопок сбросились обработчики событий. Перезалил.
Если конечно возможно в плеере сделать, чтобы во весь экран мог расширятся. 😉
Это очень проблематично, но попробую, как будет время 🙂
В терминале w2k3 x64 при запуске появляется сообщение об ошибке
http://hostingkartinok.com/show-image.php?id=778f6fdcd3e910efa39b3d9cacb59f1f
Оно же наблюдается при вставке флешки в сервер терминалов.
Спасибо, ругается, если нет звукового устройства, постараюсь исправить в следующей версии.
Прошу добавить функцию случайной сортировки плейлиста, её очень не хватает. И поддержку плейлистов формата .ayl
Первое попробую сделать, второе не могу обещать на 100% но постараюсь к следующей версии
Is it possible to play on Pro Micro (16 Mhz atmega32u4)? Just a little piece of PSG data from internal memory (a few seconds). Can you make an example sketch? 328p examples won’t compile because timers don’t match. Also there are no examples of playing from program (FLASH) data.
Do you want to use 32u4 as PSG or just to controll a PSG?
Не качается, точнее списывается torrent файл нулевого размера.
Исправил
Я сейчас работаю над созданием устройства, воспроизводящего музыку через USB -> COM порт, работающее совместно с этим плеером. Поэтому приходится интенсивно пользоваться разными функциями приложения. В версии 13.7 было найдено три крайне неприятных бага (по мере критичности):
1. Очень часто проигрыватель перепрыгивает через следующую мелодию в плейлисте. Открываешь список файлов в папке, запускаешь вопроизведение на какой-то мелодии, он ее проигрывает полностю, следующую мелодию пропускает и начинает играть через одну. Потом может нормально играть, потом опять может пропустить. Очень мешает слушать библитеку музыки.
2. Неправильно конвертирует в PSG формат. В целом полученый файл совпадает с таковым из другого плеера, за исключением того, что постоянно в регист формы огибающей (R13) пишется байт 0xFF. Из-за этого огибающая тут же глохнет, в мелодии полностю пропадает бас и другие эффекты на огибающей.
3. Иногда, спустя 10-30 минут проигрывания приложение просто крешится, происходит какой-то эксепшин и плеер закрывается.
Если автору интересно, могу ответить на какие-нибудь дополнительные вопросы. Так же очень хочется поучаствовать в развитии проекта, возможно ли получить доступ к исходному коду?