logo

Live Production Software Forums


Welcome Guest! To enable all features please Login or Register.

Notification

Icon
Error

Options
Go to last post Go to first unread
Yannick  
#1 Posted : Wednesday, July 4, 2018 7:23:07 AM(UTC)
Yannick

Rank: Advanced Member

Groups: Registered
Joined: 9/12/2017(UTC)
Posts: 37
Location: Germany

Thanks: 2 times
Was thanked: 10 time(s) in 9 post(s)
Hello All,

In my production setup at our church I´m using a midi controller (launchpad mini) as a small hardware mixer.
This allows me to send different content via vMix to an Stream/Recording and to the main projector.

Unfortunately this solution has some disadvantages. The controller only offers 8 channels, which is a little to less for our setup.
Also with the workaround for sending different content to the different outputs (I´m using overlay channel 1/2 for stream and overlay 3/4 for projector, that way I can send different content with shortcuts from the midi controller and also have activators to show what inputs are currently active) I am not able to use any transistions in my production, every transistion will just be cut.
Also I would like to have some of the core vMix features directly quick accessible through a hardware controller.

So I decided to design my own vMix optimized midi controller.

UserPostedImage

The whole design of the controller is somewhat alligned to the setup of a digital audio mixing console, since I came from the audio world before discovering vMix.
All Buttons have background ilumination that can be controlled through vMix activators, or will be controlled directly from the controller when there is no activator available for the function.

There a 16 "channel strips".
Each channel offers a Preview/Select Button. This Button will send the input to preview and select this channel for the "advanced configuration" section of the controller.
There is a Program Button for each channel that will directly cut this input to Program.
The Aux Button will send the input to the "Fullscreen 2" output, or to an external output. Since there is no activator available for those outputs the controller will handle the illumination of the buttons by itself.
The Mute Button will turn on/off audio for the channel.
There is a small LED display for each channel (1 display shared for 2 channels) that shows the input name and shows the current audio level in a small bar graph.

In the "Aux" section the user can select which output is currently controlled by the Aux buttons.
It also offers the possibility to activate "AUX follow program" mode, where the Aux bus will mirror the output of the program bus. This is the only possibility to have transitions for the AUX busses (if someone knows an other solution please tell me).

The transisition section offers a linear fader for transisitions as well as for direct tranisition buttons and the possibility to assign different transisitions to the fader.



That´s how far I´ve come with my functionality so far.
At the moment I´m working on the housing for the controller and when that´s finished I will upload a small video to show the functionality of the controller in detail.
The whole "advanced configuration" panel in the upper half of the controller is currently not implemented, I will add features there from time to time when all basic functionality is running.

Please tell me what you think of the concept, and where you see problems.
I would like to hear what ideas you would also have for the "advanced configuration" panel. Currently I´m planning an audio control panel, a color correction panel, a multiview control panel and a general configuration flag panel.

I´m sorry if a lot of stuff was not clear in my explanations. I´ve been working on the controller for a while now and am excited to share my progress with you.
Hopefully some of you will like my ideas and have some additional ideas for improvement.

Greez Yannick
spino  
#2 Posted : Friday, July 6, 2018 3:46:46 AM(UTC)
spino

Rank: Advanced Member

Groups: Registered
Joined: 12/20/2016(UTC)
Posts: 179
Man
Italy
Location: Milano

Was thanked: 21 time(s) in 13 post(s)
My first impression is that there are a lot of functions and Vmix (through midi shortcuts and activators) can't manage all those. I hope to be denied.
Yannick  
#3 Posted : Friday, July 6, 2018 4:29:06 AM(UTC)
Yannick

Rank: Advanced Member

Groups: Registered
Joined: 9/12/2017(UTC)
Posts: 37
Location: Germany

Thanks: 2 times
Was thanked: 10 time(s) in 9 post(s)
spino wrote:
My first impression is that there are a lot of functions and Vmix (through midi shortcuts and activators) can't manage all those. I hope to be denied.


Everything that I have described in the post is already working. For those functions where vMix activators are not available the controller itself will keep track of what function is active. This has the problem that if this function was controlled directly in vMix the controller will loose sync. However, this is currently only necessary for the "Aux channel" activators, and I don´t think anyone will control these manually since it is a big hustle to do it in vMix directly.

Currently I´m waiting for the drilling of the housing to be completed and then I can update you with a video how the current functionality works (at this moment the whole setup is just a big mess of electronics on my table and I don´t want to show that to you ;D )

Only thing that I was not able to do until now is update the names of each channel that is shown in the LED display directly through vMix.
Does anyone know of a way to extract these names from vMix, so that they will stored in a file or similar. Then I can try to access this file through the controller.
DYosua  
#4 Posted : Saturday, July 7, 2018 12:04:12 AM(UTC)
DYosua

Rank: Advanced Member

Groups: Registered
Joined: 2/24/2014(UTC)
Posts: 45
Man
United States
Location: Maine, USA

Thanks: 26 times
Was thanked: 14 time(s) in 12 post(s)
You should be able to get the names of the inputs through the vMix API. By going to the web interface link and adding "/API" to it, it will respond with XML (for example, going to http://localhost:8080/API from the vMix machine will work; for other machines on the network the local IP will work, such as http://192.168.0.xxx:8080/API). There is an <inputs> list which goes through each input and gives information about it - the input name ("title"), the input number, etc. You can either process the XML straight from the API link or save it to an external XML file which would be processed by your controller.
thanks 1 user thanked DYosua for this useful post.
Yannick on 7/10/2018(UTC)
Yannick  
#5 Posted : Wednesday, July 18, 2018 7:40:06 AM(UTC)
Yannick

Rank: Advanced Member

Groups: Registered
Joined: 9/12/2017(UTC)
Posts: 37
Location: Germany

Thanks: 2 times
Was thanked: 10 time(s) in 9 post(s)
Hello guys,

Here are the first pictures of the controller.
Everything works so far.
The Channel names are still hard coded in the controller and not dynamically fetched from the vMix names.
I´m thinking about using a second arduino with ethernet connection here, that can directly access the html api and read the names of the channels.

UserPostedImage
UserPostedImage

I will update a video of the current functionality soon.
I hope I can show what cool functionalities can be implemented with a custom build controller and animate people to come up with their own cusom builds.
Yannick  
#6 Posted : Saturday, July 28, 2018 2:01:52 AM(UTC)
Yannick

Rank: Advanced Member

Groups: Registered
Joined: 9/12/2017(UTC)
Posts: 37
Location: Germany

Thanks: 2 times
Was thanked: 10 time(s) in 9 post(s)
Thank you DYosua for your reply about the http api.
I had implemented everything through midi. However since I will already need to call the api for the displays I will now change the whole communication concept to use the api.
Sending commands from the arduino to vMix works well through the http api.
However I´m facing some difficulties with receiving and parsing the xml data from the http://192.168.0.xxx:8080/API command. I found the tcp api in the vMix help, which seems to be perfect for the small controller I´m using.
However I don´t get how it´s supposed to work to make calls through the tcp api.
Unfortunately I couldn´t find any information online on how to make tcp calls with the arduino.
The call for the http api looks like that:
client.println("GET /api");;
client.println("Host: 192.168.0.1:8088");
client.println("Connection: close");
client.println();

If someone has already used the tcp api and can guide me in the right direction on how to make a function call with it, I would e really happy.
thanks 1 user thanked Yannick for this useful post.
DYosua on 7/28/2018(UTC)
admin  
#7 Posted : Saturday, July 28, 2018 2:14:59 AM(UTC)
admin

Rank: Administration

Groups: Administrators
Joined: 1/13/2010(UTC)
Posts: 5,137
Man
Location: Gold Coast, Australia

Was thanked: 4135 time(s) in 1487 post(s)
Command:

client.println("XML");

Result:

Code:
XML ***
<vmix>
...
</vmix>


where *** = the length of bytes of the xml on the next line
admin  
#8 Posted : Saturday, July 28, 2018 2:16:36 AM(UTC)
admin

Rank: Administration

Groups: Administrators
Joined: 1/13/2010(UTC)
Posts: 5,137
Man
Location: Gold Coast, Australia

Was thanked: 4135 time(s) in 1487 post(s)
To submit a function:

client.println("FUNCTION SetText Input=1&Value=Hello")


To retrieve said text without parsing XML:

client.println("XMLTEXT vmix/inputs/input[1]/text[@name='Headline']")
thanks 2 users thanked admin for this useful post.
Yannick on 7/28/2018(UTC), stigaard on 3/19/2019(UTC)
Yannick  
#9 Posted : Saturday, July 28, 2018 2:33:57 AM(UTC)
Yannick

Rank: Advanced Member

Groups: Registered
Joined: 9/12/2017(UTC)
Posts: 37
Location: Germany

Thanks: 2 times
Was thanked: 10 time(s) in 9 post(s)
Thank you so much Martin,

This was just the missing piece of information I needed, didn´t know you can send the command without the "GET" command.
However, the correct command for the title seems to be:
client.println("XMLTEXT vmix/inputs/input[1]/@title");

Thank you for the fast reply, now I can implement everything I need.
Yannick  
#10 Posted : Friday, August 31, 2018 8:22:38 AM(UTC)
Yannick

Rank: Advanced Member

Groups: Registered
Joined: 9/12/2017(UTC)
Posts: 37
Location: Germany

Thanks: 2 times
Was thanked: 10 time(s) in 9 post(s)
Hey Guys,

I finally was able to make a short video about what the controller can do currently.
The controller is not finished yet, its only the channel strip section, an AUX section and the transition section.
In the future I will add an audio section, a media player section, and a color correction section.

Sorry for the loud music in the middle, wasn´t aware it would be that loud when I was shooting the video...
vMix Midi Controller
thanks 2 users thanked Yannick for this useful post.
stevespaw on 8/31/2018(UTC), DYosua on 8/31/2018(UTC)
attilio18  
#11 Posted : Tuesday, March 19, 2019 9:33:08 PM(UTC)
attilio18

Rank: Member

Groups: Registered
Joined: 1/30/2016(UTC)
Posts: 12
Location: Italy

Thanks: 1 times
Hi, I would like to compliment your project .. I would also like to build a similar controller .. could you help me? tell me what I would need, what should I buy the exact components .. and the suitable programs .. thanks a lot
Attilio
arhar  
#12 Posted : Wednesday, April 13, 2022 11:04:47 PM(UTC)
arhar

Rank: Newbie

Groups: Registered
Joined: 11/6/2013(UTC)
Posts: 1

Was thanked: 2 time(s) in 1 post(s)
Hi guys. I invented my own controller. I want to share with you.

Unicaster controller

Everything is open source and cheap. If you are interested, here is a link to the schematics, firmware and everything you need to assemble. I will be glad to answer questions.
thanks 2 users thanked arhar for this useful post.
KnKproductions on 4/15/2022(UTC), GracewestAV on 4/29/2022(UTC)
Users browsing this topic
Forum Jump  
You cannot post new topics in this forum.
You cannot reply to topics in this forum.
You cannot delete your posts in this forum.
You cannot edit your posts in this forum.
You cannot create polls in this forum.
You cannot vote in polls in this forum.