Resource icon

obs-midi-mg 3.0.3

vlamonde

New Member
Well... After an update for OBS and this plugin I decided to give it another bash. This time with more success. I can now successfully switch scenes using either a MIDI controller or a DAW. As has been pointed out One must use a virtual cable like midiloop to get OBS to respond to MIDI messages in windows. This is something that needs to be mentioned in the documentation, although I expect a youtube tutorial will cover this
 

Eirn

New Member
@nhielost
The fader of the device and
Is there any way to synchronize the fader of OBS?
If you manipulate the fader of the device, you can manipulate the fader of the OBS, but adjusting the fader of the OBS does not manipulate the fader of the device.
 

lookeypl

New Member
@nhielost Hi! I wanted to start by saying your plugin is amazing, great work iterating over what obs-midi did.

There is one drawback I have with it, it is difficult to provide good feedback to the MIDI device I'm using. I'm thinking of adding a "Conditional" Internal action. The basic idea of it would be to check what is the status of some togglable control in OBS (ex. Audio Source Mute) and to perform one action when the control is enabled, another if it is disabled.

The main reason behind this is getting my MIDI device (AKAI APC mini) to provide some informaction back to me - it would be easier at a glance to see if a source is muted if I light up a button I used to mute the source. Unfortunately, APC Mini uses two separate messages to turn the light on or off, there is no single message which would act as a "toggle" to the light (this is mostly because some buttons have customizable colors). Right now it is only possible to emulate such feedback if you program two separate buttons - one to always mute and turn the light on, one to unmute and turn it off. To give a brief example, right now to make my APC Mini react when a source X is muted/unmuted I have to set it up like this:

Code:
Button A -> Internal/Action (Do 2 Actions):
  -> Mute Source X
  -> Send MIDI Message to APC Mini (turn light on)

Button B -> Internal/Action (Do 2 Actions):
  -> Unmute Source X
  -> Send MIDI Message to APC Mini (turn light off)

This eats up an extra button which I could potentially use to something else. Having a Conditional action could bring such a thing down to a single button toggling mute:

Code:
Button A -> Internal/Action (Do 2 Actions):
  -> Toggle Mute on Source X
  -> Conditional (Audio Source X - Get Mute)
    -> enabled/true -> Send MIDI Message to APC Mini (turn light on)
    -> disabled/false -> Send MIDI Message to APC Mini (turn light off)

This would help MIDI-programming some devices like the APK Mini that handle button lights in this specific way. Audio muting is only an example; there could be way more checks added from different ends of OBS that people could appreciate (myself including - I use APC Mini to also toggle some audio filters during stream, so that would also help with programming my device in a more convenient way).

I also had another idea to make the plugin even more customizable and make existing Internal/Action action accept unlimited amount of sub-actions. Right now to make this happen you'd have to chain multiple Internal/Actions together. If it was updated to have a "Add Action" button in the UI, you could add however many you need and create even more sophisticated setups in a simpler way. This would require adding some extra buttons per each sub-action too (Delete action, maybe buttons to reorder them easier).

I wrote this post because I wanted to soon start some work on PRs for those additions and also wanted to check if you or someone else started to work on something similar like I mentioned. Or maybe you have a better idea on how to implement such features. What do you think about such additions to the plugin?
 

nhielost

Member
nhielost updated obs-midi-mg with a new update entry:

obs-midi-mg v2.3.0

obs-midi-mg v2.3.0 is now available.​

Additions:​

  • Sources and Transitions can now be custom edited like Filters
    • Now all configurable areas of OBS sources can be customized using MIDI
    • The Sources editor is found in the Video Sources category
  • Number Field redesign
    • The number fields are more compact with this redesign
    • The up and down arrows will automatically increase their multiplier after holding...

Read the rest of this update entry...
 

Devil2K

New Member
Is there a problem with Nanopads ? I will bind a command, when i click on listen to bind,nothing happens. The plugin found my nanopad2, cant understand what the problem is.
 

nhielost

Member

nhielost

Member
Is there a way to allow for multiple active devices?
Not directly.

Most MIDI devices can only accept one connection at any one time due to their drivers, meaning the plugin can only ever use one device without causing problems with other devices. To get around this, there are programs that will essentially combine multiple devices into a single device so that both can be used at the same time without driver conflicts.

The one I recommend is loopMIDI as it is easy to use and is straightforward. You create a virtual port, configure the MIDI devices to send messages to it, and set the virtual port as the active device in the plugin. And, on top of that, the program can automatically start the port for you when you restart your PC so you don't even have to reconfigure the MIDI devices once they are set.

Hope this helps!
 

lcalder

Member
Not directly.

Most MIDI devices can only accept one connection at any one time due to their drivers, meaning the plugin can only ever use one device without causing problems with other devices. To get around this, there are programs that will essentially combine multiple devices into a single device so that both can be used at the same time without driver conflicts.

The one I recommend is loopMIDI as it is easy to use and is straightforward. You create a virtual port, configure the MIDI devices to send messages to it, and set the virtual port as the active device in the plugin. And, on top of that, the program can automatically start the port for you when you restart your PC so you don't even have to reconfigure the MIDI devices once they are set.

Hope this helps!
Thanks for replying. Yes, for Windows 10 I already do have a several virtual midi ports on my machine and then I use Bome midi software to perform mappings which are then directed to these virtual ports so that I can have multiple apps open which all can access all of the midi ports simultaneously: Gig Performer, Reaper, Voicemeeter, MuseScore, OBS, etc.

MAC OS, however, doesn't suffer from the problem that Windows has (namely many vendors don't write multi-threaded?? drivers on Windows) whereas on the MAC multiple apps can all access all the midi devices at the same time if the software allows one to select more than one device: i.e. Reaper, GigPerformer, MuseScore, etc... Since your interface only allow one selection, I am unable to use the same binding setup that works on windows, nor can they all operate simultaneously... I think this would be a great addition to the plugin if its not too much work. I know some Windows users might run into problems if the drivers aren't written to the newer standards, but your suggested solution still would work for them.

I was able to get an old, no-longer-supported app to work on Mac called MidiPipe, however it is a horrible solution as it can't remember my settings and has a very poor interface to save settings, but doesn't remember the file, so requires much interaction to get to work *EVER* time it is used.

Thanks for this amazing plugin and all the work you have done so far.
 

otsoa

New Member
Hi !

When I go into "Tool" => "obs-midi-md-setup" OBS (29.0.2_windows11) crash.
 

Attachments

  • Crash 2023-04-30 14-39-47.txt
    146.1 KB · Views: 42

lcalder

Member
@Exceldro, When this plugin is loaded, OBS is not able to read the main window dimensions and set them properly upon launch on Mac (ARM version M1, M1 Max, M2, Ventura 13.3.1). Also, the size/position of docks surrounding the main preview are not remembered/set upon launch. Interestingly, OBS will remember the x/y coordinates of the top/left corner of the main window (but not the height/width of the window). It seems the window loads with everything crunched into the smallest configuration possible, given the layout of preview and docks established. This problem does NOT occur when loaded on a Windows 10 computer with all of the below plugins installed...
To reproduce (on MacOS ARM):
1. remove all 3rd-party plugins, except for this one.
2. launch OBS
3. set the dimensions of the main window by clicking and dragging on the window borders as desired. Also, position/dimension any docks the way you desire.
4. exit OBS
5. relaunch OBS.
6. the settings will not be adjusted to the dimensions/positions you exited with.

The scene collection has only one scene with a simple screen capture. nothing else.
The profile, scene collection, and log file of the second launch are included below.
This has been tested with OBS 28 - 29.1.

I normally use about 16+ 3rd party plugins, and this problem consistently with 5+ plugins (including this one) (confirmed individually with only that plugin installed) and somewhat consistently with 2 more. 11 plugins have been confirmed to not show this problem. Names of plugins given below. Since this affects more than one plugin, I initially wrote it up on the OBS 29 RC page, as I noted there that it must be a function in the OBS API itself, versus something the 3rd party plugin was doing due to the fact that so many different plugins evinced the problem. They said that, be that as it may, I should pursue the issue with each developer first and then they would look into it if the 3rd party plugin developer had more information after checking into it.

The plugins showing the problem are: downstream-keyer, audio-monitor, media-controls, obs-midi-mg, freeze-filter, and then most of the time showing the problem: droidcamobs, source-copy, source-dock.

The plugins I use that do not show the problem are: advanced-scene-switcher, gradient-source, move-transition, obs-toolbar, replay-source, scene-collection-manager, source-clone, source-record, StreamDeckPlugin, transition-table, waveform.
The quoted problem above happens with this plugin too. If I remove all other plugins but this one, OBS won't remember size/dimensions/positioning as indicated above on MacOS ARM. Log file and scene/profiles attached...
 

Attachments

  • Archive.zip
    5.2 KB · Views: 25
  • 2023-05-16 02-26-55 obs-midi-mg.txt
    14.8 KB · Views: 31

DarrinStern

New Member
Can someone help a new guy? I just installed OBS and I installed the MIDI control to work with a Rodecaster Pro 2, I have restarted the OBS software but I can not find the tool in Tools. What did I do wrong? Thank you for your help.
 

dj divz

New Member
yeah having issue finding a midi controller plugin to support .. can anyone suggest a plugin that can work for Mac users
 

MrGhost

Member
Can someone help a new guy? I just installed OBS and I installed the MIDI control to work with a Rodecaster Pro 2, I have restarted the OBS software but I can not find the tool in Tools. What did I do wrong? Thank you for your help.
use version 2.3.0
 

MrGhost

Member
I am Using A MIDI device where I am controlling a Synthesizer via MIDI but would like to have an output text source change (Maybe perhaps using chat log), based on the MIDI CC that I send, Referencing the MIDI implementation for the synth. Whether using a Pattern recognition of the synth's cc implementation in .pdf or .txt file, or an excel spreadsheet I could create (there are some 50 MIDI CCs and I could type it up). Also there is the possibly of using a (system hidden) xml file (located in program files x86 in windows in the device's program folder) from the MIDI device that contains its saved settings, for which i have written for each used CC a comment (using M Audio's "Enigma" Program) including the setting it changes on the synth. I want to have the CC call the value such as "Square Wave" and then state "on" or "off", written in the OBS Text source, which could work using the chat log option of Text sources.

I figure It would need program to allow using the chat log option in text field, if there is a chat log setting in the OBS-MIDI plugin. As an example, I also use the plugin OBS Tuna. Tuna uses the chat log implementation to pull info out of MP3 files in a playlist for instance a VLC playlist. Works well using the Chatlog option in the OBS .txt source and pointing to the .txt file created by the Tuna plugin. I think it could be done here using a predefined .txt file. It seems like this would work if it could correlate the recieved CC midi, to the cc value in the txt file, and read the label for that CC and place it in the chatlog. At least that seems like the simplest implementation. The Tuna plugin creates a file (in the user folder in Windows) using chat log, that updates the information. The Information is grabbed from there using the metadata string values such as {artist} that the user wants to see written in the text field.
 
Last edited:

nhielost

Member

Announcement​

Version 2.3.1 of this plugin contained various errors for different users that cannot be removed due to a design flaw. It has been taken down, so please use version 2.3.0 instead. I'm sorry for any inconvenience.

(However, a new version of the plugin with some big changes is arriving in the near future!)
 

NorrinRadd22

New Member
Fantastic plugin, and I really appreciate you releasing this for all the begrudging OBS 29 converts.

Only one problem has cropped up for me so far. I have a bunch of sources in groups and I am using Source Toggler to allow me to only display one of the sources in a group at a time. I am attempting to create a Video Source > Display Source > Scene > Source the items in the group, but they are not visible unless I take them out of the group.

I can do this, and set up the function the way I want it, but unlike OBS-Midi, I can't put the sources back in the group and have the binding still work. What it does instead is just change the Source to the Group itself, which is different than what happened in OBS-Midi, which would keep the sources listed as the individual ones inside or outside of the group.

Is there a way to have the sources in a group be affected by this plugin?
 

morphemes

New Member
trying to toggle mute with an MPK pad is all sorts of cursed. think it's my fault but idk. just the one note. on then off again. not working at all.. randomly works then doesn't. try to use another note for some other function, does nothing. will toggle mute on or off once then just stops functioning. knobs work perfect tho.. kinda wanted to use the keys for a bunch of stuff too tho.
 
Top