IBM Music Feature Card/Yamaha FB-01

Developer's Forum, for discussion of bugs, code, and other developmental aspects of DOSBox.

Re: IBM Music Feature Card/Yamaha FB-01

Postby Scali » 2019-3-13 @ 17:34

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.
Scali
l33t
 
Posts: 4372
Joined: 2014-12-13 @ 14:24

Re: IBM Music Feature Card/Yamaha FB-01

Postby awgamer » 2019-3-14 @ 00:37

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/ ... ects/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?
awgamer
Oldbie
 
Posts: 568
Joined: 2014-7-26 @ 07:42

Re: IBM Music Feature Card/Yamaha FB-01

Postby Arbee » 2019-3-14 @ 02:55

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.
Arbee
Newbie
 
Posts: 6
Joined: 2006-7-28 @ 02:13

Re: IBM Music Feature Card/Yamaha FB-01

Postby awgamer » 2019-3-14 @ 05:15

> -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

?
awgamer
Oldbie
 
Posts: 568
Joined: 2014-7-26 @ 07:42

Re: IBM Music Feature Card/Yamaha FB-01

Postby awgamer » 2019-3-14 @ 07:20

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/uploa ... r_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.
awgamer
Oldbie
 
Posts: 568
Joined: 2014-7-26 @ 07:42

Re: IBM Music Feature Card/Yamaha FB-01

Postby Scali » 2019-3-14 @ 08:44

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.
Scali
l33t
 
Posts: 4372
Joined: 2014-12-13 @ 14:24

Re: IBM Music Feature Card/Yamaha FB-01

Postby awgamer » 2019-3-14 @ 09:06

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?
awgamer
Oldbie
 
Posts: 568
Joined: 2014-7-26 @ 07:42

Re: IBM Music Feature Card/Yamaha FB-01

Postby Scali » 2019-3-14 @ 09:12

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.
Scali
l33t
 
Posts: 4372
Joined: 2014-12-13 @ 14:24

Re: IBM Music Feature Card/Yamaha FB-01

Postby crazyc » 2019-3-14 @ 12:38

-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
crazyc
Member
 
Posts: 143
Joined: 2013-2-02 @ 16:17

Re: IBM Music Feature Card/Yamaha FB-01

Postby Scali » 2019-3-14 @ 13:26

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.
Scali
l33t
 
Posts: 4372
Joined: 2014-12-13 @ 14:24

Re: IBM Music Feature Card/Yamaha FB-01

Postby awgamer » 2019-3-14 @ 13:32

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?
awgamer
Oldbie
 
Posts: 568
Joined: 2014-7-26 @ 07:42

Re: IBM Music Feature Card/Yamaha FB-01

Postby crazyc » 2019-3-14 @ 14:04

https://forums.bannister.org/ubbthreads ... ber=100135

I have no midiin ports but midiout definitely works, I just tried it myself.
crazyc
Member
 
Posts: 143
Joined: 2013-2-02 @ 16:17

Re: IBM Music Feature Card/Yamaha FB-01

Postby Scali » 2019-3-14 @ 14:08

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.
Scali
l33t
 
Posts: 4372
Joined: 2014-12-13 @ 14:24

Re: IBM Music Feature Card/Yamaha FB-01

Postby crazyc » 2019-3-14 @ 14:40

Works fine with 'mame64 fb01 -midiin "loopMIDI Port" -window'.
crazyc
Member
 
Posts: 143
Joined: 2013-2-02 @ 16:17

Re: IBM Music Feature Card/Yamaha FB-01

Postby Scali » 2019-3-14 @ 16:45

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.
Scali
l33t
 
Posts: 4372
Joined: 2014-12-13 @ 14:24

Re: IBM Music Feature Card/Yamaha FB-01

Postby Scali » 2019-3-14 @ 21:21

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.
Scali
l33t
 
Posts: 4372
Joined: 2014-12-13 @ 14:24

Re: IBM Music Feature Card/Yamaha FB-01

Postby Scali » 2019-3-15 @ 10:32

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.
Scali
l33t
 
Posts: 4372
Joined: 2014-12-13 @ 14:24

Re: IBM Music Feature Card/Yamaha FB-01

Postby Scali » 2019-3-15 @ 11:02

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.p ... rds&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.
Scali
l33t
 
Posts: 4372
Joined: 2014-12-13 @ 14:24

Re: IBM Music Feature Card/Yamaha FB-01

Postby Scali » 2019-3-15 @ 13:47

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
Scali
l33t
 
Posts: 4372
Joined: 2014-12-13 @ 14:24

Re: IBM Music Feature Card/Yamaha FB-01

Postby jal » 2019-3-15 @ 15:08

Really cool!
User avatar
jal
Member
 
Posts: 497
Joined: 2004-1-02 @ 15:30
Location: Amersfoort, Netherlands

PreviousNext

Return to DOSBox Development

Who is online

Users browsing this forum: No registered users and 2 guests