OrderedBytes
OrderedBytes User Forum
FAQ FAQ     Search Search     Memberlist Memberlist     Usergroups Usergroups     Register Register
Profile Profile     Log in to check your private messages Log in to check your private messages     Log in Log in
ControllerMate -- MIDI Special Edition
Display posts from previous:         View previous topic :: View next topic
Post new topic Reply to topic Subscribe to this topic    The OrderedBytes Forum -> MIDI Goto page 1, 2  Next
ControllerMate -- MIDI Special Edition Mon Jun 04, 2007 8:38 pm  •   #1781
Ken
Developer


Joined: 27 Mar 2006
Posts: 3939

A MIDI Special Edition of ControllerMate is available for download (9.7MB) today. This version contains building blocks which respond to MIDI messages and others which generate MIDI messages. The contents of this post are also available in PDF form (184KB).

This version isn't really intended for general release. The primary goal is to get feedback from regular users of MIDI devices to determine whether or not this implementation of MIDI is useful in ControllerMate, or if a different implementation would be more useful.

If you choose to "downgrade" back to ControllerMate v4.3 after running this version, any MIDI building blocks you create will disappear but all other changes will be retained.

MIDI Activity Window
The MIDI Activity window displays the various messages that are being generated. This window will show messages generated by MIDI devices, and the messages that are generated by ControllerMate itself. To open this window, select "MIDI Activity Window" from the "Window" menu.



Each of the entries that appears in the MIDI Activity window can be dragged to the Inspector window when configuring the various MIDI building blocks. Depending on the type of block that is currently selected, the MIDI source, channel, note number and/or controller number will be copied to the selected building block. Regardless of the type of MIDI message that is dragged or the type of building block being configured, as much information as possible will be copied from the message to the building block.


MIDI Output Preferences
In order to send MIDI message to other applications, ControllerMate needs to create MIDI Outputs that are visible to the other applications. By default, one output named "ControllerMate" is created. If additional outputs are needed to separate MIDI traffic, the additional outputs can be created in the MIDI section of the Preferences window.




MIDI Building Blocks
The MIDI building blocks are of two basic types: sources and outputs.

The MIDI Source building blocks respond to MIDI messages in much the same way that Axis, Button and Hatswitch building blocks respond to controls on a HID device. These are used to control ControllerMate activity from MIDI devices. Each MIDI Source block can be configured to listen to a particular source. It can be limited to just one channel from that source, or can listen to all channels. MIDI Source building blocks can also be combined with Modifiers in the same way that Axis, Button and Hatswitch blocks can combine with Modifiers.

The MIDI Output building blocks create MIDI messages for use by other applications. Each MIDI Output sends its MIDI messages through one channel on one of the MIDI Outputs that is listed in the MIDI section of the Preferences window.


MIDI Source Building Blocks

MIDI Note

This building block responds to "Note On" messages from MIDI devices. It can be configured with the particular note number that is desired, and a minimum velocity that will turn the building block ON. The building block will turn OFF either when a "Note Off" of any velocity is received for the associated note, or when a "Note On" message is sent with a zero velocity.


MIDI Note Velocity

This building block reports the velocity value of "Note On" messages. It can be configured with the particular note number that is desired. This building block will set its output to "0" when a "Note Off" message of any velocity is received for the associated note.


MIDI Controller

This building block reports the value of "Controller" messages. It can be configured with the particular controller number that is desired. For controllers that have both "Fine" and "Coarse" values, the building block can be configured to report only from the exact controller number that is selected (ie. only the "Coarse" or "Fine" portion) as a 0-127 value, or to combine the "Fine" and "Coarse" values into a 0-16383 value.


MIDI After Touch

This building block reports the value of "After Touch" messages. It can be configured with the particular note number that is desired.


MIDI Program Change

This building block reports the value of "Program Change" messages.


MIDI Channel Pressure

This building block reports the value of "Channel Pressure" messages.


MIDI Pitch Wheel

This building block reports the value of "Pitch Wheel" messages.


MIDI Output Building Blocks

MIDI Note Output

This building block generates MIDI Note messages. It can be configured with the desired note number, the velocity value at which it should be turned on, the maximum time that it will stay on, and the velocity at which it should be turned off. When the building block turns ON, it will send the associated "Note On" message. When the building block turns OFF, or when the maximum note duration is reached, then the associated "Note Off" message will be sent.


MIDI Variable Note Output

This building block generates MIDI Note messages. It can be configured with a default note number, a default velocity at which the note will turn on, a maximum duration, and the velocity at which the note will turn off. When the building block's "PLAY" input turns ON, it will use the note number and velocity values that appear on its "NOTE" and "VEL" inputs respectively to generate the "Note On" message. If the "NOTE" and/or "VEL" inputs are not attached to the output of another building block, then the default note/velocity value will be used. When the building block's "PLAY" input turns OFF, or when the maximum note duration is reached, then the associated "Note Off" message will be sent.


MIDI Variable Controller Output

This building block generates MIDI "Controller" messages. It can be configured with the desired controller number. For controllers that have both "Fine" and "Coarse" values, the building block can be configured to send only a message with the exact controller number that is selected as a 0-127 value, or to send both the "Coarse" and "Fine" messages as a 0-16383 value.


MIDI After Touch Output

This building block generates MIDI "After Touch" messages. It can be configured with the desired note number, and the pressure values that should be sent when the building block turns ON and OFF.


MIDI Variable After Touch Output

This building block generates MIDI "After Touch" messages. It can be configured with a default note number and a default pressure value. When the value of either input changes, an After Touch message will be generated with the values currently on the building block's inputs. If either input is not attached to another building block's output, then the default value will be used.


MIDI Program Change Output

This building block generates MIDI "Program Change" messages. It can be configured with the desired program number. The "Program Change" message will be generated when the building block's input turns ON.


MIDI Channel Pressure Output

This building block generates MIDI "Channel Pressure" messages. When the value of the input changes, the "Channel Pressure" message will be sent using the current input value.


MIDI Pitch Wheel Output

This building block generates MIDI "Pitch Wheel" messages. When the value of the input changes, the "Pitch Wheel" message will be sent using the current input value.

Any feedback regarding these new building blocks, or how MIDI is implemented in general, is definitely appreciated -- either here or in e-mail.
_________________
Ken
www.orderedbytes.com - www.controllermate.com
ControllerMate -- Programming controllers for Mac OS X since 2005.


Last edited by Ken on Fri Oct 28, 2011 8:31 pm; edited 1 time in total
View user's profile Send private message Visit poster's website Reply with quote
Thu Jul 12, 2007 10:08 am  •   #1958
Noizemaker



Joined: 01 Oct 2006
Posts: 166
Location: Montreal Canada

I'm ready to try it but how is it compared to 4.3.1?
View user's profile Send private message Visit poster's website Reply with quote
Thu Jul 12, 2007 10:31 pm  •   #1960
Ken
Developer


Joined: 27 Mar 2006
Posts: 3939

The MIDI version will still have a problem properly detecting when certain applications are running. iTunes comes to mind, there may be others.
_________________
Ken
www.orderedbytes.com - www.controllermate.com
ControllerMate -- Programming controllers for Mac OS X since 2005.
View user's profile Send private message Visit poster's website Reply with quote
Wed Jul 25, 2007 11:38 am  •   #1988
Noizemaker



Joined: 01 Oct 2006
Posts: 166
Location: Montreal Canada

Ok I've been going through it a bit and it looks pretty good. The ability of a midi learn detection would be really good. when you configure a midi controller building block instead of having to findout what is the controller number received, you could be able to just simply turn a knob on the the MIDI device and by scanning it, CM knows automatically which it is. That's common in the MIDI plug in business.

Would it be a big thing for you to export 4.3.1 compliant MIDI build? The pulse count is very important for being able to use knob to generate MIDI information and I understand that its pulse count detection is greatly improved in 4.3.1.

BTW do you have a donation plan for the updates? A little 10$ doesn't hurt no one.

Thanks Ken
View user's profile Send private message Visit poster's website Reply with quote
Wed Jul 25, 2007 4:16 pm  •   #1989
Ken
Developer


Joined: 27 Mar 2006
Posts: 3939

Noizemaker wrote:
Ok I've been going through it a bit and it looks pretty good. The ability of a midi learn detection would be really good. when you configure a midi controller building block instead of having to findout what is the controller number received, you could be able to just simply turn a knob on the the MIDI device and by scanning it, CM knows automatically which it is. That's common in the MIDI plug in business.

I would like to do something like this in the next GUI, but it should also include both HID and MIDI. I'd like to get it to the point where the user doesn't have to be concerned about the type of device that is being used.

Noizemaker wrote:
Would it be a big thing for you to export 4.3.1 compliant MIDI build? The pulse count is very important for being able to use knob to generate MIDI information and I understand that its pulse count detection is greatly improved in 4.3.1.

I would like to update the MIDI version. I may be doing a v4.3.2 so it would be good if the MIDI version were consistent with that version.

Noizemaker wrote:
BTW do you have a donation plan for the updates? A little 10$ doesn't hurt no one.

I haven't figured out pricing for the next major version. I may end up with a CM and a CM Lite. We'll have to see how it goes.
_________________
Ken
www.orderedbytes.com - www.controllermate.com
ControllerMate -- Programming controllers for Mac OS X since 2005.
View user's profile Send private message Visit poster's website Reply with quote
Wed Jul 25, 2007 5:11 pm  •   #1990
Noizemaker



Joined: 01 Oct 2006
Posts: 166
Location: Montreal Canada

Alright then Keep me posted.

If you'd like me to do some accurate testing maybe you could give me a test plan and it will me be my pleasure to help you. CM is such a great tool that I will gladly take part in its development. (in a testing kinda way... Confused Shocked )
View user's profile Send private message Visit poster's website Reply with quote
have been waiting for months for this Tue Sep 04, 2007 2:59 pm  •   #2041
danabeyin



Joined: 19 Jun 2006
Posts: 7

hey ken
hope youre fine

you wrote the program that saved my ass a million times
just now i had the instinct to check the site for a midi version and YAYYYY i found it

hope its stable enough to use on stage like the other versionss

see you take care
View user's profile Send private message Reply with quote
works great Fri Oct 19, 2007 5:54 am  •   #2141
danabeyin



Joined: 19 Jun 2006
Posts: 7

hey guys
i just wanted to inform you that this version is working great

it has replaced all my max msp controller thing
thank you very very very much
take care
onur
View user's profile Send private message Reply with quote
Fri Oct 19, 2007 10:13 pm  •   #2144
Ken
Developer


Joined: 27 Mar 2006
Posts: 3939

Thanks for the feedback. I will definitely incorporate this capability into the next version of CM.
_________________
Ken
www.orderedbytes.com - www.controllermate.com
ControllerMate -- Programming controllers for Mac OS X since 2005.
View user's profile Send private message Visit poster's website Reply with quote
Sat Oct 20, 2007 7:21 am  •   #2145
Noizemaker



Joined: 01 Oct 2006
Posts: 166
Location: Montreal Canada

Can't wait for it Ken... Wink
View user's profile Send private message Visit poster's website Reply with quote
Sat Oct 20, 2007 8:25 pm  •   #2146
Ken
Developer


Joined: 27 Mar 2006
Posts: 3939

The next major version I should state. There may be a tweak or two before then.
_________________
Ken
www.orderedbytes.com - www.controllermate.com
ControllerMate -- Programming controllers for Mac OS X since 2005.
View user's profile Send private message Visit poster's website Reply with quote
Sat Oct 20, 2007 9:20 pm  •   #2147
Noizemaker



Joined: 01 Oct 2006
Posts: 166
Location: Montreal Canada

Still waiting for it anyways... Very Happy
View user's profile Send private message Visit poster's website Reply with quote
Sun Oct 21, 2007 12:14 am  •   #2148
rickybuchanan



Joined: 20 Oct 2007
Posts: 45
Location: Australia

Ken, this looks fantastic and is certainly something I'm interested in using!

Is the output a virtual MIDI device in the same way that CM makes virtual keyboard and mouse devices? It seems so from how you have described it, but I wondered because the preferences were arranged so it's separate.

Is there any chance that testing this version will muck up my existing set-up? I just got it organised mostly how I want and I don't want to mess things up.

Ricky
View user's profile Send private message Visit poster's website AIM Address Reply with quote
Sun Oct 21, 2007 12:26 am  •   #2150
Ken
Developer


Joined: 27 Mar 2006
Posts: 3939

The "virtual" MIDI device is completely different than the virtual mouse/keyboard items. There is basically nothing in common between MIDI and HID.

The MIDI version will read the "normal" ControllerMate settings fine. If you switch back to the "normal" version of ControllerMate, then the MIDI items that you save with the MIDI version will be ignored and lost.

If you just want to play with the MIDI version for a bit without risking messing up other things, then duplicate the ~/Library/Application Support/ControllerMate folder as a backup. This can then be restored at a later time if you so choose.
_________________
Ken
www.orderedbytes.com - www.controllermate.com
ControllerMate -- Programming controllers for Mac OS X since 2005.
View user's profile Send private message Visit poster's website Reply with quote
does this version support leopard? Mon May 26, 2008 3:38 pm  •   #3120
danabeyin



Joined: 19 Jun 2006
Posts: 7

hey, i just had to upgrade to leopard and have a gig tomorrow, i need an answer does this MIDI special version support leopard, or does the new version of controllermate support MIDI
thanks
onur
View user's profile Send private message Reply with quote
Page 1 of 2 All times are GMT - 6 Hours
Post new topic Reply to topic Subscribe to this topic    The OrderedBytes Forum -> MIDI Goto page 1, 2  Next
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum

Copyright © 2005 — 2012 OrderedBytes
All rights reserved.