Palette:moviePlayer and MIDI In CHOP: Difference between pages

From Derivative
(Difference between pages)
Jump to navigation Jump to search
mNo edit summary
 
(cleaning)
 
Line 1: Line 1:
{{Summary
{{Summary
|opFamily=COMP
|opFilter=False
|opType=container
|long=The MIDI In CHOP reads Note events, Controller events, Program Change events, System Exclusive messages and Timing events from both MIDI devices and files. See also [[MIDI In Map CHOP]].
|opClass=Palette:moviePlayer Ext
|opLicense=
The MIDI In CHOP receives MIDI events from MIDI devices connected to the serial port, reads MIDI events internal to the workstation (i.e. the built-in software synth), and interprets musical scores in MIDI files. Supported MIDI events are:
|short=
|long=The moviePlayer [[Palette]] component is a multi-purpose tool for playing, controlling and examining movies. It can used standalone or embedded in TouchDesigner applications.
: Note On, Note Off
* The moviePlayer user interface controls the movie's speed, scrubbing, single-frame stepping and shuttling.
: Polyphonic Aftertouch
* It plays a movie's audio to an audio device and/or its output.
: Channel Pressure
* moviePlayer lets you switch to a new movie via drag-drop, scripting or parameters, without frame drops.
: Program Change
* You can inspect (zoom and pan) movie images using mouse controls while a movie plays, optionally outputting the zoomed image.
: Control Change (MIDI controller devices)
* You can inspect individual pixels, and display their position, color and alpha values.
: Pitch Wheel
* Movie playback can be externally controlled with CHOP ramps, python commands and pulse parameters.
: Timer Events including beat pulses
* movieEngine is a lightweight moviePlayer with the UI removed. It can be embedded in other tools and controlled externally. (on External page, press Create Engine COMP)
: Bar Messages
* Using cues, you can set multiple in- and out-points and then loop video and jump to cues.
: Start, Stop, Continue
* Movie Spec components hold you movie settings and cues, which enables you to later re-call, play and loop multiple sub-sections of movies.
: Song Position Pointer
* Movie Spec components allow non-destructive movie settings and preparation, which you then can recall with moviePlayer.
: System Exclusive Messages
* moviePlayer is used in [[TouchPlayer]] as its default movie player and works with a touch screen.  
 
MIDI events arriving on separate MIDI channels may be recorded on separate CHOP channels. Also, any number of MIDI CHOPs can read from the same or different sources. TouchDesigner can be configured such that MIDI Start, Stop, or Continue events can control the [[Timeline]] and [[Beat Dialog]].
'''NOTE April 12 2021''': This wiki page is not fully updated yet with the improvements in moviePlayer April 8 2021. Aside from performance improvements, a principal change is the adoption of the Initialize/Start convention of TouchDesigner, which gives more control over transition from one movie to the next. For moviePlayer, it separates the process of (1) specifying a new movie or movie spec via drag-drop of changing pars, (2) the Initialization of the new movie at certain starting point, cued ready to play and (3) triggering to Start at that point. This can all be done in one shot (default) or separately with the Initialize and Start pars.
 
The 'Simplified Output' option creates a channel for every type of MIDI event received, so number of channels expands while the devices is being used. No need to specify name, channel and index patterns.
Tip: When giving presentations in TouchDesigner networks, use moviePlayer instead of Movie File In TOPs because (1) it can automatically play when you select and pause when you select something else, and (2) it is easier to jump around long movies and play at cue points. (See its Go page.)
}}
'''Note''': The values of the MIDI inputs are saved into the TouchDesigner .toe file, and are restored when the file is reloaded. The physical controllers may be in a different position when the .toe is restarted, causing the values to jump when the controllers are moved. This is unavoidable.
{{OPSection
|opFamily=COMP
See also the [[MIDI In DAT]], [[MIDI Event DAT]], [[MIDI In Map CHOP]], [[MIDI Out CHOP]].
    |sectionName=Quick Start
|opLicense=Non-Commercial
    |sectionSummary=Get moviePlayer from the Palette -> Tools, then rclick -> View to get it in a floating window, or simply use moviePlayer in the node viewer in the network.
|opClass=midiinCHOP_Class
 
|opLabel=MIDI In
To play a new file, (1) change the file name in the File parameter, or (2) drag-drop movie files from a file browser onto the panel UI or node viewer (with [[Viewer Active]] on), or (3) drag-drop a Movie File In TOP onto the panel, or the node viewer.  
|opFamily=CHOP
 
|opType=midiin
On the user interface, press the '''Controls''' button to bring up player parameters and movie parameters. (Alternately on the moviePlayer parameter dialog, press Open Movie Parameters.)
|short=The MIDI In CHOP reads Note events, Controller events, Program Change events, System Exclusive messages and Timing events from both MIDI devices and files.
 
|opCategories=
On the top row of the floating dialog, you see the tabs Player (for player settings) and Movie (settings for the specific movie you are playing now). Select Movie and adjust anything (say, Speed, Gamma) and verify the speed/level changes.}}
}}
{{OPSection
|opFamily=COMP
    |sectionName=Usage
    |sectionSummary=
    |items={{OPSubSection
|opFamily=COMP
    |sectionName=UI Play and Position Controls
    |sectionSummary='''Play/Pause''': The ll and > button.
 
'''Timebar Scrub-and-pause/play''': When dragging on the moviePlayer scrub bar, when you release the mouse button, if your cursor is above the bar, moviePlayer will continue to play the movie. If you have dragged down off the bar, it will pause the movie. Otherwise it will keep doing what it was doing before you started scrubbing.
 
'''Stepping''': For precise positioning, the - and + buttons let you step forward and backward one frame. If you hold these buttons down, it will increment/decrement 1 frames every 1/6 second, and as you drag right/left off the + and - buttons, it will increment/decrement faster.
 
'''Shuttle Swing (Ladder)''': The <> button lets you inspect around the current frame: If you click <> and drag left/right off the button, it will go and pause at nearby frames, and if you continue to hold down and bring the cursor back to <>, it will return to the initial frame. The scale is exponential.
 
'''Keyboard''': The keyboard's left/right arrow keys step forward and backward a frame. The Space bar pauses and un-pauses.
 
'''Time code''': Roll over the time counter to get the movie length. Select from its menu to switch between seconds, frames and timecode.
}}
{{OPSubSection
|opFamily=COMP
    |sectionName=Movie Settings and Adjustments
    |sectionSummary=On the moviePlayer parameter dialog click Open Movie Parameters, or on the moviePlayer panel click the '''Controls''' button on the left. This brings up the custom settings of the current movie.
 
Parameters on the Movie -> Settings 1 and Settings 2 pages adjust and prepare the movie: start-end trim, crop, Black Level / Luminance / Gamma adjustments, speed, audio gain, etc. Note that these adjustments don't affect the movie file itself, only how it is played in moviePlayer.
}}
{{OPSubSection
|opFamily=COMP
    |sectionName=Zoom into Image to Inspect Pixels
    |sectionSummary=On the movie image, middle-click and hold down, then move left-right to zoom into a pixel of the image, or (with Roller Zoom toggle on UI page On) use your mouse roller wheel. Press 'h' to home. left-click/drag to pan. This zooming does not affect the output movie unless you set the Output Inspect Image parameter on the UI page. When the movie border is yellow, it indicates the movie is not homed in the viewer. When you zoom in far enough, the pixel color and position values are displayed in an overlay.
}}
{{OPSubSection
|opFamily=COMP
    |sectionName=Audio
    |sectionSummary=The audio signal always goes out the second output. But moviePlayer optionally plays audio to the default audio device (Internal Audio Player on the Control page). Its Volume parameter on the Control page is mirrored in the UI as the Audio slider. Alternately the second output of the component can be routed to a mixer/output component.
}}
 
{{OPSubSection
|opFamily=COMP
    |sectionName=Initialize and Start
    |sectionSummary=The Initialize/Start convention of moviePlayer, and TouchDesigner in general, gives more control over a transition from one movie to the next. Normally, with On Source Change set to Initialize and Start, it will start playing the new movie as soon as it's loaded. But you can separate the process of (1) specifying a new movie or movie spec via drag-drop of changing pars, (2) the Initialization of the new movie at certain starting point, cued ready to play and (3) trigger to Start at that point. This can all be done in one shot (default) or separately with the Initialize and Start pars.
 
Assuming you want to seamlessly get the the new movie loaded, initialized and paused at a certain frame, ready-to-play, at which time you would press Start or trigger it externally. For this behavior, set On Source Change to Initialize and Pause. Alternately, you want moviePlayer to initialize nothing while you drag-drop a new movie or change the File Path parameter, and then initialize only when you press Initialize, etc.
You can set the starting time using Initialize Time parameter.
 
While playing, Go to Done, jumps to the end of the movie and stops. The pulse parameter Go Back to Prev Movie lets you alternate between the current and previous movie.
 
Timing information is sent out the out3 output of moviePlayer in a CHOP, with time counters and the current initialize, start, running and done states.
}}
{{OPSubSection
|opFamily=COMP
    |sectionName=Transition
    |sectionSummary=moviePlayer is designed to play a single movie at a time and does not crossfade between pairs. Because loading and initializing the next movie frequently takes more than one frame, the image may be invalid for one frame or more. By default it fades down for .2 sec, reloads, and fades up for .2 sec. You can set those to 0 sec but some frames of black may appear. Yuo can set Transition to Freeze and Cut, and it will hold the last frame of the previous movie and cut to the new movie when ready. Other tools using movieplayer internally will do crossfades.
}}
{{OPSubSection
|opFamily=COMP
    |sectionName=Creating Cues
    |sectionSummary=You can set up cues (a point or sub-section of a movie), each with a "beauty" frame, a "start" time, an optional "end" time and a end-start crossfade time.
 
'''Quick Cue''': Pause the movie somewhere. Move your cursor to the top part of the player. The cue grid comes up (mostly empty at first). Click Add Cue. It will add a 5 second cue at the current frame. Go and pause to some other frame after the current frame. Again in the top area, press the E= button to set the End time. Now you have a cue segment. Press the grey Cue 1 button at the bottom. It will turn green and play/loop the cue.
 
'''Expert''': To get at more controls you would use if moviePlayer is small, set Cue Edit Area set to Cue Columns. If  you click in the top row of boxes labelled "B", it goes to the respective Cue's Beauty frame and pauses. If you click in the middle row of boxes labelled "S", it goes go to a cue's Start point and plays (hold Shift to pause). If you click in the third row of boxes labelled "E", it goes to a cue's End point and pauses. These provide quick-access jump points.
 
Once a cue is created, there are 4 ways to set the beauty, start and end points (some are better for touch screens):
 
Pause the movie where you want set a start, beauty or end point.
 
(1) Press the S= or E= buttons in the upper section.  S= sets both the beauty and start frames.
 
(2) With Cue Edit Area set to Cue Columns, press Ctrl-click on the B, S or E boxes.
 
(3) Use the Set> menus in the cue grid.
 
(4) Right-click on an existing cue in the timeline and use the same Set> menu.
 
Thereafter, when you left-click on the B, S and E boxes, it will go to those times in the movie.
}}
{{OPSubSection
|opFamily=COMP
    |sectionName=Using Cues
    |sectionSummary=Assuming you have created at least one cue (see above), in the bottom row of the timeline, if you click on an icon image it goes to the beauty frame for that cue and pauses. If you press Shift-click on the icon, it will go to the cue's start and pause. You can play forward from the beauty or start times if you drag off the icon to the right (convenient for touch screen).
 
In the second row from the bottom, click the grey cue boxes to play only the cue's segment from start to end, and depending on the Cue's Next Behavior setting, loop the cue. The box turns green indicating it will only play the cue start-end range. Press Shift-click to pause at a cue's start time, or press the cue and drag down off the button. Press > to continue, keeping the cue selected (green). The first click on an unselected cue sets it to the cue start, the next click on that cue scrubs the cue.
 
End-to-start crossfade times are set per-cue: Set the the Crossfade parameter of the individual cue's parameter dialog via '''Par+''' (or '''Controls''') or via Set> Cue Parameters. (The Crossfade of the full movie (equivalent to cue 0, or Full on the timeline) is set in the movie's Settings 1 page.)
}}
{{OPSubSection
|opFamily=COMP
    |sectionName=Movie Spec Components
    |sectionSummary=A Movie Spec component specifies a movie file path and movie adjustments like in/out trim points, cropping, brightness/gamma/black level, speed, cues, metadata and more.
 
To create a Movie Spec component, open a movie via the File parameter of moviePlayer, or drop a movie from the file system or a Movie File In TOP onto moviePlayer's UI viewer. Then go to the External page, and press Copy Cur Mvspec Below. A new Movie Spec component is created below whose icon is the current movie. (You can check its Settings pages and look inside to see its cues.)
 
Then you can drag-drop these "mvspec" components to the moviePlayer or movieEngine panel to switch movies with all their settings and cues. You can use moviePlayer to edit the mvspec component further.
 
Alternately, change the moviePlayer parameter Source Type to Movie Spec COMP, and change the Movie Spec parameter to the Movie Spec component that you want to play.
}}
{{OPSubSection
|opFamily=COMP
    |sectionName=Movie Spec Metadata Info
    |sectionSummary=A Movie Spec component, on its Info page, also holds persistent movie metadata (as read-only parameters) that is normally only available if you open the movie file: images per second, time lengths, resolution, aspect ratio. So you can get movie info without opening the movie. (it is updated/validated every time the movie is opened by moviePlayer/movieEngine).
}}
{{OPSubSection
|opFamily=COMP
    |sectionName=More on Cues: Cue Boxes, Columns or List
    |sectionSummary=You can change the display of the top area to display cues as a time-ordered list. On the UI page, change the Cue Edit Area menu to Cue List. Cue Columns is convenient for use with touch screens.
}}
{{OPSubSection
|opFamily=COMP
    |sectionName=Cue Internals
    |sectionSummary=Note that every cue is a Base component in <code>moviePlayer1/mvspec/cues</code>, each with a few custom parameters.
 
After pressing Open Movie Parameters on the parameter dialog, or '''Par+''' (or '''Controls''') on the moviePlayer panel, if you have set a cue, you can see the Cues' parameters by selecting it in the top row of buttons beside Player and Movie. Or click the Set> menu and select Cue Parameters to bring up the parameters of a cue.
 
Here you see where the start, end and beauty times are held. You can name the cue. The Enable parameter undisplays the cue in the timeline, and is useful when it gets too cluttered. The Next Behavior menu allows you to stop or loop when reaching the end of a cue. You can set it to go black (0 0 0 1) or zero (0 0 0 0) at the end of the cue. You can safely delete or re-order <code>cue1</code>, <code>cue2</code>... components in the cues network, or via the Set> menu.
}}
{{OPSubSection
|opFamily=COMP
    |sectionName=Outputs
    |sectionSummary=The movie image and audio go out the first two outputs. Output 3 is the current movie's aspect ratio, length and rate. Output 4 contains cross-fading channels and diagnostics that may be useful.
 
moviePlayer contains about 70 nodes initially without cues - your GPU memory may become the limiting factor as you add many moviePlayers. But its default behavior is to pause moviePlayer when it is un-selected, to avoid using GPU and CPU time (see the Behavior page).
}}
{{OPSubSection
|opFamily=COMP
    |sectionName=External Control of moviePlayer
    |sectionSummary=To drive moviePlayer externally you can use CHOP timing ramps (like from a Timer CHOP, Beat CHOP or LFO CHOP). You can use python trigger commands to position/play at specific times or cues, or pulse parameters on the dialog UI that jump to cues or specific times.
 
To drive it externally, go to the External page, choose a CHOP and a channel that you want to drive it with and set the CHOP and Channel parameters. Select the appropriate units - seconds, frames (timeline frames) or 0-1 fraction. Then turn on External Control Active. The moviePlayer playbar should go red and the full timeline or the current cue should be under the controls of the channel.
 
You can refer to values in the third output of the CHOP which contains 3 constant channels: length (how many seconds long in moviePlayer is the currently selected cue (cue 0 is the full movie)), duration (this is the length divided by the Speed parameter - the movie takes longer to play if you set the Speed lower than 1)) and the movie's rate (images per second).
 
On the "Cues" page of the component's parameters, you can select a cue number and press Go to Cue and Play, for example. You can drive this with python or by exporting to the parameters.
 
You can alternately set a time and press Go to Time and Play. Also the parameters on the Cues page of moviePlayer can be used to jump to cues, pause, play, etc.
}}
{{OPSubSection
|opFamily=COMP
    |sectionName=Control of moviePlayer with Python
    |sectionSummary=The python extension in the component has the functions such as <code>GoToCue(cuenum, cuepoint, play)</code> and <code>GoToTime(seconds, play)</code>. Example to go to 50 sec and play:
 
<code>op('moviePlayer1').GoToTime(50.,1)</code>
 
See the extension DAT in moviePlayer, which contaivs more functions to control via python.
}}
{{OPSubSection
|opFamily=COMP
    |sectionName=Multi-moviePlayers or Multi-"Movie Specs"
    |sectionSummary=There are two ways to manage multiple movies. Most simply, you can duplicate <code>moviePlayer1</code> in the network and alter the duplicates. This will let you play several movies at one time. Changing the file name will delete all its cues and reinitialize all the parameters.
 
Alternately, if you have more that 10 movies or so, you can have a multitude of lightweight "Movie Spec" components, and drag-drop them onto any movie player.  This is equivalent to setting a moviePlayer's Movie Spec parameter to point to the external <code>mvspec</code> component.  
 
To create a Movie Spec component, on moviePlayer, on the External page, press the parameter "Copy Cur mvspec Below". It copies the current settings of the movie of moviePlayer to a component <code>mvspec1</code>, just below moviePlayer in the network. ( Internally it is copying the template <code>moviePlayer1/mvspec1</code> or the latest <code>mvspec</code> outside <code>moviePlayer1</code>. )
 
The Movie Spec components are very lightweight.  Inside it are 5 passive nodes plus one empty Base component per cue.
 
You can make several copies of <code>mvspec1</code>. Then for each <code>mvspec*</code>, you can edit its parameters manually. Then you can drag-drop it onto the <code>moviePlayer</code> viewer, or assign it to the Movie Spec parameter of <code>moviePlayer</code>. Then you can edit and add cues etc as you normally would with the moviePlayer UI. All edits are saved in your <code>mvspec</code> components.
}}
{{OPSubSection
|opFamily=COMP
    |sectionName=movieEngine - moviePlayer Without UI
    |sectionSummary=movieEngine is a lightweight component that can be embedded in other tools to smoothly drive movie playback and switching. 
 
On moviePlayer, on the External page, press Create Engine COMP Below. It will create <code>movieEngine1</code> in the network below moviePlayer, which is the same as moviePlayer, but with its UI removed and other non-essential operators removed.
 
On movieEngine, you can still left-click/drag on the image to scrub, and middle-click to pause/play. Also movieEngine is controllable via its parameters, its inputs and its [[Extensions]] calls in the same way as you control moviePlayer.
}}
{{OPSubSection
|opFamily=COMP
    |sectionName=moviePlayer in TouchPlayer
    |sectionSummary=To play movies with [[TouchPlayer]], drag a movie file onto a TouchPlayer desktop icon, or start TouchPlayer on a movie file in the file system by right-clicking on the file and selecting Open With... TouchPlayer.
}}
{{OPSubSection
|opFamily=COMP
    |sectionName=Crossfading Between Two movieEngines
    |sectionSummary=To do crossfading or exact frame cuts between movies, you need two movieEngines or moviePlayers.
 
Every time you assign a new <code>mvspec</code> to moviePlayer's Movie Spec parameter, it may take a few frames to unload the prior movie, open the new movie and load the number of pre-read frames into the GPU. (It uses the [[Timer CHOP]] for this, and you can watch the timing on the <code>out4</code> of moviePlayer So one moviePlayer can never guarantee a perfect cut between movies. For this reason you need two moviePlayer components to perfectly cut or crossfade between them. You get the second moviePlayer to pre-load the next movie before making a cut or crossfade. You can use the "<code>fade fadein</code>" channels coming out of the 4th output of moviePlayer to control the cross-fading.
}}
{{OPSubSection
|opFamily=COMP
    |sectionName=UI Arrange Page and Select Page
    |sectionSummary=Look at the custom parameters of moviePlayer. On the Arrange page, all UI looks are set here.
 
Viewer Location puts the image behind or above the UI controls.
 
Here you can turn on Control Panel Always On while you are learning the UI.
 
You can also size the UI's overlay panels, and choose whether you want them displayed only when you roll over the panels or always.
 
'''Advanced''': For when you are using moviePlayer in the network, the Select page -> Action on Select Node, you can play the movie when you click on the <code>moviePlayer1</code> node in a TouchDesigner network. With other options, it can pause the movie when you click on another node. etc. You can play a certain cue when you select the movie. This is useful when demoing movies in a TD network where you can click a node and it plays your preferred cue.
}}
 
}}
{{OPSubSection
|opFamily=COMP
    |sectionName=Select Page
    |sectionSummary=On the Setup page, Force Resolution internally scales the movie to your desired resolution when it is read. You can set the number of core for decoding, and turn on hardware decoding, which is recommended if possible.
}}
{{ParameterPage
{{ParameterPage
|opFamily=COMP
|opFamily=CHOP
|pageName=Control
|pageName=Source
|pageSummary=
|items={{Parameter
|items={{Parameter
|opFamily=
|parName=active
|opType=
|parLabel=Help
|parName=Help
|parType=Pulse
|parReadOnly=
|parSummary=
|parOrder=0
|parOrder=0
|parItems=}}
|parLabel=Active
{{Parameter
|opFamily=CHOP
|opFamily=
|opType=midiin
|opType=
|parSummary=Enable or disable the MIDI In CHOP.
|parLabel=Version
|parType=Toggle
|parName=Version
|parType=Str
|parReadOnly=
|parReadOnly=
|parSummary=
|parItems=
|parOrder=1
}}
|parItems=}}
{{Parameter
{{Parameter
|opFamily=
|parName=source
|opType=
|parLabel=Source Type
|parName=Sourcetype
|parType=Menu
|parReadOnly=
|parSummary=
|parOrder=2
|parItems={{ParameterItem
|parItems={{ParameterItem
|opFamily=
|itemName=device
|parName=Sourcetype
|opFamily=CHOP
|itemLabel=File Path
|parName=source
|itemName=filepath
|itemLabel=Device
|itemSummary=}}<!--
|itemSummary=
}}<!--
-->{{ParameterItem
-->{{ParameterItem
|opFamily=
|itemName=file
|parName=Sourcetype
|opFamily=CHOP
|itemLabel=Movie Spec COMP
|parName=source
|itemName=mvspec
|itemLabel=File
|itemSummary=}}
|itemSummary=
}}
}}
{{Parameter
|parOrder=1
|opFamily=
|parLabel=MIDI Source
|opType=
|opFamily=CHOP
|parLabel=File
|opType=midiin
|parName=File
|parSummary=Get MIDI input from a device or a file.
|parType=File
|parType=Menu
|parReadOnly=
|parReadOnly=
|parSummary=
}}
|parOrder=3
|parItems=}}
{{Parameter
{{Parameter
|opFamily=
|parName=device
|opType=
|parOrder=2
|parLabel=Movie Spec
|parLabel=Device Table
|parName=Mvspec
|opFamily=CHOP
|parType=COMP
|opType=midiin
|parSummary=Path to the MIDI device [[Table DAT]]
|parType=DAT
|parReadOnly=
|parReadOnly=
|parSummary=
|parItems=
|parOrder=4
}}
|parItems=}}
{{Parameter
{{Parameter
|opFamily=
|parName=id
|opType=
|parOrder=3
|parLabel=Open Movie Parameters
|parLabel=Device ID
|parName=Openpars
|opFamily=CHOP
|parType=Pulse
|opType=midiin
|parSummary=Specify the id of which device to use.
|parType=Str
|parReadOnly=
|parReadOnly=
|parSummary=
|parItems=
|parOrder=5
}}
|parItems=}}
{{Parameter
{{Parameter
|opFamily=
|parName=file
|opType=
|parOrder=4
|parLabel=Image Fade Down (sec)
|parLabel=MIDI File
|parName=Fadedown
|opFamily=CHOP
|parType=Float
|opType=midiin
|parSummary=If MIDI file is selected as the MIDI source use this field to specify the name of the MIDI file to read. The file can be read in from disk or from the web. Use http:// when specifying a URL.
|parType=File
|parReadOnly=
|parReadOnly=
|parSummary=
|parItems=
|parOrder=6
}}
|parItems=}}
{{Parameter
{{Parameter
|opFamily=
|parName=entire
|opType=
|parOrder=5
|parLabel=Image Fade Up (sec)
|parLabel=Read Entire MIDI File
|parName=Fadeup
|opFamily=CHOP
|parType=Float
|opType=midiin
|parSummary=If enabled, the entire MIDI file is read. Otherwise, the Start and End parameters on the Channel page determine the segment of the file to read.
|parType=Toggle
|parReadOnly=
|parReadOnly=
|parSummary=
|parItems=
|parOrder=7
}}
|parItems=}}
{{Parameter|parName=resetchannels
|parOrder=18
|parLabel=Reset Channels
|opFamily=CHOP
|opType=midiin
|parSummary=Deletes all channels when set to On, new channels will not be added until Reset Channels is turned Off.
|parType=Toggle
|parReadOnly=
|parItems=
}}
{{Parameter|parName=resetchannelspulse
|parOrder=19
|parLabel=Reset Channels Pulse
|opFamily=CHOP
|opType=midiin
|parSummary=Instantly deletes all channels.
|parType=Pulse
|parReadOnly=
|parItems=
}}
    {{Parameter|parName=resetvalues
|parOrder=18
|parLabel=Reset Values
|opFamily=CHOP
|opType=midiin
|parSummary=Resets all channel values to 0 when On, channel values will not be updated until Reset Values is turned Off.
|parType=
|parReadOnly=
|parItems=
}}
{{Parameter|parName=resetchannelspulse
|parOrder=19
|parLabel=Reset Channels Pulse
|opFamily=CHOP
|opType=midiin
|parSummary=Instantly resets all channels to 0.
|parType=Pulse
|parReadOnly=
|parItems=
}}
{{Parameter
{{Parameter
|opFamily=
|parName=simplified
|opType=
|parOrder=6
|parLabel=Apply Fade
|parLabel=Simplified Output
|parName=Fadeapply
|opFamily=CHOP
|opType=midiin
|parSummary=When this is on channels are automatically created when MIDI signal is detected from the selected MIDI device.
|parType=Toggle
|parType=Toggle
|parReadOnly=
|parReadOnly=
|parSummary=
|parItems=
|parOrder=8
}}
|parItems=}}
{{Parameter
{{Parameter
|opFamily=
|parName=onebased
|opType=
|parOrder=7
|parLabel=Audio Volume
|parLabel=1 Based Index
|parName=Volume
|opFamily=CHOP
|parType=Float
|opType=midiin
|parReadOnly=
|parSummary=Make the index 1 based instead of the default 0 based.
|parSummary=
|parOrder=9
|parItems=}}
{{Parameter
|opFamily=
|opType=
|parLabel=Internal Audio Player
|parName=Internalaudio
|parType=Toggle
|parType=Toggle
|parReadOnly=
|parReadOnly=
|parSummary=
|parItems=
|parOrder=10
}}
|parItems=}}
{{Parameter
{{Parameter
|opFamily=
|parName=channel
|opType=
|parOrder=8
|parLabel=Force Resolution
|parLabel=MIDI Channels
|parName=Forceres
|opFamily=CHOP
|parType=Toggle
|opType=midiin
|parSummary=The CHOP may read from any number of MIDI channels, numbered 1-16. Ranges and multiple entries are supported (i.e. "1 4 6", "1-7 12", "1-5:2").
: If Channel Prefix is left blank, then the input streams from multiple MIDI channels will be combined into one set of CHOP channels (i.e., a "note 64 on" event on channel 12 followed by a "note 64 off" event on channel 8 appears in the note 64 CHOP channel as a single note).
|parType=Str
|parReadOnly=
|parReadOnly=
|parSummary=
|parItems=
|parOrder=11
}}
|parItems=}}
{{Parameter
{{Parameter
|opFamily=
|parName=prefix
|opType=
|parOrder=9
|parLabel=Resolution
|parLabel=Channel Prefix
|parName=Res
|opFamily=CHOP
|parType=WH
|opType=midiin
|parSummary=When recording from multiple MIDI channels, putting a string like "ch" in this parameter causes the MIDI channel to be split into separate CHOP channels per MIDI channel. Otherwise the MIDI channels are all merged into one set of CHOP channels.
|parType=Str
|parReadOnly=
|parReadOnly=
|parSummary=
|parItems=
|parOrder=12
}}
|pageSummary=
}}
{{ParameterPage
|opFamily=CHOP
|pageName=Record
|items={{Parameter
|parName=recordtype
|parItems={{ParameterItem
|parItems={{ParameterItem
|opFamily=
|itemName=single
|parName=Res
|opFamily=CHOP
|itemLabel=Resolution
|parName=recordtype
|itemName=Resw
|itemLabel=Single Frame
|itemSummary=}}<!--
|itemSummary=This only outputs the current value of notes, controllers, etc. It does not retain prior values. It creates a CHOP at frame 1 always, so the CHOP causes cooking only when MIDI events come in.
}}<!--
-->{{ParameterItem
-->{{ParameterItem
|opFamily=
|itemName=current
|parName=Res
|opFamily=CHOP
|itemLabel=Resolution
|parName=recordtype
|itemName=Resh
|itemLabel=Current Frame
|itemSummary=}}
|itemSummary=Same as "Single Frame", but the CHOP frame is always at the current frame, so the CHOP changes every frame, causing other CHOPs to recook every frame.
}}<!--
-->{{ParameterItem
|itemName=ind
|opFamily=CHOP
|parName=recordtype
|itemLabel=Current Time Slice
|itemSummary=The CHOP frame is always at the current [[Time Slice]].
}}<!--
-->{{ParameterItem
|itemName=timeline
|opFamily=CHOP
|parName=recordtype
|itemLabel=Full Length
|itemSummary=The entire length of the timeline is recorded.
}}
|parOrder=0
|parLabel=Record Method
|opFamily=CHOP
|opType=midiin
|parSummary=Determine what to record.
|parType=Menu
|parReadOnly=
}}
{{Parameter
{{Parameter
|opFamily=
|parName=record
|opType=
|parOrder=1
|parLabel=Hardware Decode
|parLabel=Record
|parName=Hardwaredecode
|opFamily=CHOP
|opType=midiin
|parSummary=This parameter is used as a button to start and stop recording into the CHOP channels.
|parType=Toggle
|parType=Toggle
|parReadOnly=
|parReadOnly=
|parSummary=
|parItems=
|parOrder=13
}}
|parItems=}}
    |pageSummary=The parameters here are only enabled when 'Simplied Output' on the Source Page is Off.
}}
    }}
}}
{{ParameterPage
{{ParameterPage
|opFamily=COMP
|opFamily=CHOP
|pageName=UI
|pageName=Note
|pageSummary=
|items={{Parameter
|items={{Parameter
|opFamily=
|parName=notename
|opType=
|1= notenumber (i.e. "n64").
|parLabel=Viewer Location
|parOrder=0
|parName=Viewerloc
|parLabel=Note Name
|parType=Menu
|opFamily=CHOP
|opType=midiin
|parSummary=Put an "n" in here to generate channels for note events. It is the base name of the CHOP channel used to record notes. If blank, notes are ignored. If the Note Output parameter is set to Separate Channels, then CHOP channels will be created for each note in the Note Scope, of the form: notename
|parType=Str
|parReadOnly=
|parReadOnly=
|parSummary=
|parItems=
|parOrder=0
}}
|parItems={{ParameterItem
|opFamily=
|parName=Viewerloc
|itemLabel=Behind Controls
|itemName=behind
|itemSummary=}}<!--
-->{{ParameterItem
|opFamily=
|parName=Viewerloc
|itemLabel=Above Controls
|itemName=above
|itemSummary=}}
}}
{{Parameter
{{Parameter
|opFamily=
|parName=notescope
|opType=
|parOrder=1
|parLabel=Control Panel Always On
|parLabel=Note Scope
|parName=Controlsalwayson
|opFamily=CHOP
|parType=Toggle
|opType=midiin
|parSummary=The scope of notes to record. Multiple ranges and notes can be recorded (i.e., "50-60", "64 65 66 70-80").
|parType=Str
|parReadOnly=
|parReadOnly=
|parSummary=
|parItems=
|parOrder=1
}}
|parItems=}}
{{Parameter
{{Parameter
|opFamily=
|parName=notemeth
|opType=
|parItems={{ParameterItem
|parLabel=Control Panel Opacity
|itemName=mult
|parName=Controlsopacity
|opFamily=CHOP
|parType=Float
|parName=notemeth
|parReadOnly=
|itemLabel=One Multiplexed Channel
|parSummary=
|itemSummary=One CHOP channel per MIDI channel is used for all notes. The value in the note channel is the number of the note currently playing (in the case of multiple notes playing, the most recent note is selected).
}}<!--
-->{{ParameterItem
|itemName=sep
|opFamily=CHOP
|parName=notemeth
|itemLabel=Separate Channels
|itemSummary=Each note number gets its own CHOP channel.
}}
|parOrder=2
|parOrder=2
|parItems=}}
|parLabel=Note Output
{{Parameter
|opFamily=CHOP
|opFamily=
|opType=midiin
|opType=
|parLabel=Expose Help Button
|parName=Exposehelp
|parType=Toggle
|parReadOnly=
|parSummary=
|parSummary=
|parOrder=3
|parItems=}}
{{Parameter
|opFamily=
|opType=
|parLabel=Cue Edit Area
|parName=Cueeditarea
|parType=Menu
|parType=Menu
|parReadOnly=
|parReadOnly=
|parSummary=
}}
|parOrder=4
{{Parameter
|parName=velocity
|parItems={{ParameterItem
|parItems={{ParameterItem
|opFamily=
|itemName=veloff
|parName=Cueeditarea
|opFamily=CHOP
|itemLabel=Nothing
|parName=velocity
|itemName=nothing
|itemLabel=Off
|itemSummary=}}<!--
|itemSummary=Velocity is not recorded.
}}<!--
-->{{ParameterItem
-->{{ParameterItem
|opFamily=
|itemName=velencode
|parName=Cueeditarea
|opFamily=CHOP
|itemLabel=Cue Box
|parName=velocity
|itemName=cueboxes
|itemLabel=Note Amplitude
|itemSummary=}}<!--
|itemSummary=The velocity is recorded as the amplitude of the note. Only valid when Note Output is set to Separate Channels.
}}<!--
-->{{ParameterItem
-->{{ParameterItem
|opFamily=
|itemName=velsep
|parName=Cueeditarea
|opFamily=CHOP
|itemLabel=Cue Columns
|parName=velocity
|itemName=cuecols
|itemLabel=Separate Channels
|itemSummary=}}<!--
|itemSummary=Velocity is recorded in separate CHOP channels. Each note channel will have a corresponding velocity channel.
-->{{ParameterItem
}}
|opFamily=
|parOrder=3
|parName=Cueeditarea
|parLabel=Velocity
|itemLabel=Cue List
|opFamily=CHOP
|itemName=cuelist
|opType=midiin
|itemSummary=}}
}}
{{Parameter
|opFamily=
|opType=
|parLabel=Cue Edit Area Always On
|parName=Cueeditalwayson
|parType=Toggle
|parReadOnly=
|parSummary=
|parSummary=
|parOrder=5
|parType=Menu
|parItems=}}
{{Parameter
|opFamily=
|opType=
|parLabel=Upper Area Opacity
|parName=Cueeditareaopacity
|parType=Float
|parReadOnly=
|parReadOnly=
|parSummary=
}}
|parOrder=6
|parItems=}}
{{Parameter
{{Parameter
|opFamily=
|parName=velname
|opType=
|parOrder=4
|parLabel=Size of Cuebar
|parLabel=Velocity Name
|parName=Sizecuebar
|opFamily=CHOP
|parType=Float
|opType=midiin
|parSummary=When Velocity is set to Separate Channels, this parameter is the base name of the Velocity CHOP channel (try "v"). If blank, no velocity channels will be recorded.
|parType=Str
|parReadOnly=
|parReadOnly=
|parSummary=
|parItems=
|parOrder=7
}}
|parItems=}}
{{Parameter
{{Parameter
|opFamily=
|parName=aftername
|opType=
|parOrder=5
|parLabel=Size of Cueloop
|parLabel=Aftertouch Name
|parName=Sizecueloop
|opFamily=CHOP
|parType=Float
|opType=midiin
|parSummary=The base name of the polyphonic Aftertouch CHOP channels. One aftertouch channel is created for each note in the Note Scope. If blank, no aftertouch channels will be created.
|parType=Str
|parReadOnly=
|parReadOnly=
|parSummary=
|parItems=
|parOrder=8
}}
|parItems=}}
{{Parameter
{{Parameter
|opFamily=
|parName=pressname
|opType=
|parOrder=6
|parLabel=Size of Scrubber
|parLabel=Pressure Name
|parName=Sizescrubber
|opFamily=CHOP
|parType=Float
|opType=midiin
|parSummary=The name of the Channel Pressure channel. If multiple channels are being recorded, all channel pressure changes of interest will be recording on this CHOP channel. If blank, this channel will not be created.
|parType=Str
|parReadOnly=
|parReadOnly=
|parSummary=
|parItems=
|parOrder=9
}}
|parItems=}}
{{Parameter
{{Parameter
|opFamily=
|parName=notenorm
|opType=
|parItems={{ParameterItem
|parLabel=Size of View Range
|itemName=off
|parName=Sizeviewrange
|opFamily=CHOP
|parType=Float
|parName=notenorm
|itemLabel=None
|itemSummary=When Normalize is Off, 7 bit controllers will return values in the range 0-127 and 14 bit controllers will return values in the range 0-16383.
}}<!--
-->{{ParameterItem
|itemName=0to1
|opFamily=CHOP
|parName=notenorm
|itemLabel=0 to 1
|itemSummary=These values are normalized to lie in the range 0 to 1.
}}
|parOrder=7
|parLabel=Normalize
|opFamily=CHOP
|opType=midiin
|parSummary=Note values can be normalized for convenience:
|parType=Menu
|parReadOnly=
|parReadOnly=
|parSummary=
}}
|parOrder=10
|parItems=}}
{{Parameter
{{Parameter
|opFamily=
|parName=pitchname
|opType=
|parOrder=8
|parLabel=Size of Play Controls
|parLabel=Pitch Wheel Name
|parName=Sizeplaycontrols
|opFamily=CHOP
|parType=Float
|opType=midiin
|parReadOnly=
|parSummary=The name of the Pitch Wheel CHOP channel. Pitch wheel values range from -1 to +1. If blank, this channel will not be created. Put "p" in here to generate a channel.
|parSummary=
|parType=Str
|parOrder=11
|parItems=}}
{{Parameter
|opFamily=
|opType=
|parLabel=View Range Start (sec)
|parName=Viewstart
|parType=Float
|parReadOnly=
|parSummary=
|parOrder=12
|parItems=}}
{{Parameter
|opFamily=
|opType=
|parLabel=View Range Length (sec)
|parName=Viewlength
|parType=Float
|parReadOnly=
|parSummary=
|parOrder=13
|parItems=}}
{{Parameter
|opFamily=
|opType=
|parLabel=View Subrange
|parName=Subview
|parType=Toggle
|parReadOnly=
|parSummary=
|parOrder=14
|parItems=}}
{{Parameter
|opFamily=
|opType=
|parLabel=Roller Wheel Zoom Image
|parName=Rollerzoom
|parType=Toggle
|parReadOnly=
|parSummary=
|parOrder=15
|parItems=}}
{{Parameter
|opFamily=
|opType=
|parLabel=Left/Mid Mouse Button Pan/Scale
|parName=Lrmbpanscale
|parType=Toggle
|parReadOnly=
|parSummary=
|parOrder=16
|parItems=}}
{{Parameter
|opFamily=
|opType=
|parLabel=Output Inspect Image
|parName=Outputinspect
|parType=Toggle
|parReadOnly=
|parReadOnly=
|parSummary=
|parItems=
|parOrder=17
}}
|parItems=}}
|pageSummary=The parameters here are only enabled when 'Simplied Output' on the Source Page is Off.
}}
}}
{{ParameterPage
{{ParameterPage
|opFamily=COMP
|opFamily=CHOP
|pageName=Behavior
|pageName=Control
|pageSummary=
|items={{Parameter
|items={{Parameter
|opFamily=
|parName=controlname
|opType=
|parOrder=0
|parLabel=Action on Select Node
|parLabel=Controller Name
|parName=Actionselecton
|opFamily=CHOP
|parType=Menu
|opType=midiin
|parSummary=The base name of the Control Change CHOP channels. The channel names are appended with the controller index (0-127). If blank, control changes will not be recorded. It typically contains "c".
|parType=Str
|parReadOnly=
|parReadOnly=
|parSummary=
|parItems=
|parOrder=0
}}
{{Parameter
|parName=controltype
|parItems={{ParameterItem
|parItems={{ParameterItem
|opFamily=
|itemName=index
|parName=Actionselecton
|opFamily=CHOP
|itemLabel=None
|parName=controltype
|itemName=none
|itemLabel=By Index Only
|itemSummary=}}<!--
|itemSummary=
}}<!--
-->{{ParameterItem
|itemName=n0
|opFamily=CHOP
|parName=controltype
|itemLabel=Bank Select
|itemSummary=
}}<!--
-->{{ParameterItem
|itemName=n1
|opFamily=CHOP
|parName=controltype
|itemLabel=Modulation Wheel
|itemSummary=
}}<!--
-->{{ParameterItem
|itemName=n2
|opFamily=CHOP
|parName=controltype
|itemLabel=Breath Control
|itemSummary=
}}<!--
-->{{ParameterItem
|itemName=n3
|opFamily=CHOP
|parName=controltype
|itemLabel=Foot Controller
|itemSummary=
}}<!--
-->{{ParameterItem
|itemName=n4
|opFamily=CHOP
|parName=controltype
|itemLabel=Portamento Time
|itemSummary=
}}<!--
-->{{ParameterItem
|itemName=n5
|opFamily=CHOP
|parName=controltype
|itemLabel=Data Entry
|itemSummary=
}}<!--
-->{{ParameterItem
|itemName=n6
|opFamily=CHOP
|parName=controltype
|itemLabel=Channel Volume
|itemSummary=
}}<!--
-->{{ParameterItem
|itemName=n7
|opFamily=CHOP
|parName=controltype
|itemLabel=Balance
|itemSummary=
}}<!--
-->{{ParameterItem
|itemName=n8
|opFamily=CHOP
|parName=controltype
|itemLabel=Pan
|itemSummary=
}}<!--
-->{{ParameterItem
|itemName=n9
|opFamily=CHOP
|parName=controltype
|itemLabel=Expression Control
|itemSummary=
}}<!--
-->{{ParameterItem
|itemName=n10
|opFamily=CHOP
|parName=controltype
|itemLabel=Effect Control 1-2
|itemSummary=
}}<!--
-->{{ParameterItem
|itemName=n11
|opFamily=CHOP
|parName=controltype
|itemLabel=14 bit General Purpose 1-4
|itemSummary=
}}<!--
-->{{ParameterItem
|itemName=n12
|opFamily=CHOP
|parName=controltype
|itemLabel=Sustain on/off
|itemSummary=
}}<!--
-->{{ParameterItem
|itemName=n13
|opFamily=CHOP
|parName=controltype
|itemLabel=Portamento on/off
|itemSummary=
}}<!--
-->{{ParameterItem
|itemName=n14
|opFamily=CHOP
|parName=controltype
|itemLabel=Sustenuto on/off
|itemSummary=
}}<!--
-->{{ParameterItem
|itemName=n15
|opFamily=CHOP
|parName=controltype
|itemLabel=Soft Pedal on/off
|itemSummary=
}}<!--
-->{{ParameterItem
|itemName=n16
|opFamily=CHOP
|parName=controltype
|itemLabel=Legato Footswitch on/off
|itemSummary=
}}<!--
-->{{ParameterItem
|itemName=n17
|opFamily=CHOP
|parName=controltype
|itemLabel=Hold 2 on/off
|itemSummary=
}}<!--
-->{{ParameterItem
|itemName=n18
|opFamily=CHOP
|parName=controltype
|itemLabel=Sound Controller 1-10
|itemSummary=
}}<!--
-->{{ParameterItem
|itemName=n19
|opFamily=CHOP
|parName=controltype
|itemLabel=7 bit General Purpose 5-8
|itemSummary=
}}<!--
-->{{ParameterItem
|itemName=n20
|opFamily=CHOP
|parName=controltype
|itemLabel=Portamento Control
|itemSummary=
}}<!--
-->{{ParameterItem
-->{{ParameterItem
|opFamily=
|itemName=n21
|parName=Actionselecton
|opFamily=CHOP
|itemLabel=Go to Beauty
|parName=controltype
|itemName=beauty
|itemLabel=Effect Depth 1-5
|itemSummary=}}<!--
|itemSummary=
}}<!--
-->{{ParameterItem
-->{{ParameterItem
|opFamily=
|itemName=n22
|parName=Actionselecton
|opFamily=CHOP
|itemLabel=Go to Start
|parName=controltype
|itemName=start
|itemLabel=Non-Registered Parameter
|itemSummary=}}<!--
|itemSummary=
}}<!--
-->{{ParameterItem
-->{{ParameterItem
|opFamily=
|itemName=n23
|parName=Actionselecton
|opFamily=CHOP
|itemLabel=Go to End
|parName=controltype
|itemName=end
|itemLabel=Registered Parameter
|itemSummary=}}
|itemSummary=
}}
}}
{{Parameter
|parOrder=1
|opFamily=
|parLabel=Controller Type
|opType=
|opFamily=CHOP
|parLabel=Cue on Select
|opType=midiin
|parName=Cueonselect
|parSummary=There are 128 different controllers available. By choosing By Index Only, you can specify any number of controllers in the Control Index parameter. Otherwise, you can select a controller from the list from this menu. Some controllers have multiple instances, such as Sound Controllers 1-10. Selecting a controller with multiple instances allows you to use the Control Index parameter to select which instances you want. Any invalid control indices will be ignored.
|parType=Int
|parType=Menu
|parReadOnly=
|parReadOnly=
|parSummary=
}}
|parOrder=1
|parItems=}}
{{Parameter
{{Parameter
|opFamily=
|parName=controlind
|opType=
|parLabel=Set as Current Cue
|parName=Curcueonselect
|parType=Toggle
|parReadOnly=
|parSummary=
|parOrder=2
|parOrder=2
|parItems=}}
|parLabel=Controller Index
{{Parameter
|opFamily=CHOP
|opFamily=
|opType=midiin
|opType=
|parSummary=Used to select controllers by number, or multiple controllers by ranges. When in By Index Only Controller Type mode, you can select up to the full 128 controllers or sub-ranges thereof (i.e. "1-10", "2 34 70", "1-32 70-80:2").
|parLabel=Play on Select
|parType=Str
|parName=Playonselect
|parType=Toggle
|parReadOnly=
|parReadOnly=
|parSummary=
|parItems=
|parOrder=4
}}
|parItems=}}
{{Parameter
{{Parameter
|opFamily=
|parName=format
|opType=
|parItems={{ParameterItem
|parLabel=Viewer Active on Select
|itemName=7bit
|parName=Viewonselect
|opFamily=CHOP
|parType=Toggle
|parName=format
|itemLabel=7 bit Controllers
|itemSummary=
}}<!--
-->{{ParameterItem
|itemName=14bit
|opFamily=CHOP
|parName=format
|itemLabel=14 bit Controllers
|itemSummary=
}}
|parOrder=3
|parLabel=Controller Format
|opFamily=CHOP
|opType=midiin
|parSummary=Some controllers can be paired together to form 14 bit controllers, rather than the normal 7 bit controllers (controller indices 0-31, 98 and 100). Selecting 14 bit Controllers interprets a pair as one 14 bit controller. Otherwise, they are interpreted as separate 7 bit Controllers.
|parType=Menu
|parReadOnly=
|parReadOnly=
|parSummary=
}}
|parOrder=5
|parItems=}}
{{Parameter
{{Parameter
|opFamily=
|parName=norm
|opType=
|parLabel=Action on De-Select
|parName=Actionselectoff
|parType=Menu
|parReadOnly=
|parSummary=
|parOrder=6
|parItems={{ParameterItem
|parItems={{ParameterItem
|opFamily=
|itemName=off
|parName=Actionselectoff
|opFamily=CHOP
|parName=norm
|itemLabel=None
|itemLabel=None
|itemName=none
|itemSummary=When Normalize is Off, 7 bit controllers will return values in the range 0-127 and 14 bit controllers will return values in the range 0-16383.
|itemSummary=}}<!--
}}<!--
-->{{ParameterItem
|itemName=0to1
|opFamily=CHOP
|parName=norm
|itemLabel=0 to 1
|itemSummary=These values are normalized to lie in the range 0 to 1.
}}<!--
-->{{ParameterItem
|itemName=-1to1
|opFamily=CHOP
|parName=norm
|itemLabel=-1 to 1
|itemSummary=These values are normalized to lie in the range -1 to +1.
}}<!--
-->{{ParameterItem
-->{{ParameterItem
|opFamily=
|itemName=onoff
|parName=Actionselectoff
|opFamily=CHOP
|itemLabel=Pause
|parName=norm
|itemName=pause
|itemLabel=On/Off
|itemSummary=}}
|itemSummary=Several of the controllers are simply on/off states. When Convert to On/Off is enabled, values greater than or equal to 64 will be interpreted as "1" and all values less than 64 will be interpreted as "0".
}}
}}
|parOrder=4
|parLabel=Normalize
|opFamily=CHOP
|opType=midiin
|parSummary=Controller values can be normalized for convenience:
|parType=Menu
|parReadOnly=
}}
{{Parameter
{{Parameter
|opFamily=
|parName=unwrap
|opType=
|parOrder=5
|parLabel=Selected
|parLabel=Unwrap
|parName=Selected
|opFamily=CHOP
|opType=midiin
|parSummary=
|parType=Toggle
|parType=Toggle
|parReadOnly=
|parReadOnly=
|parSummary=
|parItems=
|parOrder=7
}}
|parItems=}}
{{Parameter
{{Parameter
|opFamily=
|parName=progname
|opType=
|parOrder=6
|parLabel=Special
|parLabel=Program Change
|parName=Special
|opFamily=CHOP
|parType=Toggle
|opType=midiin
|parSummary=The name of the Program Change CHOP channel. All program change messages will be recorded onto this channel. If blank, this channel will not be created.
|parType=Str
|parReadOnly=
|parReadOnly=
|parSummary=
|parItems=
|parOrder=8
}}
|parItems=}}
|pageSummary=The parameters here are only enabled when 'Simplied Output' on the Source Page is Off.
}}
}}
{{ParameterPage
{{ParameterPage
|opFamily=COMP
|opFamily=CHOP
|pageName=Go
|pageName=Timer
|pageSummary=
|pageSummary=The parameters here are only enabled when 'Simplied Output' on the Source Page is Off.
|items={{Parameter
|items={{Parameter
|opFamily=
|opFamily=CHOP
|opType=
|opType=midiinCHOP
|parLabel=Target Cue for Go
|parLabel=Timer Pulse Name
|parName=Gotargetcue
|parName=pulsename
|parType=Int
|parType=Str
|parReadOnly=
|parReadOnly=
|parOrder=0
|parSummary=
|parSummary=
|parOrder=0
|parItems=
|parItems=}}
}}
{{Parameter
{{Parameter
|opFamily=
|opFamily=CHOP
|opType=
|opType=midiinCHOP
|parLabel=Action for Go
|parLabel=Timer Ramp Name
|parName=Goaction
|parName=rampname
|parType=Menu
|parType=Str
|parReadOnly=
|parReadOnly=
|parOrder=1
|parSummary=
|parSummary=
|parOrder=1
|parItems=
|parItems={{ParameterItem
}}
|opFamily=
|parName=Goaction
|itemLabel=Cue Beauty
|itemName=beauty
|itemSummary=}}<!--
-->{{ParameterItem
|opFamily=
|parName=Goaction
|itemLabel=Cue Start
|itemName=start
|itemSummary=}}<!--
-->{{ParameterItem
|opFamily=
|parName=Goaction
|itemLabel=Cue End
|itemName=end
|itemSummary=}}
}}
{{Parameter
{{Parameter
|opFamily=
|opFamily=CHOP
|opType=
|opType=midiinCHOP
|parLabel=Set Cur Cue on Go
|parLabel=Timer Period
|parName=Gosetcurcue
|parName=timerperiod
|parType=Toggle
|parType=Str
|parReadOnly=
|parReadOnly=
|parOrder=2
|parSummary=
|parSummary=
|parOrder=2
|parItems=
|parItems=}}
}}
{{Parameter
{{Parameter
|opFamily=
|opFamily=CHOP
|opType=
|opType=midiinCHOP
|parLabel=Go to Cue and Pause
|parLabel=Timer Start
|parName=Gotocuepause
|parName=timerstart
|parType=Pulse
|parType=Str
|parReadOnly=
|parReadOnly=
|parOrder=3
|parSummary=
|parSummary=
|parItems=
}}
{{Parameter
|opFamily=CHOP
|opType=midiinCHOP
|parLabel=Ticks per Beat
|parName=ticks
|parType=Int
|parReadOnly=
|parOrder=4
|parOrder=4
|parItems=}}
|parSummary=
|parItems=
}}
{{Parameter
{{Parameter
|opFamily=
|opFamily=CHOP
|opType=
|opType=midiinCHOP
|parLabel=Go to Cue and Play
|parLabel=Bar Ramp Name
|parName=Gotocueplay
|parName=barname
|parType=Pulse
|parType=Str
|parReadOnly=
|parReadOnly=
|parOrder=5
|parSummary=
|parSummary=
|parOrder=5
|parItems=
|parItems=}}
}}
{{Parameter
{{Parameter
|opFamily=
|opFamily=CHOP
|opType=
|opType=midiinCHOP
|parLabel=Target Time for Go
|parLabel=Bar Period
|parName=Gotargettime
|parName=barperiod
|parType=Float
|parType=Str
|parReadOnly=
|parReadOnly=
|parOrder=6
|parSummary=
|parSummary=
|parOrder=6
|parItems=
|parItems=}}
}}
{{Parameter
{{Parameter
|opFamily=
|opFamily=CHOP
|opType=
|opType=midiinCHOP
|parLabel=Go to Time and Pause
|parLabel=Bar Start
|parName=Gototimepause
|parName=barstart
|parType=Pulse
|parType=Str
|parReadOnly=
|parReadOnly=
|parOrder=7
|parSummary=
|parSummary=
|parOrder=7
|parItems=
|parItems=}}
}}
{{Parameter
{{Parameter
|opFamily=
|opFamily=CHOP
|opType=
|opType=midiinCHOP
|parLabel=Go to Time and Play
|parLabel=Bar Message
|parName=Gototimeplay
|parName=barmsg
|parType=Pulse
|parType=Str
|parReadOnly=
|parReadOnly=
|parOrder=8
|parSummary=
|parSummary=
|parOrder=8
|parItems=
|parItems=}}
}}
{{Parameter
{{Parameter
|opFamily=
|opFamily=CHOP
|opType=
|opType=midiinCHOP
|parLabel=Go Back to Prev Mv
|parLabel=Song Pos Name
|parName=Goback
|parName=songpos
|parType=Pulse
|parType=Str
|parReadOnly=
|parReadOnly=
|parOrder=9
|parSummary=
|parSummary=
|parOrder=9
|parItems=
|parItems=}}
}}
}}
}}
{{ParameterPage
{{ParameterPage
|opFamily=COMP
|opFamily=CHOP
|pageName=External
|pageName=Sys
|pageSummary=
|items={{Parameter
|items={{Parameter
|opFamily=
|parName=exname1
|opType=
|parOrder=0
|parLabel=External Control Active
|parLabel=Channel Name 1
|parName=Extactive
|opFamily=CHOP
|parType=Toggle
|opType=midiin
|parSummary=
|parType=Str
|parReadOnly=
|parReadOnly=
|parItems=
}}
{{Parameter
|parName=exmsg1
|parOrder=1
|parLabel=Message 1
|opFamily=CHOP
|opType=midiin
|parSummary=
|parSummary=
|parType=Str
|parReadOnly=
|parItems=
}}
|pageSummary=The parameters here are only enabled when 'Simplied Output' on the Source Page is Off.
}}
{{ParameterPage
|opFamily=CHOP
|pageName=Chan
|items={{Parameter
|parName=start
|parOrder=0
|parOrder=0
|parItems=}}
|parLabel=Start
|opFamily=CHOP
|opType=midiin
|parSummary=Defines where recording begins. In "Tie to Time Line" mode, any events received before the start time will be ignored. In "Time Line Independent" mode, recording will start at this point and continue on (not looping back). If reading from a MIDI File, Start/End will determine the start of the segment to read.
 
Start and end of the interval, expressed in Units (seconds, frames or samples). The parameters are expressed in the <code>Units</code> found on the Common page. To set the CHOP to be 100 samples long, Set <code>Units</code> to Samples, <code>Single Frame</code> Off and <code>Start</code> / <code>End</code> to 0 and 99.
|parType=Float
|parReadOnly=
|parItems=
}}
{{Parameter
{{Parameter
|opFamily=
|parName=startunit
|opType=
|parItems={{ParameterItem
|parLabel=Units
|opFamily=CHOP
|parName=Extunits
|parName=startunit
|itemLabel=I
|itemName=samples
|itemSummary=Use samples.
}}<!--
-->{{ParameterItem
|opFamily=CHOP
|parName=startunit
|itemLabel=F
|itemName=frames
|itemSummary=Use frames.
}}<!--
-->{{ParameterItem
|opFamily=CHOP
|parName=startunit
|itemLabel=S
|itemName=seconds
|itemSummary=Use seconds.
}}
|parOrder=1
|parLabel=Start Unit
|opFamily=CHOP
|opType=midiin
|parSummary=Select the units to use for this parameter, Samples, Frames, or Seconds.
|parType=Menu
|parType=Menu
|parReadOnly=
|parReadOnly=
|parSummary=
}}
|parOrder=1
{{Parameter
|parName=end
|parOrder=2
|parLabel=End
|opFamily=CHOP
|opType=midiin
|parSummary=Defines the end of the segment to read for MIDI Files.
|parType=Float
|parReadOnly=
|parItems=
}}
{{Parameter
|parName=endunit
|parItems={{ParameterItem
|parItems={{ParameterItem
|opFamily=
|opFamily=CHOP
|parName=Extunits
|parName=endunit
|itemLabel=Seconds
|itemLabel=I
|itemName=seconds
|itemName=samples
|itemSummary=}}<!--
|itemSummary=Use samples.
}}<!--
-->{{ParameterItem
-->{{ParameterItem
|opFamily=
|opFamily=CHOP
|parName=Extunits
|parName=endunit
|itemLabel=Frames
|itemLabel=F
|itemName=frames
|itemName=frames
|itemSummary=}}<!--
|itemSummary=Use frames.
}}<!--
-->{{ParameterItem
-->{{ParameterItem
|opFamily=
|opFamily=CHOP
|parName=Extunits
|parName=endunit
|itemLabel=Fraction
|itemLabel=S
|itemName=fraction
|itemName=seconds
|itemSummary=}}
|itemSummary=Use seconds.
}}
}}
{{Parameter
|parOrder=3
|opFamily=
|parLabel=End Unit
|opType=
|opFamily=CHOP
|parLabel=CHOP
|opType=midiin
|parName=Extchop
|parSummary=Select the units to use for this parameter, Samples, Frames, or Seconds.
|parType=CHOP
|parType=Menu
|parReadOnly=
|parReadOnly=
|parSummary=
}}
|parOrder=2
|parItems=}}
{{Parameter
{{Parameter
|opFamily=
|parName=rate
|opType=
|parOrder=4
|parLabel=Channel
|parLabel=Sample Rate
|parName=Extchannel
|opFamily=CHOP
|parType=Str
|opType=midiin
|parSummary=Defines the sample rate of this CHOP, in samples per second. If the sample rate is too low, a rapidly changing input may be misrepresented.
'''Note''': If the sample rate is too low, you may miss MIDI events. A note event may set a sample value to 1, and then the next note event less than 1/30 second later can set it to 0 on the same sample in the CHOP channel. So the event will be missed. Make the sample rate higher, like 600, to catch these events, or make sure that your on-off events coming in are a minimum time separation, as can be achieved through Opcode's MAX.
|parType=Float
|parReadOnly=
|parReadOnly=
|parSummary=
|parItems=
|parOrder=4
}}
|parItems=}}
{{Parameter
{{Parameter
|opFamily=
|parName=left
|opType=
|parItems={{ParameterItem
|parLabel=Copy Cur mvspec Below
|itemName=hold
|parName=Copymvspec
|opFamily=CHOP
|parType=Pulse
|parName=left
|itemLabel=Hold
|itemSummary=Hold the current value of the channel.
}}<!--
-->{{ParameterItem
|itemName=slope
|opFamily=CHOP
|parName=left
|itemLabel=Slope
|itemSummary=Continue the slope before the start of the channel.
}}<!--
-->{{ParameterItem
|itemName=cycle
|opFamily=CHOP
|parName=left
|itemLabel=Cycle
|itemSummary=Cycle the channel repeatedly.
}}<!--
-->{{ParameterItem
|itemName=mirror
|opFamily=CHOP
|parName=left
|itemLabel=Mirror
|itemSummary=Cycle the channel repeatedly, mirroring every other cycle.
}}<!--
-->{{ParameterItem
|itemName=default
|opFamily=CHOP
|parName=left
|itemLabel=Default Value
|itemSummary=Use the constant value specified in the Default Value parameter.
}}
|parOrder=5
|parLabel=Extend Left
|opFamily=CHOP
|opType=midiin
|parSummary=The left extend conditions (before range).
|parType=Menu
|parReadOnly=
|parReadOnly=
|parSummary=
}}
|parOrder=5
|parItems=}}
{{Parameter
{{Parameter
|opFamily=
|parName=right
|opType=
|parItems={{ParameterItem
|parLabel=Save Cur mvspec to .tox
|itemName=hold
|parName=Savemvspec
|opFamily=CHOP
|parType=Pulse
|parName=right
|itemLabel=Hold
|itemSummary=Hold the current value of the channel.
}}<!--
-->{{ParameterItem
|itemName=slope
|opFamily=CHOP
|parName=right
|itemLabel=Slope
|itemSummary=Continue the slope after the end of the channel.
}}<!--
-->{{ParameterItem
|itemName=cycle
|opFamily=CHOP
|parName=right
|itemLabel=Cycle
|itemSummary=Cycle the channel repeatedly.
}}<!--
-->{{ParameterItem
|itemName=mirror
|opFamily=CHOP
|parName=right
|itemLabel=Mirror
|itemSummary=Cycle the channel repeatedly, mirroring every other cycle.
}}<!--
-->{{ParameterItem
|itemName=default
|opFamily=CHOP
|parName=right
|itemLabel=Default Value
|itemSummary=Use the constant value specified in the Default Value parameter.
}}
|parOrder=6
|parLabel=Extend Right
|opFamily=CHOP
|opType=midiin
|parSummary=The right extend conditions (after range).
|parType=Menu
|parReadOnly=
|parReadOnly=
|parSummary=
}}
|parOrder=6
|parItems=}}
{{Parameter
{{Parameter
|opFamily=
|parName=defval
|opType=
|parLabel=Create Engine COMP Below
|parName=Createengine
|parType=Pulse
|parReadOnly=
|parSummary=
|parOrder=7
|parOrder=7
|parItems=}}
|parLabel=Default Value
}}
{{OutputsPage
|opFamily=COMP
|opOutputs={{OPOutput
|opFamily=TOP
|outputIndex=0
|outputName=out1
|outputSummary=}}
{{OPOutput
|opFamily=CHOP
|opFamily=CHOP
|outputIndex=1
|opType=midiin
|outputName=out2
|parSummary=The value used for the Default Value extend condition.
|outputSummary=}}
|parType=Float
{{OPOutput
|parReadOnly=
|opFamily=CHOP
|parItems=
|outputIndex=2
}}
|outputName=out3
|pageSummary=This is similar to other generators' Channel page. However, there are a few points to consider on how they affect the Midi In CHOP.
|outputSummary=}}
}}
{{OPOutput
{{:CHOP Generator Common Page}}
 
{{InfoCHOPChannels
|opFamily=CHOP
|opFamily=CHOP
|outputIndex=3
|opLabel=MIDI In
|outputName=out4
|infoChannels=}}
|outputSummary=}}
}}
{{History}}
{{History}}
{{CategoryNavBox
{{CHOPNavBox|opFamily=CHOP}}
|Category=Palette}}
{{#invoke:Category|list|CHOPs}}
{{#invoke:Category
|list
|Palette}}

Revision as of 15:57, 16 November 2021

Summary
[edit]

The MIDI In CHOP reads Note events, Controller events, Program Change events, System Exclusive messages and Timing events from both MIDI devices and files. See also MIDI In Map CHOP.

The MIDI In CHOP receives MIDI events from MIDI devices connected to the serial port, reads MIDI events internal to the workstation (i.e. the built-in software synth), and interprets musical scores in MIDI files. Supported MIDI events are:

Note On, Note Off
Polyphonic Aftertouch
Channel Pressure
Program Change
Control Change (MIDI controller devices)
Pitch Wheel
Timer Events including beat pulses
Bar Messages
Start, Stop, Continue
Song Position Pointer
System Exclusive Messages

MIDI events arriving on separate MIDI channels may be recorded on separate CHOP channels. Also, any number of MIDI CHOPs can read from the same or different sources. TouchDesigner can be configured such that MIDI Start, Stop, or Continue events can control the Timeline and Beat Dialog.

The 'Simplified Output' option creates a channel for every type of MIDI event received, so number of channels expands while the devices is being used. No need to specify name, channel and index patterns.

Note: The values of the MIDI inputs are saved into the TouchDesigner .toe file, and are restored when the file is reloaded. The physical controllers may be in a different position when the .toe is restarted, causing the values to jump when the controllers are moved. This is unavoidable.

See also the MIDI In DAT, MIDI Event DAT, MIDI In Map CHOP, MIDI Out CHOP.

PythonIcon.pngmidiinCHOP_Class


Parameters - Source Page

Active active - Enable or disable the MIDI In CHOP.

MIDI Source source - - Get MIDI input from a device or a file.

  • Device device -
  • File file -

Device Table device - Path to the MIDI device Table DAT

Device ID id - Specify the id of which device to use.

MIDI File file - If MIDI file is selected as the MIDI source use this field to specify the name of the MIDI file to read. The file can be read in from disk or from the web. Use http:// when specifying a URL.

Read Entire MIDI File entire - If enabled, the entire MIDI file is read. Otherwise, the Start and End parameters on the Channel page determine the segment of the file to read.

Reset Channels resetchannels - Deletes all channels when set to On, new channels will not be added until Reset Channels is turned Off.

Reset Channels Pulse resetchannelspulse - Instantly deletes all channels.

Reset Values resetvalues - Resets all channel values to 0 when On, channel values will not be updated until Reset Values is turned Off.

Reset Channels Pulse resetchannelspulse - Instantly resets all channels to 0.

Simplified Output simplified - When this is on channels are automatically created when MIDI signal is detected from the selected MIDI device.

1 Based Index onebased - Make the index 1 based instead of the default 0 based.

MIDI Channels channel - The CHOP may read from any number of MIDI channels, numbered 1-16. Ranges and multiple entries are supported (i.e. "1 4 6", "1-7 12", "1-5:2").

If Channel Prefix is left blank, then the input streams from multiple MIDI channels will be combined into one set of CHOP channels (i.e., a "note 64 on" event on channel 12 followed by a "note 64 off" event on channel 8 appears in the note 64 CHOP channel as a single note).

Channel Prefix prefix - When recording from multiple MIDI channels, putting a string like "ch" in this parameter causes the MIDI channel to be split into separate CHOP channels per MIDI channel. Otherwise the MIDI channels are all merged into one set of CHOP channels.


Parameters - Record Page

The parameters here are only enabled when 'Simplied Output' on the Source Page is Off.

Record Method recordtype - - Determine what to record.

  • Single Frame single - This only outputs the current value of notes, controllers, etc. It does not retain prior values. It creates a CHOP at frame 1 always, so the CHOP causes cooking only when MIDI events come in.
  • Current Frame current - Same as "Single Frame", but the CHOP frame is always at the current frame, so the CHOP changes every frame, causing other CHOPs to recook every frame.
  • Current Time Slice ind - The CHOP frame is always at the current Time Slice.
  • Full Length timeline - The entire length of the timeline is recorded.

Record record - This parameter is used as a button to start and stop recording into the CHOP channels.


Parameters - Note Page

The parameters here are only enabled when 'Simplied Output' on the Source Page is Off.

Note Name notename - Put an "n" in here to generate channels for note events. It is the base name of the CHOP channel used to record notes. If blank, notes are ignored. If the Note Output parameter is set to Separate Channels, then CHOP channels will be created for each note in the Note Scope, of the form: notename

Note Scope notescope - The scope of notes to record. Multiple ranges and notes can be recorded (i.e., "50-60", "64 65 66 70-80").

Note Output notemeth - -

  • One Multiplexed Channel mult - One CHOP channel per MIDI channel is used for all notes. The value in the note channel is the number of the note currently playing (in the case of multiple notes playing, the most recent note is selected).
  • Separate Channels sep - Each note number gets its own CHOP channel.

Velocity velocity - -

  • Off veloff - Velocity is not recorded.
  • Note Amplitude velencode - The velocity is recorded as the amplitude of the note. Only valid when Note Output is set to Separate Channels.
  • Separate Channels velsep - Velocity is recorded in separate CHOP channels. Each note channel will have a corresponding velocity channel.

Velocity Name velname - When Velocity is set to Separate Channels, this parameter is the base name of the Velocity CHOP channel (try "v"). If blank, no velocity channels will be recorded.

Aftertouch Name aftername - The base name of the polyphonic Aftertouch CHOP channels. One aftertouch channel is created for each note in the Note Scope. If blank, no aftertouch channels will be created.

Pressure Name pressname - The name of the Channel Pressure channel. If multiple channels are being recorded, all channel pressure changes of interest will be recording on this CHOP channel. If blank, this channel will not be created.

Normalize notenorm - - Note values can be normalized for convenience:

  • None off - When Normalize is Off, 7 bit controllers will return values in the range 0-127 and 14 bit controllers will return values in the range 0-16383.
  • 0 to 1 0to1 - These values are normalized to lie in the range 0 to 1.

Pitch Wheel Name pitchname - The name of the Pitch Wheel CHOP channel. Pitch wheel values range from -1 to +1. If blank, this channel will not be created. Put "p" in here to generate a channel.


Parameters - Control Page

The parameters here are only enabled when 'Simplied Output' on the Source Page is Off.

Controller Name controlname - The base name of the Control Change CHOP channels. The channel names are appended with the controller index (0-127). If blank, control changes will not be recorded. It typically contains "c".

Controller Type controltype - - There are 128 different controllers available. By choosing By Index Only, you can specify any number of controllers in the Control Index parameter. Otherwise, you can select a controller from the list from this menu. Some controllers have multiple instances, such as Sound Controllers 1-10. Selecting a controller with multiple instances allows you to use the Control Index parameter to select which instances you want. Any invalid control indices will be ignored.

  • By Index Only index -
  • Bank Select n0 -
  • Modulation Wheel n1 -
  • Breath Control n2 -
  • Foot Controller n3 -
  • Portamento Time n4 -
  • Data Entry n5 -
  • Channel Volume n6 -
  • Balance n7 -
  • Pan n8 -
  • Expression Control n9 -
  • Effect Control 1-2 n10 -
  • 14 bit General Purpose 1-4 n11 -
  • Sustain on/off n12 -
  • Portamento on/off n13 -
  • Sustenuto on/off n14 -
  • Soft Pedal on/off n15 -
  • Legato Footswitch on/off n16 -
  • Hold 2 on/off n17 -
  • Sound Controller 1-10 n18 -
  • 7 bit General Purpose 5-8 n19 -
  • Portamento Control n20 -
  • Effect Depth 1-5 n21 -
  • Non-Registered Parameter n22 -
  • Registered Parameter n23 -

Controller Index controlind - Used to select controllers by number, or multiple controllers by ranges. When in By Index Only Controller Type mode, you can select up to the full 128 controllers or sub-ranges thereof (i.e. "1-10", "2 34 70", "1-32 70-80:2").

Controller Format format - - Some controllers can be paired together to form 14 bit controllers, rather than the normal 7 bit controllers (controller indices 0-31, 98 and 100). Selecting 14 bit Controllers interprets a pair as one 14 bit controller. Otherwise, they are interpreted as separate 7 bit Controllers.

  • 7 bit Controllers 7bit -
  • 14 bit Controllers 14bit -

Normalize norm - - Controller values can be normalized for convenience:

  • None off - When Normalize is Off, 7 bit controllers will return values in the range 0-127 and 14 bit controllers will return values in the range 0-16383.
  • 0 to 1 0to1 - These values are normalized to lie in the range 0 to 1.
  • -1 to 1 -1to1 - These values are normalized to lie in the range -1 to +1.
  • On/Off onoff - Several of the controllers are simply on/off states. When Convert to On/Off is enabled, values greater than or equal to 64 will be interpreted as "1" and all values less than 64 will be interpreted as "0".

Unwrap unwrap -

Program Change progname - The name of the Program Change CHOP channel. All program change messages will be recorded onto this channel. If blank, this channel will not be created.


Parameters - Timer Page

The parameters here are only enabled when 'Simplied Output' on the Source Page is Off.

Timer Pulse Name pulsename -

Timer Ramp Name rampname -

Timer Period timerperiod -

Timer Start timerstart -

Ticks per Beat ticks -

Bar Ramp Name barname -

Bar Period barperiod -

Bar Start barstart -

Bar Message barmsg -

Song Pos Name songpos -


Parameters - Sys Page

The parameters here are only enabled when 'Simplied Output' on the Source Page is Off.

Channel Name 1 exname1 -

Message 1 exmsg1 -


Parameters - Chan Page

This is similar to other generators' Channel page. However, there are a few points to consider on how they affect the Midi In CHOP.

Start start - Defines where recording begins. In "Tie to Time Line" mode, any events received before the start time will be ignored. In "Time Line Independent" mode, recording will start at this point and continue on (not looping back). If reading from a MIDI File, Start/End will determine the start of the segment to read.

Start and end of the interval, expressed in Units (seconds, frames or samples). The parameters are expressed in the Units found on the Common page. To set the CHOP to be 100 samples long, Set Units to Samples, Single Frame Off and Start / End to 0 and 99.

Start Unit startunit - - Select the units to use for this parameter, Samples, Frames, or Seconds.

  • I samples - Use samples.
  • F frames - Use frames.
  • S seconds - Use seconds.

End end - Defines the end of the segment to read for MIDI Files.

End Unit endunit - - Select the units to use for this parameter, Samples, Frames, or Seconds.

  • I samples - Use samples.
  • F frames - Use frames.
  • S seconds - Use seconds.

Sample Rate rate - Defines the sample rate of this CHOP, in samples per second. If the sample rate is too low, a rapidly changing input may be misrepresented.

Note: If the sample rate is too low, you may miss MIDI events. A note event may set a sample value to 1, and then the next note event less than 1/30 second later can set it to 0 on the same sample in the CHOP channel. So the event will be missed. Make the sample rate higher, like 600, to catch these events, or make sure that your on-off events coming in are a minimum time separation, as can be achieved through Opcode's MAX.

Extend Left left - - The left extend conditions (before range).

  • Hold hold - Hold the current value of the channel.
  • Slope slope - Continue the slope before the start of the channel.
  • Cycle cycle - Cycle the channel repeatedly.
  • Mirror mirror - Cycle the channel repeatedly, mirroring every other cycle.
  • Default Value default - Use the constant value specified in the Default Value parameter.

Extend Right right - - The right extend conditions (after range).

  • Hold hold - Hold the current value of the channel.
  • Slope slope - Continue the slope after the end of the channel.
  • Cycle cycle - Cycle the channel repeatedly.
  • Mirror mirror - Cycle the channel repeatedly, mirroring every other cycle.
  • Default Value default - Use the constant value specified in the Default Value parameter.

Default Value defval - The value used for the Default Value extend condition.


Parameters - Common Page

Time Slice timeslice - Turning this on forces the channels to be "Time Sliced". A Time Slice is the time between the last cook frame and the current cook frame.

Scope scope - To determine which channels get affected, some CHOPs use a Scope string on the Common page.

Sample Rate Match srselect - - Handle cases where multiple input CHOPs' sample rates are different. When Resampling occurs, the curves are interpolated according to the Interpolation Method Option, or "Linear" if the Interpolate Options are not available.

  • Resample At First Input's Rate first - Use rate of first input to resample others.
  • Resample At Maximum Rate max - Resample to the highest sample rate.
  • Resample At Minimum Rate min - Resample to the lowest sample rate.
  • Error If Rates Differ err - Doesn't accept conflicting sample rates.

Export Method exportmethod - - This will determine how to connect the CHOP channel to the parameter. Refer to the Export article for more information.

  • DAT Table by Index datindex - Uses the docked DAT table and references the channel via the index of the channel in the CHOP.
  • DAT Table by Name datname - Uses the docked DAT table and references the channel via the name of the channel in the CHOP.
  • Channel Name is Path:Parameter autoname - The channel is the full destination of where to export to, such has geo1/transform1:tx.

Export Root autoexportroot - This path points to the root node where all of the paths that exporting by Channel Name is Path:Parameter are relative to.

Export Table exporttable - The DAT used to hold the export information when using the DAT Table Export Methods (See above).


Info CHOP Channels

Extra Information for the MIDI In CHOP can be accessed via an Info CHOP.

Common CHOP Info Channels

  • start - Start of the CHOP interval in samples.
  • length - Number of samples in the CHOP.
  • sample_rate - The samplerate of the channels in frames per second.
  • num_channels - Number of channels in the CHOP.
  • time_slice - 1 if CHOP is Time Slice enabled, 0 otherwise.
  • export_sernum - A count of how often the export connections have been updated.

Common Operator Info Channels

  • total_cooks - Number of times the operator has cooked since the process started.
  • cook_time - Duration of the last cook in milliseconds.
  • cook_frame - Frame number when this operator was last cooked relative to the component timeline.
  • cook_abs_frame - Frame number when this operator was last cooked relative to the absolute time.
  • cook_start_time - Time in milliseconds at which the operator started cooking in the frame it was cooked.
  • cook_end_time - Time in milliseconds at which the operator finished cooking in the frame it was cooked.
  • cooked_this_frame - 1 if operator was cooked this frame.
  • warnings - Number of warnings in this operator if any.
  • errors - Number of errors in this operator if any.


TouchDesigner Build:

CHOPs
Ableton Link • Analyze • Angle • Attribute • Audio Band EQ • Audio Binaural • Audio Device In • Audio Device Out • Audio Dynamics • Audio File In • Audio File Out • Audio Filter • Audio Movie • Audio NDI • Audio Oscillator • Audio Para EQ • Audio Play • Audio Render • Audio Spectrum • Audio Stream In • Audio Stream Out • Audio VST • Audio Web Render • Beat • Bind • BlackTrax • Blend • Blob Track • Body Track • Bullet Solver • Clip Blender • Clip • Clock • Composite • Constant • Copy • Count • CPlusPlus • Cross • Cycle • DAT to • Delay • Delete • DMX In • DMX Out • Envelope • EtherDream • Event • Expression • Extend • Face Track • Fan • Feedback • File In • File Out • Filter • FreeD In • FreeD Out • Function • Gesture • Handle • Helios DAC • Hog • Hokuyo • Hold • Import Select • In • Info • Interpolate • Introduction To s Vid • Inverse Curve • Inverse Kin • Join • Joystick • Keyboard In • Keyframe • Kinect Azure • Kinect • Lag • Laser • Laser Device • Leap Motion • Leuze ROD4 • LFO • Limit • Logic • Lookup • LTC In • LTC Out • Math • Merge • MIDI In • MIDI In Map • MIDI Out • MoSys • Mouse In • Mouse Out • NatNet In • Ncam • Noise • Null • OAK Device • OAK Select • Object • Oculus Audio • Oculus Rift • OpenVR • OSC In • OSC Out • Out • Override • Panel • Pangolin • Parameter • Pattern • Perform • Phaser • Pipe In • Pipe Out • PosiStageNet • Pulse • RealSense • Record • Rename • Render Pick • RenderStream In • Reorder • Replace • Resample • S Curve • Scan • Script • Select • Sequencer • Serial • Shared Mem In • Shared Mem Out • Shift • Shuffle • Slope • SOP to • Sort • Speed • Splice • Spring • Stretch • Stype In • Stype Out • Switch • Sync In • Sync Out • Tablet • Time Slice • Timecode • Timeline • Timer • TOP to • Touch In • Touch Out • Trail • Transform • Transform XYZ • Trigger • Experimental:Trigger • Trim • Warp • Wave • WrnchAI • ZED