<html>
  <head>
    <meta content="text/html; charset=windows-1252"
      http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <div class="moz-cite-prefix"><br>
      I only had a handful of devices so far,<br>
      but from those, from different manufacturers,  I started to wonder
      whether actually any device uses the real note-off thing.<br>
      All I ever saw "out there" was note-on with zero velocity.<br>
      <br>
      <br>
      Am 20.03.2020 um 21:37 schrieb ShedSynth:<br>
    </div>
    <blockquote cite="mid:012f01d5fef7$569f5f00$03de1d00$@gmail.com"
      type="cite">
      <meta http-equiv="Content-Type" content="text/html;
        charset=windows-1252">
      <meta name="Generator" content="Microsoft Word 15 (filtered
        medium)">
      <style><!--
/* Font Definitions */
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Calibri;
        panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
        {font-family:Verdana;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman",serif;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:blue;
        text-decoration:underline;}
span.EmailStyle22
        {mso-style-type:personal-reply;
        font-family:"Calibri",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        font-size:10.0pt;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.WordSection1
        {page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
      <div class="WordSection1">
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US">Hi
            all,<o:p></o:p></span></p>
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US">is
            note-off-sent-as-zero-velocity-note-on a thing?<o:p></o:p></span></p>
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US">Who
            would?<o:p></o:p></span></p>
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US">Is
            there a particular instrument/controller that typically
            behaves like this?<o:p></o:p></span></p>
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US">Thanks,<o:p></o:p></span></p>
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US">Al<o:p></o:p></span></p>
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US">(who
            suspects that his MIDI code hasn’t thought of this)<o:p></o:p></span></p>
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif;mso-fareast-language:EN-US"><o:p> </o:p></span></p>
        <div>
          <div style="border:none;border-top:solid #E1E1E1
            1.0pt;padding:3.0pt 0cm 0cm 0cm">
            <p class="MsoNormal"><b><span
                  style="font-size:11.0pt;font-family:"Calibri",sans-serif"
                  lang="EN-US">From:</span></b><span
                style="font-size:11.0pt;font-family:"Calibri",sans-serif"
                lang="EN-US"> Synth-diy
                <a class="moz-txt-link-rfc2396E" href="mailto:synth-diy-bounces@synth-diy.org"><synth-diy-bounces@synth-diy.org></a> <b>On Behalf Of
                </b>Jean-Pierre Desrochers<br>
                <b>Sent:</b> 20 March 2020 01:27<br>
                <b>To:</b> 'dougall' <a class="moz-txt-link-rfc2396E" href="mailto:dougalli@gmail.com"><dougalli@gmail.com></a>;
                <a class="moz-txt-link-abbreviated" href="mailto:eidorian@aladan.net">eidorian@aladan.net</a><br>
                <b>Cc:</b> <a class="moz-txt-link-abbreviated" href="mailto:Synth-diy@synth-diy.org">Synth-diy@synth-diy.org</a><br>
                <b>Subject:</b> Re: [sdiy] MIDI I/O c code..<o:p></o:p></span></p>
          </div>
        </div>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"
            lang="EN-CA">></span><span lang="EN-CA"> Are you handling
            running status and note off sent as zero velocity note on?<o:p></o:p></span></p>
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"
            lang="EN-CA">Yes I handle both.<o:p></o:p></span></p>
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"
            lang="EN-CA">Running status are ignored here,<o:p></o:p></span></p>
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"
            lang="EN-CA">And I consider both NOTE OFF and NOTE ON with
            zero velocity<o:p></o:p></span></p>
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"
            lang="EN-CA">As the end of a note.<o:p></o:p></span></p>
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"
            lang="EN-CA"><o:p> </o:p></span></p>
        <p class="MsoNormal"><span
style="font-size:11.0pt;font-family:"Calibri",sans-serif;color:#1F497D"
            lang="EN-CA"><o:p> </o:p></span></p>
        <p class="MsoNormal"><b><span
              style="font-size:10.0pt;font-family:"Tahoma",sans-serif"
              lang="FR">De :</span></b><span
            style="font-size:10.0pt;font-family:"Tahoma",sans-serif"
            lang="FR"> dougall [<a moz-do-not-send="true"
              href="mailto:dougalli@gmail.com">mailto:dougalli@gmail.com</a>]
            <br>
            <b>Envoyé :</b> 19 mars 2020 21:06<br>
            <b>À :</b> <a moz-do-not-send="true"
              href="mailto:eidorian@aladan.net">eidorian@aladan.net</a><br>
            <b>Cc :</b> Jean-Pierre Desrochers; <a
              moz-do-not-send="true"
              href="mailto:Synth-diy@synth-diy.org">Synth-diy@synth-diy.org</a><br>
            <b>Objet :</b> Re: [sdiy] MIDI I/O c code..<o:p></o:p></span></p>
        <p class="MsoNormal"><span lang="FR-CA"><o:p> </o:p></span></p>
        <div>
          <p class="MsoNormal"><span lang="FR-CA">Are you handling
              running status and note off sent as zero velocity note on?<o:p></o:p></span></p>
          <div>
            <p class="MsoNormal"><span lang="FR-CA"><o:p> </o:p></span></p>
          </div>
          <div>
            <p class="MsoNormal"><span lang="FR-CA">-d<o:p></o:p></span></p>
          </div>
        </div>
        <p class="MsoNormal"><span lang="FR-CA"><o:p> </o:p></span></p>
        <div>
          <div>
            <p class="MsoNormal"><span lang="FR-CA">On Fri, 20 Mar 2020
                at 11:55, <<a moz-do-not-send="true"
                  href="mailto:eidorian@aladan.net">eidorian@aladan.net</a>>
                wrote:<o:p></o:p></span></p>
          </div>
          <blockquote style="border:none;border-left:solid #CCCCCC
            1.0pt;padding:0cm 0cm 0cm
6.0pt;margin-left:4.8pt;margin-top:5.0pt;margin-right:0cm;margin-bottom:5.0pt">
            <div>
              <p><span
                  style="font-size:10.0pt;font-family:"Verdana",sans-serif"
                  lang="FR-CA">Sorry, I don't have example code for you,
                  but here is some analysis that I hope might help point
                  you in the right direction:<o:p></o:p></span></p>
              <p><span
                  style="font-size:10.0pt;font-family:"Verdana",sans-serif"
                  lang="FR-CA">20MHz / 31,250Hz => ~640 instructions
                  per MIDI data bit, or 6,400 instructions per MIDI data
                  byte.  That's quite a lot of instruction execution
                  time between notes, so I'd be checking the
                  efficiency/optimisation of the code.<o:p></o:p></span></p>
              <p><span
                  style="font-size:10.0pt;font-family:"Verdana",sans-serif"
                  lang="FR-CA">How long is it taking to update the
                  analog outputs and do other processing?  If it's
                  updating all 8 CVs via a "slow" protocol like I2C
                  every time it loops then that might be taking a while,
                  and maybe you need a different approach (i.e. only
                  update a CV output when it changes).<o:p></o:p></span></p>
              <p><span
                  style="font-size:10.0pt;font-family:"Verdana",sans-serif"
                  lang="FR-CA">How have you implemented the FIFO?  Do
                  you have locking to ensure the interrupt isn't writing
                  to it while the main loop is updating it?<o:p></o:p></span></p>
              <p><span
                  style="font-size:10.0pt;font-family:"Verdana",sans-serif"
                  lang="FR-CA">Create a debug version that has checks on
                  the FIFO size in the interrupt, and sets an LED on if
                  it overflows, so you can confirm for certainly whether
                  or not that's the problem.<o:p></o:p></span></p>
              <p><span
                  style="font-size:10.0pt;font-family:"Verdana",sans-serif"
                  lang="FR-CA">What I do (with 30+ years of programming
                  experience) is pretend I'm the CPU, and "execute" the
                  code in my head (or on paper if complex) in order to
                  try to work out what unplanned or unexpected things
                  might be happening to cause the problematic behaviour.<o:p></o:p></span></p>
              <p><span
                  style="font-size:10.0pt;font-family:"Verdana",sans-serif"
                  lang="FR-CA">Cheers,<br>
                  A.<o:p></o:p></span></p>
              <div id="gmail-m_5822220122528591338signature">
                <p class="MsoNormal"><span
                    style="font-size:10.0pt;font-family:"Verdana",sans-serif"
                    lang="FR-CA">---<o:p></o:p></span></p>
                <div>
                  <p class="MsoNormal"><span
                      style="font-size:10.0pt;font-family:"Courier
                      New"" lang="FR-CA"> <o:p></o:p></span></p>
                </div>
              </div>
              <p><span
                  style="font-size:10.0pt;font-family:"Verdana",sans-serif"
                  lang="FR-CA"><o:p> </o:p></span></p>
              <p id="gmail-m_5822220122528591338reply-intro"><span
                  style="font-size:10.0pt;font-family:"Verdana",sans-serif"
                  lang="FR-CA">On 20-03-2020 11:14, Jean-Pierre
                  Desrochers wrote:<o:p></o:p></span></p>
              <blockquote style="border:none;border-left:solid #1010FF
                1.5pt;padding:0cm 0cm 0cm
5.0pt;margin-left:0cm;margin-top:5.0pt;margin-right:0cm;margin-bottom:5.0pt">
                <blockquote style="border:none;border-left:solid #1010FF
                  1.5pt;padding:0cm 0cm 0cm
5.0pt;margin-left:0cm;margin-top:5.0pt;margin-right:0cm;margin-bottom:5.0pt">
                  <div>
                    <p class="MsoNormal"><span
                        style="font-size:10.0pt;font-family:"Verdana",sans-serif"
                        lang="FR-CA"> <o:p></o:p></span></p>
                  </div>
                </blockquote>
              </blockquote>
              <blockquote style="border:none;border-left:solid #1010FF
                1.5pt;padding:0cm 0cm 0cm
5.0pt;margin-left:0cm;margin-top:5.0pt;margin-right:0cm;margin-bottom:5.0pt">
                <div id="gmail-m_5822220122528591338replybody1">
                  <div>
                    <div>
                      <p><span
                          style="font-size:10.0pt;font-family:"Verdana",sans-serif"
                          lang="FR-CA">I’m working on a new polyphonic
                          MIDI to CV module (8 voices).<o:p></o:p></span></p>
                      <p><span
                          style="font-size:10.0pt;font-family:"Verdana",sans-serif"
                          lang="FR-CA">So far I did my tests with an old
                          PIC16F887 @ 20Mhz micro I had on hand.<o:p></o:p></span></p>
                      <p><span
                          style="font-size:10.0pt;font-family:"Verdana",sans-serif"
                          lang="FR-CA">I use a USART interrupt driven c
                          function to ‘catch’ all the incoming MIDI
                          bytes.<o:p></o:p></span></p>
                      <p><span
                          style="font-size:10.0pt;font-family:"Verdana",sans-serif"
                          lang="FR-CA">My code is pretty fast, but
                          still, since I only read one MIDI channel
                          (1-16) at the time <br>
                          when I play very fast chords on an external
                          keyboard<o:p></o:p></span></p>
                      <p><span
                          style="font-size:10.0pt;font-family:"Verdana",sans-serif"
                          lang="FR-CA">all the notes are read in the
                          incoming queue but sometimes<o:p></o:p></span></p>
                      <p><span
                          style="font-size:10.0pt;font-family:"Verdana",sans-serif"
                          lang="FR-CA">I get stuck notes or unread
                          ones..<o:p></o:p></span></p>
                      <p><span
                          style="font-size:10.0pt;font-family:"Verdana",sans-serif"
                          lang="FR-CA">Same thing happens when playing
                          MIDI files on Cakewalk SONAR <br>
                          feeding my prototype with  a MIDI cable.<br>
                          The interrupt function grabs each incoming
                          byte and put them<o:p></o:p></span></p>
                      <p><span
                          style="font-size:10.0pt;font-family:"Verdana",sans-serif"
                          lang="FR-CA">In a receive buffer of 32 bytes
                          and the main () reads and treats them in a
                          FIFO manner<o:p></o:p></span></p>
                      <p><span
                          style="font-size:10.0pt;font-family:"Verdana",sans-serif"
                          lang="FR-CA">Later in the main loop.<o:p></o:p></span></p>
                      <p><span
                          style="font-size:10.0pt;font-family:"Verdana",sans-serif"
                          lang="FR-CA"> <o:p></o:p></span></p>
                      <p><em><span
                            style="font-family:"Verdana",sans-serif"
                            lang="FR-CA">-Would a 32Mhz micro do a
                            difference in the USART interrupt reading
                            speed ?</span></em><span
                          style="font-size:10.0pt;font-family:"Verdana",sans-serif"
                          lang="FR-CA"><o:p></o:p></span></p>
                      <p><em><span
                            style="font-family:"Verdana",sans-serif"
                            lang="FR-CA">-And is 32 bytes long enough
                            for the RxBuffer to handle a 6 voices chords
                            ?</span></em><span
                          style="font-size:10.0pt;font-family:"Verdana",sans-serif"
                          lang="FR-CA"><o:p></o:p></span></p>
                      <p><em><span
                            style="font-family:"Verdana",sans-serif"
                            lang="FR-CA">-And finaly I checked the web
                            for a ‘decent’ C code examples</span></em><span
style="font-size:10.0pt;font-family:"Verdana",sans-serif"
                          lang="FR-CA"><o:p></o:p></span></p>
                      <p><em><span
                            style="font-family:"Verdana",sans-serif"
                            lang="FR-CA">  for MIDI reception (MIDI Tx
                            is much easier to implement) with no
                            success..</span></em><i><span
                            style="font-family:"Verdana",sans-serif"
                            lang="FR-CA"><br>
                            <em><span
                                style="font-family:"Verdana",sans-serif"> 
                                ‘Obscure’ Arduino libraries all around
                                with no explainations of its inner code.</span></em></span></i><span
style="font-size:10.0pt;font-family:"Verdana",sans-serif"
                          lang="FR-CA"><o:p></o:p></span></p>
                      <p><span
                          style="font-size:10.0pt;font-family:"Verdana",sans-serif"
                          lang="FR-CA"> <o:p></o:p></span></p>
                      <p><span
                          style="font-size:10.0pt;font-family:"Verdana",sans-serif"
                          lang="FR-CA">Did anybody use good C code
                          available ?<o:p></o:p></span></p>
                      <p><span
                          style="font-size:10.0pt;font-family:"Verdana",sans-serif"
                          lang="FR-CA">JP<o:p></o:p></span></p>
                      <p><span
                          style="font-size:10.0pt;font-family:"Verdana",sans-serif"
                          lang="FR-CA"> <o:p></o:p></span></p>
                      <p><span
                          style="font-size:10.0pt;font-family:"Verdana",sans-serif"
                          lang="FR-CA"><a moz-do-not-send="true"
                            href="mailto:Synth-diy@synth-diy.org"
                            target="_blank">Synth-diy@synth-diy.org</a><o:p></o:p></span></p>
                    </div>
                  </div>
                </div>
                <p class="MsoNormal"><span
                    style="font-size:10.0pt;font-family:"Verdana",sans-serif"
                    lang="FR-CA"><o:p> </o:p></span></p>
                <div>
                  <p class="MsoNormal"><span
                      style="font-size:10.0pt;font-family:"Courier
                      New"" lang="FR-CA">_______________________________________________<br>
                      Synth-diy mailing list<br>
                      <a moz-do-not-send="true"
                        href="mailto:Synth-diy@synth-diy.org"
                        target="_blank">Synth-diy@synth-diy.org</a><br>
                      <a moz-do-not-send="true"
                        href="http://synth-diy.org/mailman/listinfo/synth-diy"
                        target="_blank">http://synth-diy.org/mailman/listinfo/synth-diy</a><o:p></o:p></span></p>
                </div>
              </blockquote>
            </div>
            <p class="MsoNormal"><span lang="FR-CA">_______________________________________________<br>
                Synth-diy mailing list<br>
                <a moz-do-not-send="true"
                  href="mailto:Synth-diy@synth-diy.org" target="_blank">Synth-diy@synth-diy.org</a><br>
                <a moz-do-not-send="true"
                  href="http://synth-diy.org/mailman/listinfo/synth-diy"
                  target="_blank">http://synth-diy.org/mailman/listinfo/synth-diy</a><o:p></o:p></span></p>
          </blockquote>
        </div>
      </div>
      <br>
      <fieldset class="mimeAttachmentHeader"></fieldset>
      <br>
      <pre wrap="">_______________________________________________
Synth-diy mailing list
<a class="moz-txt-link-abbreviated" href="mailto:Synth-diy@synth-diy.org">Synth-diy@synth-diy.org</a>
<a class="moz-txt-link-freetext" href="http://synth-diy.org/mailman/listinfo/synth-diy">http://synth-diy.org/mailman/listinfo/synth-diy</a>
</pre>
    </blockquote>
    <p><br>
    </p>
  </body>
</html>