Midi Feedback for "monitoring purposes"

8 posts / 0 new
Last post
SAM CA
SAM CA's picture
Midi Feedback for "monitoring purposes"

I've connected the FCB1010 to the computer via the USB Uno cable and enabled it as an input and output in the midi device dialog box. (Thru output device set to none) Now I want to check the connection to make sure there is a successful communication between the FCB and FCB Manager.

I have both Midi input & output meters windows (FCB Manager) open side by side. I move the Expression pedal on the real FCB and I see signal activity on the Midi input meters window on (channel 1) . I guess that means Midi Out (FCB1010) to Midi In (FCB Manager) is ok.

Is there a way to test the signal on the output meters window? I thought maybe "midi feedback" loop could possibly be used for testing the signal flow out from FCB Manager to the FCB1010. If I assign the 'Thru output device' in the midi devices dialog box to "the USB Uno" , now both input and output meters window register signal activity. Does this count for testing in this case at all? or I would have to send a SysEx file from FCB manager to the FCB1010 to see if the connection works this way as well? 

 

Mark van den Berg
Mark van den Berg's picture

FCB1010 Manager's Thru facility is useless for monitoring MIDI output sent by FCB1010 Manager:
The Thru facility sends the data received at a MIDI input device to a MIDI output device.
Instead, what you want here is to monitor a MIDI output device (namely the one FCB1010 Manager is sending data to), so you'll have to "listen" at the other (receiving) end of that MIDI output device.

The easiest and usually best way to do this is via a "virtual MIDI device":

I think macOS offers this by default in its MIDI wiring configuration tool.

On Windows you'll have to install a third-party virtual MIDI device (or "MIDI pipe", as I like to call it).
In the Windows XP days, MIDI Yoke was the most popular one, on Windows Vista and later loopMIDI is probably the best one. (See under "MIDI pipes" in section 5 of the FCB1010 Manager manual for further discussion of these devices.)
Thus, you can simply monitor the data FCB1010 Manager sends to a MIDI pipe's "MIDI output device" at the "MIDI input device" that is the other end of that pipe.

Of course you can also redirect outgoing MIDI messages to a MIDI input device via a computer-external loop.
However, this tends to be more impractical, since it is likely to necessitate re-connecting physical MIDI cables before and after the test.
For instance, I suppose that the FCB1010 could serve as a Thru device in this context by enabling its MIDI Merge feature, but of course that could have further, unwanted consequences, in which case you shouldn't forget to clear MIDI Merge after testing, which would of course require restarting the FCB in Global Configuration mode.

Hope this helps,
   Mark.

SAM CA
SAM CA's picture

Thank you Mark,

The section for virtual midi devices is pretty straight forward and well written. Obviously it's easy to test the midi input received by FCB Manager. I was trying to see if I could test the midi output send by FCB Manager without including virtual midi devices (for the sake of inexperienced users). Since there's no feature on the FCB1010 that shows incoming midi activity , the only way would be to just make a small edit in FCB manager and SEND the SysEx data to FCB1010 and test that side of the connection this way.

 

Mark van den Berg
Mark van den Berg's picture

the only way would be to just make a small edit in FCB manager and SEND the SysEx data to FCB1010 and test that side of the connection this way

Maybe I misunderstand your intention here, but wouldn't it be simpler to send your "actually intended" data (SysEx message) immediately, and then test whether at least on of your changes has become functional?
Taking this one step further: this SysEx message could include a preset that only defines a Control Change message with a "harmless" controller number and a value that indicates a unique version number. Then, after sending the SysEx message to the FCB, you can check whether the FCB has accepted the changes by pressing the corresponding pedal and monitoring the output from the FCB via e.g. FCB1010 Manager's "MIDI input messages" window.
Was this what you were thinking of?

SAM CA
SAM CA's picture

Maybe we're saying the same thing here? Assuming we only have FCB Manager, a physical midi cable and of course the FCB1010

I have opened the input/output meters windows and now I'd like to check the signal flow on both sides:

1) FCB1010-----> FCB Manager    This is pretty easy. You press a key switch or move the expression pedal. Midi Input Meters window registers activity. So that side of the connection works ok. (Or you can just program a random PC message (80) to Bank 5 preset 1 or whatever and send a SysEx to FCB and then check it out that way)

2) FCB Manager -------> FCB1010           Just tried this few minutes ago. I assigned Bank 2 Preset 4 to a random PC message (80).......Sent the SysEx message to the FCB1010.......the midi output meters window showed activity on the SysEx fader  and also the FCB1010's LED started blinking, which means it received the data from FCB Manager, so that should also prove: 1) FCB1010 Manager is able to output midi successfuly    2) FCB1010 is able to receive midi

Therefore this side of the connection works as well. Now to be sure we can always go and check the preset button on the FCB1010 to see if we're getting that PC message edit. All this takes like less than 30 seconds...so if this is actually a legit way for testing the two way connection, then there won't be a need for a user to download midi Yoke and such. (for a beginner)

Does this make sense at all?

 

Mark van den Berg
Mark van den Berg's picture

Yes, this makes sense.
However, I can see one or two potential snags:
What happens when the FCB hasn't entered Global Configuration mode correctly (which e.g. occurs when MIDI data is being sent to the FCB's MIDI IN upon startup), and the user then sends a SysEx message?
Does the LED blink then too?
If so, a user can never rely on the LED blinking as an indicator of acceptance by the FCB, and it may be difficult for novices to understand this distinction between reception and acceptance.
And the user would always have to establish whether the FCB has actually accepted the SysEx message, for instance by verifying that the FCB outputs at least one of the changed presets correctly.
However, I'm not sure whether including a dedicated version marker in a setup is a good idea, because strictly speaking there are no safe MIDI messages: there's always a risk that a MIDI message actually does something undesired on the receiving MIDI device
(Incidentally, personally I would probably rather use a Control Change message than a Program Change message for this.)
So might it not be simpler to just instruct people to verify acceptance by pushing at least one of the pedals they've changed, and capturing the output in FCB1010 Manager's "MIDI input messages" window?
In fact, during development of a setup it's usually wise to verify what each particular change achieves anyway, so these checks then function as a version check automatically: if the output is no different from what it was before, one potential cause is that the FCB hasn't accepted the latest SysEx message.

SAM CA
SAM CA's picture

For the first problem (which I think you've mentioned in the manual) I've assumed that the user has already entered the Global configuration and also disabled Merge (included in the video commentary) and then engage the SEND button. It'd be a good idea to throw in this warning nonetheless. The second reason I didn't think of problem #1 as a deal breaker is that this issue can happen anytime even if you have an established working connection and been using the editor for a long time. I looked at it as a midi feekback loop or midi device access conflict type of problem that can be easily avoided.

I do have some questions about the second part of your post :

"However, I'm not sure whether including a dedicated version marker in a setup is a good idea, because strictly speaking there are no safe MIDI messages: there's always a risk that a MIDI message actually does something undesired on the receiving MIDI device
(Incidentally, personally I would probably rather use a Control Change message than a Program Change message for this.)"

I'm not sure what you meant by "Version Marker" here. Are you referring to the firmware version? 

Yes I should NOT have used the word random. Now I see how that can create problems. If a random PC# is selected and that preset gets accedentally triggered while it's connected to a midi device, the wrong parameter can get selected or something. So either use a PC that you know what it actually does with a particular instrument or just use a CC.

"So might it not be simpler to just instruct people to verify acceptance by pushing at least one of the pedals they've changed, and capturing the output in FCB1010 Manager's "MIDI input messages" window?"

Sure! This is what I did. First I sent a SysEx to the FCB1010. For this test I still used PC 80 (Not a random PC). I recorded the output of that preset in FCB Manager's midi input messages window and it took it as PC#79. That's probably due to the numbering system differences between FCB Manager and FCB1010? I also did a 'Restart with default setup' just to start with a clean default set up. (it'll give me a chance to explain this option as well) and then sent a SysEx to FCB Manager. That PC 80 ended up in the exact same place.

All this should prove the connection works both ways then?

 

 

 

Mark van den Berg
Mark van den Berg's picture

I'm not sure what you meant by "Version Marker" here. Are you referring to the firmware version?

No. I'm referring to a "dummy" preset that the user has set up to return an indicator of the version of the setup they've sent to the FCB. If you manually raise this value each time you send a setup to the FCB, you can verify that the FCB has actually accepted that setup. (I was debating whether this is the best way of testing this.)

That's probably due to the numbering system differences between FCB Manager and FCB1010?

The "raw" Program data byte of a MIDI Program Change message has a range of 0-127 (00-7F hexadecimally).
But most hardware and software display Programs as 1-128, by adding 1 to the raw value.
Both the FCB and FCB1010 Manager (in the "Preset" and "Presets" windows) use the "external" numbering.
However, the FCB1010 Manager's "MIDI input messages" window naturally displays the raw MIDI data.

So in a situation where you're using a Program value for version checking, this can be very confusing.
This is one reason why I wouldn't use a Program Change message for version checking.
Another reason is that Program Change messages are relatively dangerous: they could easily lead to (indeed) a program change on any device that happens to "listen in".
Control Change messages don't have this "+1" issue (AFAIK all hardware/software display the range of their value byte as the raw 0-127) and are generally less harmful, which is why I think they're preferable to PC messages, even though they're a byte longer.