Live coding


#42

@shreeswifty Pat, glad you’re liking it! Graham is also in the process of working on a gibberwocky backend that will enable live-coding of Max/MSP patches (as opposed to only supporting M4L).

@glia Glad to hear that Tidal is working out for you! It’s pretty amazing and has a really active community around it. In case you ever want to continue down the rabbit hole and make your own mini-language, here’s some notes from a workshop that Graham and I (mostly Graham) recently led on the topic: https://worldmaking.github.io/workshop_iclc_2016/


#43

[quote=“charlieroberts, post:42, topic:5032”]
@glia Glad to hear that Tidal is working out for you! It’s pretty amazing and has a really active community around it. In case you ever want to continue down the rabbit hole and make your own mini-language, here’s some notes from a workshop that Graham and I (mostly Graham) recently led on the topic: https://worldmaking.github.io/workshop_iclc_2016/
[/quote]kudos for the tip

this is really the only thing on earth that could get me back into writing creatively

creating my own micro script
wowzers


#44

This may not even be related with the live coding topic but the question just popped in my head.

Do you think that writing your own language/Parser somehow augments your perception/vision about music?

There are already some pretty neat coding environements and i think that, as a programmer, it would be more beneficial to funnel that energy into mastering an existing one.


#45

[quote=“cannc, post:44, topic:5032”]
There are already some pretty neat coding environements and i think that, as a programmer, it would be more beneficial to funnel that energy into mastering an existing one.[/quote]I see what you mean

However, the same could be said about existing code environments when compared with pre-built apps and commercial software. If you use a tool someone else made there are inherent barriers to understand and wield it properly. This is one way our creativity can be applied (and by far the most common).

[quote=“cannc, post:44, topic:5032”]
Do you think that writing your own language/Parser somehow augments your perception/vision about music?
[/quote]Only if you build it well. Otherwise it could actually impede your working methods

Still I can’t imagine the process being a total loss if you learn something and reach a goal of trying to do it yourself.


#46

To your point tho

I haven’t built my own computers or music hardware (pedals/synths). At this stage in my life it makes more sense to spend time finding the right tools that someone else has spent time crafting.

Same thought applies in the software realm…


#47

I totally get you and i’m a customized/self-created software person myself but i don’t think that you can apply the same rules to both commercial softwares and coding environments. When there are already some that has been going on for years, i just feel like using it to the all extent is more of a logical way. :slight_smile:


#48

you’re right
especially for a novice like me

once I have more experience with basics it might worth messing with but for now it’s lower priority


#49

@cannc @glia I did say it was a rabbit hole :slight_smile:


#50

I’m really glad you mentioned this

If the venue were closer I’d check it out in person.


#51

wasn’t sure where to post until I remembered this thread

been using basic tidal & sc sparingly but want motivation to try a few more advanced things:

  • in the process of modding the tidal midi binders for a volca fm (I’d eventually like to attempt tidal control of other synths too)
  • separate the audio channels

the first task is far easier than the 2nd…i just have to make sure not to break the tidal git . I’ve tried searching for a quick answer regarding channels and busses in supercollider and how they’re addressed, I might be looking in the wrong places tho

I feel silly asking for help but if you have suggestions or beneficial info feel free to share


#52

Total shot in the dark, but you may want to look at this page of the lnx studio documention
http://lnxstudio.sourceforge.net/Help/How%20to%20program%20LNX_Studio.html

Hopefully it will give you an idea of how to address separate audio channels in sc because that’s what it’s built with. Sorry if it isn’t helpful


#53

no this looks perfect

well now I feel silly
I thought it was far more complex for some reason

it appears as if for what I’d like to do (sample into and/or spit sc stuff out of multiple motu channels) it’s just
out 1, out 2, out 3, etc

i’ll read again in more detail to confirm
thanks @Boob


#54

Happy I could help :slight_smile:


#55

taking the info from https://github.com/tidalcycles/tidal-midi/blob/master/doc/synth-mapping.md
and comparing the existing volca maps to their respective midi implementation docs (on korgs website) this seems pretty straightforward

module Sound.Tidal.MIDI.VolcaFM where

import Sound.Tidal.Params
import Sound.Tidal.MIDI.Control

fmController :: ControllerShape
fmController = ControllerShape { controls = [
mCC transpose_p 40, -- shift
mCC velocity_p 41, -- vel
mCC modattack_p 42, -- matt
mCC moddecay_p 43, -- mdec
mCC carattack_p 44, -- catt
mCC cardecay_p 45, -- cdec
mCC lfo_p 46, 
mCC lfopitchdepth_p 47, -- lpd
mCC algo_p 48, 
mCC arptype_p 49, --atyp
mCC arpdiv_p 50, -- adiv

],
-- duration = ("dur", 0.05),
-- velocity = ("vel", 0.5),
latency = 0.01
}

fm = toShape fmController

excited to get home and test… I think it’ll work
once I make sure it’s good I can rename and post on tidal git


#56
module Sound.Tidal.MIDI.RMControllerMIDI where


import Sound.Tidal.Params
import Sound.Tidal.MIDI.Control
rmController :: ControllerShape
rmController = ControllerShape {controls = [

                          mCC length_p 5,
                          mCC tAmp_p 95,
                          mCC tMute_p 94,
                          mCC tSolo_p 93,
                          mCC tMtype_p 15,
                          mCC activeScene_p 92
                        ],
                        -- duration = ("dur", 0.05),
                        -- velocity = ("vel", 0.5),
                         latency = 0.2}

oscKeys = toShape rmController

(length, length_p) = pF "length" (Just 0)
(tAmp, tAmp_p) = pF "tAmp" (Just 0)
(tMute, tMute_p) = pF "tMute" (Just 0)
(tSolo, tSolo_p) = pF "tSolo" (Just 0)
(tMtype, tMtype_p) = pF "tMtype" (Just 0)
(activeScene, activeScene_p) = pF "activeScene" (Just 0)

You will also need to import it in tidal-midi.cabal with the appropriate name.

After importing, do a clean install with cabal install

you can use orbits for that. also the effects in SuperDirt are global. you’ll need to specify the orbit, e.g
# orbit "2"


#57

thanks!

i’ll check it this weekend and let you know if i have other questions


#58

i have not had any luck with Midi and tidal on Mac perhaps i am missing something


#59

What’d you try so far?

Is tidal working on its own?


#60

oh yes, it works but when i try to route midi it gives an error. I’ll try again and post what i am getting


#61

Orbits are indeed the way to go to get separate outputs in Tidal (SuperDirt), but need a little extra config…

Take the “setup with options” example from here: https://github.com/musikinformatik/SuperDirt

For e.g. four stereo outputs you change s.options.numOutputBusChannels = 8; and ~dirt.start(57120, [0, 2, 4, 6]);

The former sets the number of outputs, the latter creates four orbits, the first going to outputs 0 and 1, the second to 2 and 3, and so on. You keep the ~dirt = SuperDirt(2, s); line unchanged because you want each orbit to be stereo.

It’d be great if you can contribute the volca fm synth definition back to tidal-midi! You could send a PR to 0.9-dev branch, and/or join the #tidal channel on the TOPLAP slack if you’d like some help doing that.