<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
Hello Albert,<br>
I hope you are doing well.<br>
<br>
As suggested by Jonathan, I'm knocking to your door. Other
contributors are obviously the welcome!<br>
<br>
1. PB: So, let's recap once again my issue under -ONLY- GNU/Linux
when sending Big MIDI Bulk Dump; i.e. -ONLY- when > several 100s
bytes (using the same & well recorded Big MIDI Bulk Dump file
with my YESXR project under Purr Data 2.15.2).<br>
Under Windows 10 it's okay for both RECORDing/SENDing (whatever the
Bulk Dump sizes are), -AND- even under GNU/Linux but for Small MIDI
Bulk Dump; i.e. -ONLY- when < few 100s bytes.<br>
YESXR was also tested by other people (alpha testers) under Windows
10 with different Yamaha Electones and it's working like a charm,
but no other testers under GNU/Linux or macOS.<br>
<br>
Note: This issue is not really new as it was already discussed about
one year ago when sending Big MIDI Bulk Dump > several 100s
bytes. At that time doing the same with MDR-E+, one of my other
& first projects, Purr Data was either totally freezing or
purely closing itself, which seems to be anymore the case now with
the latest version of Purr Data.<br>
<br>
2. I have written a workaround / shell script under GNU/Linux
putting in music my here below 'amidi' tests (my 2021/03/06 email).<br>
It's also working like a charm for both RECORDing/SENDing Very Big
MIDI Bulk Dump > several 10,000s bytes.<br>
This shell script is available <a moz-do-not-send="true"
href="https://www.linuxrouen.fr/wp/yamaha-electone-sysex-recorder-yesxr/">HERE</a>.<br>
So, we can eliminate from my PB picture: my Yamaha Electone HS-6
organ + my 2x MIDI/USB Interfaces + my HP PC + my GNU/Linux OSs
(Linux Mint & Manjaro Linux) AWA my YESXR project as it's
working pretty well under Windows 10 with different Yamaha Electones
+ MIDI/USB I/Fs + PCs.<br>
<br>
3. Accordingly to my investigations, under GNU/Linux & Purr Data
(even Pd Vanilla) the issue seems to be between the Output of
[midiout] & the INput and/or OUTput of the used ALSA MIDI driver
/ API (both not accessible by a standard user).<br>
Unfortunately for me, my knowledge in this specific area is to poor
to be able to fix by myself the reported problem.<br>
<br>
NOTE: Under GNU/Linux the only real difference I'm seeing between my
YESXR (shell script) and YESXR (Purr Data) is that with the last-one
we are obliged to use a MIDI patchbay like QjackCtl or Patchage or
AconnectGui.<br>
- And if the issue was the "interfacing" between Purr Data's MIDI
API & the MIDI Patchbay?!<br>
<br>
Tell me what else do you need.<br>
Thanks a lot.<br>
<div class="moz-signature">- - - - - - - - - -<br>
Best, Joseph<br>
- - - - - - - - - -<br>
</div>
<div class="moz-cite-prefix"><br>
Le 06/03/2021 à 20:02, Jonathan Wilkes a écrit :<br>
</div>
<blockquote type="cite"
cite="mid:CAOA7yC7F+-GQQ7G4s+tFRLx9fh53k0O9Y2maeoNWUG5gwuFBug@mail.gmail.com">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<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" moz-do-not-send="true">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="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="nowrap"
align="RIGHT">Date : </th>
<td>Fri, 5 Mar 2021 18:14:29 +0100</td>
</tr>
<tr>
<th valign="BASELINE" nowrap="nowrap"
align="RIGHT">De : </th>
<td>Linux ROUEN Normandie <a
href="mailto:linux.rouen@free.fr"
target="_blank" moz-do-not-send="true"><linux.rouen@free.fr></a></td>
</tr>
<tr>
<th valign="BASELINE" nowrap="nowrap"
align="RIGHT">Pour : </th>
<td>l2ork-dev <a
href="mailto:l2ork-dev@disis.music.vt.edu"
target="_blank" moz-do-not-send="true"><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:part5.7EC4134F.C4EADC86@free.fr"
alt="YESXR SysEx-Out Test2" class="" 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:part6.BE279C15.B9EC1C43@free.fr"
alt="YESXR SysEx-Out Test3" class="" 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:part7.F889CE1D.A352C1EF@free.fr"
alt="Cyclone External History" class="" 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" moz-do-not-send="true">L2Ork-dev@disis.music.vt.edu</a><br>
<a href="https://disis.music.vt.edu/listinfo/l2ork-dev"
rel="noreferrer" target="_blank" moz-do-not-send="true">https://disis.music.vt.edu/listinfo/l2ork-dev</a></blockquote>
</div>
</div>
<br>
</blockquote>
</body>
</html>