I'm glad to hear that you're enjoying the looper. If you ever want to share what you do with it, I would be very happy to hear/see something Now let me answer your questions:
but when I use it, e.g.
This is because once
will trigger your pattern immediately when you evaluate your code and doesn't care about the global cycle position. If I remember correctly, then something like this should do the trick:
d1 $ qtrigger $ seqP [(0, 1, s "rlooper")]
Also see: Composition | Tidal Cycles
In my looper documentation I also wrote this note:
Note 1: I prefer to use 'qtrigger' to ensure, that the recording starts from the beginning of the pattern. Maybe you want to use the looper with seqP, seqPLoop or wait.
There are other ways to achieve what you want to achieve, but these solutions are way more complex and I didn't documented these ideas that I currently try and use (but they are easier to use and handle in a live situation IMHO). But I am quite optimistic that it is just a matter of time when I document my complete setup and share it with everybody.
Obviously qtrigger has changed at some point, since I can tell it no longer accepts arguments, but I can't seem to find any documentation or discussions about the change.
The function qtrigger
didn't knew anything about his own context. That's why it was changed. Most of the time you want to use it within i.e. d1
which has the stream id 1
. And there was no way to tell a function like qtrigger
that it was called inside of d1
. But yeah...I must confess that I forgot to update my looper documentation.
(P.S. any chance you know a good way to increase input gain to supercollider? my guitar is coming into my interface pretty hot but I need to really pump the gain in Tidal to hear anything)
The easiest way is to increase the recording level with this command in SuperCollider (you can add this to your SuperCollider startup file):
~looper = TidalLooper(~dirt); // You should already execute this line
~looper.rLevel = 2; // Or whatever fits your needs
But I realized that the default value is way too low. But yes, you can adjust it and I must confess that I never found an optimal default value. But it's something that I have in mind.
This was hopefully helpful for you!