Skip to content

Tidal Cycles

Tidal Cycles is software for composing music and live coding. Sound output is made with the SuperDirt digital synth/sampler. However, the software also provides for the control of other synthesisers using Open Sound Control (OSC) or MIDI. Required dependencies for Tidal Cycles include SuperColliderSuperDirt and Haskell. Users don't need to know the Haskell programming language to use Tidal.

Personal Experience

N/A

Tools & Software Integrations

TidalCycles for VSCode - A VSCode extension for executing Tidal Cycles code. It also features an audio file browser which is not present in the other available text editor extensions for Tidal Cycles.

N/A

Resources

N/A

Notes and Troubleshooting

N/A

Installing Tidal Cycles on Windows with VS Code

Tidal can be loaded with all the required dependencies including Git and Atom Editor from the command line. The following steps are for Windows users who are not starting from a fresh installation. 1. Download and install Supercollider: https://supercollider.github.io/ 2. Download the sc3-plugins for Supercollider in order to use any the synthesizers included with Tidal Cycles: https://supercollider.github.io/sc3-plugins/ 3. Unzip the downloaded file and place the SC3plugins folder into one of the SuperCollider extension folders listed below: - Default user installation in userExtensionsDir:

    ```
    C:\Users\<USERNAME>\AppData\Local\SuperCollider\Extensions
    ```

- System-wide installation:

    ```
    C:\ProgramData\SuperCollider\Extensions
    ```
  1. Install Superdirt (https://github.com/musikinformatik/SuperDirt) by opening SuperCollider and typing the following command in the interactive edit, and press Ctrl+Return to evaluate it:

    Quarks.checkForUpdates({Quarks.install("SuperDirt", "v1.7.3"); thisProcess.recompile()})

  2. Wait for the installation to complete. When done it will have printed something like the following in the Post window:

    ``` Installing SuperDirt Installing Vowel Vowel installed Installing Dirt-Samples Dirt-Samples installed SuperDirt installed compiling class library...

    ...

    *** Welcome to SuperCollider 3.12.1. *** For help press Ctrl-D. ```

  3. To boot SuperDirt automatically everytime SuperCollider starts click on File > Open startup file and paste the following text-file into the new tex buffer:

/*
This is an example startup file. You can load it from your startup file
(to be found in Platform.userAppSupportDir +/+ "startup.scd")
*/

(
s.reboot { // server options are only updated on reboot
    // configure the sound server: here you could add hardware specific options
    // see http://doc.sccode.org/Classes/ServerOptions.html
    s.options.numBuffers = 1024 * 256; // increase this if you need to load more samples
    s.options.memSize = 8192 * 32; // increase this if you get "alloc failed" messages
    s.options.numWireBufs = 64; // increase this if you get "exceeded number of interconnect buffers" messages
    s.options.maxNodes = 1024 * 32; // increase this if you are getting drop outs and the message "too many nodes"
    s.options.numOutputBusChannels = 2; // set this to your hardware output channel size, if necessary
    s.options.numInputBusChannels = 2; // set this to your hardware output channel size, if necessary
    // boot the server and start SuperDirt
    s.waitForBoot {
        ~dirt = SuperDirt(2, s); // two output channels, increase if you want to pan across more channels
        ~dirt.loadSoundFiles; // load samples (path containing a wildcard can be passed in)
    // for example: ~dirt.loadSoundFiles("/Users/myUserName/Dirt/samples/*");
    // s.sync; // optionally: wait for samples to be read
        ~dirt.start(57120, 0 ! 12); // start listening on port 57120, create two busses each sending audio to channel 0

        // optional, needed for convenient access from sclang:
        (
            ~d1 = ~dirt.orbits[0]; ~d2 = ~dirt.orbits[1]; ~d3 = ~dirt.orbits[2];
            ~d4 = ~dirt.orbits[3]; ~d5 = ~dirt.orbits[4]; ~d6 = ~dirt.orbits[5];
            ~d7 = ~dirt.orbits[6]; ~d8 = ~dirt.orbits[7]; ~d9 = ~dirt.orbits[8];
            ~d10 = ~dirt.orbits[9]; ~d11 = ~dirt.orbits[10]; ~d12 = ~dirt.orbits[11];
        );

    };

    s.latency = 0.3; // increase this if you get "late" messages

};

);
  1. Install Haskell GHCup (https://www.haskell.org/ghcup/) by running the following in a PowerShell session (as a non-admin user):

    shell Set-ExecutionPolicy Bypass -Scope Process -Force;[System.Net.ServicePoin 8. Enter the following commands in Powershell:

    shell cabal update cabal v1-install tidal 9. Press Enter when prompted to accept default settings as required. 10. Download and install VS Code: (https://code.visualstudio.com/)[https://code.visualstudio.com/] 11. Open VS Code and install the Tidal Cycles Extension: https://marketplace.visualstudio.com/items?itemName=tidalcycles.vscode-tidalcycles 12. Install the Haskell Syntax Hightlighing extension for VS Code: [https://marketplace.visualstudio.com/items?itemName=justusadam.language-haskell] 13. Associate .tidal files to the Haskell language in VS Code by adding the following settings in settings.json:

    json "files.associations": { "*.tidal": "haskell" }

Source: Tidal Cycles: Windows Manual Installation