<div dir="ltr"><div>Thanks for the detailed report.</div><div><br></div><div>I think Albert and others know a bit more about MIDI than I do. But <br></div><div>I'll comb through your report when I get a chance.</div><div><br></div><div>Best,</div><div>Jonathan<br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sat, Mar 6, 2021 at 5:54 AM Linux ROUEN Normandie <<a href="mailto:linux.rouen@free.fr">linux.rouen@free.fr</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<div>
To try making my point clearer.<br>
I include hereafter additional tests I have conducted during the
last weeks using 'amidi' (part of alsa-utils-1.2.2) with the same
MIDI setup than in my previous email, except of course Purr Data...<br>
<br>
1- joe@mint20:~$ amidi -l<br>
Dir Device Name<br>
IO hw:1,0,0 MIDISPORT 2x2 Anniv MIDI 1<br>
IO hw:1,0,1 MIDISPORT 2x2 Anniv MIDI 2<br>
<br>
2- RECEIVing Big MIDI Bulk Data -FROM- my Electone HS-6<br>
#!/bin/bash<br>
# Yamaha Electone HX/HS Series => ALL-RAM Data (Bulk Dump) =>
PC<br>
amidi -p hw:1,0,0 -r hs6-dump.xram -t 1 -i 500 -S F043707010F7<br>
# 1- Sends the MIDI command "Request-HX/HS-To-Send ALL-RAM"
(F0h...10...F7h),<br>
# 2- Saves the received ALL-RAM Data from Electone in file
"hs6-dump.xram" on PC, and<br>
# 3- Stops recording after the Electone has finished sending data
to the PC (when no data has been received for one second).<br>
# NB: -S MUST be after -r, if not the beginning of the SysEx Data
recorded is Missed!<br>
Okay, it's working like a charm like with Purr Data!<br>
<br>
3- I reset my HS-6 to factory default settings; i.e. cleaning all
user settings and data.<br>
<br>
4- SENDing MIDI Bulk Data -TO- my Electone HS-6<br>
#!/bin/bash<br>
# PC => ALL-RAM Data (Bulk Dump) => Yamaha Electone HX/HS
Series<br>
amidi -p hw:1,0,0 -S F043707020F7 -i 100<br>
amidi -p hw:1,0,0 -s hs6-dump.xram -i 100<br>
# 1- Sends the MIDI command "Request-HX/HS-To-Receive ALL-RAM"
(F0h...20...F7h), and<br>
# 2- Sends ALL-RAM Data in file "hs6-dump.xram" from PC to
Electone, with 100 milliseconds delay in between each SysEx message.<br>
# NB: -S and -s MUST be on 2 separate command lines, if not Syntax
Error!<br>
OKAY, it's working like a charm, quite the contrary of Purr Data
which is not working at all in this case! See my here below email.<br>
<br>
5- So for me, there is a Big Bug in Purr Data regarding the
management of SENDing Big MIDI Bulk Data under GNU/Linux, at least
with Linux Mint & Manjaro Linux.<br>
<br>
<div>Best, Joseph<br>
<br>
-------- Message transféré --------
<table cellspacing="0" cellpadding="0" border="0">
<tbody>
<tr>
<th valign="BASELINE" nowrap align="RIGHT">Sujet :
</th>
<td>MIDI SysEx (long Bulk Dump) - Big Bug when SENDING from
Purr Data 2.15.2 ONLY under GNU/Linux</td>
</tr>
<tr>
<th valign="BASELINE" nowrap align="RIGHT">Date : </th>
<td>Fri, 5 Mar 2021 18:14:29 +0100</td>
</tr>
<tr>
<th valign="BASELINE" nowrap align="RIGHT">De : </th>
<td>Linux ROUEN Normandie <a href="mailto:linux.rouen@free.fr" target="_blank"><linux.rouen@free.fr></a></td>
</tr>
<tr>
<th valign="BASELINE" nowrap align="RIGHT">Pour : </th>
<td>l2ork-dev <a href="mailto:l2ork-dev@disis.music.vt.edu" target="_blank"><l2ork-dev@disis.music.vt.edu></a></td>
</tr>
</tbody>
</table>
<br>
<br>
<b>Hello Folks,</b><br>
<div><br>
<b>1- Problem -only- under GNU/Linux; i.e. here Linux Mint 20.1
(Ubuntu base) and Manjaro Linux 20.2 (Arch base)</b><br>
I have a new major MIDI issue with Purr Data 2.15.2 regarding
the handling of BIG Bulk Dump (not below +/- 100 bytes -but
only- when higher from +/- 100 up to few 10,000s bytes), and
-only in one way-; i.e. MIDI-OUT from Purr Data to the external
equipment.<br>
<br>
Otherwise in both directions (receiving & sending):<br>
- Under Windows 10, MIDI Messages & SysEx data (up to few
10,000s bytes) are working pretty well,<br>
- Awa under GNU/Linux just for MIDI messages (notes, PC &
CC, etc.) and small Bulk Dump (less than +/- 100 bytes).<br>
<br>
I'm using the same:<br>
- PC / Laptop HP Pavilion DV8-1190ef (CPU Intel Core i7 4x2 @
1,6 GHz - RAM 8 GB) - 11 years old,<br>
- YESXR (Yamaha Electone SysEx Recorder) project (pure MIDI - no
Audio/DSP) built with Purr Data v.2.15.2 under GNU/Linux &
Windows,<br>
- MIDI/USB I/Fs / M-Audio (MidiMan) MidiSport Uno (1x1) &
MidiSport 2x2 Anniversary (both class-compliant operation), and<br>
- Yamaha Electone HS-6 (MIDI organ but not GM compliant which is
not an issue for just SysEx Bulk Dump).<br>
<br>
My YESXR project is targeting the Bulk Dump management of Yamaha
vintage Electone HX/HS/US/EL Series (32x organ models marketed
between 1986 and 2001).<br>
<br>
<b>2- Under GNU/Linux when sending big Bulk Dump</b><br>
After a lot of tests and investigations, it seems to me there is
a kind of big bug somewhere between the [midiout] and the
OS-MIDI-PORT (i.e. before the MIDI/USB I/F). This is true under
both Purr Data 2.15.2 (with its default libraries) awa Pd
Vanilla 0.50-2 (Mint) / 0.51-4 (Manjaro) using ALSA MIDI with
patchbays like QjackCtl 0.50/0.90 or Patchage 1.0.0/1.0.2 or
AconnectGui 0.9.0.<br>
<br>
<img src="cid:17808ea3bd06943c2221" alt="YESXR SysEx-Out
Test2" width="1920" height="1080"><br>
<br>
<b> Explanation & comments:</b><br>
In the above screen capture (Linux Mint 20.1), I'm sending back
an FMP (Full Music Programmer) Bulk Dump to my Electone HS-6.<br>
[print sx-out] is connected to the ouput of [seq] which is well
sending the ~ 19,000 bytes of the FMP file (see the console
output - checked line by line with no error message), but it's
not received by my Electone which freezes during this procedure
(I repeat -only- under GNU/Linux and not under Windows 10!).<br>
Helped by MidiSnoop (note: it's not displaying the SysEx's F0
& F7h), I was able to determine that YESXR was only able to
send the initial (small) Request-to-Receive "F0, 43, 70, 70, 23,
F7h" (43 70 70 23 - line #1 in MidiSnoop) to my Electone but not
the next FMP big Bulk Dump "F0, ..., ..., ..., F7h" (~ 19,000
bytes).<br>
Sending again something from YESXR unblocks the situation, e.g.
a burst of MIDI notes (using the YESXR's TEST MIDI Note button).
But this notes burst rather than starting as expected with 'Midi
On, Channel 1' is beginning with a 'SysEx Bulk Dump' (line #2 in
MidiSnoop) and then only sending the 'MIDI notes burst', like if
this (part of) SysEx was stored somewhere. In add this 'stored
somewhere Sysex Bulk Dump' is only 514 bytes rather than the
whole ~ 19,000 expected bytes. It's very strange!<br>
Note that the [print] objects in YESXR are only used for
debugging purpose and are not part of the application itself.<br>
<br>
<b>3- Simplified test patch</b><br>
I have build a simplified patch of my YESXR just for testing
purpose and the issue is still the same under -only- GNU/Linux
when trying to send big Bulk Dump (receiving is still okay).<br>
And under Windows 10, this simplified patch is working as good
as YESXR for both receiving & sending big Bulk Dump (SysEx).<br>
<br>
<img src="cid:17808ea3bd16951d9a32" alt="YESXR SysEx-Out
Test3" width="1516" height="706"><br>
<br>
The above screen capture has been done under Windows 10 v.20H2.<br>
<br>
<b>4- Questions</b><br>
I'm mainly using GNU/Linux and much less Windows (but I have to
pay attention to it as the majority of PC users are still with
this OS). I cannot test under macOS as I don't own an Apple (to
much expensive for my wallet).<br>
<br>
<b> Q1:</b> Under GNU/Linux when sending big MIDI Bulk Dump, is
there a hidden conflict with an API or an API which is not
working properly / has some kind of limitations?<br>
<br>
<b>Q2:</b> Do any Purr Data / Pd Vanilla users have faced to
such kind of MIDI SysEx bug under GNU/Linux? Yes! And what was
the fix?<br>
<br>
This new problem is really getting me crazy.<br>
Any help, suggestion and/or guidance are more than the welcome.<br>
Thanks a lot.<br>
<br>
<b>5- Cyclone - A side note</b><br>
Purr Data v.2.15.2 (with Pd engine 0.48-0) is using an outdated
version of the Cyclone external (a set of Pure Data objects
cloned from Cycling'74 Max/MSP). Purr Data still carries a very
old Cyclone v.0.2 (compatible only with ~ Max 4.0.x) which is
more than 5 years old and on its own is not yet fully ported to
Purr Data.<br>
Currently Cyclone is in v.0.5-5 (compatible with ~ Max 7.3.5)
released on November 25th 2020 (needs at least Pd Vanilla engine
0.51-3), so Purr Data is incompatible with it.<br>
<br>
<img src="cid:17808ea3bd1d3002aab3" alt="Cyclone
External History" width="695" height="804"><br>
<br>
- - - - - - - - - - - - - - - - - - - -<br>
Best,<br>
<b>Joseph Gastelais</b><br>
- - - - - - - - - - - - - - - - - - - -<br>
</div>
</div>
</div>
_______________________________________________<br>
L2Ork-dev mailing list<br>
<a href="mailto:L2Ork-dev@disis.music.vt.edu" target="_blank">L2Ork-dev@disis.music.vt.edu</a><br>
<a href="https://disis.music.vt.edu/listinfo/l2ork-dev" rel="noreferrer" target="_blank">https://disis.music.vt.edu/listinfo/l2ork-dev</a></blockquote></div></div>