MIDI Reverb

Forum for technical discussions regarding development. If you have a general suggestion, problem or comment, please use one of the other forums.

Moderator: OpenTTD Developers

Post Reply
boomaa
Engineer
Engineer
Posts: 1
Joined: 08 Feb 2022 05:40

MIDI Reverb

Post by boomaa »

I'm trying to write some C++ code that plays back MIDI files. I was basing my code off the OpenTTD **win32** music driver, and I have it playing back the OpenMSX files correctly. However, the "reverb" or something like that isn't there. I tried sending the SysEx for the "Roland Reverb" as the source code says, but that doesn't seem to be working. My code is here: https://github.com/Boomaa23/TTD-MSX/blo ... #L236-L314. I'd appreciate any help I can get. Thanks.
User avatar
jfs
Tycoon
Tycoon
Posts: 1743
Joined: 08 Jan 2003 23:09
Location: Denmark

Re: MIDI Reverb

Post by jfs »

I think the first question is what kind of MIDI device you're playing back to.

The "Roland Reverb SysEx" you use is basically copied straight from the Transport Tycoon for DOS music routines, and only really works on Roland SC-55 and SC-88 family synths. In particular, I don't think it does anything on the software Microsoft GM/GS MIDI Synth, and that one isn't able to add effects when using it via the standard WinMM MIDI output, only when called in specific ways via the DirectMusic API. It could also be invoked indirectly via the DirectShow API, but that's a whole other can of worms.

As far as I remember, the SysEx configures the reverb room, but isn't necessary to enable reverb. I think reverb amount is generally a per-channel controller. One list I found says that controller 91 is for "Effect 1" which is usually reverb, and usually it's up to the MIDI data being played to control that.
Post Reply

Return to “OpenTTD Development”

Who is online

Users browsing this forum: No registered users and 4 guests