metro timing ticks

    May 27 2011 | 12:42 pm
    Since this is my first post...hello to everybody.
    I read the doc but i don't understand, how to output bangs from "metro" using ticks and how the message "Transport" in metro is used correctly.
    I defined a metro with a bang output of 500ms and tried to trigger an other metro object that sends intervals in 480 ticks.
    I work with Logic and the time resolution in Logic is 960 ticks per beat. I want to patch a standalone that works with the same resolution in rewire mode.
    The Transport in MAX works with a resolution of 480 ticks and i was thinking that this would cause imprecise timing when it comes to groove.
    By the way is the MAX global transport included by creating a standalone?
    Hope you understand my questions
    Greetings Zuko

    • May 27 2011 | 2:35 pm
      Hello, Zuko. When you use a tempo-relative timing unit (such as ticks) for metro, rather than the tempo-independent ms, the metro becomes linked to the transport. The transport has to be running for the metro to work. (Sorry if I'm telling you something you already know.) There's an example below.
      I think that the fact that Max uses 480 ticks per quarter note and Logic uses 960 will not cause you any serious timing problems. At a tempo of 120 bpm, 1/960 of a beat (the maximum difference between Max's timing and Logic's) is only .52 ms. Even at an extremely slow tempo like 48 bpm (not exactly a common tempo in "groovy" music) the maximum error would be only 1.3 ms. Mind you, I haven't tested to see if there's some kind of software incompatibility between Max and Logic, but I'm not aware of any.
    • May 27 2011 | 2:40 pm
      Quick answer: yes in a standalone you can see the transport. The user needs to be able to double click on the transport object.
      I have some questions though, do you want max or logic to be the ReWire host? This will determine a lot of how you program it.
    • May 27 2011 | 2:56 pm
      Keep in mind that Logic can run only as ReWire host (master), not client (slave).
    • May 27 2011 | 5:59 pm
      Thanks for the quick replies and the example patch. Really cool that patches can be shared via text. You are right 1.4 ms at 48 BPM should not cause relevant groove problems. :-D
      I know that Logic is only able to be the rewire master and the app, that I'am creating should be the slave. Thats fine.
      My app should listen to the rewire tempo but i would like to have the possibility to run sequences without running the rewire transport.
      I must admit that i don't really understand the concept of the Max built in transport for using it in own patches. I know it's a Max patch in the extras folder and I guess the transport object in C Dobrians example refers to it.
      But how does it work in a own patch that is build as standalone. Will it be automatically included and will the own standalone be able to work with it on other computers where MAX is not installed?
      I wanted to understand how the Global Transport patch in the extras folder works but when i open it in edit mode I am not able to see how it's patched. Other patches in this folder act the same. Whats going on there?
      In the tutorial "Abstractions" it's explained how to encapsulate and that these abstractions can be saved and used as objects in new patches. Where do i have to place the abstractions that i want to use in my app and how I'm gonna tell in the process of building that i want those to be included?
      I can't find a step by step instruction on "How to build your own app" in the docs. I tried to build one test app but i get an .mfx file.
      Greetings Zuko
      ps.: Is there a option to allign a bunch of patch chords at once? :-/
    • May 27 2011 | 7:28 pm
      You can use [GlobalTransport] in your patch. Double-click will open it. But it provides just an user interface to start/stop and observe the global transport. For getting the current transport data you need to poll a [transport] object with [metro].
    • May 28 2011 | 8:48 am
      thanks broc