Best way to create multiple "key" samples from a single one-shot?

Discussion in 'Working with Sound' started by El Duderino, Oct 19, 2024.

  1. El Duderino

    El Duderino Newbie

    Joined:
    Oct 9, 2023
    Messages:
    37
    Likes Received:
    2
    Hey there.

    I was wondering if any of you know if there is much difference in software and quality when trying to create a playable instrument from just one or a few samples? I know you could just drag one sample into kontakt and whilst it might do quite a decent job for an octave or two there might be other apps and tools to generate multiple transposed samples that are of higher quality and might be able to generate a broader range of pitches whilst maintaining the same, or similar, tone and timber to the original sample without obvious stretching or artifacts.

    And what would be a good way to create fake round robins from one sample so it sounds just different enough to not sound exactly the same? Slight pitch variation? Transient variation? Slight volume change?
     
  2.  
  3. xorome

    xorome Audiosexual

    Joined:
    Sep 28, 2021
    Messages:
    1,179
    Likes Received:
    861
    all of the above.

    "borrowed RRs" usually use 1-3 notes above or below the original note, tuned back down or up. additional detuning, filtering and envelope modifications (possibly done dynamically) all help.

    rubberband is high quality, free* and can be made to pitch shift in batches - if you don't want scripted RR borrowing ala Kontakt. You can also just use any pitch shifting plugin and your DAW's batch export for the job.

    Here's a Python script I used a couple years back to batch-add variations to snare one-shots with rubberband.

    Code:
    import os
    import subprocess
    import sys
    
    f = sys.argv[1].rsplit('.', 1)[0]
    cmd = ['rubberband-r3.exe', '-3', '-F', '--pitch']
    
    for pitch in [0.1, 0.2, 0.3]:
        p = str(pitch).rjust(2, '0')
        # print(' '.join(cmd + [p, sys.argv[1], f + ' [+' + p + '].wav']))
        subprocess.call(cmd + [p, sys.argv[1], f + ' [+' + p + '].wav'], stdout=subprocess.DEVNULL)
        subprocess.call(cmd + ['-' + p, sys.argv[1], f + ' [-' + p + '].wav'], stdout=subprocess.DEVNULL)
    Save as whatever.py, call with python whatever.py inputfile.wav. The "for pitch in [0.1, 0.2, 0.3]" line determines the variations created in semitones, both up and down (0.3 semis up/down isn't much, you might want to go much further). You need to have rubberband-r3.exe from the rubberband page in your path. rubberband has many options, be sure to read them and change the "cmd" line accordingly.

    Combine with something like fd to quickly do this with many hundreds/thousands of files.
     
Loading...
Similar Threads - Best create multiple Forum Date
Time to create an artist website - best build tools 2024 recommendations? Internet for Musician Mar 8, 2024
suggestions on how to best create Portable Apps Software Jun 16, 2022
Best way to create that kind of live sound Electronic Mar 3, 2014
Kontakt [ Best stable version ] Kontakt Dec 7, 2024
Best Strings for cinematic work? Samplers, Synthesizers Dec 2, 2024
Loading...