Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/asb2m10/MegaDirt
MegaDirt is a re-implementation of SuperDirt for TidalCycle. It is meant to be run into a DAW as plugin.
https://github.com/asb2m10/MegaDirt
Last synced: about 1 month ago
JSON representation
MegaDirt is a re-implementation of SuperDirt for TidalCycle. It is meant to be run into a DAW as plugin.
- Host: GitHub
- URL: https://github.com/asb2m10/MegaDirt
- Owner: asb2m10
- License: agpl-3.0
- Created: 2021-12-07T15:57:56.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2024-10-22T21:46:54.000Z (about 2 months ago)
- Last Synced: 2024-11-07T07:25:52.958Z (about 1 month ago)
- Language: C++
- Homepage:
- Size: 145 KB
- Stars: 26
- Watchers: 4
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-open-synth - MegaDirt - 3.0 | C++ | (C/C++)
README
![MegaDirt](assets/logo.png)
MegaDirt is a dirty (hence the name MegaDirt) cheap implementation of [SuperDirt](https://github.com/musikinformatik/SuperDirt)
for [TidalCycles](https://tidalcycles.org/), [strudel](https://strudel.cc/) or [Sardine](https://github.com/Bubobubobubobubo/sardine).
It is not meant to replace SuperDirt but offer an alternative to "Live Coding" environment for users that want to use a simple solution
to trigger midi notes / simply trigger samples from a DAW.MegaDirt is a proof of concept, it was built to see how fast can SuperDirt be reimplemented in C++ with JUCE to be used as a plugin as an MVP.
It expects to use the [Dirt-Sample](https://github.com/tidalcycles/Dirt-Samples) collection
downloaded from SuperDirt quark directory. Otherwise you can customize this directory in the settings menu.
* On Linux it will look for "~/.local/share/SuperCollider/downloaded-quarks/Dirt-Samples"
* On macOS it will look for for "~/Library/Application Support/SuperCollider/downloaded-quarks/Dirt-Samples"
* On Windows it will look for "%localappdata%/SuperCollider/downloaded-quarks/Dirt-Samples"### MegaDirt might have those advantages over SuperDirt on Supercollider
* Easier installation. MegaDirt can also be run as a standalone application (great for development)
* Easier audio routing from DAW (orbits are plugin buses) and use DAW audio plugins
* Easier midi routing from DAW and use DAW midi plugins (TidalCycles)## Things to know
* Orbits are output buses of the plugin.
* DAW are picky about absolute time, feel free to set the schedule offset based on the audio interface and plugin chain for accurate timing.### What is implemented from SuperDirt
- [x] osc msg midichan / s "midi" - send midi event from DAW
- [x] osc msg gain - sample gain
- [x] osc msg begin/end - sample begin/end to use for slices
- [x] osc msg legato - event length based on event window
- [x] osc msg sustain - event absolute time
- [x] osc msg pan - sample pan
- [x] osc msg ccn / ccv - midi controller change
- [x] osc msg orbit - sample output bus
- [x] osc msg speed - sample speed
- [x] osc msg loop - loop the sample within window playback
- [x] Lazy loading of sampling files based on dirt folder
- [x] Configurable sample path
- [x] Character (a5, c, a#, gb) note names
- [x] Multichannel orbit support (based on plugin bus)
- [x] Support loop units ('r' and 'c')
- [X] Windows Dirt sample directory
- [ ] Implement control buses (plug to Tidal)### Known Issues
- [ ] Find why renoise only render plugin when the window is open### SuperDirt effects
Basic SuperDirt effects are now supported.
- [x] Reverb - # room # size
- [x] Filters - # cutoff # hcutoff # bandf (and the resonance counterpart) #djf
- [x] Delay - #delay #delayt #delayfb
- [x] Crush - #crush
- [ ] Phaser - #phasr #phasdp### Bulding
Building MegaDirt should be straight forward. The building process is supposed to put the VST3 directory into the standard location.
git clone --recursive https://github.com/asb2m10/MegaDirt.git
cd MegaDirt
mkdir build
cd build
cmake .. # add `-G Xcode` if you want to use Apple Xcode and build it afterwards
make