Forum Rule: Always post complete source code & details to reproduce any issue!
Page 3 of 5 FirstFirst 1 2 3 4 5 LastLast
Results 51 to 75 of 106

Thread: Limits of delay effect in audio library

  1. #51
    Senior Member+ defragster's Avatar
    Join Date
    Feb 2015
    Posts
    11,490
    Frank: Does this mean your Rev #4 board is tested and safe to relink for general use?
    Also - what else was on your 'castellated' T_3.1 mounting board you posted the snip of showing proto area? I didn't see a link to it.

  2. #52
    Senior Member+ Frank B's Avatar
    Join Date
    Apr 2014
    Location
    Germany NRW
    Posts
    6,874
    Quote Originally Posted by defragster View Post
    Frank: Does this mean your Rev #4 board is tested and safe to relink for general use?
    Also - what else was on your 'castellated' T_3.1 mounting board you posted the snip of showing proto area? I didn't see a link to it.
    No. Both boards have not arrived yet. Perhaps in the next week.

  3. #53
    Senior Member PaulStoffregen's Avatar
    Join Date
    Nov 2012
    Posts
    21,812
    Frank's version 4 MemoryBoard just arrived from OSH Park!

    Frank, do you have parts placement diagram I could print, so Erin can solder up one of these boards? If not, I can probably draw something.

    One useful piece of info would be the order to populate the 6 memory chips. We'll probably build the first board with 1 or 2 chips, and if that works, another with all 6. I'm pretty sure I have only 8 memory chips left.

  4. #54
    Senior Member+ Frank B's Avatar
    Join Date
    Apr 2014
    Location
    Germany NRW
    Posts
    6,874
    Wow cool, i still have to wait..

    Sorry, have no diagrm. Aren't the IC# numbers printed on the board ?

    On the backside (the 8-pin soic the RAMS, ascending numbers, pin 1 is marked),
    on the top there is only one soic-16 and one soic-14 so nothing can not be confused.
    All 'C' are 0.1uf, all R something like 10K or more..

    Pls sorry, it's midnight, i can write details tomorrow. I hope it works!

  5. #55
    Senior Member+ Frank B's Avatar
    Join Date
    Apr 2014
    Location
    Germany NRW
    Posts
    6,874
    Perhaps solder it without RAMs, and check wether all chipselect-pins are working before adding the RAMs!

  6. #56

    Memoryboard3

    Paul,

    I built a memoryboard3 over the weekend -- parts placement was straightforward using the part id's printed on the board. It's up and running with no errors from the test program.

    The design appears to be sound -- look forward to hearing how the memoryboard4 works.

    Best regards,
    Michael

  7. #57
    Senior Member PaulStoffregen's Avatar
    Join Date
    Nov 2012
    Posts
    21,812
    I can confirm Memoryboard4 works with IC1 and IC2.

    I'm building one now with all 6 chips.....

  8. #58
    Senior Member PaulStoffregen's Avatar
    Join Date
    Nov 2012
    Posts
    21,812
    Memoryboard4 is working with all 6 chips!

    I've added support in the audio library. Anyone who builds on should be able to have it "just work" with the audio lib. Well, you do have to add the "AUDIO_MEMORY_MEMORYBOARD" parameter to the AudioEffectDelayExternal constructor. See the code below for an example.

    In other news, 9 seconds is far beyond my "it's working" attention span for electronics....

    Here's a little test program.

    Click image for larger version. 

Name:	file.png 
Views:	146 
Size:	39.1 KB 
ID:	4923
    (click for full size)

    Notice the horizontal scale is 1 second per division!

    Code:
    #include <Audio.h>
    #include <Wire.h>
    #include <SPI.h>
    #include <SD.h>
    #include <SerialFlash.h>
    
    AudioSynthWaveformSine     sine;
    AudioEffectEnvelope        env;
    AudioEffectDelayExternal   dly(AUDIO_MEMORY_MEMORYBOARD);
    AudioMixer4                mix;
    AudioOutputI2S             headphones;
    
    AudioConnection            patchCord1(sine, env);
    AudioConnection            patchCord2(env, dly);
    AudioConnection            patchCord3(dly, 0, mix, 0);
    AudioConnection            patchCord4(dly, 1, mix, 1);
    AudioConnection            patchCord5(env, 0, headphones, 0);
    AudioConnection            patchCord6(mix, 0, headphones, 1);
    AudioControlSGTL5000 audioShield;
    
    void setup() {
            AudioMemory(10);
            audioShield.enable();
            audioShield.volume(0.6);
            sine.amplitude(0.9);
            sine.frequency(800);
            dly.delay(0, 8000);
            dly.delay(1, 9000);
    }
    
    void loop() {
            env.noteOn();
            delay(450);
            env.noteOff();
            delay(10000);
            Serial.print("CPU: ");
            Serial.println(AudioProcessorUsageMax());
            AudioProcessorUsageMaxReset();
    }

  9. #59
    Senior Member+ Frank B's Avatar
    Join Date
    Apr 2014
    Location
    Germany NRW
    Posts
    6,874
    Great news !
    Now that I know that the board is ok:


    Here is the link!

    https://oshpark.com/shared_projects/KZt5PaU7

  10. #60
    Senior Member PaulStoffregen's Avatar
    Join Date
    Nov 2012
    Posts
    21,812
    Here's some hi-res Memoryboard images.

    Click image for larger version. 

Name:	memoryboard1.jpg 
Views:	193 
Size:	127.5 KB 
ID:	4924Click image for larger version. 

Name:	memoryboard2.jpg 
Views:	146 
Size:	134.4 KB 
ID:	4925
    Click image for larger version. 

Name:	memoryboard3.jpg 
Views:	129 
Size:	98.0 KB 
ID:	4926Click image for larger version. 

Name:	memoryboard4.jpg 
Views:	156 
Size:	64.9 KB 
ID:	4927

  11. #61
    Senior Member+ Frank B's Avatar
    Join Date
    Apr 2014
    Location
    Germany NRW
    Posts
    6,874
    Thank you Paul!
    Can i use them for github and OSH-Park project descriptions ?

  12. #62
    Senior Member PaulStoffregen's Avatar
    Join Date
    Nov 2012
    Posts
    21,812
    Yes, of course, that's why I posted these pics!

  13. #63
    Senior Member+ defragster's Avatar
    Join Date
    Feb 2015
    Posts
    11,490
    Are those memory chips: 23LC1024 ? Even with HiDef images my ChipID search_foo is lacking

    <edit>: Also is there a drop in FLASH chip that would work interchangeably on this board as designed for static memory?
    Last edited by defragster; 08-19-2015 at 09:16 PM.

  14. #64
    Senior Member
    Join Date
    Feb 2013
    Posts
    563
    Frank --- would you mind posting the .sch file, too? i suppose it looks straightforward enough but just to make sure. (ie for people not wanting to stack too many boards or use other pins)
    Last edited by mxxx; 08-19-2015 at 09:40 PM.

  15. #65
    Senior Member+ Frank B's Avatar
    Join Date
    Apr 2014
    Location
    Germany NRW
    Posts
    6,874
    Quote Originally Posted by PaulStoffregen View Post
    Yes, of course, that's why I posted these pics!
    I updated the repository, and added your video too:
    https://github.com/FrankBoesing/memoryboard

    I have plans to add more sourcecode/examples (not audio) , and perhaps code for flash, mixed ram/flash.
    But this will take some time.

  16. #66
    Senior Member+ Frank B's Avatar
    Join Date
    Apr 2014
    Location
    Germany NRW
    Posts
    6,874
    Quote Originally Posted by defragster View Post
    Are those memory chips: 23LC1024 ? Even with HiDef images my ChipID search_foo is lacking

    <edit>: Also is there a drop in FLASH chip that would work interchangeably on this board as designed for static memory?
    Yes, the RAMs are 23LC1024 SO-8
    I think you can use all so-8 "jedec" compatible spi-memory chips for 3Volt - (= all which are ok for the audioboard)

    And you could mix them, for example 5 x RAM + 1 x FLASH

    Edit: Check the package-width of the chips.
    Last edited by Frank B; 09-25-2015 at 06:32 AM. Reason: typo

  17. #67
    Senior Member PaulStoffregen's Avatar
    Join Date
    Nov 2012
    Posts
    21,812
    I've updated the web design tool documentation, including a photo of Memoryboard4.

    http://www.pjrc.com/teensy/gui/?info...tDelayExternal

  18. #68
    Junior Member
    Join Date
    Sep 2015
    Posts
    2
    Hi,
    Trying to do digital delay for guitar. Delay work's fine at long delay times and external memory also. But if I'll try to adjust delay time with potentiometer, there is crunching and crackling constantly. Also there is huge amount of background noise. Initial test code:

    Code:
    #include <Audio.h>
    #include <Wire.h>
    #include <SPI.h>
    #include <SD.h>
    #include <SerialFlash.h>
    //const int myInput = AUDIO_INPUT_MIC;
    const int myInput = AUDIO_INPUT_LINEIN;
    // GUItool: begin automatically generated code
    AudioInputI2S            i2s1;           //xy=221,271
    AudioMixer4              mixer1;         //xy=388,160
    AudioEffectDelayExternal delayExt1;      //xy=528,436
    AudioMixer4              mixer2;         //xy=545,175
    AudioOutputI2S           i2s2;           //xy=813,254
    AudioConnection          patchCord1(i2s1, 0, mixer1, 0);
    AudioConnection          patchCord2(i2s1, 1, mixer1, 1);
    AudioConnection          patchCord3(mixer1, 0, mixer2, 0);
    AudioConnection          patchCord4(mixer1, delayExt1);
    AudioConnection          patchCord5(delayExt1, 6, mixer2, 2);
    AudioConnection          patchCord6(delayExt1, 7, mixer1, 2);
    AudioConnection          patchCord7(mixer2, 0, i2s2, 0);
    AudioConnection          patchCord8(mixer2, 0, i2s2, 1);
    
    AudioControlSGTL5000 audioShield;
    // GUItool: end automatically generated code
    
    int delayt;
    
    void setup() {
            AudioMemory(10);
            audioShield.enable();
            audioShield.volume(1);
            audioShield.inputSelect(myInput);
    
       
      mixer1.gain(0, 0.5);
      mixer1.gain(1, 0.5);
      mixer1.gain(2, 0.5);
     // mix1.gain(3, 0.4);
      mixer2.gain(0, 0.5);
      mixer2.gain(2, 0.5);
            delayExt1.delay(6, 1500);
            delayExt1.delay(7, 1500);
            
    }
    
    
    void loop() {
       int n = analogRead(15);
      if (n != delayt) {
        
       delayt= n;
         delayExt1.delay(6, delayt*2);
            delayExt1.delay(7, delayt*2);
     
      }
           int vol = analogRead(15);
       
        
            delay(250);
    }
    Last edited by Juhap82; 09-10-2015 at 03:48 PM.

  19. #69
    Senior Member
    Join Date
    Aug 2013
    Location
    Gothenburg, Sweden
    Posts
    295
    Yes, changing the delay while the delay loop is runing will create bad effects unless you are very careful. The sample point of the delay will make big jumps that are not phase adjusted, and the result will be like ripping the sound apart. You can add code to move the delay time smoothly, giving a phasor effect, or setting up a new delay with the modified delay time and make some kind of smoth transition, crossfade, between delay times.

  20. #70
    Senior Member+ Frank B's Avatar
    Join Date
    Apr 2014
    Location
    Germany NRW
    Posts
    6,874
    [spam] ;-) Teensy + Connectorboard + Memoryboard = almost same size, only some mm higher, and two rows longer
    Click image for larger version. 

Name:	20150922_224919.jpg 
Views:	126 
Size:	91.3 KB 
ID:	5153

  21. #71
    Senior Member
    Join Date
    Jul 2014
    Posts
    2,637
    Quote Originally Posted by Frank B View Post
    I updated the repository, and added your video too:
    https://github.com/FrankBoesing/memoryboard
    Frank, do you mind to add a pdf of the schematics for non-eagle user?

  22. #72
    Senior Member+ Frank B's Avatar
    Join Date
    Apr 2014
    Location
    Germany NRW
    Posts
    6,874
    Here is the schematic of an old Version:
    https://forum.pjrc.com/threads/28599...ll=1#post77403

    The only differences are:
    - CS is now on Pins 2,3,4
    - More decoupling capacitors

    Edit: I realized, that it is difficult to solder the Winbond-Flash. The package is a bit too wide (>5mm) for the solderpads. But it's possible.

    I make a new version, when the T3.x ++ comes out..
    Last edited by Frank B; 09-26-2015 at 10:48 AM.

  23. #73
    Member houtson's Avatar
    Join Date
    Aug 2015
    Location
    Scotland
    Posts
    82
    I've got a spare Memoryboard 4 from my OSH Park order, if anyone UK based wants it drop me a note and I'll pop it in the posts (free to a good home). Cheers, Paul

    PS many thanks to Frank and Paul S for sharing their work on these these excellent tools.

  24. #74
    Senior Member fms1961's Avatar
    Join Date
    Jul 2015
    Location
    Northern Germany
    Posts
    154

    Cool

    Is there any chance to find someone who provides a fully assembled memory-board at an reasonable price? I would like to assemble it myself, but despite I earned some money with soldering earlier in my student days, my abilities in soldering SMD stuff are quite inexistent ... so I'm hoping some enthusiast might help me with this problem ... because I would like to use the teensy board (my favorite among all "Arduino like programmable" boards!) for some audio experiments like crossover-network for a little Loudspeaker-Box or even to create an individual synthesizer. So some fast accessible memory will be helpful in this matter ...

    THX, Manfred

  25. #75
    Senior Member PaulStoffregen's Avatar
    Join Date
    Nov 2012
    Posts
    21,812
    I don't know of anyone selling the memory shield.

    Before you put too much time and money into pursuing a memory shield, you might ask whether it'll really do you much (or any) good. Currently the audio library has only 1 object which uses the memory shield, for long delays. If you're building real-time effects that need a delay more than about 0.3 to 0.5 second, the memory shield could really help. Otherwise, nothing else in the library makes use of its memory.

    You can get short but very useful delays without the memory shield. For example, see the new tutorial video starting at 16:55. There's also a filter demo right after the two delay demos.

    https://www.youtube.com/watch?v=wqt55OAabVs

    Most of the things you'd do with synthesis just don't need lengthy delays. Likewise, filters you'd use for speaker crossover applications don't use external memory.

    Building a memory shield will only help if you use the external memory delay object. Of course, if you're doing something really strange that needs long delay, it's pretty awesome!

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •