<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:clearspace="http://www.jivesoftware.com/xmlns/clearspace/rss" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>Community: Message List</title>
    <link>http://line6.com/support/index.jspa?view=discussions</link>
    <description>Most recent forum messages</description>
    <language>en</language>
    <pubDate>Sun, 15 Apr 2012 00:35:43 GMT</pubDate>
    <generator>Jive SBS 4.5.7.0 (http://jivesoftware.com/products/clearspace/)</generator>
    <dc:date>2012-04-15T00:35:43Z</dc:date>
    <dc:language>en</dc:language>
    <item>
      <title>Re: Simple Tutorial?</title>
      <link>http://line6.com/support/message/370572?tstart=0#370572</link>
      <description>&lt;!-- [DocumentBodyStart:5daa8118-4cd5-405e-aa7c-26649284183b] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;p&gt;All of the DSP56364 registers are available.&amp;#160; However, I think a couple of the address registers are reserved for interrupt processing in the sample code.&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:5daa8118-4cd5-405e-aa7c-26649284183b] --&gt;</description>
      <pubDate>Sun, 15 Apr 2012 00:35:43 GMT</pubDate>
      <author>support@line6.com</author>
      <guid>http://line6.com/support/message/370572?tstart=0#370572</guid>
      <dc:date>2012-04-15T00:35:43Z</dc:date>
      <clearspace:dateToText>1 year, 2 months ago</clearspace:dateToText>
      <clearspace:objectType>0</clearspace:objectType>
    </item>
    <item>
      <title>Re: Simple Tutorial?</title>
      <link>http://line6.com/support/message/369942?tstart=0#369942</link>
      <description>&lt;!-- [DocumentBodyStart:c0b7ac7c-5adf-4596-ada7-6512cb4ca183] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;p&gt;You don't have to worry about timing for a simple volume pedal.&amp;#160; The processing in the TwoBandStereoEQ sample code happens in one of the sample receive interrupts (called once per sample).&amp;#160; The knob and switch registers are defined at the top of the sample file (Knob_1, Switch_1, etc.).&amp;#160; For debugging, you can also write to the Debug_Read_from_DSP_x registers to display values in the UI.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt; Here are a few simple things to get started:&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Remove the calls (bsr) to Generate_Coeffs and TwoBand_EQ to create a pass-through (see previous reply).&lt;/li&gt;&lt;li&gt;Set Debug_Read_from_DSP_1 to 0x000001 when the effect is on and 0x000000 when the effect is off.&amp;#160; Look for the code that turns LED_Green on/off based on the footswitch.&amp;#160; (Note that the Generate_Coeffs subroutine also writes to the debug registers.)&lt;/li&gt;&lt;li&gt;Mute the signal (e.g., by multiplying input by 0) when the effect is off.&lt;/li&gt;&lt;li&gt;Multiply the signal by the Knob_1 value to create a simple volume pedal.&lt;/li&gt;&lt;/ol&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Once you get those basic things working, you can smooth the volume changes to avoid clicks and zipper noises.&amp;#160; Then add log scaling to give the knob a better response.&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:c0b7ac7c-5adf-4596-ada7-6512cb4ca183] --&gt;</description>
      <pubDate>Thu, 12 Apr 2012 12:09:52 GMT</pubDate>
      <author>support@line6.com</author>
      <guid>http://line6.com/support/message/369942?tstart=0#369942</guid>
      <dc:date>2012-04-12T12:09:52Z</dc:date>
      <clearspace:dateToText>1 year, 2 months ago</clearspace:dateToText>
      <clearspace:replyCount>2</clearspace:replyCount>
      <clearspace:objectType>0</clearspace:objectType>
    </item>
    <item>
      <title>Re: Simple Tutorial?</title>
      <link>http://line6.com/support/message/369856?tstart=0#369856</link>
      <description>&lt;!-- [DocumentBodyStart:317afddd-b689-4100-a4c6-cbea0b96646e] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;p&gt;I'm not aware of any simple tutorials out there, but you could start with the two band stereo EQ sample code.&amp;#160; First build it and download to the pedal.&amp;#160; Once you have that working, strip out the processing code so it is just a pass through.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Here is the code that processes both channels:&lt;/p&gt;&lt;p&gt;&amp;#160;&amp;#160;&amp;#160; ;Process Left Channel&amp;#160;&amp;#160; (left input sample is in a)&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/p&gt;&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; move&amp;#160;&amp;#160;&amp;#160; #&amp;gt;Switch_1,r6&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ; point to x:mem (switch states)&lt;/p&gt;&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; move&amp;#160;&amp;#160;&amp;#160; #&amp;gt;Filter_1_K,r4&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ; point to x:mem (coefficients)&lt;/p&gt;&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; move&amp;#160;&amp;#160;&amp;#160; #&amp;gt;Filter_1_A_Left,r3&amp;#160;&amp;#160;&amp;#160; ; point to y:mem (filter mem) &lt;/p&gt;&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; bsr&amp;#160;&amp;#160;&amp;#160;&amp;#160; TwoBand_EQ&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ; input in a, output in a&lt;/p&gt;&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; move&amp;#160;&amp;#160;&amp;#160; a,y:LeftOutput&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&amp;#160;&amp;#160;&amp;#160; ;Process Right Channel&amp;#160; (r6 is currently pointing to Switch 1)&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/p&gt;&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; move&amp;#160;&amp;#160;&amp;#160; y:RightInput,a&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ; load right input sample in a&lt;/p&gt;&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; move&amp;#160;&amp;#160;&amp;#160; #&amp;gt;Filter_1_K,r4&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ; point to x:mem (coefficients)&lt;/p&gt;&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; move&amp;#160;&amp;#160;&amp;#160; #&amp;gt;Filter_1_A_Right,r3&amp;#160;&amp;#160; ; point to y:mem (filter mem) &lt;/p&gt;&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; bsr&amp;#160;&amp;#160;&amp;#160;&amp;#160; TwoBand_EQ&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ; input in a, output in a&lt;/p&gt;&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; move&amp;#160;&amp;#160;&amp;#160; a,y:RightOutput&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;To make it a pass through, change the above block to:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&amp;#160;&amp;#160;&amp;#160; ;Process Left Channel&amp;#160;&amp;#160; (left input sample is in a)&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/p&gt;&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ; do your own processing here&lt;/p&gt;&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; move&amp;#160;&amp;#160;&amp;#160; a,y:LeftOutput&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&amp;#160;&amp;#160;&amp;#160; ;Process Right Channel&amp;#160; (r6 is currently pointing to Switch 1)&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/p&gt;&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; move&amp;#160;&amp;#160;&amp;#160; y:RightInput,a&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ; load right input sample in a&lt;/p&gt;&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ; do your own processing here&lt;/p&gt;&lt;p&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; move&amp;#160;&amp;#160;&amp;#160; a,y:RightOutput&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Everything under "Common Subroutines" can be deleted (unless you want to use them).&amp;#160; Then start building a simple volume pedal.&amp;#160; Use git/subversion/whatever and commit/checkin frequently so you can back up as soon as you take a wrong turn.&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:317afddd-b689-4100-a4c6-cbea0b96646e] --&gt;</description>
      <pubDate>Thu, 12 Apr 2012 00:05:19 GMT</pubDate>
      <author>support@line6.com</author>
      <guid>http://line6.com/support/message/369856?tstart=0#369856</guid>
      <dc:date>2012-04-12T00:05:19Z</dc:date>
      <clearspace:dateToText>1 year, 2 months ago</clearspace:dateToText>
      <clearspace:objectType>0</clearspace:objectType>
    </item>
    <item>
      <title>Re: Status of this product</title>
      <link>http://line6.com/support/message/346280?tstart=0#346280</link>
      <description>&lt;!-- [DocumentBodyStart:d2c9b881-c6a6-4f5f-a460-c58331bdd948] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;p&gt;The Line 6 store shows 22 blank modules in stock, but if you try to add them to your cart it won't let you:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;"Out of Stock (22 in stock)"&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:d2c9b881-c6a6-4f5f-a460-c58331bdd948] --&gt;</description>
      <pubDate>Sun, 15 Jan 2012 01:27:27 GMT</pubDate>
      <author>support@line6.com</author>
      <guid>http://line6.com/support/message/346280?tstart=0#346280</guid>
      <dc:date>2012-01-15T01:27:27Z</dc:date>
      <clearspace:dateToText>1 year, 5 months ago</clearspace:dateToText>
      <clearspace:replyCount>1</clearspace:replyCount>
      <clearspace:objectType>0</clearspace:objectType>
    </item>
    <item>
      <title>Re: FIR filter: how to use memory?</title>
      <link>http://line6.com/support/message/289998?tstart=0#289998</link>
      <description>&lt;!-- [DocumentBodyStart:b35f0856-32d8-4a14-89b8-59b7b1f82270] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;p&gt;One problem I see is that fir_state is starting at $100.&amp;#160; For modulo 512 addressing, the base address needs to be a multiple of 2^k.&amp;#160; For 512 taps, k=9, so the starting address should be $000 or $200. (For 100 taps, k=7 so 2^k=128 and $100 (256 decimal) is a multiple of that).&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;You can verify that all of your coefficients are loaded by copying the last coefficient from y memory to one of the read-from-DSP debug registers.&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:b35f0856-32d8-4a14-89b8-59b7b1f82270] --&gt;</description>
      <pubDate>Sat, 18 Jun 2011 02:10:37 GMT</pubDate>
      <author>support@line6.com</author>
      <guid>http://line6.com/support/message/289998?tstart=0#289998</guid>
      <dc:date>2011-06-18T02:10:37Z</dc:date>
      <clearspace:dateToText>2 years, 1 day ago</clearspace:dateToText>
      <clearspace:objectType>0</clearspace:objectType>
    </item>
    <item>
      <title>Re: FIR filter: how to use memory?</title>
      <link>http://line6.com/support/message/285631?tstart=0#285631</link>
      <description>&lt;!-- [DocumentBodyStart:b9be1df1-2470-42bc-acf7-9af9b515d52f] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;p&gt;IIRC, you will only be able to 512 taps using MACs with X/Y memory and modulo addressing, because you need to store the coefficients in program memory for initialization.&amp;#160; I describe that approach below, but you also might want to read the coefficients directly from program memory in your FIR (see the "Pitch detection/octave effect" thread for ideas).&amp;#160; &lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;You can allocate arrays in X and Y memory like the following.&amp;#160; For modulo-1024 addressing, each array needs to start at a multiple of 1024 within its address space.&amp;#160; The simplest way to do that is to put them at the beginning of the section.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;p&gt;&lt;span style="font-family: 'courier new', courier;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; org&amp;#160;&amp;#160;&amp;#160;&amp;#160; x:$000&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 'courier new', courier;"&gt;fir_state&amp;#160;&amp;#160;&amp;#160;&amp;#160; ds&amp;#160;&amp;#160;&amp;#160;&amp;#160; 1024&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 'courier new', courier;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;p&gt;&lt;span style="font-family: 'courier new', courier;"&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; org&amp;#160;&amp;#160;&amp;#160;&amp;#160; y:$000&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 'courier new', courier;"&gt;fir_coeffs&amp;#160;&amp;#160;&amp;#160;&amp;#160; ds&amp;#160;&amp;#160;&amp;#160;&amp;#160; 1024&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;/div&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;p&gt;For initializing tables in X or Y memory from program memory, you can define a global data section after the rest of your code:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 'courier new', courier;"&gt;section P_DATA_MEMORY global&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 'courier new', courier;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 'courier new', courier;"&gt;org p:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 'courier new', courier;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 'courier new', courier;"&gt;; Table values&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 'courier new', courier;"&gt;COEFF_0 dc $000000&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 'courier new', courier;"&gt;COEFF_1 dc $000001&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 'courier new', courier;"&gt;.....&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;You need to be careful about using too much program memory - your global data section will get truncated without warning.&amp;#160; (Note that the DSP56k assembler allows you to initialize the coefficients directly in program memory (dc), but it won't work with the TCDDK.)&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;Then in your initialization code, copy it to an address in Y memory:&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;p&gt;&lt;span style="font-family: 'courier new', courier;"&gt;move #COEFF_0,r0&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ; address in program memory&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 'courier new', courier;"&gt;move #fir_coeffs,r4&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ; address in Y memory&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 'courier new', courier;"&gt;do #1024,init_coeffs_end ; repeat for number of entries&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 'courier new', courier;"&gt;move p:(r0)+,y0&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 'courier new', courier;"&gt;move y0,x:(r4)+&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 'courier new', courier;"&gt;init_coeffs_end:&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Also, don't forget to clear the filter state.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Use post-increment addressing to increment the addresses in your FIR loop.&amp;#160; The DSP56K has a modulo addressing mode to implement the delay line; each Rn register has an Mn register that you can set to modulus-1.&amp;#160; See Section 4.5.3 of the DSP56300 Family Manual for more details.&amp;#160; You can find examples of DSP56K FIRs on the web, but the basic idea is something like this (I didn't assemble/test this):&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 'courier new', courier;"&gt;; once during initialization:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;p&gt;&lt;span style="font-family: 'courier new', courier;"&gt;move&amp;#160;&amp;#160;&amp;#160; #fir_state,r0&amp;#160;&amp;#160;&amp;#160;&amp;#160; ; state&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 'courier new', courier;"&gt;move&amp;#160;&amp;#160;&amp;#160; #1023,m0&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ; mod(1024)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 'courier new', courier;"&gt;move&amp;#160;&amp;#160;&amp;#160; #fir_coeffs,r4&amp;#160;&amp;#160;&amp;#160; ; coefficients&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 'courier new', courier;"&gt;move&amp;#160;&amp;#160;&amp;#160; #1023,m4&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ; mod(1024)&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 'courier new', courier;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 'courier new', courier;"&gt;; for each sample:&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 'courier new', courier;"&gt;move&amp;#160;&amp;#160;&amp;#160;&amp;#160; y:LeftInput,x0&amp;#160;&amp;#160;&amp;#160;&amp;#160; ; input sample&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 'courier new', courier;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 'courier new', courier;"&gt;; FIR&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 'courier new', courier;"&gt;clr&amp;#160;&amp;#160;&amp;#160;&amp;#160; a&amp;#160;&amp;#160;&amp;#160; x0,x:(r0)+&amp;#160; y:(r4)+,y0&amp;#160; &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;p&gt;&lt;span style="font-family: 'courier new', courier;"&gt;rep&amp;#160;&amp;#160;&amp;#160;&amp;#160; 1023&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 'courier new', courier;"&gt;mac&amp;#160;&amp;#160;&amp;#160;&amp;#160; x0,y0,a&amp;#160; x:(r0)+,x0&amp;#160; y:(r4)+,y0&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 'courier new', courier;"&gt;macr&amp;#160;&amp;#160;&amp;#160; x0,y0,a&amp;#160; (r0)-&amp;#160;&amp;#160;&amp;#160;&amp;#160; ; round and shift input samples&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 'courier new', courier;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 'courier new', courier;"&gt;move&amp;#160;&amp;#160;&amp;#160;&amp;#160; a,y:RightOutput&amp;#160;&amp;#160; ; output sample&lt;/span&gt;&lt;/p&gt;&lt;/p&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;/div&gt;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:b9be1df1-2470-42bc-acf7-9af9b515d52f] --&gt;</description>
      <pubDate>Sun, 05 Jun 2011 13:19:45 GMT</pubDate>
      <author>support@line6.com</author>
      <guid>http://line6.com/support/message/285631?tstart=0#285631</guid>
      <dc:date>2011-06-05T13:19:45Z</dc:date>
      <clearspace:dateToText>2 years, 2 weeks ago</clearspace:dateToText>
      <clearspace:replyCount>4</clearspace:replyCount>
      <clearspace:objectType>0</clearspace:objectType>
    </item>
    <item>
      <title>Re: Pitch detection/octave effect</title>
      <link>http://line6.com/support/message/273415?tstart=0#273415</link>
      <description>&lt;!-- [DocumentBodyStart:c2e11aa1-b422-4f7e-910b-c57bffba484d] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;p&gt;For initializing tables in X or Y memory from program memory, you can define a global data section after the rest of your code:&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;&lt;p style="padding-left: 30px;"&gt;&lt;span&gt; &lt;/span&gt;&lt;span style="font-family: 'courier new', courier;"&gt;section P_DATA_MEMORY global&lt;/span&gt;&lt;/p&gt;&lt;p style="padding-left: 30px;"&gt;&lt;span style="font-family: 'courier new', courier;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="padding-left: 30px;"&gt;&lt;span style="font-family: 'courier new', courier;"&gt; &lt;/span&gt;&lt;span&gt;&lt;span style="font-family: 'courier new', courier;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'courier new', courier;"&gt;org&lt;/span&gt;&lt;span&gt;&lt;span style="font-family: 'courier new', courier;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'courier new', courier;"&gt;p: &lt;/span&gt;&lt;/p&gt;&lt;p style="padding-left: 30px;"&gt;&lt;span style="font-family: 'courier new', courier;"&gt;&lt;br/&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="padding-left: 30px;"&gt;&lt;span style="font-family: 'courier new', courier;"&gt;; Table values &lt;/span&gt;&lt;span&gt;&lt;span style="font-family: 'courier new', courier;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="padding-left: 30px;"&gt;&lt;span style="font-family: 'courier new', courier;"&gt;CONST_FOO_0&lt;/span&gt;&lt;span&gt;&lt;span style="font-family: 'courier new', courier;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'courier new', courier;"&gt;dc&lt;/span&gt;&lt;span&gt;&lt;span style="font-family: 'courier new', courier;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'courier new', courier;"&gt;$000000&lt;/span&gt;&lt;/p&gt;&lt;p style="padding-left: 30px;"&gt;&lt;span style="font-family: 'courier new', courier;"&gt;CONST_FOO_1&lt;/span&gt;&lt;span&gt;&lt;span style="font-family: 'courier new', courier;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'courier new', courier;"&gt;dc&lt;/span&gt;&lt;span&gt;&lt;span style="font-family: 'courier new', courier;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'courier new', courier;"&gt;$000001&lt;/span&gt;&lt;/p&gt;&lt;p style="padding-left: 30px;"&gt;.....&lt;/p&gt;&lt;div style="padding-left: 30px;"&gt; &lt;/div&gt;&lt;div&gt;The in your initialization code, copy it to an address in X memory:&lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;&lt;p style="padding-left: 30px;"&gt;&lt;span&gt; &lt;/span&gt;&lt;span style="font-family: 'courier new', courier;"&gt;; initialize table&lt;/span&gt;&lt;/p&gt;&lt;p style="padding-left: 30px;"&gt;&lt;span&gt;&lt;span style="font-family: 'courier new', courier;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'courier new', courier;"&gt;move&lt;/span&gt;&lt;span&gt;&lt;span style="font-family: 'courier new', courier;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'courier new', courier;"&gt;#CONST_FOO_0,r0&amp;#160;&amp;#160;&amp;#160; ; address in program memory&lt;/span&gt;&lt;/p&gt;&lt;p style="padding-left: 30px;"&gt;&lt;span&gt;&lt;span style="font-family: 'courier new', courier;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'courier new', courier;"&gt;move&lt;/span&gt;&lt;span&gt;&lt;span style="font-family: 'courier new', courier;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'courier new', courier;"&gt;#foo_table,r3&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ; address in X memory&lt;/span&gt;&lt;/p&gt;&lt;p style="padding-left: 30px;"&gt;&lt;span&gt;&lt;span style="font-family: 'courier new', courier;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'courier new', courier;"&gt;do&lt;/span&gt;&lt;span&gt;&lt;span style="font-family: 'courier new', courier;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'courier new', courier;"&gt;#100,init_table_done ; repeat for number of entries&lt;/span&gt;&lt;/p&gt;&lt;p style="padding-left: 30px;"&gt;&lt;span&gt;&lt;span style="font-family: 'courier new', courier;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'courier new', courier;"&gt;move&lt;/span&gt;&lt;span&gt;&lt;span style="font-family: 'courier new', courier;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'courier new', courier;"&gt;p:(r0)+,x1&lt;/span&gt;&lt;/p&gt;&lt;p style="padding-left: 30px;"&gt;&lt;span&gt;&lt;span style="font-family: 'courier new', courier;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'courier new', courier;"&gt;move&lt;/span&gt;&lt;span&gt;&lt;span style="font-family: 'courier new', courier;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: 'courier new', courier;"&gt;x1,x:(r3)+&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-family: 'courier new', courier;"&gt;init_table_done:&lt;/span&gt;&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Hope that helps.&lt;/p&gt;&lt;/div&gt;&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:c2e11aa1-b422-4f7e-910b-c57bffba484d] --&gt;</description>
      <pubDate>Tue, 03 May 2011 23:45:05 GMT</pubDate>
      <author>support@line6.com</author>
      <guid>http://line6.com/support/message/273415?tstart=0#273415</guid>
      <dc:date>2011-05-03T23:45:05Z</dc:date>
      <clearspace:dateToText>2 years, 1 month ago</clearspace:dateToText>
      <clearspace:replyCount>1</clearspace:replyCount>
      <clearspace:objectType>0</clearspace:objectType>
    </item>
    <item>
      <title>Re: Sample ToneCore effect code, volume preset already written?</title>
      <link>http://line6.com/support/message/239703?tstart=0#239703</link>
      <description>&lt;!-- [DocumentBodyStart:327488b1-a13d-44b3-9895-a3afefc8e48f] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;p&gt;Assembly language is the only practical option to develop code for the ToneCore DSP Development Kit.&amp;#160; There is some sample code in the &lt;a class="jive-link-external-small" href="http://www.tcddk.com/wiki/index.php?title=Code" target="_blank"&gt;Unofficial ToneCore DDK wiki&lt;/a&gt;.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;You could build a volume preset pedal by using the tap switch to cycle through six levels set by the pots, with a crossfade or bandlimited step to make it glitch free.&amp;#160; However, that is a steep learning curve for an effect that would use very little of the ToneCore's available DSP, and your signal will always be going through the ADC and DAC.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;You might want to consider building an analog pedal instead (or having someone build a custom one).&amp;#160; R.G. Keen has an &lt;a class="jive-link-external-small" href="http://www.geofex.com/Article_Folders/multivol/multivol.htm" target="_blank"&gt;article&lt;/a&gt; with schematics for a six volume preset pedal.&lt;/p&gt;&lt;p style="min-height: 8pt; height: 8pt; padding: 0px;"&gt;&amp;#160;&lt;/p&gt;&lt;p&gt;Another alternative would be to find a cheap digital multi-effects pedal that can switch presets without glitching.&amp;#160; If you just wanted to switch volume, you could set up some simple presets with different gains.&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:327488b1-a13d-44b3-9895-a3afefc8e48f] --&gt;</description>
      <pubDate>Sun, 06 Feb 2011 14:55:51 GMT</pubDate>
      <author>support@line6.com</author>
      <guid>http://line6.com/support/message/239703?tstart=0#239703</guid>
      <dc:date>2011-02-06T14:55:51Z</dc:date>
      <clearspace:dateToText>2 years, 4 months ago</clearspace:dateToText>
      <clearspace:objectType>0</clearspace:objectType>
    </item>
    <item>
      <title>Re: development software</title>
      <link>http://line6.com/support/message/226684?tstart=0#226684</link>
      <description>&lt;!-- [DocumentBodyStart:d9b44269-479d-4e7d-9eec-d0b98c719667] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;p&gt;GNU Octave is free and similar to MATLAB.&amp;#160; SciPy (based on Python) is another good, free choice.&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:d9b44269-479d-4e7d-9eec-d0b98c719667] --&gt;</description>
      <pubDate>Thu, 13 Jan 2011 00:32:49 GMT</pubDate>
      <author>support@line6.com</author>
      <guid>http://line6.com/support/message/226684?tstart=0#226684</guid>
      <dc:date>2011-01-13T00:32:49Z</dc:date>
      <clearspace:dateToText>2 years, 5 months ago</clearspace:dateToText>
      <clearspace:replyCount>1</clearspace:replyCount>
      <clearspace:objectType>0</clearspace:objectType>
    </item>
    <item>
      <title>Re: TwoBandSterioEQ.cld Error Message</title>
      <link>http://line6.com/support/message/184935?tstart=0#184935</link>
      <description>&lt;!-- [DocumentBodyStart:2a17f3e8-63da-412f-b4d1-5d022234f2b9] --&gt;&lt;div class="jive-rendered-content"&gt;&lt;p&gt;Try running the GUI as Administrator.&amp;#160; It is mentioned in the troubleshooting section of the TCDDK Users Guide, specifically for Vista, but I assume the same would be true for Windows 7.&lt;/p&gt;&lt;/div&gt;&lt;!-- [DocumentBodyEnd:2a17f3e8-63da-412f-b4d1-5d022234f2b9] --&gt;</description>
      <pubDate>Tue, 05 Oct 2010 00:28:19 GMT</pubDate>
      <author>support@line6.com</author>
      <guid>http://line6.com/support/message/184935?tstart=0#184935</guid>
      <dc:date>2010-10-05T00:28:19Z</dc:date>
      <clearspace:dateToText>2 years, 8 months ago</clearspace:dateToText>
      <clearspace:objectType>0</clearspace:objectType>
    </item>
  </channel>
</rss>

