<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    Aha!!!!!!!!!  Thanks Jesper and Ivan, much appreciated.<br>
    <br>
    Don<br>
    <br>
    <div class="moz-cite-prefix">On 2/13/2019 10.25 AM, Jesper Louis
      Andersen wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAGrdgiWrgYLgAN2bGM_SuUvHhDz6YFF33xv4mC5L0v-KX_Y5SQ@mail.gmail.com">
      <meta http-equiv="content-type" content="text/html; charset=UTF-8">
      <div dir="ltr">
        <div dir="ltr">
          <div dir="ltr">
            <div class="gmail_default"
              style="font-family:arial,helvetica,sans-serif">You can
              remove some of that repetition as well:</div>
            <div class="gmail_default"
              style="font-family:arial,helvetica,sans-serif"><br>
            </div>
            <div class="gmail_default"
              style="font-family:arial,helvetica,sans-serif">notes(N)
              when N < 6  -> 8;<br>
              notes(N) when N < 12 -> 4;<br>
              notes(_N)            -> 2.<br>
              <br>
              makePanPositionL(Notes, rapidlyleft2right, L) ->
              makePanPositionL(Notes, {rapidly, left2right}, L);<br>
              makePanPositionL(Notes, rapidlyright2left, L) ->
              makePanPositionL(Notes, {rapidly, right2left}, L);<br>
              makePanPositionL(Notes, {rapidly, Mode}, L)   -> 2 *
              makePanPositionL(Notes, Mode, L);<br>
              makePanPositionL(Notes, left2right, [Cur|_])  -> Cur +
              notes(Notes);<br>
              makePanPositionL(Notes, right2left, [Cur|_])  -> Cur -
              notes(Notes).<br>
              <br>
            </div>
            <div class="gmail_default"
              style="font-family:arial,helvetica,sans-serif">Though this
              is golfing, so go for the solution you think is most easy
              to read. One advantage of the above model is that it might
              be better if you are toying with altering the scaling. The
              scaling parameters are in one place in this code, so
              alteration is easier. Also, you can simplify by using an
              erlang term rather than an atom via the {rapidly, Mode}
              trick. Or perhaps just {scale, 2, Mode} and then interpret
              this as</div>
            <div class="gmail_default"
              style="font-family:arial,helvetica,sans-serif"><br>
            </div>
            <div class="gmail_default"
              style="font-family:arial,helvetica,sans-serif">mpp(Notes,
              {scale, K, Mode}, L) -></div>
            <div class="gmail_default"
              style="font-family:arial,helvetica,sans-serif">  K *
              mpp(Notes, Mode, L).</div>
            <div class="gmail_default"
              style="font-family:arial,helvetica,sans-serif"><br>
            </div>
          </div>
        </div>
      </div>
      <br>
      <div class="gmail_quote">
        <div dir="ltr" class="gmail_attr">On Wed, Feb 13, 2019 at 4:06
          PM Ivan Uemlianin <<a href="mailto:ivan@llaisdy.com"
            moz-do-not-send="true">ivan@llaisdy.com</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 bgcolor="#FFFFFF"> Some people like it like that.  The
            repitition on the RHS makes me think there's room for more
            streamlining.<br>
            <br>
            <div class="gmail-m_3979435971927316005moz-cite-prefix">On
              13/02/2019 15:02, Donald Steven wrote:<br>
            </div>
            <blockquote type="cite"> Alas, that creates a different form
              of code sprawl, as in:<br>
              <br>
              <div style="color:rgb(255,255,255);background-color:rgb(0,36,81);font-family:Consolas,"Courier New",monospace;font-weight:normal;font-size:16px;line-height:22px;white-space:pre-wrap"><div><span style="color:rgb(187,218,255)">makePanPositionL</span><span style="color:rgb(255,255,255)">(</span><span style="color:rgb(255,157,164)">Notes</span><span style="color:rgb(255,255,255)">, </span><span style="color:rgb(209,241,169)">left2right</span><span style="color:rgb(255,255,255)">,        [</span><span style="color:rgb(255,157,164)">Cur</span><span style="color:rgb(255,255,255)">|</span><span style="color:rgb(255,157,164)">_</span><span style="color:rgb(255,255,255)">]) </span><span style="color:rgb(235,187,255)">when</span><span style="color:rgb(255,255,255)"> </span><span style="color:rgb(255,157,164)">Notes</span><span style="color:rgb(255,255,255)"> </span><span style="color:rgb(153,255,255)"><</span><span style="color:rgb(255,255,255)"> </span><span style="color:rgb(255,197,143)">6</span><span style="color:rgb(255,255,255)">  </span><span style="color:rgb(153,255,255)">-></span><span style="color:rgb(255,255,255)"> </span><span style="color:rgb(255,157,164)">Cur</span><span style="color:rgb(255,255,255)"> </span><span style="color:rgb(153,255,255)">+</span><span style="color:rgb(255,255,255)"> </span><span style="color:rgb(255,197,143)">8</span><span style="color:rgb(255,255,255)">;</span></div><div><span style="color:rgb(187,218,255)">makePanPositionL</span><span style="color:rgb(255,255,255)">(</span><span style="color:rgb(255,157,164)">Notes</span><span style="color:rgb(255,255,255)">, </span><span style="color:rgb(209,241,169)">left2right</span><span style="color:rgb(255,255,255)">,        [</span><span style="color:rgb(255,157,164)">Cur</span><span style="color:rgb(255,255,255)">|</span><span style="color:rgb(255,157,164)">_</span><span style="color:rgb(255,255,255)">]) </span><span style="color:rgb(235,187,255)">when</span><span style="color:rgb(255,255,255)"> </span><span style="color:rgb(255,157,164)">Notes</span><span style="color:rgb(255,255,255)"> </span><span style="color:rgb(153,255,255)"><</span><span style="color:rgb(255,255,255)"> </span><span style="color:rgb(255,197,143)">12</span><span style="color:rgb(255,255,255)"> </span><span style="color:rgb(153,255,255)">-></span><span style="color:rgb(255,255,255)"> </span><span style="color:rgb(255,157,164)">Cur</span><span style="color:rgb(255,255,255)"> </span><span style="color:rgb(153,255,255)">+</span><span style="color:rgb(255,255,255)"> </span><span style="color:rgb(255,197,143)">4</span><span style="color:rgb(255,255,255)">;</span></div><div><span style="color:rgb(187,218,255)">makePanPositionL</span><span style="color:rgb(255,255,255)">(</span><span style="color:rgb(255,157,164)">Notes</span><span style="color:rgb(255,255,255)">, </span><span style="color:rgb(209,241,169)">left2right</span><span style="color:rgb(255,255,255)">,        [</span><span style="color:rgb(255,157,164)">Cur</span><span style="color:rgb(255,255,255)">|</span><span style="color:rgb(255,157,164)">_</span><span style="color:rgb(255,255,255)">])                 </span><span style="color:rgb(153,255,255)">-></span><span style="color:rgb(255,255,255)"> </span><span style="color:rgb(255,157,164)">Cur</span><span style="color:rgb(255,255,255)"> </span><span style="color:rgb(153,255,255)">+</span><span style="color:rgb(255,255,255)"> </span><span style="color:rgb(255,197,143)">2</span><span style="color:rgb(255,255,255)">.</span></div><div><span style="color:rgb(187,218,255)">makePanPositionL</span><span style="color:rgb(255,255,255)">(</span><span style="color:rgb(255,157,164)">Notes</span><span style="color:rgb(255,255,255)">, </span><span style="color:rgb(209,241,169)">right2left</span><span style="color:rgb(255,255,255)">,        [</span><span style="color:rgb(255,157,164)">Cur</span><span style="color:rgb(255,255,255)">|</span><span style="color:rgb(255,157,164)">_</span><span style="color:rgb(255,255,255)">]) </span><span style="color:rgb(235,187,255)">when</span><span style="color:rgb(255,255,255)"> </span><span style="color:rgb(255,157,164)">Notes</span><span style="color:rgb(255,255,255)"> </span><span style="color:rgb(153,255,255)"><</span><span style="color:rgb(255,255,255)"> </span><span style="color:rgb(255,197,143)">6</span><span style="color:rgb(255,255,255)">  </span><span style="color:rgb(153,255,255)">-></span><span style="color:rgb(255,255,255)"> </span><span style="color:rgb(255,157,164)">Cur</span><span style="color:rgb(255,255,255)"> </span><span style="color:rgb(153,255,255)">-</span><span style="color:rgb(255,255,255)"> </span><span style="color:rgb(255,197,143)">8</span><span style="color:rgb(255,255,255)">;</span></div><div><span style="color:rgb(187,218,255)">makePanPositionL</span><span style="color:rgb(255,255,255)">(</span><span style="color:rgb(255,157,164)">Notes</span><span style="color:rgb(255,255,255)">, </span><span style="color:rgb(209,241,169)">right2left</span><span style="color:rgb(255,255,255)">,        [</span><span style="color:rgb(255,157,164)">Cur</span><span style="color:rgb(255,255,255)">|</span><span style="color:rgb(255,157,164)">_</span><span style="color:rgb(255,255,255)">]) </span><span style="color:rgb(235,187,255)">when</span><span style="color:rgb(255,255,255)"> </span><span style="color:rgb(255,157,164)">Notes</span><span style="color:rgb(255,255,255)"> </span><span style="color:rgb(153,255,255)"><</span><span style="color:rgb(255,255,255)"> </span><span style="color:rgb(255,197,143)">12</span><span style="color:rgb(255,255,255)"> </span><span style="color:rgb(153,255,255)">-></span><span style="color:rgb(255,255,255)"> </span><span style="color:rgb(255,157,164)">Cur</span><span style="color:rgb(255,255,255)"> </span><span style="color:rgb(153,255,255)">-</span><span style="color:rgb(255,255,255)"> </span><span style="color:rgb(255,197,143)">4</span><span style="color:rgb(255,255,255)">;</span></div><div><span style="color:rgb(187,218,255)">makePanPositionL</span><span style="color:rgb(255,255,255)">(</span><span style="color:rgb(255,157,164)">Notes</span><span style="color:rgb(255,255,255)">, </span><span style="color:rgb(209,241,169)">right2left</span><span style="color:rgb(255,255,255)">,        [</span><span style="color:rgb(255,157,164)">Cur</span><span style="color:rgb(255,255,255)">|</span><span style="color:rgb(255,157,164)">_</span><span style="color:rgb(255,255,255)">])                 </span><span style="color:rgb(153,255,255)">-></span><span style="color:rgb(255,255,255)"> </span><span style="color:rgb(255,157,164)">Cur</span><span style="color:rgb(255,255,255)"> </span><span style="color:rgb(153,255,255)">-</span><span style="color:rgb(255,255,255)"> </span><span style="color:rgb(255,197,143)">2</span><span style="color:rgb(255,255,255)">.</span></div><div><span style="color:rgb(187,218,255)">makePanPositionL</span><span style="color:rgb(255,255,255)">(</span><span style="color:rgb(255,157,164)">Notes</span><span style="color:rgb(255,255,255)">, </span><span style="color:rgb(209,241,169)">rapidlyleft2right</span><span style="color:rgb(255,255,255)">, [</span><span style="color:rgb(255,157,164)">Cur</span><span style="color:rgb(255,255,255)">|</span><span style="color:rgb(255,157,164)">_</span><span style="color:rgb(255,255,255)">]) </span><span style="color:rgb(235,187,255)">when</span><span style="color:rgb(255,255,255)"> </span><span style="color:rgb(255,157,164)">Notes</span><span style="color:rgb(255,255,255)"> </span><span style="color:rgb(153,255,255)"><</span><span style="color:rgb(255,255,255)"> </span><span style="color:rgb(255,197,143)">6</span><span style="color:rgb(255,255,255)">  </span><span style="color:rgb(153,255,255)">-></span><span style="color:rgb(255,255,255)"> </span><span style="color:rgb(255,157,164)">Cur</span><span style="color:rgb(255,255,255)"> </span><span style="color:rgb(153,255,255)">+</span><span style="color:rgb(255,255,255)"> </span><span style="color:rgb(255,197,143)">16</span><span style="color:rgb(255,255,255)">;</span></div><div><span style="color:rgb(187,218,255)">makePanPositionL</span><span style="color:rgb(255,255,255)">(</span><span style="color:rgb(255,157,164)">Notes</span><span style="color:rgb(255,255,255)">, </span><span style="color:rgb(209,241,169)">rapidlyleft2right</span><span style="color:rgb(255,255,255)">, [</span><span style="color:rgb(255,157,164)">Cur</span><span style="color:rgb(255,255,255)">|</span><span style="color:rgb(255,157,164)">_</span><span style="color:rgb(255,255,255)">]) </span><span style="color:rgb(235,187,255)">when</span><span style="color:rgb(255,255,255)"> </span><span style="color:rgb(255,157,164)">Notes</span><span style="color:rgb(255,255,255)"> </span><span style="color:rgb(153,255,255)"><</span><span style="color:rgb(255,255,255)"> </span><span style="color:rgb(255,197,143)">12</span><span style="color:rgb(255,255,255)"> </span><span style="color:rgb(153,255,255)">-></span><span style="color:rgb(255,255,255)"> </span><span style="color:rgb(255,157,164)">Cur</span><span style="color:rgb(255,255,255)"> </span><span style="color:rgb(153,255,255)">+</span><span style="color:rgb(255,255,255)"> </span><span style="color:rgb(255,197,143)">8</span><span style="color:rgb(255,255,255)">;</span></div><div><span style="color:rgb(187,218,255)">makePanPositionL</span><span style="color:rgb(255,255,255)">(</span><span style="color:rgb(255,157,164)">Notes</span><span style="color:rgb(255,255,255)">, </span><span style="color:rgb(209,241,169)">rapidlyleft2right</span><span style="color:rgb(255,255,255)">, [</span><span style="color:rgb(255,157,164)">Cur</span><span style="color:rgb(255,255,255)">|</span><span style="color:rgb(255,157,164)">_</span><span style="color:rgb(255,255,255)">])                 </span><span style="color:rgb(153,255,255)">-></span><span style="color:rgb(255,255,255)"> </span><span style="color:rgb(255,157,164)">Cur</span><span style="color:rgb(255,255,255)"> </span><span style="color:rgb(153,255,255)">+</span><span style="color:rgb(255,255,255)"> </span><span style="color:rgb(255,197,143)">4</span><span style="color:rgb(255,255,255)">.</span></div><div><span style="color:rgb(187,218,255)">makePanPositionL</span><span style="color:rgb(255,255,255)">(</span><span style="color:rgb(255,157,164)">Notes</span><span style="color:rgb(255,255,255)">, </span><span style="color:rgb(209,241,169)">rapidlyright2left</span><span style="color:rgb(255,255,255)">, [</span><span style="color:rgb(255,157,164)">Cur</span><span style="color:rgb(255,255,255)">|</span><span style="color:rgb(255,157,164)">_</span><span style="color:rgb(255,255,255)">]) </span><span style="color:rgb(235,187,255)">when</span><span style="color:rgb(255,255,255)"> </span><span style="color:rgb(255,157,164)">Notes</span><span style="color:rgb(255,255,255)"> </span><span style="color:rgb(153,255,255)"><</span><span style="color:rgb(255,255,255)"> </span><span style="color:rgb(255,197,143)">6</span><span style="color:rgb(255,255,255)">  </span><span style="color:rgb(153,255,255)">-></span><span style="color:rgb(255,255,255)"> </span><span style="color:rgb(255,157,164)">Cur</span><span style="color:rgb(255,255,255)"> </span><span style="color:rgb(153,255,255)">-</span><span style="color:rgb(255,255,255)"> </span><span style="color:rgb(255,197,143)">16</span><span style="color:rgb(255,255,255)">;</span></div><div><span style="color:rgb(187,218,255)">makePanPositionL</span><span style="color:rgb(255,255,255)">(</span><span style="color:rgb(255,157,164)">Notes</span><span style="color:rgb(255,255,255)">, </span><span style="color:rgb(209,241,169)">rapidlyright2left</span><span style="color:rgb(255,255,255)">, [</span><span style="color:rgb(255,157,164)">Cur</span><span style="color:rgb(255,255,255)">|</span><span style="color:rgb(255,157,164)">_</span><span style="color:rgb(255,255,255)">]) </span><span style="color:rgb(235,187,255)">when</span><span style="color:rgb(255,255,255)"> </span><span style="color:rgb(255,157,164)">Notes</span><span style="color:rgb(255,255,255)"> </span><span style="color:rgb(153,255,255)"><</span><span style="color:rgb(255,255,255)"> </span><span style="color:rgb(255,197,143)">12</span><span style="color:rgb(255,255,255)"> </span><span style="color:rgb(153,255,255)">-></span><span style="color:rgb(255,255,255)"> </span><span style="color:rgb(255,157,164)">Cur</span><span style="color:rgb(255,255,255)"> </span><span style="color:rgb(153,255,255)">-</span><span style="color:rgb(255,255,255)"> </span><span style="color:rgb(255,197,143)">8</span><span style="color:rgb(255,255,255)">;</span></div><div><span style="color:rgb(187,218,255)">makePanPositionL</span><span style="color:rgb(255,255,255)">(</span><span style="color:rgb(255,157,164)">Notes</span><span style="color:rgb(255,255,255)">, </span><span style="color:rgb(209,241,169)">rapidlyright2left</span><span style="color:rgb(255,255,255)">, [</span><span style="color:rgb(255,157,164)">Cur</span><span style="color:rgb(255,255,255)">|</span><span style="color:rgb(255,157,164)">_</span><span style="color:rgb(255,255,255)">])                 </span><span style="color:rgb(153,255,255)">-></span><span style="color:rgb(255,255,255)"> </span><span style="color:rgb(255,157,164)">Cur</span><span style="color:rgb(255,255,255)"> </span><span style="color:rgb(153,255,255)">-</span><span style="color:rgb(255,255,255)"> </span><span style="color:rgb(255,197,143)">4</span><span style="color:rgb(255,255,255)">.</span></div></div>
              <br>
              <br>
              <div class="gmail-m_3979435971927316005moz-cite-prefix">On
                2/13/2019 8.35 AM, Jesper Louis Andersen wrote:<br>
              </div>
              <blockquote type="cite">
                <div dir="ltr">
                  <div dir="ltr">
                    <div dir="ltr">
                      <div class="gmail_default"
                        style="font-family:arial,helvetica,sans-serif">On
                        Wed, Feb 13, 2019 at 1:51 PM Ivan Uemlianin <<a
                          href="mailto:ivan@llaisdy.com" target="_blank"
                          moz-do-not-send="true">ivan@llaisdy.com</a>>
                        wrote:<br>
                      </div>
                    </div>
                    <div class="gmail_quote">
                      <blockquote class="gmail_quote" style="margin:0px
                        0px 0px 0.8ex;border-left:1px solid
                        rgb(204,204,204);padding-left:1ex">This might be
                        cheating but I would avoid the branching
                        altogether if <br>
                        poss., eg:<br>
                        <br>
                             PanPosition = CurrentPanPosition +
                        notes_to_pad(Notes),<br>
                             ...<br>
                        <br>
                             notes_to_pad(N) where N <  6 -> 8;<br>
                             notes_to_pad(N) where N < 12 -> 4;<br>
                             notes_to_pad(_)              -> 2.<br>
                        <br>
                      </blockquote>
                      <div><br>
                      </div>
                      <div>makePanPositionL(Notes, left2right, [Cur|_])
                        when Notes < 6  -> Cur + 8;<br>
                        makePanPositionL(Notes, left2right, [Cur|_])
                        when Notes < 12 -> Cur + 4;<br>
                        makePanPositionL(Notes, left2right,
                        [Cur|_])                 -> Cur + 2.</div>
                      <div><br>
                      </div>
                      <div>
                        <div
                          style="font-family:arial,helvetica,sans-serif"
                          class="gmail_default">You can just lift
                          everything into a pattern match for this piece
                          of code, which is what I think I'd do. It
                          makes the result far more tabular, which in
                          some cases is easier to read. There may be
                          other reasons in the code to not do this, but
                          as it was written, I think I'd pick the above
                          as the solution. YMMV of course.</div>
                        <br>
                      </div>
                    </div>
                  </div>
                </div>
                <br>
                <fieldset
                  class="gmail-m_3979435971927316005mimeAttachmentHeader"></fieldset>
                <pre class="gmail-m_3979435971927316005moz-quote-pre">_______________________________________________
erlang-questions mailing list
<a class="gmail-m_3979435971927316005moz-txt-link-abbreviated" href="mailto:erlang-questions@erlang.org" target="_blank" moz-do-not-send="true">erlang-questions@erlang.org</a>
<a class="gmail-m_3979435971927316005moz-txt-link-freetext" href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank" moz-do-not-send="true">http://erlang.org/mailman/listinfo/erlang-questions</a>
</pre>
              </blockquote>
              <br>
            </blockquote>
            <br>
            <pre class="gmail-m_3979435971927316005moz-signature" cols="72">-- 
============================================================
Ivan A. Uemlianin PhD
Llaisdy

Ymchwil a Datblygu Technoleg Lleferydd
Speech Technology Research and Development

                    <a class="gmail-m_3979435971927316005moz-txt-link-abbreviated" href="mailto:ivan@llaisdy.com" target="_blank" moz-do-not-send="true">ivan@llaisdy.com</a>
                        @llaisdy
                         <a href="http://llaisdy.wordpress.com" target="_blank" moz-do-not-send="true">llaisdy.wordpress.com</a>
              <a href="http://github.com/llaisdy" target="_blank" moz-do-not-send="true">github.com/llaisdy</a>
                     <a class="gmail-m_3979435971927316005moz-txt-link-abbreviated" href="http://www.linkedin.com/in/ivanuemlianin" target="_blank" moz-do-not-send="true">www.linkedin.com/in/ivanuemlianin</a>

                        festina lente
============================================================ </pre>
          </div>
        </blockquote>
      </div>
      <br clear="all">
      <br>
      -- <br>
      <div dir="ltr" class="gmail_signature">J.</div>
    </blockquote>
    <br>
  </body>
</html>