(Not sure if this is the correct category, since I guess it has more to do with SuperDirt/SuperCollider, feel free to move the thread around)
I have been wondering if there is any custom tuning capability with Tidal at the moment or in the works and how this could be best implemented. I am a beginner in all related areas but I think it would be a very interesting avenue to go down. At the moment, I have an external box (Midihub - MIDI Interface & Stand-Alone MIDI Processor) which converts outgoing MIDI to a particular scale (using an .scl file) with pitchbend. Maybe someone has already developed a system in Tidal to send pitchbend messages with custom scales on the fly, I'm not sure if it is possible to have polyphony with this technique.
https://xenpaper.com/ is a fun tool to play around with tuning in a text based way, maybe there are some ideas that could be pinched from here?
I've just thought that i haven't actually looked into custom tuning with SuperCollider, I believe there is Quark that works with Scala files?
There's also MTS ESP to consider ODDSOUND, i don't think it's particularly relevant but I'm sure some inspiration could be gleaned by someone...
Anyway, just putting the feelers out there since I've not seen much discussed before. It would be nice to have the option of tuning a given sample any which way, tuned to a reference pitch or a whole set of reference pitches, rather than having banks for each tuning. It would also be very cool to be able to pattern a sequence of different tunings or modulate intervals within a given scale with probability. I'll be mucking around with these ideas myself for a while for sure.
There is no way to pattern tunings for SuperDirt sounds in Tidal. (EDIT: turns out there is! see below)
But you can use Tidal to send MIDI messages to microtuned VSTs in your DAW. It won’t do everything you’re hoping, but it definitely lets you play xenharmonically or in just intonation with Tidal.
The toScale’ function allows you build scales with non-12 divisions per octave. E.g., toScale’ 19 [0, 3, 6, 8, 11, 14, 17] gives you the diatonic scale in 19-EDO. This will sound right if your VSTs are tuned to 19-EDO.
The function above is used exactly like toScale with an extra argument specifying the N-EDO. Make sure you send the pattern as a MIDI signal with # sound “midi” # midichan 1 for example.
Thank you very much for the info. I've seen the toScale function but not the toScale` variant, looks like very interesting way of using retunable VSTS / outboard gear via retuner boxes as you've mentioned.
I think in general routing all the audio and midi and retuning the VSTs is just too much work for both me and my poor PC. This is mainly because i use Linux, i think it's fairly straightforward to do all of this with a Windows/Ableton setup. However I know you can, in theory, use VSTs with SuperCollider, and ODDSound would make it all a lot easier.
I think the best way for me currently, if i had the time, energy and the money, would have to be using a hardware setup with a retuner box, sequenced with Tidal.
Right now it just seems a lot easier for a live microtonal situation to just remix different banks of loops and samples using SuperDirt. I think there is a huge untapped potential here for livecoding if proper syntax, synths and samplers could be developed. It's defo one of my main interests right now.
(The above shows how to pattern supercollider's pitch model. I think the thread @vasily.milovidov points to describes how to do implement something on the Tidal side.)
I can't seem to get the SC pitch model working. I think I've followed the instructions correctly, but when I execute d1 $ slow 2 $ s "gabor*8" # degree "0 1 2 3 4 5 6 7" # scalename "ritusen" # tuning "young" d1 $ slow 2 $ s "gabor*8" # degree "0 1 2 3 4 5 6 7" # scalename "ritusen" # tuning "just"
it just plays the same note 8 times.
I'm just hitting ctrl-Enter on the params and the SC code, I've also added them to my boot and startup files, what am i doing wrong?
There's a bug in supercollider sample at musikinformatik/SuperDirt/blob/develop/hacks/pitch-model-from-tidal.scd . The line if(~n != 0) { ~note = ~n }; // interpret n as note (might be also degree) should be n ? { ~note = ~n }; // interpret n as note (might be also degree) as n is nil and not 0 if you're not using n in Tidal.