Open alexanderk23 opened 3 years ago
Звук перемещения головки различается для разных дорожек, помимо того что он немного отличается и между вперед/назад. По крайней мере для 5.25". Это ж нужно звуки для всех дорожек хранить. Или проанализировать и составить алгоритм генерации этого звука. Что еще веселее. А еще нужен звук двигателя и включения и отключения двигателя. Некоторый софт любит досрочно отключать мотор.
и вообще вроде бы в каких то софтах юзали дрыгание дисководом для издаввание звуков но нигде это как всегда не эмулируетсо? как всегда токо реал....
В M.A.M.E. эмулируется звук дисковода
В M.A.M.E. эмулируется звук дисковода
этот тот который наука не знает как запустить? эмулируетсо это когда играетсо рандомный семпл? или эмулируетсо как бипер (что нам и нужно)?
Эмулируется сэмплами - но эффект "полного присутсвия": и вращение и дерганье головы. Запустить в первый раз боль - но можешь меня пингануть, я помогу.
Длительность щелчка при движении шагового двигателя маленькая, но в итоге в несколько раз длиннее периода 6мс (стандартная скорость для 5.25"). Они не "обрезаются" с началом следующего, а должны микшироваться. "Длина" такая связана с "эхом", акустическим хвостом, и резонансными эффектами в корпусе дисковода. Причем спектральные характеристики меняются в зависимости от положения головки (ну и направления, как я выше писал). Если пытаться эмулировать воспроизведение "звуков" головкой, то нужно хотя бы рабочий пример из спектрума, а то лично у меня есть сомнения что ВГ93 допускает тайминги отличные от 24/12/6/3. Такие извращения с дисководом делаются всякими ардуинами и полным контролем этих линий. И как мне видится в эмуляторе они лишние (в отличие от стандартных звуков вращения/движения головки).
Я записывал звуки отдельного движения головки между соседними дорожками, и сразу между кучей, и в принципе склеивание микшированием множества отдельных щелчков почти не отличается от звука реального движения между несколькими дорожками.
Ещё раз, звук перемещения состоит из щелчка, и акустических хвостов, ревербирации, звона корпуса, и прочего. И при создании перехода на несколько дорожек нужно их микшировать как следует. Либо синтезировать эти акустические хвосты, всю сопутствующую ревебрерацию из склеенной очереди. Иначе получится срань как со звуком перемещения в gotek. И все равно нужно учитывать то в какой части происходит движение, и в какую сторону. Спектральные характеристики щелчков отличаются на 0й и на 79й дорожке, как отличается и шаг вперед от шага назад.
А и не надо имитировать резонансы. Достаточно записать отдельные звуки перемещения головки вперед от 0 к 1, от 1 к 2 и так до 84, и обратно. Со всеми акустическими хвостами. 170 сэмплов. И их спокойно склеивать с перехлестом (микшированием). SDL насколько я знаю такое легко делает. Плюс фоновое зацикленное вращение диска, на 3-5 оборотов - хватит. Можно с и без (звуки разумеется разные). В итоге может получится очень правдоподобное звучание.
А главное - кто тот герой, кто будет запихивать это в эмуль? wait, oh shi...
Звуки записать несложно. Они фактически уже записаны.
Что-то они какие-то слабоватые, заглушенные. Плюс вообще никакого учета расположения головки и направления, т.е. один и тот же звук на любое перемещение. Плюс звук "длинного" перемещения, на неопределенное количество дорожек. А между тем на слух однодорожечное перемещение прекрасно отличается от 2х и 3-4х. Здесь свои записи выложил: https://volutar.myds.me/zx/floppysound/ (записывал конденсаторным микрофоном на дисководе, управляемом с ардуины, т.е. отдельно мотор, отдельно головка).
В fdd5_step_0_83.wav записано движение от 0 до N и назад, и прекрасно слышно в какую сторону происходит движение. Это как образец. Периодичность 6мс. Если "синтезировать" звук движения через несколько дорожек путем склеивания одиночных (как в fdd5_step1_0_83_0.wav), то получится фактически такой же результат (при правильном микшировании).
в основном отличие в громкосте
Не-а. Слышно это одинарный или двойной пик.
сильно большая частота (изменения большо похожо на резонансы : )
Резонансов там достаточно. Но записывалось с открытого дисковода. В реальности как правило они как минимум внутри кожухов стоят, и верхние частоты заглушены, т.е. ближе к тому что в MAME.
можошь все тожо самое но помедленее 1 тык в сек например
Не. Год назад записывал, не вижу резона заморачиваться. Что есть то есть. Если вдруг будет внедрено, и понадобятся более чистые сэмплы, то уже можно будет помучиться.
тут опять жо отличия минимальные
Это ты 2.5 минуты в 700 пикселей скукожил? Сильнее бы утрамбовал, глядишь вообще отличия бы исчезли.
Сэмплы можно сократить, уменьшить хвосты, уменьшить резонанс, подзаглушить, зафиксировать дисковод, положить на демпферный материал. Сам щелчок можно уместить максимум в 50мс, а не в 250мс. Пики выравнивать не нужно, достаточно ориентироваться на одинаковые промежутки между шагами. Но еще раз - не вижу смысла заморачиваться этими "вычищениями", пока сам код не будет поддерживать всё это.
С обычной ВГ скорость перемещения 6мс, 12мс, 20мс, 30мс. С турбированной ВГ соответственно 3мс, 6мс, 10мс, 15мс.
Другие тайминги возможны только при прямом взаимодействии с дисководом, мимо ВГ. Обычно этим страдают всякие любители поиграть на дисководах всякие Имперские Марши https://www.youtube.com/watch?v=yHJOz_y9rZE Не уверен что 5.25" подобное умеет. Насиловать свой как-то жалко.
для имперских маршов ссобственно ии нужна эмуляция
Не получится. ВГ не умеет иных таймингов. Точного управления нет. Нет ни одного софта на Спектруме или других компьютерах со стандартными контроллерами, которые бы дисководом произвольные звуки генерировали. Это все с ардуинами пришло. Максимум - подпёрдывать на полдюжине частот.
В общем поэкспериментировал я давеча со звуками движения головки. Есть 2 жизнеспособных варианта:
Вариант 1:
Вариант 2:
Думаю есть смысл в варианте №2. Минимальная нагрузка на процессор (не нужно 22 сэмпла микшировать как в №1) Протестировал - звучит вполне аутентично. Пример: fdd5_motor_combined.mp3.zip
Также ко всему этому нужно микшировать звук вращения (звуки разные - с дискетой и без).
Вообще звук начала для варианте №2 тоже желателен, но выделить его, и собирать общий звук и с ней - не намного сложнее - звук просто будет собираться из 3х частей (пред-звук + тело + шлейф).
В Unreal и VICE есть такая вот люто обожаемая мной фича, добавляющая сотни ламповости. В анриле сделано просто двумя вавками "трек вперёд / трек взад", в вайсе круче - ещё и шуршание диска в конверте слышно при включенном моторе. Не самая полезная фича, конечно, но вдруг найдётся время когда-нибудь и на неё )