VOGONS


IBM Music Feature Card/Yamaha FB-01

Topic actions

Reply 200 of 254, by Scali

User metadata
Rank l33t
Rank
l33t
awgamer wrote:

Mame apparently has VST plugin support for synths, one of the examples shown being the FB-01, posted August 2 2018. https://github.com/mamedev/mame/issues/3817

Edit: The VST synth fork project page: https://github.com/jariseon/amame

Seems like a wild goose chase. I compiled the whole of AMAME, but couldn't find any reference to VST at all.
In the standard MAME distribution, there is an FB-01 'machine' listed, so I wonder what that does.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 201 of 254, by awgamer

User metadata
Rank Oldbie
Rank
Oldbie

Plenty of VST references but I'm guessing you're referring to a vst reference in the compiled app?

>AMAME : mame synths as VST plugins

>AMAME fork provides a custom osd to run the synth emulations as VST2 plugins,

>Project sources and MAME related design discussion is here

https://github.com/jariseon/amame/tree/master/projects/amame

>OSD
> virtual audio and midi streams
> audio and midi streams .. They operate rather as virtual audio cables which are easy to interface from a hosting app (in this case, VST2 plugin).
>webgui is rendered in an embedded webview, but also accessible from browsers. The glue code is in amame/src/osd/webgui.cpp, and the implementation relies on existing input and output subsystems as follows:
>..User input is routed to driver's INPUT_PORT maps in webgui.cpp.
>MAME output is captured from output_manager notifications (see hd44780.cpp) and forwarded to the webgui over websocket transport in webgui.cpp.
>MAME output is passed just as JSON key-value pairs, where indexed value is encoded in HIWORD(value) and the actual value is in LOWORD. Key is a string.
>Frontend
> operates as a bridge between audio plugin / standalone audio app

so.. somewhere in the frontend or osd to configure?

Reply 202 of 254, by Arbee

User metadata
Rank Newbie
Rank
Newbie

Standard MAME has MIDI I/O for our working synths (including the FB-01) on Windows, Linux, and Mac hosts. -listmidi shows detected ports, -midiin specifies which of those ports goes to the MIDI IN on the emulated synth, and -midiout does the same for the output (which is more often used with our PC and X68000 drivers).

Virtual MIDI cable drivers work well on Windows to connect MAME to other programs or even another instance of MAME emulating a computer with a MIDI interface. Virtual cable capability is built into the Mac OS and ALSA on Linux.

We also support the IBM Music Feature Card for our PC emulation, of course.

Reply 203 of 254, by awgamer

User metadata
Rank Oldbie
Rank
Oldbie

> -listmidi shows detected ports, -midiin specifies which of those ports goes to the MIDI IN on the emulated synth, and -midiout does the same for the output
>Virtual MIDI cable drivers work

I take it you're referring to vmidi cable emulation in general or is that specific? The setup process being start/install vmidi driver, should show up automatically with listmidi, then set midin/out to it? finished with selecting the vmidi device in dosbox?

>We also support the IBM Music Feature Card for our PC emulation

?

Reply 204 of 254, by awgamer

User metadata
Rank Oldbie
Rank
Oldbie

http://www.tobias-erichsen.de/software/loopmidi.html
install/run
on setup tab. click + to add port
loopMIDI Port

in dosbox:
mixer /listmidi
0 "Microsoft GS Wavetable Synth"
1 "loopMIDI Port"
midiconfig 1
or in doxbox.conf set midiconfig=1

mame64.exe -listmidi
MIDI input ports:
loopMIDI Port (default)

MIDI output ports:
Microsoft MIDI Mapper (default)
Microsoft GS Wavetable Synth
loopMIDI Port

mame64.exe -midiout
Error: unknown option: -midiout

As far as I've gotten so far, search and mame docs only come up with -listmidi so looking for setting windows default midi out. After that getting fb01 running from mame command line, been awhile since I've tried running something from cl with mame, and that should be it, then try something in dosbox.

edit:
Tried this util: http://putzlowitsch.de/wp-content/uploads/200 … mapper_0_93.zip
loopMIDI Port became second on the list but midi mapper stayed default.

maybe mapper will pass through?

mame64.exe fb01
runs fb01

go back to dosbox, try a game and.. no sound.

Reply 205 of 254, by Scali

User metadata
Rank l33t
Rank
l33t

Well, in short, my question is: how does all this work?
For me, a VST is some kind of DLL plugin that I can load inside DAW software and such. Couldn't find one.

I found the -listmidi command in MAME already, and my MIDI interface is detected properly, and selected as default MIDI in.
But when I run the FB-01 machine with regular MAME, basically nothing happens. I get the UI, and the buttons appear to respond. But it doesn't give any sound when I play on my MIDI keyboard. I have no way of checking if the FB-01 machine even receives the MIDI input, let alone that it processes it.

As for AMAME, I read stuff about how it has a different UI, based on a WebGui. I can find the HTML files, which look like the example screenshots in GitHub. But I have no idea how I can get these from MAME. When I run MAME64.EXE from my build, I just get the same FB-01 machine UI as I got from regular MAME. And again, no sound.

Also, how would the IBM Music Feature Card emulation work with MAME?

Basically, I don't know anything about MAME, I just read all these things that it is supposed to support, but I can find absolutely no information on how I can set up and test these things.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 206 of 254, by awgamer

User metadata
Rank Oldbie
Rank
Oldbie

You mention midi in, but what's your midi out set to? As I've gone over, my midi in is set correctly too but midi out is stuck at the mapper.
Yes it seems the mame guys have really dropped the ball. Only midi mention I've found in the mame docs is pointing out -listmidi. Well great, everyone can see it but there's no further info. latest build of mame doesn't recognize midiin/midiout that arbee mentioned and no mention found of such cl options in the docs or doing a web search, so what's your reference arbee?

Reply 207 of 254, by Scali

User metadata
Rank l33t
Rank
l33t

Well, I'm not interested in the MIDI out, I want to send MIDI to the in-port of the FB-01, and I expect sound to come out of my sound card, via the YM2151 emulation.
As far as I can tell, the MIDI out is set to the MIDI mapper, which is listed as default.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 208 of 254, by crazyc

User metadata
Rank Member
Rank
Member

-midi[out|in] only works when a machine is loaded that has midi ports so you'd need to do 'mame64 fb01 -midiin "port"' or 'mame64 x68000 -exp x68k_midi -midiout "Microsoft GS Wavetable Synth"' (-exp puts the midi device into the expansion port).

Also, how would the IBM Music Feature Card emulation work with MAME?

mame64 ibm5160 -isa5 ibm_mfc

Reply 209 of 254, by Scali

User metadata
Rank l33t
Rank
l33t
crazyc wrote:

-midi[out|in] only works when a machine is loaded that has midi ports so you'd need to do 'mame64 fb01 -midiin "port"' or 'mame64 x68000 -exp x68k_midi -midiout "Microsoft GS Wavetable Synth"' (-exp puts the midi device into the expansion port).

Okay, I can give that a try.
For "port" I use the exact name as reported by -listmidi?
Also, doesn't it already use the port marked by 'default'? In which case I don't expect a difference.

mame64 ibm5160 -isa5 ibm_mfc

What my real question is, is: Has anyone actually tested it, and can I download a prefab configuration to try?
Because now it seems I'd have to hunt down all the required ROMs first, to even boot the PC machine, then create some floppy or HDD images to get any software on there, and figure out how to configure the machine to mount them, etc etc.
It's going to take me ages to even get to the point where I could possibly test it, and even then I have no guarantee, because I have no reference of a working MAME installation or anything.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 210 of 254, by awgamer

User metadata
Rank Oldbie
Rank
Oldbie

Tried it, midiin/out aren't recognized as options for fb01 and again they aren't described in the documentation and doing a web search comes up with no hits talking about them in forums and what have you, I also generated a mame ini and nothing there either, where did you get the info on midiin/out?

Reply 212 of 254, by Scali

User metadata
Rank l33t
Rank
l33t
crazyc wrote:

I have no midiin ports but midiout definitely works, I just tried it myself.

You could install the abovementioned LoopMIDI to create a midiin port on your machine.
You could then use eg Falcosoft's MIDI player to play a MIDI file to the other end of the MIDI loopback, so you can provide MAME with MIDI input.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 214 of 254, by Scali

User metadata
Rank l33t
Rank
l33t

Yea, got it working with my DOSBox build!
Apparently you really NEED to select the -midiin parameter. But yea, this is pretty awesome, we have a working IMFC solution 😀

Edit: And for no apparent reason whatsoever, it has stopped working, and no matter what I try, I can't get it working again.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 215 of 254, by Scali

User metadata
Rank l33t
Rank
l33t

Hum, it seems the FB-01 emulation is just horribly unstable. Yea, I can boot up the FB-01 machine, and send some MIDI data to it, and it plays some notes.
But when I try to run a fullblown Sierra game, which tries to upload its voice bank with a 6k SysEx command, the whole FB-01 appears to lock up. The UI no longer responds.

Most importantly though, it answers the question whether the YM2151 sounds equivalent to the YM2164, and the few FB-01-specific MIDI files I played so far seem to sound mostly correct.
This means that I can pick up my own reverse-engineered FB-01 project again, and build a virtual FB-01 that doesn't rely on actual ROMs, and doesn't need a full Z80-emulator to run.

Edit: I decided to try a real MIDI loopback, by using my E-mu 0404 with a cable from its MIDI out to its MIDI in. The advantage is that all the data has to pass through a physical serial MIDI cable, so it can never be sent to the emulator faster than a real FB-01.
I think the problem with loopMIDI is that it buffers SysEx commands and sends them all in one big lump. That in itself shouldn't be a problem, but it looks like MAME can't handle that. Either it pushes too much data to the FB-01 machine, or there's some kind of buffer overflow going on. Not something that my DOSBox generates anyway.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 216 of 254, by Scali

User metadata
Rank l33t
Rank
l33t

By the way, the -midiout flag is not supported for the FB-01, apparently. Only -midiin works. Which is a shame, because then you can't actually communicate with the device using the FB-01 editor tool. You can't dump voice banks or anything.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 217 of 254, by Scali

User metadata
Rank l33t
Rank
l33t
lchiocca wrote:

Nice! If you can get silpheed or space quest 3 to sound like the originals I would be severly impressed 😉 http://www.crossfire-designs.de/index.php?lan … undcards&page=6

Technically the project has now reached this milestone:
With my DOSBox IMFC patch and MAME running the FB-01 emulator, I have successfully run Silpheed, and it sounded very close to the real thing.
I'll try Space Quest 3 next. Then I'll see about recording a little video.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 218 of 254, by Scali

User metadata
Rank l33t
Rank
l33t

Here's a quick-and-dirty recording of MAME and DOSBox working together to emulate the IBM Music Feature Card, with some Sierra games:
https://youtu.be/t7dL80QLdfM

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/