Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[mtr] issues #575

Open
porres opened this issue Sep 25, 2021 · 1 comment
Open

[mtr] issues #575

porres opened this issue Sep 25, 2021 · 1 comment

Comments

@porres
Copy link
Owner

porres commented Sep 25, 2021

  • [mtr] rewind doesn't seem to work outside 'next' mode

These were included in MAX 7:


Attributes:

undoable:

  • autostart : Sets whether mtr plays all tracks when the transport is started. Default is 0 (off). This attribute can only be set globally, and does not apply to individual tracks.
  • autostarttime : Sets the autostarttime for mtr. If the autostart attribute is enabled, mtr will play all tracks automatically at the time specified with this attribute. autostarttime can only be set globally, and does not apply to individual tracks.
  • bindto [atom]: Bind individual UI objects to tracks without patch cords using pattr scripting names. If you assign a scripting name to a UI object, you can use that same name to set bindings to mtr. The typed in arguments for @bindto should be the track number followed by the scripting name of the desired object.
  • sync : When sync is enabled, mtr syncs to a named transport (“internal” is the default). When sync is off, time units are in milliseconds. When sync is on, time units are in ticks. This attribute can only be set globally, and does not apply to individual tracks.
  • transport : Sets the transport name. The default setting is "internal", which is the global transport. This attribute can only be set globally, and does not apply to individual tracks.

doable:

  • embed : When embed is set to 1, any recorded data is saved with the patcher. Note that recording, changing, or clearing data does not cause the patcher to be dirtied. This attribute can only be set globally, and does not apply to individual tracks.
  • length : Sets the length of all tracks in time units. This defines when the track will stop or loop. If the length is shorter than the original recorded length, events after the specified time are not played but are still present in the track. This attribute can be set via the inspector, attrui, as a typed-in argument, or as a message to the left inlet. When set this way, length is considered a global attribute and will overwrite any previously set track-specific length values. If sent as a message to any non-left inlet, it sets the length of the track in time units that corresponds to the inlet. If a length value is subsequently set globally (see above), all track-specific values are overwritten.
  • loop : Turns looping off/on for all tracks. This attribute can be set via the inspector, attrui, as a typed-in argument, or as a message to the left inlet. When set this way, loop is considered a global attribute and will overwrite any previously set track-specific loop values. If sent as a message to any non-left inlet, it sets the looping state of the track that corresponds to the inlet. If the loop value is subsequently set globally (see above), all track-specific values are overwritten.
  • mode : Enables automation playback mode, which when starting or restarting a track will play the last event before the selection (if a selection start point is non-zero). The default value is 0 (off). This attribute can be set via the inspector, attrui, as a typed-in argument, or as a message to the left inlet. When set this way, mode is considered a global attribute and will overwrite any track-specific settings that were previously specified. If sent as a message to any non-left inlet, it enables/disables automation playback mode for the track that corresponds to the inlet. If the mode attribute is subsequently set globally (see above), all track-specific settings are overwritten.
  • nextmode : Sets how the next message behaves. When nextmode is set to 0, a next message after the last event will produce an event with a delta time of -1. When nextmode is set to 1 (loop mode), a next message after the last event will immediately loop back to the first event. This attribute can only be set globally, and does not apply to individual tracks.
  • quantize: Sets playback quantization. This does not change the actual events in tracks, only how they are played. This attribute can only be set globally, and does not apply to individual tracks.
  • selection <float, float>: Sets the playback selection of all tracks. The selection is made in normalized units based on the length of the track, either defined via the length attribute, or if length is 0, the total recorded time. For example, "selection 0.25 0.75" will play the middle section of a track. When sending a play message to a track, it will start at the selection point, not the beginning. Playback is (subtly) affected by the mode attribute. This attribute can be set via the inspector, attrui, as a typed-in argument, or as a message to the left inlet. When set this way, selection is considered a global attribute and will overwrite any previously set track-specific selection values. If sent as a message to any non-left inlet, it sets the playback selection of the track that corresponds to the inlet. If the selection attribute is subsequently set globally (see above), all track-specific values are overwritten.
  • speed : Sets the global multiplier to be applied to the speed of all tracks, where 1.0 is the original speed. This allows you to have individual tracks running at different trackspeed s, and then apply a global speed change. This attribute can only be set globally, and does not apply to individual tracks.
  • trackspeed : Sets the speed of all tracks, with 1.0 being the originally recorded speed. The actual track speed is a combination of the mtr's speed attribute, the trackspeed, and the timescale. This attribute can be set via the inspector, attrui, as a typed-in argument, or as a message to the left inlet. When set this way, trackspeed is considered a global attribute and will overwrite any previously set track-specific trackspeed values. If sent as a message to any non-left inlet, it sets the speed of the track that corresponds to the inlet. If a trackspeed value is subsequently set globally (see above), all track-specific values are overwritten.

Message methods:

undoable:

  • writejson: In left inlet: Calls up the standard Save As dialog box, allowing the contents of mtr to be saved as a separate file, in JSON format. Unlike the write message, writejson writes times as floats, preserving the timing of events precisely (won't do).
    In other inlets: Writes a file, in JSON format, containing only the track that corresponds to the inlet.
  • bang: at left inlet outputs dictionary (won't do)
  • dictionary : The message dictionary, followed by a name, will load that specific dictionary into mtr, including all events from each track sequence (won't do)
  • dump: sent to the left inlet of mtr, sends a dictionary out the right outlet of mtr. Unlike the dictionary sent out from the info or bang messages, this dictionary contains individual events from each track sequence (won't do).
  • info: Just like bang, sending the info message to the left inlet of mtr, results in a dictionary being sent out the left outlet with information about the current state of the object. Both global and track specific informtion is included in the dictionary. An entry that begins with "global_" is the global setting for the specified attribute. If the same attribute has a track specific setting, that value will be listed under the track information (won't do).

doable:

  • definelengthandstop: In left inlet: Stops recording and sets the track’s length to the current recording time. The stop message, by contrast, does not set the track’s length; the total recorded length (available in the info dictionary) is defined by both messages and consists of the time between the start of the recording and the time of the final event recorded before stop or definelengthandstop is received. The word definelengthandstop, followed by one or more tracks, stops and sets the length for those tracks.
    In other inlets: Stops and sets the length of the track that corresponds to the inlet.
  • addevent : "addevent 1000 1" adds event 1 at time 1000. Can be sent while track is recording, playing, or stopped. The message cannot be sent to the left inlet.
  • deleteeventat : deletes all events that exactly match the criteria at the specific time. The time occupied by the event is also deleted. "deleteeventat 1000" will delete all events at absolute time 1000 in the track. The message "deleteeventat 1000 3" will delete an event at absolute time 1000 containing 3. The event "3 4 5" will not be deleted because it does not match exactly. This message can be sent while a track is recording, playing, or stopped. Cannot be sent to the left inlet.
  • cleareventat . Unlike deleteeventat, cleareventat does not delete the time occupied by the event. For example, if events are at time 1000, 2000, and 3000, and the event at 2000 is cleared, the next event remains at time 3000. can be sent while a track is recording, playing, or stopped. Cannot be sent to the left inlet.
  • playat : In left inlet: Starts playback of all messages at a specific point, which is specified in a normalized range from 0-1, where 0 is the beginning and 1 is the end. Messages are sent out the corresponding outlets in the same rhythm and at the same speed they were recorded. In other inlets: Starts playback of all messages on the track that corresponds to the inlet. Playback stars at a specific point, which is specified in a normalized range from 0-1.
  • playatms : In left inlet: Starts playback of all messages at a specific point, which is specified in milliseconds. Messages are sent out the corresponding outlets in the same rhythm and at the same speed they were recorded. In other inlets: Starts playback of all messages on the track that corresponds to the inlet. Playback stars at a specific point, which is specified in milliseconds.
  • timescale [float]: In left inlet: Sets the timescale for all tracks. 100 is the original timescale, whereas 200 would be twice as fast. This message can be set while a track is playing. Please note that when a track is played again, the timescale is reset to 100. For this reason, use of this message is strongly discouraged in favor of the trackspeed attribute, which does not reset. In other inlets: Sets the timescale for the track that corresponds to the inlet.
  • touch : Turn touch automation recording off/on. Sending the message "touch 1" while a track is playing, overwrites the existing recording with new data received in the track’s inlet. Timing is unaffected. Sending the message "touch 0" ends the touch automation recording, and any events from that point on in the track play as usual. The touch message only works when a track is already playing.
@porres porres changed the title [mtr] misses a lot of things... update [mtr] to MAX 7 Feb 15, 2023
@porres
Copy link
Owner Author

porres commented Feb 17, 2023

  • go back to without 'EOT'

  • implement stopandsetlenght with 'EOT', but don't save 'EOT'

  • fuck this object

@porres porres changed the title update [mtr] to MAX 7 [mtr] Oct 21, 2023
@porres porres changed the title [mtr] [mtr] issues Oct 21, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant