Forum Rule: Always post complete source code & details to reproduce any issue!
Results 1 to 9 of 9

Thread: Smallest, most simple Octave Down (divide by 2) Circuit?

  1. #1
    Junior Member
    Join Date
    Jul 2015
    Posts
    2

    Smallest, most simple Octave Down (divide by 2) Circuit?

    I'm looking to install the most simple octave down circuit in my guitar. Basically just a toggle switch that actuates it and turns it off. The caveat is that I've tried many octave pedals out there and most of them sound too synthy for my taste. Is there a way to design a circuit that makes dividing the frequency sound close to an authentic bass guitar?

  2. #2
    Junior Member
    Join Date
    Jul 2015
    Posts
    2
    I just checked out the Audio library, however it doesn't appear to have frequency division... am I missing something?

  3. #3
    Senior Member
    Join Date
    Feb 2013
    Posts
    563
    it's not really a matter of circuitry but dsp. you're right though, there's no such thing in the audio library, afaik.

  4. #4
    Senior Member PaulStoffregen's Avatar
    Join Date
    Nov 2012
    Posts
    20,581
    Did you have a specific algorithm in mind?

    This is the only one I've seen fully described.

    http://www.guitarpitchshifter.com/pitchshifting.html

  5. #5
    Senior Member
    Join Date
    Feb 2013
    Posts
    563
    this kind of stuff is fairly above my head, but i think there's basically those two classic approaches, frequency domain / phase vocoder, and time domain based (PSOLA, WSOLA); there's also more recent, more or less proprietary things ("élastique", dirac, for instance)

    fraunhofer (of mp3 fame) have a 'tms' toolbox (matlab), described here: http://www.dafx14.fau.de/papers/dafx...tlab_imple.pdf


    the time domain ones i guess are more efficient (telephony/speech originally), but the quality isn't so great. there's a few open source implementations; for instance http://www.surina.net/soundtouch/index.html
    here's another https://github.com/pichenettes/euror...ample_player.h

  6. #6
    Senior Member
    Join Date
    Jun 2015
    Location
    Göteborg
    Posts
    108
    i'd say that what's needed is to pass a certain number of samples into a buffer, and however many samples that is, ignore that many samples while what's in the buffer is sent to the output with interpolated data in between each sample (averaging). it might sound bad though, but maybe that's a start for a super rudimentary octaver?

  7. #7
    Senior Member PaulStoffregen's Avatar
    Join Date
    Nov 2012
    Posts
    20,581
    Would that be playing the first half of every 3 ms sound at half speed, with the second half simply discarded?

  8. #8
    Senior Member
    Join Date
    Feb 2013
    Posts
    563
    Quote Originally Posted by nagual View Post
    i'd say that what's needed is to pass a certain number of samples into a buffer, and however many samples that is, ignore that many samples while what's in the buffer is sent to the output with interpolated data in between each sample (averaging). it might sound bad though, but maybe that's a start for a super rudimentary octaver?
    but that would be resampling ... which, i guess, would be neat to have, too, though not what the OP seems to have in mind.

  9. #9
    Senior Member
    Join Date
    Jun 2015
    Location
    Göteborg
    Posts
    108
    Quote Originally Posted by PaulStoffregen View Post
    Would that be playing the first half of every 3 ms sound at half speed, with the second half simply discarded?
    That's what springs to mind. And some sort of crossfading between stretched chunks.

    The lowest frequency that would be needed by the algo is 80hz since that would turn into 40hz (below which isnt useful) . So 1/80 of a second might sound the best for a buffer size. 44.1k mono input would be great, since high resolution is desired before this sort of pseudo decimation or frequency dividing. About 551 samples. Maybe add 5ms for a crossfade tail. 22k after that should be fine if that helps with skimping a little on cycles somewhere.

    maybe this has nothing to do with what i just said, but may be helpful:
    http://wiki.cockos.com/wiki/index.ph...Pitch-Shifting
    Last edited by nagual; 07-25-2015 at 08:21 AM.

Posting Permissions

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