kreiff

Forum Replies Created

Viewing 5 posts - 1 through 5 (of 5 total)
  • Author
    Posts
  • in reply to: Eliminate Popping using Stomp Switch #10111
    kreiff
    Participant

    Thanks, Michael! I’ll give that a try!

    in reply to: Eliminate Popping using Stomp Switch #10108
    kreiff
    Participant

    On additional note! I ended up having to add jumpers where the 3.5mm jacks were to get the signal to pass through the bypass switch. You can see in the wiring diagram where I’ve added the yellow jumpers between the pads – this is how I soldered it – not sure if that might have an effect?

    It seemed that the two jacks that came with the kit were connected between those 2 pads. (I checked with my multimeter at least and got a continuity *beep*).

    in reply to: Adding Grain Delay to 4 Sample 12-bit Sampler #9932
    kreiff
    Participant

    Thanks for the feedback, Michael! I’ve got it working now. The 3-byte increment was the big piece of the puzzle. I’m also incrementing the “nSamplesPlayed” variable by 3 now and I’ve added some more window stages (20 as opposed to 10) and that seems to give me good results.

    Now I’m going to try to figure out how to get it to playback the grains in reverse!

    in reply to: Adding Grain Delay to 4 Sample 12-bit Sampler #9926
    kreiff
    Participant

    Okay – so, I’ve been messing around with this for a few days now and I think the issue had to do with the grainSize and the address increments. I still have to test this – but I think the addresses can only be incremented by 3 because of the way the bytes are packed and read back in increments of 3.

    My plan is to create a new volatile integer variable that equals the grainSize pot value multiplied by 3. Update the analog read like this:

    
          grainSize = map(analogRead(1), 0, 1023, 3, 1365);
          stretch = map(analogRead(2), 0, 1023, 1, 10);
    

    And then update the granular delay code like this:

     nSamplesPlayed++;
      if (nSamplesPlayed >= nSamplesToPlay) {
      // proceed to the next grain
      nSamplesPlayed = 0;
      grainAddress[sample] += grainSizeTimesThree;
      if (grainAddress[sample] > endAddress[sample]) {
      grainAddress[sample] = startAddress[sample];
      }
      address = grainAddress[sample];
      playbackBuf = signal;
      return;
      }
    

    Am I on the right track?

    I’ll report back if my test is successful

    kreiff
    Participant

    Thanks, Michael!!

    Glad to know that I was on the right track. I hadn’t even considered that the sample rate would prevent the interrupt code from executing. That makes sense, though! I’ll have to be more conscious of execution times as I add additional features.

    Will I get some more time back by removing some of the debugging code, too? Might have a go at that next as well.

    Thanks again!

Viewing 5 posts - 1 through 5 (of 5 total)