Log InCreate An Account
  1. Plugins
  2. »
  3. Ostinato
  4. »
  5. GranuLab.VST
  6. »
  7. Details


Advanced Granular Synthesis Plugin by Ostinato
GranuLab.VST by Ostinato is a Virtual Instrument Audio Plugin for macOS and Windows. It functions as a VST Plugin.
System Requirements
Mac: 64-bit only. OS X 10.9 or later.
Copy Protection
My KVR - Groups, Versions, & More
51 KVR members have added GranuLab.VST to 14 My KVR groups 58 times.
Not In Your MY KVR Groups
(or group limitation prevents versioning)
+10 in private groups

KVR Rank

Overall: 516   414   513

30-Day: 666; 7-Day: 715; Yesterday: 1109

GranuLab is a granular resampler with some fun control options. All changes are gradual over time, so it's suitable both for long drones and for trashing a drum loop. Try it with spoken word.

By rasmus ekman.

Granny is still under development!

2019-09: Just a note: Project is still active.
VST 2 version will be pushed a bit further, then switch to VST 3.
Next version changes:
- LFO rate is global (2-3 different, like the ADSR). Best effort to adapt your patches.
- Rework delay.

Changes will be made, including things that affect your patches.

Sound engine is finished, but there will more balance changes, to get controllers right for each param.
(I see it as a jamming tool to be tweaked while playing, so hopefully you can use it even so).

Please check back for new version now & then.

Mail me if something is not working right, or you have an idea how a feature could be more useful. Email address is on the homepage.

If you want a stable Windows standalone version (and you like gray), the 1998 Granny is still available from the homepage.


  • 2018-12-16: Bugfixes.
  • 2018-11-28: Graphics: Sound play position; Grain stream rough sketch.
    Density loudness compensation knob replaces pan -- panning still has a controller, it's all we need. Labels on controllers say which knob they operate on when unclear.
  • 2018-11-16: Changes! Some of your patches will sound different!
    Grain length was cut short so density is now an issue.
  • 2018-11-12: MacOS: Cubase fix.
    NOTE: If you tried Granny in Cubase before this, open VST Settings, select rightmost Blacklist tab and rescan if Granny shows there.
  • (Rest of update list at bottom of file, it needs to be a lot longer before we're done...)

Basic use:

  • Drop a soundfile (WAV/AIFF) into the empty box to get sound going.
    (or right-click / apple-click to open file dialog).
  • Drop granny.json file on the patch drop button first time you open Granny in a DAW.
  • Every setting/param you change is applied over time: 0-600 seconds (10 minutes).
    Change time is set by the "time" knob in the Patches box, lower left.
  • Shift key to fine-tune values and controllers.
  • Control-click to set default value of param knob.
  • Keyboard digits 0-9 sets exact value (nearest 0.1, 1 or 10 dep on range).
    (BUG: Not correct for grain freq since this is an offset from 1:1. Will do something...).
  • Right-click for options menu (on patch slots and controller boxes).

MIDI note changes Grain Frequency. Note C4 (=60) means zero offset.
Granny is monophonic, plays the last note. and switches to previous note when released.

If you send a MIDI note, Granny switches to only use MIDI note input.
The dark blue ADSR is used (the light blue below is for controls).
If you want continuous sound after that, raise the start/end value of the ADSR and hit a note briefly.

How it works
Sound is created by playing back many small sound clips, "grains". Each grain is a mini-sampler with fixed settings that plays a part of the sound once and then disappears.

The Soundfile is shown with amplitude (red) and "noisiness" (yellow) curves overlay.
These values can be used in a controller to influence any parameter.
Select a part of the sound by mouse in the sound box. Shift-click to drag the selection.

Grain parameters:

  • Sound playback rate. Below soundfile box. Default is 1:1 normal play. Control-click to reset default.
  • Play position cannot be set directly (right now), but there are 2 controllers for jumping around in the soundfile.
    TIP: You can click waveform selection to cause a position change, then set back to full. Not a good solution. Will fix this, but animation of the play position seems harder than expected.

Grains box:

  • Grain rate and grain length. Grains can be 1 ms up to 10 seconds.
    New grains start at a rate of 1/60 secs up to 2000 per second.
  • Grain frequency. Semitones offset from original sound. Use Shift key to fine-tune. Keys 0-9 jump to exact values, but off by 1. (TODO...)
    MIDI notes offset frequency. MIDI C4 (key 60) is zero offset.
  • Grain glissando. Each grain can rise/drop in pitch. This gives that classic grainy sound (which may be a little tiring, or just your thing).
    Small gliss offsets make time-stretched sounds less metallic,
    TIP: Set gliss to zero and use a random control with small amount.
  • Grain attack/decay. Left controller for attack, right for decay (but I usually don't find much use for controllers here).
    TIP: If you use large grain gliss, changing attack and decay affects the sound more.

Density: The number of grains playing together, i.e. grain length × grain rate.
High density leads to very high amplitude (clipping), and may overload the CPU. This leads to chopping sound and general misery, so you gotta watch the density.

Granny does internal density compensation for amplitude and delay line. The knob for how much to compensate is beside the amp knob (bottom right).
TIP: Use Internal param grain density ("g.dns") as a controller.
Currently max 1000 grains at the same time, usually not recommended. Better to have shorter grains when grain rate is high.


Each main parameter (big round knob, or pair of knobs) has 2 boxes where you can select controllers to influence the param value:

  • Random: Y up-down prefer near/extreme offsets from param.
    X left-right: Left for new value each grain, or right to "drunk walk", ie continue from previous value.
  • Sound Amp and Noisiness: Y: mix amp/noise; X: time offset max +/-3 seconds.
  • LFO: Shaped sine-square-pulse-saw, X-Y moves between shapes.
    Extra slider for frequency 0-100 cycles per sec. (hold shift to fine-tune).
  • ADSR: X mixes between the two ADSR:s. Works when MIDI notes are played.
  • MIDI values: Note, velocity, Pitchbend, Mod wheel. X-Y mixes between 2 or all four. Always valid/latest value heard.
  • Granny Internal: Use value from one param to control another.
    TIP: Sound playback position, "s.pos" follows soundfile playback.
    TIP: Grain density, "g.dns" with amp or anything to balance for density. Controllers are limited though, so it maxes out and stops changing at some point. (NOTE: THIS controller is allowed to go much wider now. Still stops increasing at density 60-something.).

For effects with 2-3 knobs, the left controller affects the top/left knob, the right controller goes on the bottom/right.


Patches are stored in the large grid of anonymous square slots.
They are numbered 0-125 (this may change):

  • TIP: Drop granny.json on the Patch drop button first time you use it in a DAW.
  • Use the patch drop button to save and load new patch files. (click button to save, drag a granny.json patch file to load it).
  • Top-left slot #0 (blue) is the default patch. Cannot be changed.
    Shift-click to restore default ADSR, change-time etc.
  • Patch #1 (next beside default) is always stored when GUI is closed, and restored when Granny is opened.
  • Shift-click to store current values to a patch slot.
  • Ctrl+Shift-click to store knob value. (Different from "current value" during change time after edits.).
  • Click to use a patch.
  • Double-click to use immediately (skip change time).
  • Right-click for options copy/paste/clear to manage patches.

granny.json patch files are human-readable with fairly simple format (if you're not afraid of brackets). TODO: Allow adding patches when loading instead of overwriting all.
TIP: If you hand-edit, there are many online JSON validators to check the syntax.

Effects are applied per grain, in order:

  • Fold/Boost and bitcrush (smoothed to less-aliasing).
  • Filter: Dual SVF filter in single control box. The left controller affects filter frequency and Q of both filters, the right affects the low-mid-high mix.
    TIP: Store different filter settings in patches, use long Change time to sweep.
  • Delay. Each grain reads from delay line and copies itself once into delay future.
    Delay is more dense the more grains there are. TIP: Sound Amp/Noise controller.

Effects have several param knobs, but still only 2 controllers. each The left controller is applied to the top/left effect param, the right one to the other.

Filter: Left controller for both freq/Q dots, the right one controls low/mid/high mix.

TODO - please mail/post if something is broken or missing, and is not listed here:

Known bugs:

  • Keyboard digits for grain freq offset is off-by-1 and generally confusing.

Host support:

  • MacOS: Tested with Ableton 9, Cubase Elements, Bitwig 2.4, Waveform 9.3.2, Freestyle.
    Mac 32-bit not available.
  • Windows 10: Tested w Ableton 10, Cubase LE Elements 9.5, Reaper 5.941, Renoise 3.1, Bitwig 2.3.5, and FL Studio 20.
  • Patch and param automation from VST host does NOT work yet.

Missing features:

  • Patches: Lots of work. Playing of patches in order, click-drag to morph between patches etc.
  • Soundfile: Playback position marker.
  • Interface: several options are needed; MIDI use, partial patch use, frequency locked to semitones grid, etc.
  • Noisiness is a hack, needs some work.

TODO list, plans for version 1.0. Any input welcome!:

  • Patch Step Sequencer, control by BPM from host.
  • Patch randomness knob (useful for sequencer steps).
  • Crossfade patches by mouse when there are patches in nearby slots.
  • Record/stop record, create clip from host sound input. (This is why Granny shows up as "Effect" in some hosts - there's input, cos we will want to record input, right?!).
  • 3-4 buttons to switch to previous soundfile in Sound box.
  • 4 ways to use MIDI notes:
    (1) Monosynth (like now).
    (2) Keyboard split - MIDI selects patch, use nearest left if empty slot
    (3) Step sequencer go to next step on each MIDI note.
    (4) Velocity crossfades to next patch after selected.
  • MIDI polyphony? No reason to do only mono, just start more grains....

Useful knicknacks:

  • MIDI / Pitch: Option to only allow semitones. Are scale options useful?
  • Resizing option. (Just need a button, all sizes are relative to the font).
  • Conversion tool from Granny win32 standalone patches. Half ready.


  • 2018-12-16: Bugfixes, added keyboard docs; 12-15: Bugfixes; 12-08: Bugfixes. (Automation crash; Patch switch with different controllers; crash on missing soundfile).

  • 2018-11-28: Graphics update - some choppy animations added
    Sound play position cursor is shown. Grain stream rough sketch.
    Labels for some controller boxes say which value a controller operates on.
    Density loudness compensation knob replaces pan -- panning still has a controller, it's all we need.

  • 2018-11-16: Changes! Your patches will sound different!
    Grain length was clipped so density is now an issue. Automation mostly works from host=>granny. Bugfixes for controllers, they should be about right now.

  • 2018-11-12: Bugfixes. Patch save/restore is less random. Some automation.
    MacOS: Can be opened in Cubase now.
    NOTE: If you tried Granny in Cubase before, open VST Settings, select rightmost Blacklist tab and rescan if Granny shows there.

  • 2018-11-12: Bugfixes. Patch save/restore is less random. Some automation.
    MacOS: Can be opened in Cubase now.
    NOTE: If you tried Granny in Cubase before, open VST Settings, select rightmost Blacklist tab and rescan if Granny shows there.

  • 2018-09-19: Patches and current state stored and restored by your DAW like all normal VSTs.

  • 2018-09-17: Tooltips everywhere. (also some panic fix for host state. now obsolete, whew!).

  • 2018-09-13: Mac build for OS 10.9. Fix selection for short soundfiles.

  • 2018-09-12: Init values more consistent. (finally 1st, 2nd and following sessions should save & restore your settings). Mac version targets OS 10.12.
  • 2018-09-10: Several sound display and selection errors. Still problems with small files.
  • Patches: Lose fewer controllers when storing intermediate patches.
    Display internal partial-patch-apply options (3 color buttons under "patch drop").
    ADSR was usually broken after saving and reopening.

  • 2018-09-07: Patch store often missed controllers.
    Amp could not go below -20dB. This threw off density compensation too.

  • 2018-09-06: Fixed several annoying bad logic patch issues. More work needed.
    Default patch is top left of patch grid. Your current setting saved to slot #1, reloaded when GUI is opened.
    MIDI note stack (last-priority).
    Ctrl or Apple-click sound waveform to open soundfile dialog. (Shift key to drag selection). There are display bugs in waveform still.

  • 2018-09-04: Sanity check patch files values so they shouldn't ruin sound.

  • 2018-09-03: User sinkmusic kindly formatted the docs into a PDF.
    Much more readable, now enclosed in distribution file. Thanks.

Latest User Reviews

Average user rating of 4.33 from 6 reviews

Reviewed By SODDI
January 2nd, 2019

I have used Granulab in its standalone form for years. It's programming heaven - or hell, because it isn't geared to necessarily making pretty sounds.

The new VST version is pretty much like the one-voice standalone. The standalone provides a lot bigger control interface with finer controls, but I'll get used to the interface - or not. I don't care.

The way I will use Granny VST is that I'll pop in a weird sample and have at some granular synthesis for an hour or two, not necessarily playing to record it or insert it into other tracks. Just tweak away, making noise. IT IS SO MUCH FUN.

I consider working with Granny to be an industrial electronic music meditation. YM will definitely V.

Read Review

Reviewed By seeess
September 18th, 2018

I started using the standalone version of GranuLab around 2010/11, and it hasn't left my taskbar since. I've tried lots of granular software over the years but nothing has managed to knock it from the top spot. I use granular synths for microsound / sfx type transformations (a la Curtis Roads) rather than making nice pads, which is what a lot of granular software seems to be aimed at recently. The ability to transform between preset states as well as set slower / faster parameter change times is the clincher for me. Fantastic for live use, I just record long takes and edit out the best bits.

Particularly chuffed that I can now simply drag and drop files from my host sequencers browser, which speeds up the workflow immensely. Fantastic to see that a vital bit of software is now being updated again.

Read Review

Reviewed By Jonathan10
September 13th, 2018

This is the best granular effect i have tried with the exception of permut 6. This thing is great. Please finish and I will buy.

Read Review

Reviewed By Deelanee
September 10th, 2018

Very creative and appealing plugin right of the bat. It has tremendous potential but is a bit confusing and unpredictable in its current form. Being able to trigger the clips with MIDI would be a must to make it my go-to granular synthesis engine.

Visually, this is a winner for me: I particularly like how the effects curves are displayed and tweakable! I had never seen this before.

I'm giving you 5 stars so you can win and finish the plugin because it's a keeper.

Read Review

Reviewed By lawramono
September 9th, 2018

this would easily be a better VST if it was an instrument.

instead of effect its got alot of potential.

Read Review

Comments & Discussion for Ostinato GranuLab.VST

Discussion: Active


10 September 2018 at 1:16pm

Wow! Loving this so far. I love the GUI and how responsive it is. The functions are sometimes a bit obscure, but it is conducive to experimentation. I concur with the other reviewers: making it into an instrument would be fantastic as right now it plays and stops in unpredictable ways. I particularly love how this effects windows displays the curves... I had never seen this before. Where can I find you on social media so I can give shout outs?

20 September 2018 at 8:02pm

Hi all, thanks a lot for reviews & comments.

Sorry for not replying sooner, didn't know until last few days that there was yet another place to interact.

I've been busy trying to get Granny into a state of "basic sanity" or something like it.
Fixing crash bugs, getting it to run on MacOS versions, and now saving params/patches in host projects like all other VST's do gets me much nearer that sunny place.

There are still several crazy-town things going on. Lack of start/stop button, host interaction and several behavior options spring to mind.

But now is also the time for some fun stuff, rounding up and designing the remaining features.

Any requests, suggestions or comments (especially complaints about all the shit that doesn't work like any musician with half a scoop of mango sherbet for brains would want) are very welcome, and will be disputed, reconsidered and integrated with pleasure.

So much for official statements.
- Regarding "playable as instrument" I''ve talked to one user, hopefully it was partly fixed when I got MIDI monosynth in place, but you tell!
- I'm not on social media much, or at all really, the webpage and KVR and email (in docs and on the webpage) are best chances of talking.

20 December 2018 at 3:18pm

Why dont you have a panic button for god sake, making every DAW crash if your not fast enough to dischard the thing!.

Make it an instrument and then i would pay 50 bucks for it. BUT ...i realy like the plugin for its response and smart intuitive controlls!.


20 December 2018 at 9:02pm

Hej Pelle.

The real problem would be the DAW crashing.
Does it actually crash or is it more of a lockup due to many long grains (=high density), making sound stutter and granny be unresponsive?

Which DAW?

I'll never let you pay any amount, but I did consider a start/stop button, it's a good idea to actually clean out the overflow grains too.

Will do sometime soonish.

Cheers, .



9 April 2020 at 12:16am

Hi Rasmus.

This plugin looks wonderful. I do own a few other granulars, but I'd really like to get to work with this one. Unfortunately I cannot seem to find it with my DAW when adding the file to either of the folders -->component or -->vst or -->vst3 on my Mac. I am using Mojave (10.14.6) and StudioOne v4. I have even tried to rename the file so it had a .vst extension, but no luck so far. I would be very happy if you or anyone could guide me in the right direction - if there is a solution :).

Please log in to join the discussion