TurboSound FM, он же TS FM, он же прос─
то TFM - это звуковое устройство,втыкаемое
в панельку AY. Имеет 6 обычных каналов
TurboSound (буду называть их SSG каналами,
не вдаваясь здесь в особенности терминоло─
гии) и 6 каналов особо хитро синтезирован─
ного звука (их я буду называть FM канала─
ми). Шесть первых каналов не мешают шести
вторым, равно как и наоборот, поэтому мы
имеем одновременно 12 каналов.
Устройство построено на двух чипах
YM2203. Появилось оно в середине далёкого
2005 года, когда LVD спаял схему, разрабо─
танную им совместно с JTN'ом. В дальнейшем
схема исправлялась и дорабатывалась при
активном участии CHRV и King of Evil.
В том же 2005 году Dexus (известный как
автор музыкального редактора PSM ) добавил
в UnrealSpeccy эмуляцию устройства и вмес─
те с Shiru начал конвертировать под него
музыку с Sega Mega Drive. На этой пристав─
ке (она также известна под названием Sega
Genesis ) имеется связка из двух звуковых
чипов ( SN76489 и YM2612 ),обладавшая при─
мерно теми же возможностями, но SSG каналы
там другие (причём тональников не 6, а 3 )
и в FM части добавлен низкочастотный гене─
ратор - для вибрато.
В 2006 году Shiru начал писать редактор
музыки для TFM (затрагивающий только FM
каналы) - TFM Music Maker. Он долго разви─
вался в виде бетаверсий и совсем недавно
был выпущен на всеобщее обозрение.
TFM Music Maker умеет выгружать музыку
в поток регистров.Можно просто проигрывать
этот поток, а можно перекомпилировать моей
утилитой TFM compiler, что даёт гораздо
более компактный файл (единицы килобайт
вместо десятков).
Особая хитрость синтеза звука в FM ка─
налах TFM заключается в том, что канал -
это не один генератор, а четыре, с разными
в общем случае частотами. Они модулируют
друг друга, соединяясь по некоторой схеме.
Схему (всего этих схем 8 - для звуков раз─
ного типа) можно выбрать для каждого кана─
ла. Кроме того, во время проигрывания ноты
вовсе не обязательно каждый кадр менять
значения громкостей (вообще говоря, ампли─
туд генераторов). Это делает сама железка,
нужно только задать для каждого генератора
скорости атаки, спада,удержания и отпуска─
ния, а также уровень, где спад переходит в
удержание, и общую громкость (вообще гово─
ря, максимальную амплитуду,от которой рас─
считываются прочие уровни). После этого
каждую новую ноту можно синтезировать,про─
сто выдавая события нажатия и отпускания
клавиши и меняя базовую частоту (частоты
операторов рассчитываются через задаваемые
множители). Поэтому плейер FM музыки для
TurboSound FM, несмотря на кучу параметров
звука,весьма быстрый - порядка 1500 тактов
в среднем.Только в пике (при смене инстру─
ментов) время его выполнения может дохо─
дить до 13000 тактов.
В приложении лежат примеры музыки, как
написанной в TFM Music Maker'е, так и ско─
нвертированной с Sega Mega Drive. В музыке
из игры Sonic 3D Blast выброшены цифровые
ударные, но теоретически их можно реализо─
вать. Ещё в приложении в качестве примера
лежит исходник плейера для модулей TFM
compiler (аналогичный плейер есть и для
Sega Mega Drive - его портировал туда
Shiru ).
Инструкция по программированию TFM
(брошюра в формате .doc ) с исходниками
конверторов и различных плейеров лежит на
http://alonecoder.narod.ru/zx/books/
Эта инструкция постоянно обновляется, и
файлы к ней - тоже.
В этом году организаторы DiHalt 2007
( 2-3 июня 2007, Нижний Новгород) впервые
организовали конкурс TFM музыки. Просьба
всем людям доброй воли принять участие в
конкурсе. Во избежание накладок компилиро─
вать присылаемые модули назначен я,поэтому
(чтобы не терялось драгоценное время,кото─
рого осталось мало) присылайте модули не─
посредственно на мой адрес.
Alone Coder