MIDI Piano Roll

Plays and Records MIDI event and displays MIDI notes in a Piano-Roll style.

You can load/record up to 32 MIDI files in the same module and switch between them in real time.

Most of the parameters like reading position, loop-start, loop-end, can be driven by other modules (like random generators), to create unusual loop sequences.

CC (Control Change) Mode

The Piano Roll can be used to draw CC curves (8 curves per MIDI file are available), choose the mode CC curve 1, 2...8:

Draw the CC curve in the bottom area (in violet on the figure)

Select the CC curve value (none, CC1, CC2,...CC127).

If you record Control change with an external source, use the edit controls mode mode. Each Control change is on its number line (same as note number), here the CC 10 can be edited:

If you have several CC recorded, select a part of the edition with the mouse or several parts (with [Shift+mouse]), keep Shift pressed and move the mouse up/down.

midifiles

Up to 32 MIDI files can be loaded at the same time and selected by the num file parameter or affected by a MIDI/key learn on the following buttons:

Current pattern number is visible in the bottom left corner.

Zooming

To Zoom vertically use the mouse wheel in the piano area (1), to Zoom horizontally, use the mouse wheel in the bar numbers area (2).

Monitoring

Enable this option if you want to monitor the MIDI notes you are manipulating.

Loop section

You can adjust the loop size and position in this area.

Adjust note Velocity

You can adjust the note velocity in the bottom area.

Select several notes

You can select several notes with the [shift] key, for example to move or copy this group.

more precision

For a more precise adjustment, select the notes you want to change and move the mouse with the [shift] key pressed.

edit quantization

For a best edition precision, choose the edit quantize mode.

To move note vertically (change the pitch) without change

the time position press the [alt] key.

Manipulate events array in the Piano-Roll

The events inlet gives a direct access to events of the Piano-Roll in order to create unusual patterns. The array is a set of elements with the following structure.

  • beat position
  • event duration
  • MIDI message
  • MIDI data1
  • MIDI data2

events are sorted by increase beat position order.

Basic example

For example the following array [1,0.5,144,62,98] contains only one MIDI event.

  • beat position = 1 (first beat)
  • event duration = 0.5 (half a beat-8th)
  • MIDI message = 144 (MIDI-NOTE-ON)
  • MIDI data1 = 63 (MIDI note 62 : D5)
  • MIDI data2 = 98 (velocity)

see MIDI-implementation.

The following array [1,0.5,144,62,98,2,0,176,48,102] contains two MIDI events:

event 1

  • beat position = 1 (first beat)
  • event duration = 0.5 (half a beat-8th)
  • MIDI message = 144 (MIDI-NOTE-ON)
  • MIDI data1 = 63 (MIDI note 62 : D5)
  • MIDI data2 = 98 (velocity)

event2

  • beat position = 2 (second beat)
  • event duration = 0 (no duration)
  • MIDI message = 176 (CONTROL-CHANGE)
  • MIDI data1 = 48 (CC 48)
  • MIDI data2 = 101 (CC value)

Simple patch

the MIDI Get Events Pianoroll.pat patch of the */library/help patches/** gives an example of how to get MIDI information from the event outlet.

Scripting language is a good candidate for event manipulation. See scripting.

Settings

show piano-roll

Displays the Piano-Roll window.

midi in

MIDI input flow(s).

midi out

Midi output flow(s).

gain

Gain applied to the MIDI Notes.

pitch

Transposition applied to the MIDI Notes (in half-tones).

reverse

Plays the MIDI file in reverse mode: the cursor position moves from right to left. NOTE-ON events are transformed into NOTE-OFF NOTE-OFF events are transformed into NOTE-ON.

channel out

MIDI channel of the MIDI output.

chan filter

Let passes only messages witch correspond to the channel filter. all channels: no channel filter, chan 1: only from channel 1, chan 2: only from channel 2

  • etc.

play loop

Play the MIDI file in loop mode.

loop mode

Synchronization options.

  • free loop: the sequence is played in a loop mode.
  • cycle: the sequence is played at each beginning cycle.
  • bar: the sequence is played at each beginning bar.
  • loop on bar: the sequence is played entirely as in loop mode, and then, at the end, restarts at the beginning of the next bar.
  • loop on beat: the sequence is played entirely as in loop mode, and then, at the end, restarts at the beginning of the next beat.
  • step by step: the sequence is played manually step by step when the next step button is pressed.
  • ppQ slave: the sequence is played according the ppQ position input.

auto restart

Auto restart when master-synchro-panel restart.

play

Plays the current MIDI file.

This inlet works only when the play loop parameter is OFF.

stop

Stops the playing of the MIDI file.

This inlet works only when the play loop parameter is OFF.

play button mode

Determines the play button behavior. play-replay: first click plays the MIDI file (once) second click restarts the MIDI file play-stop: first click plays the MIDI file (once) second click stops the MIDI file.

on activation

Determines what happen when the parent patch is activated. do nothing: when parent patch is activated nothing is done, play once: when patch activated the file is played once.

at the end

Determines what happens when the sample or MIDI sequence reach it's end.

  • do nothing: nothing is done.
  • next grid section: the grid goes to the next section.

rec

Starts or stops the recording of MIDI input.

clear

Clears the MIDI events.

rec mode

Recording mode, rewrite: clears old events and records MIDI notes as they are played, overdub: overdub record mode: keep the previous recorded notes.

quantiz

Quantization of the recorded notes.

  • no : no quantization.
  • 1/4: quantization on beat.
  • 1/8: quantization on eighteenth notes.
  • triplet: quantization on triplets.
  • 1/16: quantization on sixteenth notes.

st rec quantiz

Quantization of the start/end recording.

  • no: the recording starts/ends immediately after the rec button is pressed.
  • cycle: the recording starts/ends immediately after the beginning of the next cycle.
  • bar: the recording starts/ends immediately after the beginning of the next bar.
  • 1/4: the recording starts/ends immediately after the beginning of the next beat.

start pos

Start reading position.

end pos

End reading position.

the file is read between the start and end position.

ppqpos

ppQ position.

can receive data in input when the loop mode=ppQ slave to play MIDI files in random access.

num file

Current MIDI file number. You can change it in real time.

short filename

Gives only the name of the file, without the path and extension.

add file name

Click to add a name to this MIDI file.

midi thru

Let pass input MIDI event thru the module. Helpful if you want to hear what you are recording.

is playing

Sends 1 value when the module is playing.

is recording

Sends 1 value when the module is recording.
Remember that, with the st rec quantiz option, the recording can starts/ends after the rec buttons is pressed. It can be helpful to know exactly when the module is recording.

starting

Sends 1 value when the reading position restarts from the beginning of the loop.

undo

Undo the last record or clear MIDI file.

events

Gives a direct access to MIDI events of the Piano-Roll. See above.

next step

This input works only when the loop mode parameter is set to step by step

In forward mod, plays the MIDI file from the current position to the next NOTE ON event. In Reverse mode, it plays backward from the current position to the previous NOTE OFF event. See reverse.

reset next step pos

Resets the next step reading position (in step by step mode) to the beginning.

save to file

Prompts for a file name and saves the midi file.

load from file

Prompts for a file name and loads a midi file.

save to file direct

Saves the file with a the file name without prompt.

load from file direct

Loads the file with the file name without prompt.

file name

Name of the file to save or to load.

caption

Displayed caption of the object. Click to enter a new name.

saved in preset

Determines if parameters of this object are saved in the preset-panel.

fade preset

Parameters of the this object can cross faded when you recall a preset in the grid.

Optional setting, does not appear on all objects.

hint

Hint text displayed on mouse over.

Other Settings

background

background color

Background color of the control.

transparent option must be OFF.

Blue background color example.

transparent

Determines if the background of the control is transparent or not.

Example, the first module is transparent.

hilited color

Background color when the control is modified by a remote (MIDI,OSC,etc.).

image file

Optional Filename of the background image.

Only PNG, JPEG and BMP formats are supported.

Use [ctrl+click] to reset.

Example on an panel-xy-pad.

fit size

Force the image file to adapt its displayed size to the size of the object.

  • proportional: the image keeps its proportion ratio and is left aligned,
  • scaled: the image is scaled to the object size,
  • original: keeps the original size
  • clipped: the image is clipped to the object size, and centered,
  • scaled: the image is scaled to the object size taking into account the border-size of the control.

Bitmaps

bitmap in

Background bitmap input.

Use [CTRL + Click] to reset the input.

bitmap out

Background bitmap output.

border

show border

Displays or not the border of the control.

8 pixels border on an panel-xy-pad.

border width

Sets the border width of the control in pixel.

8 pixels border on an panel-xy-pad.

border color

Border color of the control.

a yellow border on an panel-xy-pad.

border OFF color

Border color when the control is OFF.

a black OFF border on a switch.

border ON color

Border color when the control is ON.

a white ON border on a switch.

round size

Thickness of rounded corners.

0 = no rounded corners.

Example on a panel-shape.

don't draw selection border

Enables or disables the drawing of a border when the control is selected with the mouse.

caption

show caption

Displays or not the caption.

Example on a fader.

caption align

Caption alignment of the control, left, center or right.

caption V align

Vertical alignment of the caption, center, top or bottom.

Example on knob: Center, top and bottom.

Example on switch.

caption font size factor

Size multiplication factor applied to the caption font.

Example on switch.

caption font

Font name of the control caption.

Example with 3 different fonts on switch.

caption font color

Color of the caption font.

Example on switch.

caption font italic

Italic style for caption font.

Example on switch.

caption font bold

Bold style for caption font.

Example on switch.

caption font underline

Underline style for the caption font.

Example on switch.

drag & drop

drag enabled

Enables the drag on this control.

allow drop

Enables or disables the drag&drop possibilities on this control.

drop file name

Name of the dropped file.

clear drop file name

Clears the latest dropped file name.

global

edition enabled

Determines if the control can be modified by the user. When OFF, the mouse interaction and modifications are disabled so the user can't change the value.

is visible

Sets or get the visibility of the control.

global color

Global color of the control. Usine will choose the best contrasted colors according the global color.

ignored in parent global color

When ON the global color of the control is not affected (is isolated) when the parent control global color changes.

on top

Determines the Z-order of the control

  • normal: the Z-order is the control creation order
  • on top: the control appears always on top of all other controls
  • backward: the control appears always behind all other controls

Example with the first knob on top.

opacity

Opacity value of the control.

0 will give a totally transparent control so invisible.

blur softness

Blur amount applied to the object.

Example of blur.

Be careful, the blur softness use shaders which are not supported by all graphic cards.
It can crash Usine.

header

show header

Displays or not the header on the panel.

Example on sequenced-lines.

header height

Height of the header in pixels.

header color

Background color of the header.

horizontal-scroller

show H scroller

Determines if the horizontal scroller is visible or not.

The scroller appears only if the container is smaller than the controls inside.

Example of horizontal scroller

H scroller height

Height of the scroller in pixels.

H scroller color

Scroller color.

H scroller opacity

Scroller opacity.

ID's

visible only in god mode, see setup-panel-tab-expert.

unique ID

Current private id for this control.

recreate ID

If you experience difficulties in Polyphonic mode, try to recreate new id(s) with this button.

repair ID s

Each Patch shared on the local network uses its own ID (identification number). If you experience issues of Patches that don't send information to the good target, this button will rebuild all these id's.

info

show info

Opens the web browser to display information's or help about the selected object, if it exists.

For more details about information/help creation, see create-help-file.

location

where

Determines where the object is visible.

  • invisible: the object is invisible.
  • ctrl panel: in the control-panel.
  • parent ctrl panel: in the control-panel of the parent patch if it exists.
  • top ctrl panel : in the control-panel of the top parent patch (main patch) if it exists.
  • container : in the container of the current patch.
  • parent container : in the container of the parent patch of the current patch.
  • top parent container: in the container of the top parent patch of the current patch.
  • pop up window: visible in the popup.
  • top header: visible in the top top-header-panel.
  • toolbox: visible in the toolbox-panel.
  • workspace: visible in the workspace-panel.

When the location is set to a container which doesn't exist in the patch, Usine try to find in parent patches, the first container available. If no container is available an error message is displayed.

also visible in IB

When ON, will also be visible in the interface-builder-panel.

mouse

mouse dwn

Gives the mouse state of the control:

  • 1 if the mouse is pressed
  • 0 otherwise.

In multi-touch environment, can be an array of [0..1] values.

mouse wheel

Gives the mouse wheel speed and direction, -1,-2,-3,...=forward, 1,2,3,...=backward.

mouse wheel enabled

Enables or disable the mouse wheel action.

dbl click

Sends a 1 value if the user has [dbl-clicked] on the control.

mouse active

Determines if the mouse is active on the control.

mouse y

Gives the mouse X position on the control in relative coordinates from 0=most-left to 1=most-right.

In multi-touch environment, can be an array of [0..1] values.

mouse x

Gives the mouse Y position on the control in relative coordinates form 0=top to 1=bottom.

In multi-touch environment, can be an array of [0..1] values.

touch pressure

Pressure value on touch-screens.

The pressure value is not available on all touch screens.

gesture

Gesture information's.

In touch and multi-touch environment, returns an array of the fingers movements See multi-touch

auto reset

When ON, the value of the control is reset automatically on mouse up.

vertical mouse

When ON, move up-down to rotate a knob, left-right when OFF.

mouse over

Sends a 1 value when the control is hovered with the mouse.

mouse over

Sends 1 when the control is mouse overed.

selected

Sends 1 when the control is selected.

Size, positions

top

Top position of the control in pixels.

left

Left position of the control in pixels.

height

Height of the control in pixels.

width

Width of the control in pixels.

position x

Horizontal position in % [0..1] relative to the parent panel.

position y

Vertical position in % [0..1] relative to the parent panel.

heightpc

Height in % [0..1] relative to the parent panel.

widthpc

Width in % [0..1] relative to the parent panel.

IB top

Top position in pixels in the interface-builder-panel.

IB left

Left position in pixels in the interface-builder-panel.

IB width

Width in pixels in the interface-builder-panel.

IB height

Height in pixels in the interface-builder-panel.

rotation angle

Rotation angle of the control.

vertical

Rotates this control in vertical position.

zoom scale

Zoom scale of the control.

can zoom

Determines is the control can be zoomed with the wheel mouse.

resize grip enabled

Determines if the control can be resized with the resize grip.

minimized

Determines if the control is minimized or not.

floating x

Determines if the control is movable on X axis.

floating y

Determines if the control is movable on Y axis.

floating content parent x

When ON the control stays inside the parent on X axis.

floating content parent y

When ON the control stays inside the parent on Y axis.

TpgControl_Button.floating content parent y

resizable left

Determines if the control can be resized on its left hand.

resizable right

Determines if the control can be resized on its right hand.

resizable top

Determines if the control can be resized on its top hand.

resizable bottom

Determines if the control can be resized on its bottom hand.

Physics-engine

physics enabled

Enables physics-engine in this panel.

physics speed

The physics speed of the control in physics-engine.

init with random speed

When ON, the physics-engine starts with a random speed for each child controls.

same masses

When ON, all controls have the same masses in the physics-engine.

ignored in physical engine

The position control is not affected by the physics-engine.

friction

Friction factor in the physics-engine.

elasticity

Energy conservation coefficient on collision.

gravity x

Gravity factor on the X axis.

gravity y

Gravity factor on the Y axis.

reset pos x

Position of the object when the physics engine is reset on X axis.

reset pos y

Position of the object when the physics engine is reset on Y axis.

angular speed

Angular speed of the control in the physical engine.

collide

Sends a 1 value when the control collides with another control or a border.

collide info

Gives information about the collide state in the physics-engine.

  • 1001: top of the parent,
  • 1002: right side of the parent,
  • 1003: left side of the parent,
  • 1004: bottom of the parent.

speed x

Speed vector value on the X axis in the physics-engine.

speed y

Speed vector value on the Y axis in the physics-engine.

Layouts

auto reorganize

Automatically reorganize positions of controls in the panel.

reorganize margin

Left margin used in reorganization, in pixels.

reorganize interspace

Interspace between controls used in reorganization, in pixels.

auto resize

Resizes panels automatically when child controls are moved or resized. Switch it OFF if you use floating panels inside.

auto resize margin

Margin in pixel used for the auto resize option.

fit standard size

Adjust the panel width to a multiple of the default rack width.

snap to grid

In unlock mode, snap the control to a grid.

grid size

Grid size in pixels when snap to grid is ON.

toolbar

show toolbar

Displays the toolbar with its icons.

Example ON and OFF

toolbar size factor

Height of the toolbar % of the global height.

Example toolbar size on a panel.

Cursor

show cursor

Displays a small cursor indicator at current position.

cursor color

Color of the cursor.

cursor width

Cursor width in pixels.

2 and 8 pixels cursor on a data-generator-sequenced-steps.

cursor opacity

Opacity of the cursor.

Grid

show grid

Displays or not a grid on the panel.

Example with 8 x 4 grid.

full grid size

Displays a full grid when ON or just small ticks when OFF on the panel.

Example OFF and ON.

grid color

Color of the grid.

Example with a Yellow grid on a data-generator-sequenced-steps.

H divisions

Number of vertical tick of the grid.

0 = no grid division visible

Horizontal division set to 8 on a data-generator-sequenced-steps.

V divisions

Number of horizontal tick of the grid.

0 = no grid division visible

Example of 4 vertical divisions.

See also

version 5.2.221206

Edit All Pages