How to detect ableton transport start
Is there an object i can use that will send a bang when the ableton transport starts?
I dont want to use "metro @autostart" as that will continue sending bangs, i just need one bang when the ableton transport starts
[timepoint 1 1 0] sends a bang at start since Live automatically jumps to the start position.
Thank you sir
also, interfacing with the [transport] option is typically useful for this kind of stuff – combined with timepoint you get some good control.
Do you want to receive a bang also when Live starts anywhere else than 1.1.0 ? as this can also happen if you start with shift-space of from an insertion point in the arrange grid. If this is the case, you’ll have to observe Live’s transport through the LOM.
<code>-- Pasted Max Patch, click to expand. --Copy all of the following text. Then, in Max, select New From Clipboard.----------begin_max5_patcher---------- 521.3ocwUFrbaBCDF9L7TnQmodPPwFma44nSGFgYqsxfELRBpcyj28Jsx3X2 ZSHowtWPVqVy++9gVomCCnkM6.Mk7.4ajffmCCBvPt.AGlGP2x2splqwznkc FSijF4WpoyTCFy9Vv+Nnkb4ZJ46GVtkaVsQHWWnfUFeFIKSmEGQRWj6FRhGd d7+HpPcZJe5Kr3AcjcaERqRnGXuFzquOpK3KggtGQSrXjvOs5LHhA1gljpgZ Ba7RLhPmTY9U+v7wJy7Ao9QizH4aQgnOpD75KV+ImjtV7KLcVhUgKgkjOOrT K5gYMkZP0CpqhmIiFVlaXwxwPS1MEMGhp48PUgUNqEK3FiRX2j66JBNRn.ZQ KnzBsAjqfia37n88B3sfVyWC+EgaUMVQL6IBcQaMeuvsS6ZbdTFmjMKyh0bj wLFCGxuRaF6VR4Ow9RCojT+O1Wt.27kjgCKGcyGK4cxE1+yFSawtg39UgFLi 2c9lPJ0CojrI.ozaIjROARn51ZU9mWXgUfK94jS2zoVMT2CVkvNVDUf1Hjbi vdc1IIY+nSdsR2Hpp.b8ACVIz7xZ.IP7E+FNY+btTWwOr6qedK9jcVN2T6vl .dxtazIeJerhua1IaB1I+C5FemFuss2cim+UhFwdZzSMJ2z4Q3TgzOEapoJn WLjOdGAkqrmsXrGrzo7mKrKeNMzoyKg+F79MqMB -----------end_max5_patcher-----------
What am i doing wrong here, when i play this midi clip in ableton it plays fine and in tempo but when i use the seq object this way it goes off tempo:
<code>-- Pasted Max Patch, click to expand. --Copy all of the following text. Then, in Max, select New From Clipboard.----------begin_max5_patcher---------- 613.3oc2WF0aaBCDG+YpT+NX4mYQfALj911WiooImfWp6.aF1oKaU669LmCI zTRFijQSmhDAe1Fe2O7c+MOc6Md3EpMbMFcG5iHOumrV7.aMV7ZM3gKYaVVv zv.wkbslshi821oguw.cnMppcVE4fM0hGdWXvNqeQIMZwO4M8EFLKn0dEyr7 dgb0mq4KMN2IlLKMwGkQsiBEQlYuOzdO5SsyQttTHK3FvqHsVUqMValeTwcO FLd+LZVcIqD5A+9ZAq.8AUQNtySzMc3QFBV+0s2z7u8O+ASHI+6139k.xHJ4 UJgzfBs+B5kUiBUQQMPBFEJKDtO6nnJ7nnZASt5U.WKVaLJYuzffOQXGEjsO rI6tdtg8kJrNQdBq1f57ptSDmMl2+QT.DI.BhiAn7FIU4nPplyx6CPoiAPgt cGuEqkbT.YDK+Ze.hNF.QhRafBc9+OEa07u0GdRFEdRcIUAoc3yXpvZq8i8O yBsjKutDurRgnAVQo4z9fV7YrmJFziRS+CpRwmjYWOaqJE4B6BzGkHmyVqXH 0KNcnh2+cbH3.N3d53Bg7Em9C7wlNNfNZ055ksuSZEmQc7ybt1HjLivpkueT YOeP2Kxy4P+6fRtPyVTvy6yO8GieMD25PmeB7qrg3WIStakdYbKadAbzVcqh 6bnHY.ANVVVztVcVpKbjPuNAbyJFd8kljLDZM8YIwCwsnSeQkAUrKd58qf+I ouIjYjlD1PPbhPceS4yaM1T6sZOrppG405sNpKBsRvOnpaZS8csERWamtm8q BdTzNE2oPwrZqjpwpmtt1IFtIihs8.Kn8xuAXe2rFA -----------end_max5_patcher-----------
I’m not familiar with the seq object but I think this might come from the fact that your tempo division in [tempo] is set à 96 (the maximum) and [seq] might wait for higher resolution ticks. It isn’t clear to me in the seq help what the ‘start 1024’ for normal speed playing refers to.
The tempo division 96 is correct (same as midi clock).
However, you can’t simply retrigger playback from the last midi event (right outlet of seq) since it happens before the last bar has ended. Instead you need to retrigger playback every x bars if x is the length of the midi file in bars, ie. basically the same what Live does with looped midi clips.
Its a 4 bar midi loop, i know by looking at it, how would i know what bar it is on in the Max effect and how would i retrigger at the end of the last bar?
you can always observe is_playing on the live_set – this sends a 1/0 when transport is started/stopped
im playing a 4 par piano loop in live and in the seq object im tryna play a 4 bar drum loop, but i can hear the drum loop is off tempo when played in the seq object. If i take the drum midi loop and play it in an ableton clip, it plays perfectly and loops perfectly with the piano
If already the first play (without loop) is out of sync I’d suspect that the tempo control with ticks doesn’t work as expected inside the seq object. Sync with ticks is inherently problematic as the tempo must be calculated from tick intervals which can only be done after at least 2 ticks are received.
that makes absolute sense broc, it will never be synced in that case….hmmm so what is the solution, is there anyway for me to specify the tempo manually then before hitting play? Im tryna play the midi file at 60bpm
Quote from the ref page:
"The word start, followed by a number, plays the stored sequence at a tempo determined by the number. The message start 1024 indicates normal tempo. If the number is 512, seq plays the sequence at half the original recorded speed, start 2048 plays it back at twice the original speed, and so on."
"The message start 1024 indicates normal tempo" thats normal relative to the tempo of the midi file, to play it at a tempo of my choice i guess i would need to know the tempo of the midi file first before hand so that i can get a number to play the file with
Yes, but you can find out the tempo of your midi file by dragging it into an empty Live set. The global tempo of Live will then be adjusted to the tempo of that file, if it contains an explicit tempo definition. Midi files without tempo definition are considered to have standard tempo 120.
Isn’t there a built-in patcher that comes with Max for Live that is made EXACTLY for this? It outputs a bang at the exact time that you start Live’s transport.
Keep in mind that the Live API doesn’t ensure accurate timing as it runs on low priority threads.
i am trying to write a patch that simply sends out a band whenever a clip starts in the track it is placed in. when i new clip is played it bangs again. but not when the clip loops around. in that case it doesnt bamng. just once when the clip is initialized.
I haven’t tried it myself but have you looked at using [live.observer playing_status]?
you could observe the track property ‘playing_slot_index’ and bang if the value changes.
Forums > Max For Live