Wecoc
Pinball Wizard
- Joined
- Dec 7, 2021
- Messages
- 82
- Reaction score
- 126
- Points
- 40
- Favorite Pinball Machine
- Cirqus Voltaire
Now that WScript is enabled in FP (see BAM Update v1.5-365), I was wondering if it would be possible to access fmod.dll via script to expand sound functionalities in FP. I don't know how these calls work yet, but I've thought some cases where accessing that library could be helpful.
FP's functions "PlaySound" and "PlayMusic" are limited compared to VP's equivalents. FMod has some options like PlaySoundEx that would be handy. For example, if we want to apply panning (and therefore dynamic sounds) in vanilla FP we need two sounds (one for each side). For tables with a big collection of sounds that can be pretty heavy, but FMod has internal panning that could be accessed and solve that issue. There are also some effects like echoing that could be cool to have, maybe in addition to the current script for SSF (Surround Sound Feedback).
In relation to other FP sound extensions, Ball rolling may not require its own music channel anymore, and maybe some hit sounds could be modified with more precise variations, with functions like "SetSurround".
Finally, this would allow some interesting complex music mechanisms like iMuse, which are currently impossible in FP.
Many people may not know what iMuse is, so I'll try to explain it briefly. Most games use music in a very simple way. In Pokemon, you're in a route and the route song is playing. Then you go to the town and the town song starts. Then you enter a Pokecenter and the Pokecenter song starts, and so on. Monkey Island 2 doesn't work that way. Each song has spots, and there are song bridges. When you enter a new zone, the music of the last one continues until the next spot, then the correct bridge plays into a new song. This way, the music is never interrupted and flows between zones seamlessly. To translate it into Pinball terms, this could be used between modes; normal, multi-ball, jackpot mode, mission, extra-ball, etc. and would make for a more involved music. The "music break" on drain would also be more effective. FMod has "GetPosition" and "SetPosition" options that make that possible.
Another complex music mechanism would be separating instruments into different music channels and changing their volume dynamically based on something related to the table, or things like that. Imagine a drum set that keeps adding things the more drop targets you hit. FP's default functions fall short with this kind of stuff.
Many people may not know what iMuse is, so I'll try to explain it briefly. Most games use music in a very simple way. In Pokemon, you're in a route and the route song is playing. Then you go to the town and the town song starts. Then you enter a Pokecenter and the Pokecenter song starts, and so on. Monkey Island 2 doesn't work that way. Each song has spots, and there are song bridges. When you enter a new zone, the music of the last one continues until the next spot, then the correct bridge plays into a new song. This way, the music is never interrupted and flows between zones seamlessly. To translate it into Pinball terms, this could be used between modes; normal, multi-ball, jackpot mode, mission, extra-ball, etc. and would make for a more involved music. The "music break" on drain would also be more effective. FMod has "GetPosition" and "SetPosition" options that make that possible.
Another complex music mechanism would be separating instruments into different music channels and changing their volume dynamically based on something related to the table, or things like that. Imagine a drum set that keeps adding things the more drop targets you hit. FP's default functions fall short with this kind of stuff.