если это звук, то и экспортировать его нужно как фамистудио sfx code
Не всегда. Формально что звук, что музыка, это одно и тоже. Разница в логике работы famistudio_music_play и famistudio_sfx_play. Второй проще (наверное, это хорошо в плане ресурсов, но его код не изучал). Однако famistudio_sfx_play не дает возможность остановить звук, как famistudio_music_stop. То есть предполагается, что звук проигрывается полностью, ну и он должен быть коротким. Но если нам надо в какой-то момент прекратить звучание, то мы ничего сделать не можем (проверил, famistudio_music_stop не останавливает звук, запущенный famistudio_sfx_play, что логично). Ну и если у нас есть фоновая музыка и звуки, то, конечно, надо их разделить.
При этом в коде есть подпрограмма famistudio_sfx_clear_channel, которая останавливает sfx, но она помечена как "internal", так что может быть не совсем корректно ее использовать (хотя работает, проверил).
Еще выявился один нюанс, что инициализация sfx - famistudio_sfx_init, она не совсем полноценная. Допустим, мне не нужна музыка, а только звуки. Из документации можно сделать вывод, то вызов famistudio_init в этом случае не нужен, так как "Initialize the engine with some music data" и можно обойтись famistudio_sfx_init ("Initialize SFX engine with SFX data"). Оказывается нет, надо сначала вызвать famistudio_init (если музыки нет, дать ссылку куда угодно, так как таблицы у нас нет), а уже следом famistudio_sfx_init. Если первое не сделать, то работает с серьезными багами, например, у меня звуки проигрывались только из треугольного канала. А холостой вызов famistudio_init проблему решает.
Также и регион определяется только через famistudio_init, но при этом учитывается и в famistudio_sfx_play.