How do you control the midi clock of an external program from max?
okay, i’m sure this must be covered elsewhere, but i can’t find it in the tutorials or by searching the forum here:
I want to control the transport of a external device or program via MIDI, from within max. Specifically, I am trying to control the transport of two instances of Renoise from within Max, by sending MIDI data from MIDI Yoke in Max to each these programmes indepedantly or in sync. I can get both instances of Renoise to receive midi info from max, so its just how to get send midi timing information to control the transport which i’m stuck with.
Now, this is possible with one instance of Renoise via Rewire. However, it would appear that it is not possible to currently slave two instances or Renoise to max msp as Rewire master. Therefore I wish to do the same thing with one or both instances of renoise with MIDI clock and sync information which is sent from a patch in max.
I’ve looked at the sync~ object but I can’t understand how you send timing info to Renoise with this. Presumably this is possible though? I mean the concept should be the same as if I wanted to sync an external synth or drum machine via a clock controlled in max? How would you do that?
Can anyone offer some pointers or perhaps an example patch of how I go about this? Initially I don’t need to do anything that complex, just stopping and starting the transport in each programme and adjusting the speed etc. thanks in advance
Here is a patch of a MIDI clock generator.
----------begin_max5_patcher---------- 1079.3oc4X9zahiCFF+L7ovJmYQwNFHL2Zm4xHsUpRUyoppp.wT7rI1nDmtz cz7ce7+BjPcRSX.Di1Kjfeise7uX+jW6eLbf2B9VRtG3SfGACF7igCFnKRUv .6+G3kFscYRTt9w7VxSSILg2HSLAYqPW987rcExJRorDhPWCnsvUblHm9eDc Y9i8sEuIRrbMk8xyYjkBiPP3PYXPfOVeYt5WnrHvSk0IijK0PjfxYU6BZrVJ 7Ee+ulVQK7BQoX7qHFVTpVLd2jQiR7bz1UzzLjVEnvCkjpV+b3P0Oi9MQ3s2 e2IhfASUgAHe+imfP7IFgS0ry.xeSBlPekLVJK0SY6zWix1oFGgUpcUzRR0Q fSH2BMQl4iS0ReROoYvN5DkI0ofj8LgEsHgTsB0IMxVpoHwaaHF834MB3sJg GI02Se.y0RNLrAgmG8JI94HgHitnPP1eWtE9V5qvaRAgupr3xxqNbnrUb830 NRqEjmESxp.+ZAKXTyH1YUy2PHwIzzlpctfrIuofjsa3L0hMEkG2XmKdKgzT SjJm5ohE36O1cbJyD2YXpr8UKNzuOfncvu1CU9xskF38SWpSg0RC3VVAbPS9 JMmtnkwLO1NpgnYNGVQLF2NcaWu5pqR3rW5prT8pgktQYBk8Op1JuMYyiMiJ STswR4kd5xvH+qbo66royIIx0W.Hv2k4B7z3fiCLevYldQ6jouyAup2BxsSc PS9GKhXun7PJut2Fwgo9wZOq4USlypfOhdxquNwAyzfvXkgsejqmNw9mXm38 za2TjrBlWWLlMujcLNTsjYDTss9efcsj6VzJGBPEdkWQdNMM6o2NrMycXqV6 tsiJmGf5jose2Lsqux35w0tEc8mgssfjtgq+.LDLeZmstw8O4aSxsHatWn1r tm614F1jeCkIN0l0MgK01vNiefKv35EX2QUPaTJ7ZlRSNuoADzYJgupoD5bR ovtOWJ3pkRxMzEaxH6j.EnYWeVanISZEJndREsNaAKfa4IwmP1jRio5DVbwF zQyl4Z1fm2Ja56LlyBWJRkoF05LCkBrmjWMAzKhDn2Dq7Y8OliLBCaeiHKdY IOgmY5Q+wywP49aF47NXkd14ZxQGl7cuOOJndDCwXyVJfueRfLkAKQ8t4afu 72O.d3MlXMPmW5H0Oe8lOC9RlL+nLf51aKxqDbUFOEbWz16d39FJcehskrAU BmvIggH7Hm2UENqSD0gpDe3YZTFLCMYh5toy7k0zVuS6hR46lyZRBPyFjzqP wyZcWv893JqPBcCJSzkc3ggqEkp753ImWjsrb5XoKAXuthI4BJa2ZkG2u9nx CslFGSXUEojna3xY26VG67kUm0DpCZ5.get0jFAvOPSWVLg6.ktvu3t5TT3U mhl2AEEdQUj5fk9PIM+5SRPzkUScwUBe4kzGYJcY8IgAcbxD7Hkj7O+b3u31 2iPB -----------end_max5_patcher-----------
I’ve just noticed that in my patch the value type of the BPM number box didn’t correspond to the unit style, which may lead to inaccuracy. It’s fixed in the following update.
----------begin_max5_patcher---------- 1083.3oc4X1zaaBCGF+bxmBKNmEgMPBY2Z2tLoUoJUsSUUUjfSi2.6Hvzkto 8ce9EHARMtPZRTl1k.wu93e19g+1+d3.m4rM3bGvGA2CFL32CGLPkjLgAk+e fSZzlEIQ4ph4rfklhobmQ5733MbU52xx1lHsHkPSvbUMfkItjQ44jegUo4N1 sL40Q7EqHzmdLCufqEBxOTjMvy0W8Xl7WnHIvCU0ICmKzPDmvn06BRrRJr4e +CSpoEVAuRLt0DCMJUIFmqxHQINFZ6ZZZJRoBT39RRVq+Lbn7mQuSDd8s2bj Hn2DY1.jq6gSPn+QFgSTrSCx2IASHOiGKjkrTkc5yQYaUigrkpcYzBb8QfQH aglH85wIJoGzSZ5skNQYBcxwYOhoQySv0qPSRiJSUmD+k0XsdbbFAbVlvhD5 6g2f4JIGF1hvyidFG+XDmmQlWvw6dKuD9kzWh2jBLaYUxUoWe3PnKYpwa4Hs QlrrXbVM32HyBJQOhMV070XbbBIssZmywqyaKS7l0Lpbyljxiasy4ujfaqIR EK8TSGgAiMmOQMq64ZLahn8kaNTyGPzV32nPUStv1afWuboIEVILfsrCXul7 YRNYtkwLKtbTCQSMNrhnTV4xss8potJgQepqxR1qZVZFkID5OjsUtMYyh0iJ ctJikpG8zkgh+oXq6qroywIh8W.Hv0j4B733f66o+fyT0l1fIuxAut2BxrSs Wa9GyinOI8PpdtyFwfo9gZOq3UalyxLuG8fSech8lp.g1Jyu7ib8zI18vchk xV2vNYETGa9y6X51EN0phU6Z8TugQ2+A10BtWBQwP.JAo3IxwnoYO81g1L2g Vs1MaGUMii5josa2Lsaty3xw01ht92v1liSWyTe.FBlMoyV298O3acvsnxXu P1rtmY14F1lyBgxO1l0sgK4wvNgefyS6u4UdhJOaTJ7RlRAm1v.75Lk7unoD 5TRovtuVx6hkRhCzEqiH6n.En9Tek1PAAVgBpmTQoSKXAbMKI9HxlTRLQEvh I1fNX1LSwF+YVYSeWwbR3RQpHzHqqLjJn7l7ZHfdQDO0gXEk08PtxHen8ChL +oErDVltGcGOyGJNeyHiuAq0yqR3MqmnD9SUk1aJJHP91jotAggMqmw8xi1O 77deOVPEof995ih.e8hGQnFkyDNW8Mvm+5cf6dgxWATwyNR9yWt5SfOmIhqJ CHe85h7ZYtLikBtIZyM2caKotKf3JlhpfSn.CH+QFeCdfW2lkMkBFeRCR.pO JjZGp+TqmBt2WWYMRnZPQftz8uLbknjo2DO4rhrEUKqpbI.6zULNmSna2qb+ t8G0JzJRbLlVWjBhtlIVktcerwIqNqITGzzdB+TqIEBfuglNuXxuCT5LOwcw onvKNEMqCJJ7rpH4EK8lRZ1kmjfnyql5hqj+4WRukoz40mD50wESvCTRh+7m g+EPCDORL -----------end_max5_patcher-----------
thanks this has been really useful. i’ve used this as a basis to make the patch i describe for controlling the renoises. although i think rewire would still be the way to go, but it needs renoise to implement multiple slave instances of the program… but this is another story, i managed to make my proof of concept anyway and it works so thanks!
I am looking for a MIDI clock to feed through physical MIDI cables (from Max to physical gear via a MIDI interface). Will this patch do this? I.e. will the real world objects understand the signal as MIDI clock?
(I’ve copied the patch, but it’ll be a while before I can test it… Just thought that perhaps broc knows what this will and will not do.)
Yes, the patch can also be used to sync external devices.
Just select the corresponding MIDI port of your interface.
Thanks a lot broc! I’ll try it out next week:-)
It is all working like the proverbial charm! Thanks broc!!
I don’t know a thing yet about max programation. would it be possible to multiply or divide the midi clock coming out of ableton with max for live?
Then sending it to my synth,
For example i have a running midi scene of 120 BPM and my synth is running with the same Midi clock but on 60 BPM ?
I know that kind of hardware does exist, but not yet in software not I schearched it and found nothing.