User Tag List

Страница 2 из 2 ПерваяПервая 12
Показано с 11 по 17 из 17

Тема: Копия по мотивам "музыкальной ячейки Агат" для IBM PC

  1. #11

    Регистрация
    02.01.2007
    Адрес
    Волгоград, Россия
    Сообщений
    1,454
    Спасибо Благодарностей отдано 
    195
    Спасибо Благодарностей получено 
    161
    Поблагодарили
    99 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Tronix Посмотреть сообщение
    Фух, допаял ячейку. Выводных деталей здесь конечно различных номиналов, я вам доложу.... Я столько не помню когда последний раз паял. Но что поделаешь, аналог-с...
    Я, когда собирал ЯЗС, весь выматерился. Ещё два или три комплекта лежат, не могу заставить себя взяться за паяльник


    Теперь дело за малым - написать софт. Какой-нибудь трекер в текстовом режиме.

    Этот пользователь поблагодарил AlexBel за это полезное сообщение:

    Tronix(01.03.2022)

  2. #12

    Регистрация
    16.09.2010
    Адрес
    г. Москва
    Сообщений
    1,951
    Спасибо Благодарностей отдано 
    81
    Спасибо Благодарностей получено 
    261
    Поблагодарили
    125 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от AlexBel Посмотреть сообщение
    Какой-нибудь трекер в текстовом режиме.
    Не, я боюсь не вывезу, к сожалению. Пока решил начать с малого, а именно поиграть MIDI плеером DOSMID - скачал его последние исходники, понемногу добавил тональные каналы и один канал ударных на пробу. Пока получилось как то так:

    https://soundcloud.com/tronix286/l014mp3

    В тональных каналах попытался использовать полосовые фильтры. Для каждой ноты:
    вычисляю по MIDI ноте ее октаву (всего 12);
    пересчет диапазона 1..12 в 1..7; map(octave,1,12,1,7);
    Устанавливаю биты D0..D2 микшера канала как 7 - map(octave,1,12,1,7); Значение задом на перед, потому что младший бит D0 в микшере - это высокие частоты, а бит D2 - низкие. Нам надо перевернуть, поэтому от 7 отнимаю значении, получается значение для записи в порт микшера канала.
    Бит D3 (усиление +6dB) сейчас всегда включен. Не знаю, в зависимости от каких условий его можно менять. От громкости, наверное, получается у нас два уровня громкости на канал. Может прикручу чуть позже, щаз на максимум
    Бит D4 (плавная атака и плавное затухание) - не знаю как использовать. Щаз выключен постоянно.

    Ну и канал ударных. Сейчас использую только седьмой (в агате шестой) канал ударных, сделал тоже по аналогии с обычными нотами -
    вычисляю октаву, которая идет в MIDI-сообщении для MIDI канала 10 (percussion), так же пересчитываю диапазон из 1..12 в 1..7, так же отнимаю от 7 получившееся значение, что бы перевернуть биты, так как там частота так же идет с бита D2 к D0, и пишу в микшер канала семь (в агате 6).
    Бит D3 (продолжительность) - не знаю как использовать, пока в нуле всегда.

    Ну и пока не знаю как использовать еще один канал ударных, там наверное MIDI посылает sys-ex для смены инструмента на канале 10 (percussion), их надо отлавливать и в зависимости от тогда уже переключаться на каналы ударных на муз ячейке... Попробую потом..

  3. #13

    Регистрация
    16.09.2010
    Адрес
    г. Москва
    Сообщений
    1,951
    Спасибо Благодарностей отдано 
    81
    Спасибо Благодарностей получено 
    261
    Поблагодарили
    125 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Вообщем, по поводу DOSMID немного разобрался с ударными. На 10 контроллере прилетают MIDI сообщения, где нота - это тип ударных, в соответствии с General Midi 1:

    Скрытый текст

    Код:
    Key#	Note	Drum Sound	Key#	Note	Drum Sound
    35	B0	Acoustic Bass Drum	59	B2	Ride Cymbal 2
    36	C1	Bass Drum 1	60	C3	Hi Bongo
    37	C#1	Side Stick	61	C#3	Low Bongo
    38	D1	Acoustic Snare	62	D3	Mute Hi Conga
    39	Eb1	Hand Clap	63	Eb3	Open Hi Conga
    40	E1	Electric Snare	64	E3	Low Conga
    41	F1	Low Floor Tom	65	F3	High Timbale
    42	F#1	Closed Hi Hat	66	F#3	Low Timbale
    43	G1	High Floor Tom	67	G3	High Agogo
    44	Ab1	Pedal Hi-Hat	68	Ab3	Low Agogo
    45	A1	Low Tom	69	A3	Cabasa
    46	Bb1	Open Hi-Hat	70	Bb3	Maracas
    47	B1	Low-Mid Tom	71	B3	Short Whistle
    48	C2	Hi Mid Tom	72	C4	Long Whistle
    49	C#2	Crash Cymbal 1	73	C#4	Short Guiro
    50	D2	High Tom	74	D4	Long Guiro
    51	Eb2	Ride Cymbal 1	75	Eb4	Claves
    52	E2	Chinese Cymbal	76	E4	Hi Wood Block
    53	F2	Ride Bell	77	F4	Low Wood Block
    54	F#2	Tambourine	78	F#4	Mute Cuica
    55	G2	Splash Cymbal	79	G4	Open Cuica
    56	Ab2	Cowbell	80	Ab4	Mute Triangle
    57	A2	Crash Cymbal 2	81	A4	Open Triangle
    58	Bb2	Vibraslap
    [свернуть]


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


    Зато, попытался сделать проигрыватель оригинальных .MUS файлов с Агата. Сначала хотел переписать его начисто, а потом подумал - а что если взять уже имеющийся плеер под Агат, благо стараниями avivanov76 он дизассемблирован и хорошо комментирован. Ну и взял я бинарный файл плеера PLAYERR.O в машинных кодах 6502 процессора, взял ядро эмулятора M6502 от Marat Fayzullin, ну и собрал как мог все во-едино. То есть запускается эмулятор CPU 6502, в нем крутиться оригинальный PLAYERR.O с Агата, а когда он обращается к адресам в памяти, в которых в Агате сидит муз ячейка, я делаю перенаправление уже на PC-шные порты воода-вывода. Ну и таймер используется от PC, а не на плате муз ячейки (потому что в PC версии на плате его нет). И вроде бы даже что-то получилось:



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

    Эти 2 пользователя(ей) поблагодарили Tronix за это полезное сообщение:

    AlexBel(05.03.2022), ALS(05.03.2022)

  4. #14

    Регистрация
    02.01.2007
    Адрес
    Волгоград, Россия
    Сообщений
    1,454
    Спасибо Благодарностей отдано 
    195
    Спасибо Благодарностей получено 
    161
    Поблагодарили
    99 сообщений
    Mentioned
    5 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Цитата Сообщение от Tronix Посмотреть сообщение
    Зато, попытался сделать проигрыватель оригинальных .MUS файлов с Агата. Сначала хотел переписать его начисто, а потом подумал - а что если взять уже имеющийся плеер под Агат, благо стараниями avivanov76 он дизассемблирован и хорошо комментирован. Ну и взял я бинарный файл плеера PLAYERR.O в машинных кодах 6502 процессора, взял ядро эмулятора M6502 от Marat Fayzullin, ну и собрал как мог все во-едино. То есть запускается эмулятор CPU 6502, в нем крутиться оригинальный PLAYERR.O с Агата, а когда он обращается к адресам в памяти, в которых в Агате сидит муз ячейка, я делаю перенаправление уже на PC-шные порты воода-вывода. Ну и таймер используется от PC, а не на плате муз ячейки (потому что в PC версии на плате его нет). И вроде бы даже что-то получилось:
    Класс!!!
    Последний раз редактировалось AlexBel; 05.03.2022 в 10:45.

  5. #15

    Регистрация
    16.09.2010
    Адрес
    г. Москва
    Сообщений
    1,951
    Спасибо Благодарностей отдано 
    81
    Спасибо Благодарностей получено 
    261
    Поблагодарили
    125 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

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



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

    Этот пользователь поблагодарил Tronix за это полезное сообщение:

    ALS(06.03.2022)

  6. #16

    Регистрация
    16.09.2010
    Адрес
    г. Москва
    Сообщений
    1,951
    Спасибо Благодарностей отдано 
    81
    Спасибо Благодарностей получено 
    261
    Поблагодарили
    125 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    Потихоньку МузЯчейка начинает обрастать софтом:



    Встроил в программу SoftMPU сэквенсор MIDI для музячейки. Это позволило запускать почти любые игры, в которых в настройках звука можно выбрать "General MIDI / MPU401" в качестве звуковой карты. Например, вполне успешно поиграл со звуком в Heroes 2, Warcraft 2, The Increditable Machines 1-2, Lotus, Stunts, Monkey Island, Prince of Persia и тд. Небольшое видео, снятое на балтику девятку (прошу понять и простить):



    А вообще, конечно, это очень примитивный сэквенсор, который сейчас реализован и в DOSMID, и теперь вот в SoftMPU. Фактически, я просто играю с нужной частотой ноты, без всяких эффектов, типа там экспрессии, вибрато, детюна и прочего прочего, чего бы можно было бы сделать. Единственное, что сейчас реализовано из "фишек" - так это pitch band'ы. Барабаны расставлены кое-как, можно сказать "от балды", без всякого соответствия General MIDI - регистры управления каналами ударных муз ячейки. Громкость никак не управляется, хотя ей можно управлять через полосовые фильтры и бит громкости в каждом микшере каналов. Бит "атаки" так же никак не используется, а он есть в муз ячейки. И тд и тп.

    Вообщем, весь потенциал муз ячейки этот софт не раскрывает. Но, пока только так, увы, я не волшебник...

    Эти 3 пользователя(ей) поблагодарили Tronix за это полезное сообщение:

    ALS(12.03.2022), randomizer(08.03.2022), Willy(26.03.2025)

  7. #16
    С любовью к вам, Yandex.Direct
    Размещение рекламы на форуме способствует его дальнейшему развитию

  8. #17

    Регистрация
    16.09.2010
    Адрес
    г. Москва
    Сообщений
    1,951
    Спасибо Благодарностей отдано 
    81
    Спасибо Благодарностей получено 
    261
    Поблагодарили
    125 сообщений
    Mentioned
    3 Post(s)
    Tagged
    0 Thread(s)

    По умолчанию

    А тем временем shiru8bit запилил первую версию трекера с интересным названием Yach*PMS для МузЯчейки:



    https://shiru.untergrund.net/software.shtml

    Есть вендовая версия со встроенной эмуляцией, есть DOS-версия для реальной железяки, есть сорцы.

    Эти 2 пользователя(ей) поблагодарили Tronix за это полезное сообщение:

    ALS(13.05.2022), creator(13.05.2022)

Страница 2 из 2 ПерваяПервая 12

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Похожие темы

  1. "Агат" и эмулятор дисковода Gotek
    от AlexBel в разделе Агат
    Ответов: 13
    Последнее: 17.09.2021, 19:49
  2. Ответов: 172
    Последнее: 28.11.2017, 13:28
  3. Ответов: 51
    Последнее: 11.08.2014, 10:40
  4. (Москва) ищу книгу Абель "asm для ibm pc"
    от Жека:) в разделе Барахолка (архив)
    Ответов: 20
    Последнее: 20.03.2009, 09:00
  5. По мотивам "Как написать игру..."
    от TomCaT в разделе Игры
    Ответов: 2
    Последнее: 04.12.2008, 13:56

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •