<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
    <p>The '413 can do TDM according to the reference manual. <br>
    </p>
    <p>--tr<br>
    </p>
    <br>
    <div class="moz-cite-prefix">On 11/13/2017 9:20 AM, Mikko Helin
      wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:CAJ5nAj4Wov+_psb2wVk=wDE43quOS4RmR4UhExQOrKi5CXFRBQ@mail.gmail.com">
      <div dir="ltr">
        <div class="gmail_default" style="font-family:"trebuchet
          ms",sans-serif"><span
            style="font-family:arial,sans-serif;font-size:12.8px">For
            PCM1681 and it's 8-channel TDM interface you will need some
            STM32F42x part at least. (427)</span><br>
        </div>
        <div class="gmail_default" style="font-family:"trebuchet
          ms",sans-serif"><span
            style="font-family:arial,sans-serif;font-size:12.8px"><br>
          </span></div>
        <div class="gmail_default" style="font-family:"trebuchet
          ms",sans-serif"><span
            style="font-family:arial,sans-serif;font-size:12.8px">--Mikko</span></div>
      </div>
      <div class="gmail_extra"><br>
        <div class="gmail_quote">On Mon, Nov 13, 2017 at 5:32 PM, <span
            dir="ltr"><<a href="mailto:paula@synth.net"
              target="_blank" moz-do-not-send="true">paula@synth.net</a>></span>
          wrote:<br>
          <blockquote class="gmail_quote" style="margin:0 0 0
            .8ex;border-left:1px #ccc solid;padding-left:1ex"><cough><br>
            <br>
            256 Kbyte of SRAM<br>
            <br>
            <a
              href="http://www.st.com/en/microcontrollers/stm32f412ve.html"
              rel="noreferrer" target="_blank" moz-do-not-send="true">http://www.st.com/en/microcont<wbr>rollers/stm32f412ve.html</a><br>
            <br>
            <br>
            Still, that's quite a chunk of RAM.<br>
            <br>
            Paula
            <div class="HOEnZb">
              <div class="h5"><br>
                <br>
                <br>
                On 2017-11-13 15:08, Tom Wiltshire wrote:<br>
                <blockquote class="gmail_quote" style="margin:0 0 0
                  .8ex;border-left:1px #ccc solid;padding-left:1ex">
                  100MHz?! 256mB RAM?! Easy life!! That’s no limitations
                  at all. <insert<br>
                  Monty Python's Yorkshireman paraphrasing here><br>
                  <br>
                  Yes, you could certainly make linear interp work well
                  in such a situation.<br>
                  <br>
                  You’ve got multiply instructions and probably
                  multiply-accumulate too,<br>
                  so linear interp is only a couple of instructions and
                  you don’t have<br>
                  to worry about whether it’s powers of 2 or not
                  (although that does<br>
                  always seem to make life easier…)<br>
                  <br>
                  Tom<br>
                  <br>
                  ==================<br>
                         Electric Druid<br>
                  Synth & Stompbox DIY<br>
                  ==================<br>
                  <br>
                  <blockquote class="gmail_quote" style="margin:0 0 0
                    .8ex;border-left:1px #ccc solid;padding-left:1ex">
                    On 12 Nov 2017, at 22:50, Tim Ressel <<a
                      href="mailto:timr@circuitabbey.com"
                      target="_blank" moz-do-not-send="true">timr@circuitabbey.com</a>>
                    wrote:<br>
                    <br>
                    I meant clean code-wise  :-)<br>
                    <br>
                    Target sample rate is 192KHz. TI makes a super cool
                    8 channel audio dac PCM1681. Target proc is the
                    STM32F412VET6, cortex M4, 256 mB ram, 100MHz.<br>
                    <br>
                    So you think I can get away with linear?  That would
                    make the interop code simple. Since I am filling in
                    256 points in between samples the math is all powers
                    of 2.<br>
                    <br>
                    -t-i-m-b-o-<br>
                    <br>
                    On 11/12/2017 11:28 AM, Richie Burnett wrote:<br>
                    <blockquote class="gmail_quote" style="margin:0 0 0
                      .8ex;border-left:1px #ccc solid;padding-left:1ex">
                      Linear interpolation isn't particularly clean (it
                      isn't band-limited) but can work adequately if you
                      oversample the data in the wave tables first,
                      and/or use a sufficiently high playback
                      sample-rate like 96kHz.  In the case of the
                      former, if the data in the wavetables is already
                      oversampled considerably, then linear
                      interpolation between the points isn't such a bad
                      approximation.  And the latter gives space for the
                      images from the imperfect interpolation to go,
                      before they alias back into the audio band where
                      you will hear them...<br>
                      <br>
                      If you run your playback at 48kHz, then the
                      demands on the interpolator are very stringent. 
                      It should be flat out to 20kHz or thereabouts, and
                      then be something like 80dB or more down by 28kHz
                      if you aren't to hear aliasing back into the audio
                      band below 20kHz.  That's only 8kHz of transition
                      band for the interpolating filter to work it's
                      magic.  However, doubling the playback sample rate
                      to 96kHz, means that you've got all the space
                      between 20kHz and 76 kHz for the interpolating
                      filter's transition band.  That's 7 times as wide,
                      for a mere x2 oversampling during playback, so the
                      demands on the interpolating filter are greatly
                      reduced!<br>
                      <br>
                      -Richie,<br>
                      <br>
                      -----Original Message----- From: Tim Ressel<br>
                      Sent: Sunday, November 12, 2017 6:56 PM<br>
                      To: SYNTH DIY<br>
                      Subject: [sdiy] Wave table interpolation<br>
                      <br>
                      Hi,<br>
                      <br>
                      Another fun one. I've been looking at the WaveEdit
                      software. It looks<br>
                      like it produces waves that are 256 samples by 16
                      bits. Obviously you'll<br>
                      want to interpolate between the samples. Linear
                      interpolation works and<br>
                      is cheap but is brute force and causes lots of
                      distortion. I've looked<br>
                      at cubic interpolation. Is that a viable approach?
                      My app needs 4 tables<br>
                      live at a time so I can interpolate (linearly)
                      between them, so this all<br>
                      has to happen on the fly. Cubic looks a bit math
                      intensive.<br>
                      <br>
                      Thanks!<br>
                      <br>
                    </blockquote>
                    <br>
                    --<br>
                    --Tim Ressel<br>
                    Circuit Abbey<br>
                    <a href="mailto:timr@circuitabbey.com"
                      target="_blank" moz-do-not-send="true">timr@circuitabbey.com</a><br>
                    <br>
                    ______________________________<wbr>_________________<br>
                    Synth-diy mailing list<br>
                    <a href="mailto:Synth-diy@synth-diy.org"
                      target="_blank" moz-do-not-send="true">Synth-diy@synth-diy.org</a><br>
                    <a
                      href="http://synth-diy.org/mailman/listinfo/synth-diy"
                      rel="noreferrer" target="_blank"
                      moz-do-not-send="true">http://synth-diy.org/mailman/l<wbr>istinfo/synth-diy</a><br>
                  </blockquote>
                  <br>
                  <br>
                  ______________________________<wbr>_________________<br>
                  Synth-diy mailing list<br>
                  <a href="mailto:Synth-diy@synth-diy.org"
                    target="_blank" moz-do-not-send="true">Synth-diy@synth-diy.org</a><br>
                  <a
                    href="http://synth-diy.org/mailman/listinfo/synth-diy"
                    rel="noreferrer" target="_blank"
                    moz-do-not-send="true">http://synth-diy.org/mailman/l<wbr>istinfo/synth-diy</a><br>
                </blockquote>
                ______________________________<wbr>_________________<br>
                Synth-diy mailing list<br>
                <a href="mailto:Synth-diy@synth-diy.org" target="_blank"
                  moz-do-not-send="true">Synth-diy@synth-diy.org</a><br>
                <a
                  href="http://synth-diy.org/mailman/listinfo/synth-diy"
                  rel="noreferrer" target="_blank"
                  moz-do-not-send="true">http://synth-diy.org/mailman/l<wbr>istinfo/synth-diy</a><br>
              </div>
            </div>
          </blockquote>
        </div>
        <br>
      </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>
    <br>
    <pre class="moz-signature" cols="72">-- 
--Tim Ressel
Circuit Abbey
<a class="moz-txt-link-abbreviated" href="mailto:timr@circuitabbey.com">timr@circuitabbey.com</a></pre>
  </body>
</html>