Skip to content

Remake of dblue_stretch in JUCE, with some stuff added.

License

Notifications You must be signed in to change notification settings

s4n7r0/sand_stretch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

53 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

sand_stretch2

Remake of dblue_stretch, with some stuff added in.

Download it from here.

What does it do?

Stretches out audio, similar to how dblue_stretch does it.
But since everyone I know doesn't use it in that way (me included),
it also works as a sort of "glitch" machine.
It collects the input into the buffer and then outputs grains
with the given size, delayed by the given ratio.
Grains can be held in place, played in reverse, synced to a note duration, crossfaded,
or only grains where samples at the beginning and the end of it crossed 0 (zcrossed samples)

This plugin is not an exact 1:1 recreation of dblue_stretch and is not supposed to replace it.

Parameters

Name Description Only works if
trigger start collecting samples and simultaneously output grains
hold hold current grain
hold offset offset currently held grain by amount of samples hold is on
tempo use size in note lengths instead of samples
reverse play in reverse
declick smooth out the edges between the end of the current grain
and start of the next one
4 * (2 ^ declick) samples will be declicked
crossfade is off
grain size of a grain in samples tempo is off
note size of a grain in note duration tempo is on
ratio how much should the input be stretched out by disabled if hold is on
and tempo is on
subdivision adjusts note duration hold is on
and tempo is on
zcross size if set, grain gets offset to the closest zcrossed sample
then it's size is the distance to the next zcrossed sample
determined by the amount
hold is on
zcross offset offsets grain to the next window of zcrossed samples hold is on
crossfade crossfades between grains

How to build from source

Prerequesities

  • JUCE
  • Your system C++ build toolchain (Visual Studio on Windows, XCode on Mac, GCC/Clang on Linux, etc.

Building (the Projucer way)

  • git clone https://github.com/s4n7r0/sand_stretch.git
  • Open Projucer
  • Open sand_stretch_remake.jucer in Projucer
  • Select your system build configuration, save the project
  • Build the plugin using the generated project in the Build folder. Which means:
    • Run Visual Studio/Xcode and open the appropriate project, either the generated .sln/xcodeproject or thru Projucer (Win/Mac)

    MAC

    • If wanna build the plugin in AU format, you need to add AU plugin format in Project Settings's in Projucer
    • Product > Scheme > Edit Scheme... > Run > Build Configuration > Select "Release"
    • Build
    • Built plugin in any format should be copied to "~/Library/Audio/Plug-Ins/" to their respective folders, but if not:
    • Copy the compiled sand_stretch2.vst3 from "Builds/MaxOSX/build/Release/sand_stretch2.vst3" to "~/Library/Audio/Plug-Ins/VST3"
    • Copy the compiled sand_stretch2.component from "Builds/MaxOSX/build/Release/sand_stretch2.component" to "~/Library/Audio/Plug-Ins/Components" ( if building as an AU )

    WINDOWS

    • Select "Release" configuration (Win)
    • Build
    • Copy the compiled sand_stretch2.vst3 from "Builds\VisualStudio2022\x64\Release\VST3\sand_stretch2.vst3\Contents\x86_64-win" to "C:\Program Files\Common Files\VST3" (Win)

    LINUX

    • cd Builds/LinuxMakefile && make CONFIG=Release
    • Built VST3 should be copied to "~/.vst3/" but if not:
    • mkdir ~/.vst3
    • mv "Builds/LinuxMakefile/build/sand_stretch2.vst3/Contents/x86_64-linux/sand_stretch2.so" "~/.vst3/sand_stretch2.vst3"

Credits

Illformed

JUCE

Support

Gumroad
Soundcloud
Twitter
Bandcamp
Bluesky

About

Remake of dblue_stretch in JUCE, with some stuff added.

Resources

License

Stars

Watchers

Forks

Packages

No packages published