Old 08-19-2018, 07:55 AM   #1
zacki
Human being with feelings
 
zacki's Avatar
 
Join Date: Feb 2013
Location: Germany
Posts: 239
Default How fast is OSCII-bot?

I mean, is OSCII-bot able to receive three or four SysEx messages within 1ms?

Attached is a screenshot of MIDIOX where you can see thirteen 14Byte messages transmitted very fast from a Yamaha 01V96 console. Also attached is a screenshot of my debug output where messages got lost two times, although the relevant messages were displayed in MIDIOX. Before I go further with this project, I have to know if this problem occurs because of my beginner coding or if these are the limits of OSCII-bot. Relevant code is in the range of line 134 to 203 of my script.

Thanks in advance!
Attached Images
File Type: png 13SysExMessages.PNG (20.9 KB, 563 views)
File Type: png LostMessages1.png (15.9 KB, 586 views)
Attached Files
File Type: txt Yamaha 01V96 OSC-Gateway v03.txt (14.0 KB, 573 views)
__________________
Some of my favourite posts: 1 2 3
zacki is offline   Reply With Quote
Old 08-20-2018, 11:20 AM   #2
zacki
Human being with feelings
 
zacki's Avatar
 
Join Date: Feb 2013
Location: Germany
Posts: 239
Default

No one? askjf?
__________________
Some of my favourite posts: 1 2 3
zacki is offline   Reply With Quote
Old 08-21-2018, 01:57 AM   #3
goldenarpharazon
Human being with feelings
 
Join Date: Feb 2016
Posts: 189
Default

If you are sending MIDI over a classic serial MIDI cable then you should see no issues if the cable itself is not overloaded.
If you are sending MIDI over USB then anything is perhaps possible with buffers and fast streams.
Here are some suggestions to help:-

- You may be pushing the boundaries of OSCII-bot which has only fairly recently had SYSEX support added. Expect to do your own research since few may have been before you.....

- Add SYSEX traffic incrementally which tips a reliably working implementation into the point of errors happening. Same for adding code.

- Does the behaviour change if you don't look via MIDIOX, thus changing the
timings or if you intentionally load up your CPU?

- Use time_precise() function in log messages to see what is going on in your code
goldenarpharazon is offline   Reply With Quote
Old 08-21-2018, 06:21 AM   #4
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,634
Default

I suppose OSCIIBot will only hit limits speed in very rare cases.

EEL is a compiled language and super fast, as it's designed for realtime audio calculation.

So if you have some not too exotic EEL software in OSCIIBot between USB-Midi and a Network, there should be no practical problem.

-Michael
mschnell is offline   Reply With Quote
Old 08-31-2018, 06:06 AM   #5
zacki
Human being with feelings
 
zacki's Avatar
 
Join Date: Feb 2013
Location: Germany
Posts: 239
Default

Thank you goldenarpharazon and mschnell

Quote:
Originally Posted by goldenarpharazon View Post
If you are sending MIDI over a classic serial MIDI cable then you should see no issues if the cable itself is not overloaded.
If you are sending MIDI over USB then anything is perhaps possible with buffers and fast streams.
Here are some suggestions to help:-
SysEx messages are only sent/received via USB. Using the consoles 5-pole MIDI connectors and SysEx is not possible. I didn't know that before. (So, my final plan to use an Arduino µC as "gateway" are foiled anyways...)

Quote:
Originally Posted by goldenarpharazon View Post
- You may be pushing the boundaries of OSCII-bot which has only fairly recently had SYSEX support added. Expect to do your own research since few may have been before you.....
I think I've hit the limits on receiving SysEx with OSCII-bot.

Quote:
Originally Posted by goldenarpharazon View Post
- Add SYSEX traffic incrementally which tips a reliably working implementation into the point of errors happening. Same for adding code.
Hm... Currently I'm not sure if I want to invest more time when these are the limits of OSCII-bot. My plan was also to use the console meter data and then there's much more data to process.

Quote:
Originally Posted by goldenarpharazon View Post
- Does the behaviour change if you don't look via MIDIOX, thus changing the
timings or if you intentionally load up your CPU?
That's what I thought at first, too. But it makes no difference if MIDIOX is open or not.

Quote:
Originally Posted by goldenarpharazon View Post
- Use time_precise() function in log messages to see what is going on in your code
time_precise() shows that there are only a few µs between the messages (see screenshot). But one time there's a step of several ms! I think that's the point when full receive often fails.

Quote:
I suppose OSCIIBot will only hit limits speed in very rare cases.

EEL is a compiled language and super fast, as it's designed for realtime audio calculation.

So if you have some not too exotic EEL software in OSCIIBot between USB-Midi and a Network, there should be no practical problem.
I agree on sending (see screenshot) SysEx but not on receiving.

Time between Rx messages:


Time between Tx messages from OSCII-bot:
__________________
Some of my favourite posts: 1 2 3
zacki is offline   Reply With Quote
Old 09-02-2018, 06:38 AM   #6
goldenarpharazon
Human being with feelings
 
Join Date: Feb 2016
Posts: 189
Default

Is it definitely OSCii-bot?
The 01V96 manual contains the following where Yamaha perhaps suggest the device is a midi sysex brute. Quoting from parts of the manual

"Some of the data transmitted from the 01V96 to the sequence software may occasionally drop out during Bulk Dump transmission. To avoid this, we recommend that you use the included Studio Manager software to store 01V96 data to an external device."

INTERVAL
This parameter specifies the interval between data packets during bulk transmission in 50 millisecond steps. If the external device drops part of the bulk data, increase this parameter value."

From the MIDIOX millisecond timestamps it is clear that the 01V96 is throwing out SYSEX bytes at high rate. So it might help to put MIDIOX into the signal chain and experiment with its buffers? See http://www.midiox.com/cgi-bin/yabb/Y...num=1045021270

Last edited by goldenarpharazon; 09-05-2018 at 01:31 PM. Reason: Added MIDIOX buffer observation
goldenarpharazon is offline   Reply With Quote
Old 09-02-2018, 01:20 PM   #7
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,634
Default

Quote:
Originally Posted by zacki View Post
(So, my final plan to use an Arduino µC as "gateway" are foiled anyways...)
I don't know about Arduino, but any µC system that can do USB could be enabled to do USB Midi - even SysEx.

A chip I know I would be able to do that with is a PIC32. But a Linux system like a RasPI 3 supposedly would be easier to be handled.

-Michael

Last edited by mschnell; 09-12-2018 at 12:50 PM.
mschnell is offline   Reply With Quote
Old 09-02-2018, 01:24 PM   #8
mschnell
Human being with feelings
 
mschnell's Avatar
 
Join Date: Jun 2013
Location: Krefeld, Germany
Posts: 14,634
Default

Quote:
Originally Posted by zacki View Post
I agree on sending (see screenshot) SysEx but not on receiving.
Supposedly the most likely limit to be hit is imposed by logging, not by receiving itself.

-Michael
mschnell is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -7. The time now is 07:53 PM.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.