After seeing some work done by Jason Levine, where he’s performing using t-SNE analyses of sound samples to organize related samples, I wanted to try development my own implementation…

This set of scripts snags TidalCycles messages between the GHC Interpreter and SuperCollider, modifying them based on t-SNE data. Each sample is located in the t-SNE 3-dimensional space. The k nearest samples to that location are then store in a local dictionary. Any time that sample is called, it is replaced with one of these k nearest entities. In this instance, the software is running with k=5, which doesn’t change over the course of the performance.

To produce the t-SNE, I’m first running an analysis of all available samples (about 8400 samples). The analysis is performed with LibRosa and consists of a number of descriptors pertaining to noisiness and spectral characteristics. This analysis produces 191 values per sample, which are then used as input into the t-SNE, which reduces this dimensionality down to 3.