Skip to content
This repository has been archived by the owner on Dec 31, 2019. It is now read-only.
/ tidal-live-kit Public archive

Tidal kit for live performance

Notifications You must be signed in to change notification settings

annyfm/tidal-live-kit

Repository files navigation

Anny's live Tidal kit

Assumptions

Projects

Scripts require the following projects to be installed in these locations:

These can be installed elsewhere on the filesystem for organisational reasons and symlinked instead. Alternatively, edit samples.csv with changed paths, or replace it with something completely different.

Combining samples

Each project has its requisite samples installed in samples/ e.g. Piston LP@4af4e12 samples/

The sync-samples.php script will look in the samples/ directory of each project and symlink sample banks from there into samples/ here. It uses samples.csv for mapping configuration.

Once working, on repeat use it will flush samples/ and map all sample banks included in samples.csv

Then, you can use kit.scd to start the SuperDirt server and load all samples in a flash with this bit of magic:

~dirt.loadSoundFiles("samples/*".resolveRelative)

Working with remapped samples

In cases where a sample is renamed, the change is not copied to snippets that use it, and you need to remember to rename it mid performance. This is easily done using YASnippet tab stops; after inserting a snippet, press tab repeatedly to cycle through the samples used, and type to replace any of them as needed. For example, try:

julperc<TAB>jhh<TAB>

This will produce the Tidal block for Juliese percussion with the original hh sample replaced by jhh

The full list of changes at present is visible in samples.diff.

Combining snippets

All projects include a snippets/ directory containing YASnippet-compatible snippets representing blocks of key Tidal code.

The sync-snippets.php script will look in the snippets/ directory of each project and symlink snippets from there into snippets/haskell-mode/ here. It uses samples.csv to identify project paths. Note that no mapping is used for this as snippets are expected to be uniquely named.

To load the combined snippets directories, Emacs configuration must include these directories:

(setq yas-snippet-dirs (append yas-snippet-dirs '("~/Documents/Music/Live/kit/snippets" "~/Documents/Music/Live/kit/snippets-override")))
(yas-global-mode 1)
(yas-reload-all)

Note that snippets-override/haskell-mode/ is maintained separately and includes a livesetup snippet that contains pre-resolved channels for a typical live performance. Each project's original code uses a different set of channel names, and this snippet is helpful to run before a performance to ensure all channels (plus some shorthands) are available and minimise conflicts.

The fact that these scripts are PHP scripts

How I would love to do these as shell scripts, but my bash-fu is too tired for that fight, and I know PHP better than I'd necessarily like to. Deal with.

Author

Aneurin "Anny" Barker Snook a@aneur.in

About

Tidal kit for live performance

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published