Grainflow is a powerful granulation tool build for Max designed to be as flexible as possible to allow for rapid experimentation with granulation. Grainflow is a synchronous and sample accurate granulator that is scheduled entirely on Max's audio thread while offering a toolkit of vast customization.
- Multichannel soundfile and live granulation
- Control of grains using mc signals
- Use custom envelopes including 2D buffers
- Per grain spatialization in both circular and 3D panning
- Graphical tools to help visualize grains on a waveform and in 3D spatialization
- A suite of prebuilt granular effects that can be dropped in to patches or used as a reference
- Per grain attribute control that acts similar to the MC system
- Download this repo or the latest preview release
- (Optional) If you are using the repo rather a release, you should build the externals for your platform
- Unzip it and place it in your Max/Packages folder
- Set delay, window placement, and pitch as banks using buffers
- Support for grouping grains into streams
- Set grain level loop points
- Set glisson curves using Max buffers
- Provides detailed grain information
Grainflow is open to contributions both in terms of Max examples, abstractions, and help file improvements as well as help with the C++ codebase in ./source
and the GrainflowLib repository.
Additionally, please post any feature requests to Issues or the Grainflow Discord.
We are also happy to assist in implementation of GrainflowLib outside of Max and am planning to target other platforms as I have time.
Building from source is the best way to ensure you get the most up-to-date changes
Currently grainflow has only ben tested on Windows 11 and Mac OS 14 You must have cmake and Visual Studio (Windows) or Xcode (Mac)
Open a terminal window in the directory you would like to place grainflow. If you would like to place grainflow in you Max Packages directory, make sure to remove any other grainflow folder.
git clone https://github.com/composingcap/grainflow.git --recursive
Windows builds should use the MSVC compiler
cd ./grainflow
mkdir ./build
cd build
cmake ../
cmake --build . --config Release
Mac builds should use the Xcode compiler (not clang)
cd ./grainflow
mkdir ./build
cd build
cmake ../ -G Xcode
cmake --build
This build script should work on most platforms. You may also sign externals with an apple developer ID and create a MaxPack.
python3 ./create_release.py build
this requires an apple developer ID
- create a json keystore
./.secrets/keystore.json
- add your developer key as
developer_team_code
- run:
python3 ./create_release.py sign
- copy the submission ID when prompted
python3 ./create_release.py pack