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