By Gil Fuser
This is a setup for livecoding. Here are the files needed to use SuperCollider together with TidalCycles in a flexible way of controling parameters of effects and synths both from Tidal and SuperCollider (SC).
- VSTs instruments and effects hosted by SuperCollider.
- Free GUIs to monitor effects states.
- Snippets and key-combos to livecode faster.
- Extra synths and effects.
If you love Tidal but you don't know anything or almost anything about SuperCollider but you use already Tidal, maybe you should learn it. Take a look at some learning resources. You will get some extra power. Then come back, download or clone this and have fun.
where this comes from
The initial idea of seting this all up was to have continuous control of parameters in Tidal, which works mostly in a per event basis. This have been changing and thanks to smooth its easier to control things continuously inside Tidal now a days, but some advantages of the approach you will find here remains, e.g. the GUIs to monitor effects states and all the flexibility that JitLib offers.
If you want to test this setup as is follow the next steps.
If you want to use specific parts of it, take a look at the wiki to see how the details of how the files interrelate.
If you are not sure if already have this Quark, evalluate in SuperCollider
If you don't have it yet, evalluate this to install it:
VSTPlugin Extension into SC
Go here and follow the instructions in that repo to install it.
Windows VSTs inside Linux
If you want to use Windows VSTs on Linux use LinVst. Go to the link and follow the instructions on that repo. It's easyer than you might think.
Molot - Compressor. Its a colored old school compressor that is used as a glue to all of that samples and synths from Tidal.
Get it here
I dream about a better SC native compressor.
Nova - 8 Band EQ + Multiband Compressor. Used per orbit to avoid too much low and high frequences clashes and phase issues, when the sounds overlap.
Get it here
TAL-Reverb-3 - Reverb. Also aplied per orbit, to create depthness in the sound scene.
Get it here
Phosycon - 303 emulator - The only VST instrument in this list, to make some acid. Also the only non-free.
Get it here
SC and VST Effects and Phosycon Parameters inside Tidal
If you are using vim-tidal and don't have your own stuff inside Tidal.ghci, you can substitute yours by the one here.
If you use Atom, VS Studio or emacs, copy from Tidal.ghci everything from
pideg = pF "pideg" to
envacc x = ccv x # ccn 9 and paste in your BootTidal.hs file. You may have to put a
let in front of each parameter. Just follow the way your file is written.
This is olny for people using vim-tidal.
Install Ultisnips following the instructions on that link.
If you are managing your (neo)vim plugins with Plug, put tidal.snippets inside plugged/ultisnips/UltiSnips
More Vim/Neovim stuff
This is also for vim-tidal people.
You will find some key mappings specially for livecoding in the file init.vim. Include them in your vim config file.
I'm using neovim instead of vim. In order to do the same you have to change a line in 'vim-tidal/bin/tidalvim':
You are good to go!
If you haven't done it so far, clone or download this repo using the green Clone or Download button in https://github.com/gilfuser/livecode-this
Open _0_StartUp.scd in Supercollider and evaluate the whole block. All the needed files must be loaded in the right order.
Open Tidal and have fun.
Check the effects and synths that you now have and the related parameters. Use different orbits.
Load other SC files in sush an order that interdependent files won't miss anything necessary.
Do some path-naming and other - not so necessary a.t.m - stuff.
Start SuperDirt (~dirt), load the samples, load the files synths/tidalInstruments.scd and FX/myTidalFx.scd, create Ndefs from which SuperDirt's orbits output goes through, much like following the paths of SuperDirt/hacks/jitlib-hack.scd.
Create Control-Busses to control parameters from the reverbs (you will see them again in interface/tidal_set_FX.scd), create the necessary SynthDefs containing VstPlugin instances, and VstPluginController (learn more about it in CS Help System) in which the actual VSTs are opened.
Create a ProxyChain with all the effects that will be injected (in the file FX/FXXX_orbs.scd) in the Ndefs from which
~dirtwill output, create one Spec ("input datatype specification") for each effect parameter.
Set Ndefs up, inject from the ProxyChain in them and create the respective GUIs. TODO: Everything is already setup to NdefPresets to be available, so implement this functionality to be used together with function-hacks.scd, so you can change lots of parameters at once.
Create OSCDef to get OSC messages from Tidal with an MFdef in it, the MFdef is constantly updated with the incoming OSC messages, add functions to the MFdef to control the effects parameters whenever they change.
Create synths to be used in Tidal. Appart from the normal sounding ones there is dummy, a silent instrument, and click, a transient instrument with a controlable decay, used mostly as signal control in the effect comp (take a look at FX/fxLib.scd) to duck other sounds.
Curently there is only one effect there: saturator
Its an effect to be used in Tidal in per-event fashion. It works well to bring some harmonics of low frequencies as well to make some sounds harsher.
A better control of wich frequencies are affected wouldn't be bad. Suggestions and/or PRs about it are very welcome.
The config file for vim-tidal. It contains the definitions for all the parameters of effects and synths, including VSTs, that lives in SuperCollider. It can be seen as the tidal_set_FX.scd Tidal counterpart.
The snippets to livecode faster. There are a lot of snippets for samples that you probably won't need because they refer to my custom samples library.
A Neovim config file with some special control-mappings for live-coding. If have already one, don't substitute yours for this one. Simply take what interest you.
I strongly recomend these public sources to learn both SuperCollider and Tidal. The communities are truly welcomming and there's no prerequisite or knowledge entry barrier.
Make use of SuperCollider Help System to learn more about any of the UGens or methods you may encounter here and are curious about.
Make Pull Requests if you see something wrong or have suggestions to be included.
File issues if you have some problem using this.
Fork it if you want to change it your own way.
You are always welcome to participate.