Skip to content

Commit

Permalink
Version 2 release
Browse files Browse the repository at this point in the history
  • Loading branch information
nhielost committed Oct 29, 2022
1 parent a9aca62 commit 31d970a
Show file tree
Hide file tree
Showing 26 changed files with 8,044 additions and 2,885 deletions.
5 changes: 3 additions & 2 deletions .github/scripts/check-format.sh
Original file line number Diff line number Diff line change
Expand Up @@ -49,12 +49,13 @@ find . -type d \( \
-path ./plugins/enc-amf -o \
-path ./plugins/mac-syphon/syphon-framework -o \
-path ./plugins/obs-outputs/ftl-sdk -o \
-path ./plugins/obs-websocket/deps \
-path ./plugins/obs-websocket/deps -o \
-path ./src/forms/macros \
\) -prune -false -type f -o \
-name '*.h' -or \
-name '*.hpp' -or \
-name '*.m' -or \
-name '*.mm' -or \
-name '*.c' -or \
-name '*.cpp' \
| xargs -L100 -P ${NPROC} "${CLANG_FORMAT}" ${VERBOSITY} -i -style=file -fallback-style=none
| xargs -L100 -P ${NPROC} "${CLANG_FORMAT}" ${VERBOSITY} -i -style=file -fallback-style=none
11 changes: 7 additions & 4 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ cmake_minimum_required(VERSION 3.16...3.21)

# Change obs-plugintemplate to your plugin's name in a machine-readable format
# (e.g.: obs-myawesomeplugin) and set
project(obs-midi-mg VERSION 1.4.2)
project(obs-midi-mg VERSION 2.0.0)
add_library(obs-midi-mg MODULE)

# Replace `Your Name Here` with the name (yours or your organization's) you want
Expand Down Expand Up @@ -38,7 +38,8 @@ target_sources(
./src/mmg-message.cpp
./src/mmg-utils.cpp
./src/obs-midi-mg.cpp
./src/forms/midimg-window.cpp)
./src/forms/echo/mmg-echo-window.cpp
./src/forms/legacy/mmg-legacy-window.cpp)

target_sources(
obs-midi-mg
Expand All @@ -49,7 +50,9 @@ target_sources(
./src/mmg-message.h
./src/mmg-utils.h
./src/obs-midi-mg.h
./src/forms/midimg-window.h)
./src/forms/echo/mmg-echo-window.h
./src/forms/legacy/mmg-legacy-window.h
./src/forms/macros/mmg-window-macros.h)

# Import libobs as main plugin dependency
find_package(libobs REQUIRED)
Expand Down Expand Up @@ -102,7 +105,7 @@ elseif(OS_MACOS)

set(MACOSX_PLUGIN_GUI_IDENTIFIER "${MACOS_BUNDLEID}")
set(MACOSX_PLUGIN_BUNDLE_VERSION "${CMAKE_PROJECT_VERSION}")
set(MACOSX_PLUGIN_SHORT_VERSION_STRING "1.4.1")
set(MACOSX_PLUGIN_SHORT_VERSION_STRING "2.0.0")

target_compile_options(obs-midi-mg PRIVATE -Wall)
# --- End of section ---
Expand Down
313 changes: 313 additions & 0 deletions HELP.md

Large diffs are not rendered by default.

89 changes: 4 additions & 85 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,94 +17,13 @@ Connect MIDI devices and seamlessly integrate with OBS Studio! This plugin offer

## Installing

Go to the [Releases page](https://github.com/nhielost/obs-midi-mg/releases) and download and install the latest release for the proper operating system. That's it!
Go to the [Releases page](https://github.com/nhielost/obs-midi-mg/releases) and download and install the latest release for the proper operating system. When the install process has completed, open OBS Studio and open the setup window under *Tools > obs-midi-mg Setup* to begin creating bindings.

## Usage
## Help

To set up bindings, open OBS Studio and open the setup window under *Tools > obs-midi-mg Setup*. The setup window should appear.
If something needs an explanation in the plugin, click the *Help* button in the plugin, or click [here](HELP.md).

If any MIDI devices are connected, they should appear in the ***Devices*** display on the left.

A device must be chosen as an active device in order to receive messages. To do this, select the **Set As Active Device** option in the device's status tab. Only one device can be active at a time.

To access the bindings display, select the device to use for interacting with OBS Studio, and click *View Bindings* in the bottom right.

### Bindings

To add a binding, click the *Add* button in the bottom left. A new binding will appear in the ***Bindings*** display for the selected device.

To rename the binding, double-click the binding and type to change the name. To remove the binding (if needed), select the binding and click *Remove* in the bottom left.

To use a binding, messages and actions must be added. To add messages and actions, click *View Messages* and *View Actions* respectively.

### Messages

To add a message, click the *Add* button in the bottom left. A new message will appear in the ***Messages*** display for the selected binding.

To rename the message, double-click the message and type to change the name. To remove the message (if needed), select the message and click *Remove* in the bottom left.

To edit the message, select the message in the ***Messages*** display, and the editor will appear on the right.

Adjust the values as necessary for the message. By default, the value/velocity option is Off for the use of its value in executing actions. If you wish to make the value required for executing an action, click the *Require Value* button in the bottom right, and it will switch to a number. Clicking the button again will revert it to the Off state.

A message can be provided by the device. This can be done by selecting the *Listen to Message* button and sending the message to the plugin. It will automatically fill in the message values for you. Make sure to click *Cancel* when finished.

*Note: You can use multiple messages in a binding by adding more messages. If this is desired, the behavior of the binding may not be appropriate. See [Reception Methods](#reception-methods) for more details*.

### Actions

To add an action, click the *Add* button in the bottom left. A new message will appear in the ***Actions*** display for the selected binding.

To rename the action, double-click the action and type to change the name. To remove the action (if needed), select the action and click *Remove* in the bottom left.

To edit the action, select the action in the ***Actions*** display, and the editor will appear on the right.

Adjust the values as necessary for the action(s) in this binding. Settings will appear as the form is filled out. To use a value from a message, either click the label for the number fields, or select *Use Message Value* in the selection fields.

*Note: You can use multiple actions in a binding by adding more actions. If this is desired, the behavior of the binding may not be appropriate. See [Reception Methods](#reception-methods) for more details*.

### Reception Methods

When selecting a binding, a selection field will appear displaying the reception method. Each method changes how actions are executed, and which messages will be sent as values to each action. In all methods, messages will be evaluated before actions, and all actions will execute after the final message is received.

- **Consecutive**: In this mode, actions can only use the final message as a value. *This is the default method, and should be used in most cases*.
- **Correspondence**: In this mode, actions can use the corresponding message as their value.
- Example: There are five messages and five actions in a binding. When all five messages have been heard, the first message received will be sent as a parameter to the first action, the second message to the second action, and so on.
- **Multiply**: In this mode, actions receive all previous messages as values. Only use this mode for multiple messages and singular actions as this may take a long time.
- Example: There are five messages before five actions. When all five messages have been heard, the first action receives all five messages as parameters (in order), then the second action receives all five messages, and so on.

### Message Toggling

A binding can now be set up so that it is easily able to toggle an action, without the need for extra bindings. Message toggling changes how messages are received by changing them before the next message.

- **Off**: Message toggling is disabled, and messages will not change. An unlimited amount of messages can be used.
- **Note Type**: Messages will change based on type. Note On and Note Off messages will switch to the other. Only one message can be used in this mode, and nothing will happen if the message is not a Note On or Note Off message.
- **Velocity**: Messages will change based on velocity. Velocities will switch between 127 and 0. Only one message can be used in this mode, and nothing will happen if the initial velocity is not set to 127 or 0.
- **Note Type and Velocity**: Messages will change based on both message type and velocity. Note On and Note Off messages will switch to the other, and velocities will switch between 127 and 0. The same restrictions apply as above.

### Returning to a Previous Menu

To return to the menu before the current menu, click the *Return* button in the bottom left. The *Messages* and *Actions* menus will return to the *Bindings* menu, and the *Bindings* menu will return to the *Devices* menu.

### Help

If something needs explanation in the plugin, click the *Help* button located to the right of the *Preferences* button. If more help is needed, feel free to look at this page by clicking the *Help* button in the *Preferences* menu, or post a thought on the OBS forum.

### Preferences

To adjust other settings, click the *Preferences* button in the bottom left. Bindings can be exported, imported and transferred here, and the whole plugin can be turned off here as well.

## Future Content

The coming updates will hopefully introduce these new features:

- MIDI Output device support - send a message when an event in OBS Studio occurs (well underway!)

## Feedback

I would love to hear honestly from you about this plugin. Feel free to share some ideas and don't be afraid to report an issue!

[Click here to go to the Issues Page](https://github.com/nhielost/obs-midi-mg/issues).
I would love to hear honestly from you about this plugin. Feel free to share some ideas and don't be afraid to [report an issue](https://github.com/nhielost/obs-midi-mg/issues) or [post on the OBS forum discussion](https://obsproject.com/forum/threads/obs-midi-mg.158407/)!

## Credits

Expand Down
6 changes: 3 additions & 3 deletions buildspec.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
{
"dependencies": {
"obs-studio": {
"version": "28.0.2",
"version": "28.0.3",
"repository": "https://github.com/obsproject/obs-studio.git",
"branch": "master",
"hash": "dba3401cebb560b348b905150a3ec3d548806a98"
"hash": "d21891b3ca1a8607de479687cd2e12a4455525d7"
},
"prebuilt": {
"version": "2022-08-02",
Expand Down Expand Up @@ -79,5 +79,5 @@
}
},
"name": "obs-midi-mg",
"version": "1.4.2"
"version": "2.0.0"
}
Loading

0 comments on commit 31d970a

Please sign in to comment.