I'm really enjoying the course, even spending a little of my non-available free time doing some composing
I'm sure I'm jumping ahead here, but a limitation I'm finding is the ability to perform non-destructive operations to multiple channels.
Example: I want to build up a series of cycles (d1-d4), then create a "drop" by:
- muting all channels
- starting d5 bass kick while all channels still muted
- unmute all channels with extra bass oomph
I'm not a dance music artist, I'm sure all my terminology is wrong, but I hope the description makes sense -
Is there options for me to do this? I've seen the 'mute' command, but it's a per channel thing, 'hush' doesn't let me bring everything back easily, the workaround I've tried is creating a d6 $ silence which I can solo and unsolo but I've got to be very nimble fingered on the keyboard to line everything up
Is there anything better suited?
Maybe try something like #gain (range 0 1$ slow 4 square) which would alternate the volume between 0 and 1 every 2 cycles. And if you wanted to bring back the elements gradually you could probably do something like:
#gain (range 0 1$ stack[square,saw])
I haven't actually tried any of this myself so take my answer with a grain of salt. https://tidalcycles.org/index.php/Oscillators. Maybe looking through this page would give you more ideas.
If you want to carry out multiple actions at once, you can use
do notation. To apply a function to everything you can use
do d5 $ sound "bd*4"
do unsolo 5
all $ (# shape 0.8)
To take off that effect on
all you'd then need to do
It'd be good to have a good session or two on different ways of shaping a performance. The problem with
all etc is that you have to remember the state they're in. It really needs some UI so you can visually see what is solo'd, etc.
do d5 $ sound "bd*4"
something wrong there?
> parse error on input ‘solo’
There was, that should be
solo 5, fixed in the post..
Amazing, thankyou guys!
I went a little bit further, and found I can save my nimbleness plus build that wait by throwing in a setcps to half speed when I mute/solo the silent channel:
do solo 6 -- my silence channel
and bringing it back to 0.7 in my next do:
do d1 $ slow 2 $ n "[0 0] [~@0.4 0] [0 0] ~ " # s "bd"
Just got to be coscious of my own ability to keep time then
Here's what I've managed, little shout out to a @yaxu favourite at the end
Thanks! Needs some work on timing sections for sure, but the bones are there
The jux rev at the end was improvised, thought it'd get a laugh after Alex talked about it in the live stream the other night, but then it actually sounded awesome
I'd like to mute/unmute a group of channels. But something like
mute [2,3,5] does not work. Is there a way of doing it in an easy form?
Thanks @yaxu for this
mutelist = mapM_ mute
so in theory this would work as an all fadeout workaround?
xfade [1,2,3,4,5,6,7] $ silence
doesn't complain, but also doesn't execute
it'd be cool to be able to say xfade all $ silence
and it'd be cool to say xfade all over the next 12 cycles to silence
it's a mixing tool, like panning, level, reverb, etc...
You're right @abalone1969 that would be far better than a hard-mute! Or let's say: a good alternative...
Ok here's a more relaxed version of
hush that works on d1 .. d16
quieten = mapM_ (\i -> xfade i silence) [1 .. 16]
Or if you want over a given number of cycles:
quietenIn t = mapM_ (\i -> xfadeIn i t silence) [1 .. 16]
mapM_ function takes each number in the list
[1 .. 16] and gives it to
(\i -> xfadeIn i t silence). The
\ is called 'lambda' and puts the number in the
i variable. Then that gets used in the
thank you, next level coding for me
is it possible to run it called this...
fadeOutIn t = mapM_ (\i -> xfadeIn i t silence) [1 .. 16]
then I can execute
and it works fantastic
is it possible for me to put this code in my BootTidal.hs file
so it loads everytime?
and/or is it possible to include it in the next version of Tidal?
thanks again, great liveStream today
The name is an arbitrary variable (call it
shutthehellupbutslowlyIn if you want )
As a side note,
fadeOutIn is more ambiguous than
quietenIn to me:
OutIn implies a cosine style volume shift ala
quietenIn is more clearly related to silencing over a number of cycles
thinking about how to best put this in my BootTidal.hs file so it runs everytime
(until the next Tidal version )
think I found BootTidal.hs with this info
ghc-pkg describe $(ghc-pkg latest tidal) | grep data-dir | cut -f2 -d' '
from here: https://github.com/tidalcycles/atom-tidalcycles/issues/60
is there anything else that needs to be included?
some of the other code that looks like this in the BootTidal.hs file (under let)
has tidal or i at the end
included as is, Tidal doesn't seem to re-load knowing this function
(BootTidal.hs from here ...
thanks for your help with this, sounds very musical
Hey I've been thinking the same, I watched this excellent video of @kindohm 's on the topic - he makes some interesting points about where to keep this stuff, and how - you can add it to your boottidal.hs, or you can just have it in a separate file.
My preference, at least initially, is to use the separate function file (for reference, here) for the main reason that these functions are all new to me and I'm still getting used to exactly how they work - so I like to keep that open for reference and occasional modification/addition as I'm going
Putting it in the bootstrap file makes it a bit more permanent, and a bit more obfuscated (imo of course) - and any modifications require a reboot of tidal I believe, so I'll probably leave that for down the track a bit
PPS I found there's a vscode github gist extension that will let you create, open and save your gists directly to github... "Gist" by Ken Howard