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