Highly Liquid Forum facebook twitter google plus rss feed
Old 02-18-2015, 03:02 PM
John's Avatar
John John is offline
Join Date: Jan 2009
Posts: 3,007
Default MIDIWidget Preset Functionality

J. writes:

I am still a bit confused about the concept of presets, what they are used for and how they are implemented. The way I understand it a preset lets one set the output state of each of the 24 outputs of the MIDIWidget to a logic 0 or 1, but not to a high impedance state.
Yes. However, if "control by preset" is disabled for any of the 24 outputs, that output will not be affected at all by preset operations.

There are 128 presets and each one is controlled by a standard MIDI command, but I am only interested in using the “note” command. Each output is also still controlled by the “output mode” command so, if I use a preset to control the output state it will change again, in accordance with the “output mode” command that I implement. Is all this correct?
Yes. Here is the algorithm that the MIDIWidget executes when a MIDI message (like note, CC, or program change) is received:

1. Is this specific message the "preset store" command? If so, store the current output states to the current preset #. (The current preset # is determined by the preset most recently recalled.)

2. Is this message category (channel and type) the "preset recall" command? If so, use the note number, CC number, or program number from the message to recall the corresponding preset. This will affect any MIDIWidget outputs that are under preset control.

3. For each MIDIWidget output, check its individual configuration to see if it needs to be updated in response to the incoming message.

In almost all use cases, the incoming message will only result in activity for one of the 3 steps above.

As an example, here is what I want to do: I want 2 outputs of the MIDIWidget to toggle on and off (logic 1 and 0), but at opposite times using “note” commands. I can use the “logic, note on toggle” mode to do this and set one output to “invert”. Now, when the appropriate note number is transmitted on the MIDI channel that I specify, each output, of the 2, will toggle on and off, but with opposite states.
Sounds good.

I also, occasionally, want both outputs to be off at the same time. I can do this by defining a preset at logic level 0, for these 2 outputs, but when I implement this preset and then start using the “note toggle” command will both outputs switch on or off together because they both started at the same output state (off) or will the fact that one output is set to “invert” still cause them to switch opposite?
If your recalled preset sets both outputs to 0V, then a subsequent matching note message will toggle them both to 5V.

So in other words, the any preset that sets both outputs to 0V will have set the underlying (pre-invert) logic states to 01 or 10 for the two outputs.

Not sure if that makes sense or not...let me know.

I still do not understand how to set and recall a preset. I want to use a specific MIDI note number to recall a preset but I will program or “set” the presets when I program the MIDIWidget with the “configurator” program. How, specifically, do I do all this? The “configurator” program specifies a note number only in the preset "set" command, not in the "recall" command.
The preset recall command is set to a MIDI channel and a message type (note, CC, or program change).

When a matching message is received, the preset # is recalled to match the note #, CC #, or program #.

So if the recall command is "note, channel 1", then any channel 1 note will cause a preset to be recalled.

The preset store command is a single specific message that must match: channel, type, and also the note/CC/program number.

When the preset store command is received, a snapshot of all 24 outputs is stored to the preset slot of the current preset. The "current preset" is the preset # most recently recalled by a preset recall command.

This setup allows a run-time workflow for people who want to edit presets during normal operation, without using the configurator:

1. Recall a preset using a preset recall command.
2. Edit the MIDIWidget output states using other commands to match individual output configurations.
3. Store the new output state to the preset using the preset store command.
Reply With Quote
Old 02-18-2015, 03:08 PM
John's Avatar
John John is offline
Join Date: Jan 2009
Posts: 3,007

J. writes:

Also, I am still unclear as to the function of the grid of “outputs” and “presets” and the meaning of the red dot that appears when I click on a grid square. If you could provide a detailed example of how to program a preset that can be recalled with a specific note number, I would appreciate it.
A red dot on the grid corresponds to logic 1. The absence of the red dot is logic 0.

(Note that for inverted outputs, logic 0 = 5V and logic 1 = 0V.)

To set up a preset to be recalled by note #0:

In the "MIDIWidget OUTPUT CONFIGURATION" section of the configurator:

1. Check the "control by preset" box for any outputs that should fall under preset control.

In the "MIDIWidget PRESET CONFIGURATION" section of the configurator:

2. Set the PRESET RECALL COMMAND to "Note" on Channel 1.
3. If you do not care to edit presets during run-time, leave the PRESET STORE COMMAND set to "None".
4. Click on the "output states by preset" grid to set the output states in the top row. (Top row is for preset #0).
5. Press "W" on the keyboard to write the new config to the MIDWidget.

During normal operation:

6. Send a Note #0 message to the MIDIWidget. Preset #0 will be recalled.
Reply With Quote

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

All times are GMT. The time now is 05:26 AM.

Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2017, vBulletin Solutions, Inc.