Uzix | микроблог

#Midi

Бывает вот сидишь...

Бывает вот сидишь, потихоньку ковыряешься в заброшенном проекте, правишь в коде свои глупые ошибки. И, ВНЕЗАПНО, в самый неожиданный момент оно начинает работать :o

SPDIF в OtterlyMIDI заиграл. Я успел пожалеть что решил сделать его по хардкору - без специализированного модуля SAI (которого нет в дешёвых попсовых контроллерах), а жонглируя битами в I2S + в последнем свободном SPI. Но каким-то магическим образом биты всё же встали на свои места, сложились в манчестерский код, который сложился в семплы, которые сложились в музыку. Ура!

Подружил Выдру...

Подружил Выдру (ака OtterlyMIDI) с Хароном. У Харона нет миди выхода (точнее, к нему подключен миди чип внутри самого компа), но есть COM-порт, на который с помощью драйвера SoftMPU можно виртуально перенаправить выход миди. Совместимость этого драйвера далеко не 100%, но Monkey Island запускается и поёт :)

А теперь грустная новость: MT32-PI - титанический проект, на чьих плечах стоит OtterlyMIDI - похоже, всё https://t.me/yellow_room_nerdcave/1166 :-(

OtterlyMIDI поёт...

OtterlyMIDI поёт! Реализовал всё что задумывал - миди-поток берётся со входов DIN-5/RS232/USB, идёт в малинку с mt32-pi, звук с малинки смешивается со звуком с линейного входа и выдаётся на джек 3.5 и на USB. Да, Оттерли при подключении к ПК по USB распознаётся как миди-девайс (можно слать на неё данные из плееров/досбокса или получать данные с DIN/RS232) и как звуковая карта - чтобы захватывать звук сразу в цифровом виде.

Наладка USB заняла какое-то совсем неприличное количество времени. Мало того, что китайский аналог STM32 от GD оказался не полностью совместим - пришлось править библиотеку tinyusb под него - так ещё и много времени ушло на возню с USB Audio Class - ранее я с ним не работал, а штука не самая простая и прямая (как и весь USB в общем-то :) ).

По ходу разработки появилось ещё пару идей для новой ревизии платы — заменить микроконтроллер на чуть более доступный, добавить ОУ на линейный выход, а так же добавить SPDIF/TOSLINK - очень уж хочется поработать с каким-нибудь оптическим протоколом :)

Миди на мисте запел...

Миди на мисте запел. В качестве синтезатора пока выступает комп с USB-MIDI интерфейсом и запущенным Midi Player от Zoltán Bacskó (https://falcosoft.hu/softwares.html). Он умеет принимать и в реальном времени проигрывать миди-поток, так же он имеет поддержку SF2-банков. В будущем доделаю OtterlyMIDI - оно в таком же корпусе как мист1010 и можно будет сделать микростойку :)

Миди разъём на мисте - обычный 3.5 джек, это вполне общепринятый стандарт, и в интернет-магазинах полно переходников на привычный DIN-5.

ZX MIDI Player v3.0

На днях спаял себе звуковую карту NeoGS ревизии CM, и по этому поводу - новый релиз MIDI-плеера с поддержкой этой карты.

  • Добавлена поддержка проигрывания MIDI через NeoGS с чипом VS1053;
  • Добавлена поддержка чтения карты памяти на NeoGS;
  • Добавлена настройка номера чипа TurboSound;
  • Добавлена настройка джойстика Kempston;
  • Исправлена навигация кнопкой “вниз” в списке файлов если в папке больше чем 255 файлов;
  • Исправлена совместимость Z-Controller с VDAC2;
  • Изменён порядок назначения букв дискам - теперь IDE диски располагаются перед SD/MMC.

https://github.com/UzixLS/zx-midiplayer/releases/tag/3

zxmidip3.trd 640.0 KB

Давно хотел себе стационарный MIDI-синтезатор...

Давно хотел себе стационарный MIDI-синтезатор, но их доступность совсем не радует. Потому я, наконец, созрел на новодельный вариант на базе проекта MT32-PI. Работает он не только в режиме MT32, но и в обычном GM с переключаемыми на лету банками в формате SF2, коих в сети великое множество.

Из законченных решений нашлись minisynth32 и BulkyMIDI-32. Последний понравился настолько, что я уже почти отправил платы на производство, но вовремя заметил что никаких стенок - кроме передней - у импровизированного корпуса из печатных плат не предусмотрено. То есть надо что-то придумывать, а если так - почему бы сразу не придумать своё. Заодно добавить линейный вход и активный микшер на ОУ, порт RS232 (с конвертацией скорости в стандартную MIDI), режим USB-девайса (чтобы подключать к современному ПК для проигрывания мидишек и проброса в DOSBox), порт USB-хоста (а вдруг захочется подключить MIDI-клавиатуру по USB?).

Отлаживать старые проекты? Нет, спасибо. Ваять новые? Это всегда пожалуйста 😊

Не всё так просто...

Не всё так просто. Не знаю почему я был настолько уверен, что у чипа Dream SAM5504 есть заводская прошивка, которую я смогу использовать. Нет, её нет, по крайней мере в свободном доступе. В самом чипе, как я понял после прочтения документации (ага, самое время её открыть), прошит только минимальный загрузчик из внешней флешки. И вся документация для разработки своей прошивки и инструменты под NDA - а значит получить их будет нереально - с учётом войны и того факта, что Dream, судя по комментариям в интернете, не особо идёт навстречу хоббийщикам. Что ж, минус несколько вечеров на разработку и сборку, минус N денег на комплектующие и платы, плюс урок на будущее.

ZX MIDI Player v2.0

Выпустил релиз версии 2.0 проигрывателя MIDI для ZX Spectrum.

  • Реализована поддержка FAT32;
  • Добавлена поддержка интерфейсов SD-карт: DivMMC (и производные), ZXMMC, Z-Controller;
  • Добавлена поддержка IDE-интерфейсов: DivIDE, NemoIDE, SMUC;
  • Добавлена поддержка ShamaZX SAM2695 MIDI addon;
  • Исправлен сброс MIDI-синтезатора (актуально для встроенного в Windows синтезатора);
  • Исправлено падение при отсутствии BDI/TRDOS.

https://github.com/UzixLS/zx-midiplayer

zxmidip2.trd 640.0 KB

Закончил разработку GM BLASTER 5504...

Закончил разработку GM BLASTER 5504 - MIDI-дочки на базе чипа SAM5504B. Этот чип является более продвинутой версией привычного SAM2695 с улучшенной полифонией (81 одновременно звучащий голос против 64) и с внешней ПЗУ для загрузки собственных банков через USB. Так же по USB чип определяется как стандартный MIDI-выход и умеет проигрывать поступающий поток команд - потому на плате предусмотрен джек 3.5 - чтобы устройство можно было использовать самостоятельно, без звуковой карты.