ATEM Macros with XKeys

356 posts / 0 new
Last post
JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
ATEM Macros with XKeys

Version 2 of ATEM Macros is now available.

  • Includes supports for XKeys XK24, XK12+Joystick, XK80/60
  • Includes CasparCG Renderer Support - Sample VIS Lower Super Template included in main software ZIP file
  • Includes both pre2.8 version (unofficial SDK) and post 2.8 (official SDK+), so should work regardless of what firmware/software you have installed. (Still Windows Only - Apple/Linux UDP version in development).
  • Software available at http://www.vis-ranger.com/ATEM/JustMacros_Ver2.zip
  • Sample Stinger transitions available at http://www.vis-ranger.com/ATEM/SampleStingers.zip

Demo Video (Best viewed in 1080p full screen)

When I made the demo Video, I hadn't yet received the XKeys XK80, which I'm told will be available in large volumes from the beginning of August. Here is an image of an 80 button panel used to control ATEM AUX buses, Media Player playback and a load of CasparCG functions using the JustMacros System.

XKeys XK80 Panel image

Very interest in feedback from anyone who takes the time to try the system out.

Next free version (Sorry these should have been in this version):

  • VDCP & PTZ Serial Control
  • Media Management

Cheers

John

Offline

Location

leverkusen
Germany
Joined: 11/01/2012
Posts: 126
John, that is fantastic! Just

John,

that is fantastic!

Just saw your video and I'm really impressed. Great video - very well explained!

Can't wait to try it on our ME2 system. Allthough I'm currently working on our new OB van - I will try it out as soon as possible (when the ME2 has power in the van).

Great that you included Capar CG control. That is a real milestone! Now everything is possible on a single keystroke.

Do you have any idea if it would be possible to use the macro buttons of the 2ME panel instead of the XKeys? That would be very interesting.

Thanks for your effort and your fantastic software!
I will post here if I tried it asap!

Regards

James

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
Thanks James, first video

Thanks James, first video like this, I'll try to get less errrs and ummms next time.

So pleased to have managed to finally release this version. Configuration of XKeys, or assigning functions and macros to buttons, in terms of User Interface, is still a little ugly, but I'm working on that, as well as adding MIDI in. Primarily, MIDI in, will be used to allow custom surfaces built using Livid instruments (suggested by Tom), is the next step on the control front. This will also also allow any existing MIDI panels to control the macros subsystem.

I so wish BMD would be open with the 3rd party in terms of integration, I've posted many times on this issue, and I don't want to repeat myself, the moment they allow me to integrate with their surfaces, I'll do it, at the moment that's not possible. Sorry about that.

CasparCG is very interesting to me, I've lots of experience tying Vizrt with GV desks. The CasparCg commands at the moment, basically map to the CasparCG AMCP commands, but I'm planning on enhancing that, with playlist functions in the next release too. Also I think we need inter macro inter-actions which I currently do internally, but will be exposed to Lua to users very soon.

Cheers for the comment, any problems when you get round to having a play with it, please let me know. I'll do my best to ensure the next release isn't so delayed.

John

 

Offline

Location

Pasadena
United States
Joined: 12/04/2012
Posts: 319
Very impressive work John.  

Very impressive work John.   The video was great at showcasing the capabilities of what you have created and I'm very interested in seeing how I might be able to get my hands on / create such a setup.  

I've read through many of your posts to find out more about the scope of what you have been creating but as the information is spread across many posts I'm not sure I know the full scope of exactly what you have done.

It seems like you are creating this for a customer as a custom solution for them - but you are also creating something that others with ATEMS may be able to use/configure/buy.

Re: The hardware setup you show in the video.  Are there details anywhere on how to build that and interface it with a PC?  

I don't want you to repeat all the info on the SDK/Firmware version that is compatible with your code (obviously lots of information on that in other posts).  BUT - I wanted to make sure I know where we presently stand.  Is it right that to use your system right now we would still need to downgrade the firmware?

Please accept my apologies If you have this information summarized anywhere else and I've missed that post.

Thanks

-Liam

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
Liam,In the video I just

Liam,

In the video I just used 3 XK24 panels and one XK12+Joystick, buy from PI Engineering.for $129.99 (USD)

http://piengineering.com/xkeys/xk24.php

The joystick is great for DVE and Key position control, and will be the subject of my next video. The small joystick is $199.95(USD)

http://piengineering.com/xkeys/xk12Joystick.php

The XK80 in my photo was kindly sent to me from their "acceptance batch" so that our customer build which will use 4 of the big panels could be prepped.

The coloured Keys and blockers are very cost effective.

http://piengineering.com/accessories/keycaps1a.php

The guys at PI engineering amazingly helpful, email Philip and Maggie on sales@piengineering.com, and ask them any questions about their gear, I'm sure they'll help you out.

The configuration of the panels is held in the registry, and I exported my setup from that video and included the .reg file in the ZIP file containing the executables and example scripts.

Hope some of this is what you were after!

Cheers

John

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
Sorry, also to answer your

Sorry, also to answer your actual question: 3 EXE files (programs), one for ATEM users on Firmware 2.7.2 or earlier. One for 2.8 or later, and one program to detect the version of ATEM software you are using, and then starts the correct version depending on which SDK is installed.

Offline

Location

Pasadena
United States
Joined: 12/04/2012
Posts: 319
On Firmware support.

I guess this point from your post above answers that :-)

  • Includes both pre2.8 version (unofficial SDK) and post 2.8 (official SDK+), so should work regardless of what firmware/software you have installed
Offline

Location

Pasadena
United States
Joined: 12/04/2012
Posts: 319
Just the info I was looking

Just the info I was looking for.  This is amazing.   THANKS!!

Offline

Location

Birmingham,
United States
Joined: 08/10/2011
Posts: 86
your CasparCG setup

Hi John,

This is really cool stuff you have done here!!!!

Could you elaborate on your CasparCG setup. What spec machine, what video cards, how are you getting it into the ATEM, etc? I am trying to figure out how to implement this with my ATEM1 and am sad that I will have to give up 2 of my 8 inputs to do it right. Please let me know what your setup is in this department.

Great work,
Tony

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
Caspar CG is not too hungry

Caspar CG is not too hungry for power if you keep what you are asking it to relatively simple.

When we build Caspar machines we build them using the latest consumer Intel CPU so right now that is i7-3770K. Gigabyte motherboards and graphics, normally go with X7X series Geforce Nvidia cards. So again right now that is 670 card, mid-to high end, in my opinion you don't need quadros, although they are always nice to have. We have several machines "out there" on i7-2600K and 470 cards.

Always use SSD (OCZ are my recommendation) for OS drive nowadays, and then depending on what media you want to play out, pick a storage option of your choice, I like RAIDing WD Velociprator 10,000rpm Discs using a rocket raid expansion cards, that will handle pretty much anything except uncompressed 4:4:4. If you are just planning graphics templates, ditch the extra storage and put your templates on the system drive.

In terms of SDI card, we normally use Decklink Extremes, as they have dedicated Key/Fill outputs, We tried Duos but even when cards locked, with moderatly complex templates the Key would drift out of time, and the effect when Luma keying into the mixer is bad. If you want to take video input CasparCG and then kick it out again, add a Duo, as that'll then give you 3 channels + i Alpha.

CasparCG will allow as many layers for Video Play-out and/or Flash Template Graphics as your GFX card and CPU will handle. The above will quite easily allow 3 layers (how we normally use it), Background / Logo Layer / Foreground, ( don't know why we call it that.). I think it makes it quite easy for production and graphics guys to understand and work with, but there is nothing stopping you running 12 layers of graphics on a single renderer. (Good luck trying to keep track!!!).

I totally hear you on inputs ( can you ever have enough???), and our solution is a pretty simple, and very common  in bigger traditional environments: We  use an "Input Matrix". You take the 16x32 or 40x40  VideoHub, Re-enter some of the ATEM outputs back in, and hang all the mixer inputs and monitor stack off the matrix, hence complete control. You can reconfigure your stack between programs, and reconfigure the inputs to your mixer, when those inputs are off air and between segments. I'm got VideoHub automation waiting to drop in, just waiting for someone to ask..... We always hang Up-Down-Cross convertors as re-entrant devices set to the same output mode as the mixer input, and hence in many situations, you can just route a convertor into the chain without getting out your chair.

Back to CasparCG, once you get a decent handle on it, and it's a steep but not impossible learning curve, you'll love it, and not miss the inputs too much. I've got more coming on CasparCG, we are aiming to release a nice controller for "banks of renderers" in the coming months, completely separate (albeit very-related) to the ATEM projects.

Have fun!

John

Offline

Location

Pasadena
United States
Joined: 12/04/2012
Posts: 319
off-topic (sort of): how did you create the demo video?

Just curious - looking at your excellent demo video (again) I wondered how you created it.  It wasn't with the ATEM was it?

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
Yes and No, The XKeys Panels

Yes and No, The XKeys Panels were shot with a Canon 5D, the multi-viewer and Program Output and AUX 1 output were recorded with a custom multi-channel video sever platform. Took 6 takes to get the 3 sections reasonable, suffice to say,  I'm not intending on becoming any kind of presenter!!!!

Afterwards the 4 files were aligned on a cut from Black to bars at the start of each take, hence the 5D could be aligned with , and edited in premier. hence the fancy double DVE effect.

Output then de-interlaced, encoded using Intel QSV, and uploaded.

Could have been done by re-playing the 4 channels back through the ATEM as a kind of "Linear yet offline Edit", but not sure that's really what BMD intended.

It's a very interesting technical  idea, and I'll give it a go with the next video, or if we have our production procurement process done by then, I'll have multiple mixers and a proper live cameras available for our R&D team( mostly me), which might make what you are asking a bit more feasible to pull off.

Super Source would help with the Quad Channel view (if anyone from BMD is reading!!!!!!!!!!)

Logging off for the night, as it's really late here in the UK,.

Offline

Location

Pasadena
United States
Joined: 12/04/2012
Posts: 319
Cool.   Thanks for that

Cool.   Thanks for that detail.   Makes perfect sense to have captured the original sources and then done a multi-cam edit in premier.

I'm someone who knows exactly what time it is in the UK..as that is where I am from originally (Cambridge area). coming up to 4am for you.   Get some sleep!

And... I can't wait for your next video using on using that Joystick.

Offline

Location

Merritt Island
United States
Joined: 08/04/2012
Posts: 51
ATEM Macros with XKeys

John - this is great stuff.  This is exactly the reason(s) i joined this forum - for great information like this thread and of course others but this one hit a home run for me.  Thanks so much for sharing.

Media Fish Productions LLC

Offline

Location

Williamston,
United States
Joined: 18/07/2012
Posts: 26
X-keys

John, thanks so much for posting this and featuring our X-keys.  You have done some incredible work here. Can't wait to see what you do with the XK-80.

Note: The official release date for the XK-80 (http://xkeys.com/xkeys/xk80.php) is August 15, 2012. Contact us (sales@xkeys.com) if you want to be put on a list for early release when the units become available.

Dan from P.I. Engineering -  xkeys.com

Offline

Location

Bath,
United Kingdom
Joined: 26/12/2011
Posts: 171
Sorry if I missed something

Sorry if I missed something obvious, are these macros available on both PC and OS X? 
Looks very interesting, much more integrated than my basic MID control setup - btw, when will MIDI control of Xkeys functions be available?

Thanks so much - this is brilliant stuff.

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
snick,Sorry this is Windows

snick,

Sorry this is Windows only right now. Won't go into the reasons, but suffice to say it was way easier to do in the time using BMD APIs exposed by windows but not in Mac OS X, as far as I can tell. I hope within a couple of months to have a completely cross-platform version, but much of this is determined by what BMD do next...... All I can say, is if you are using a CasparCG machine, this software uses virtual zero system resources, so since CasparCG is a Windows Only solution too, you can just plug your XKeys into that box, and you don't need to add another windows machine. I'm also going to add further CasparCG Control (like ability to restart the CasparCG server in the event of the renderer losing a layer), when running in this super-slimline configuration.

MIDI In and Out will be available in this free version in around 6 to 8 weeks. it'll be a full MIDI implementation with configuration allowing you to map any MIDI functions to ATEM or CasparCG.

There are other items on the roadmap too, I hope you'll continue to watch the videos I post, and consider using some of my ideas and techniques in your own systems.

Best Wishes

John

Offline

Location

Birmingham,
United States
Joined: 08/10/2011
Posts: 86
A Problem

Hi John,

XKeys worked fine on my version 2.8 firmware. I upgraded firmware to 3.1.1, which is the latest version from BMD. Now when I hit the connect button the XKeys program goes away, not even up long enough to generate a log.

What could be wrong?

Tony

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
tmarone, Sorry, I haven't

tmarone,

Sorry, I haven't checked every single firmware version, I mostly just toggle between 2.8 and 3.0. I did check 3.1 a couple of weeks ago, and it seemed fine, but have to admit I haven't tried 3.1.1. It's possible BMD have changed something.

Give me a couple of days, and let me check it out, I'm sure it can be sorted.

I've heard on the grapevine that BMD have promised a new Official SDK very soon, that will support many more features, and won't require the semi-hack currently used on post 2.8 versions.

Regards

John

Offline

Location

Birmingham,
United States
Joined: 08/10/2011
Posts: 86
No worries

Hi John,

No need to apologize, what you have done is great so far!! I kind of figured the new 3.1.1 was causing this because your library probably isn't matching yet. Happy to wait for a fix!

Thank you again for this cool piece of software!!

Tony

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
Weird one!!!!! I got exactly

Weird one!!!!!

I got exactly the same problem as you once I'd upgraded my mixer 3.1.1.

So I set the compiler debug build mode, and tried to step through to find the problem. No problem. Ran the USK DVE demo macro, as well as a bunch of others, and it all seemed fine.

http://www.vis-ranger.com/ATEM/JustMacrosDebugVersion.zip

Here is the debug version, it's ~15MB instead of ~5MB, and I believe the performance may have been effected, but it didn't seem  obviously so, this it may well be ok, but it's like 5 minutes old, so I'm testing it at the same time you are.

I haven't got a clue why this would be, but I'll put the blame on BMD for now, and investigate over the next few weeks, and try to find out why, and produce a proper optimized "release" version.

So you can "Release builds" with versions 1.0->2.72 or 2.8->3.1, but once you go 3.1.1, you need to use the debug build. Sorry for the confusion.

You'll need to create a direct shortcut to this version, the dispatcher app won't detect the difference between 3.1 and 3.1.1 (please ignore some of the new buttons and menu options that don't work in this interim release), and I would advise you add the command line parameter "/AutoConnect" to your shortcut. This will ensure the XKeys update thread doesn't get confused. Sorry this is a bug when you've got XKeys Panels condfigured with ATEM buttons, but no ATEM connected. The /AutoConnect will ensure you don't get loads of debug messages before you connected your ATEM.

Cheers

John

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
Looks like deeper changes,

Looks like deeper changes, having played with it for half an hour or so, there are changes to the Transition Control Interface as well as the DVE Mask, and probably more.

Will update asap with regards to 3.1.1

Offline

Location

Melbourne
Australia
Joined: 16/04/2012
Posts: 67
Hi John, This looks

Hi John,

This looks incredibly exciting and I can't wait to be in the same room as my switcher to try it out.  Running it locally (no switcher) I fire up JustMacros except it complains that it can't create an instance of the Switcher Discovery class - like it can't find the BMD API on this machine, even though I know that 3.0.1 is most certainly installed.  Do you have any suggestions for why this might be?

I'm running Win 7 x64 with the ATEM software and SDK installed to the default directory.  This is the same machine I use to control my switcher when I'm on-site.

Cheers,
James.

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
Give it a go with the switch

Give it a go with the switch attached. If it still doesn't work, try the debug version I posted earlier tonight.

I'm a little busy on other projects at the moment, but by Thursday, I will have found time to go through all the versions and figure out exactly what is available in what versions.

After a brief look earlier tonight at 3.1.1, it looked like BMD had changed the DVE Mask, and DVE Drop shadow control in a way that I couldn't easily discover how to re-enable it. Also it looks like the callbacks have been changed for DVE Keys, such that recorded macros wouldn't track those changes to around 9 settings. Exactly what settings were changed when can then be built into the software to give the best possible set of features depending on firmware.

Thanks for taking the time to give it a try. Sorry it didn't work smoothly for you, I will also admit to not doing much testing without a switch attached, I'll try to get the exception handling improved for the next release.

Offline

Location

Melbourne
Australia
Joined: 16/04/2012
Posts: 67
No dramas at all, I'll give

No dramas at all, I'll give it a shot connected to my switcher hopefully tomorrow night and see what happens.  The anticipation is murder!

Offline

Location

Sydney
Australia
Joined: 02/08/2012
Posts: 1
Brilliant

This is a brilliant looking program! I can't wait for the mac version. Congratulations.

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
maccaj22, Cheers for your

maccaj22,

Cheers for your comments!

Apple OSX version should be available within a month or two, ( bar other projects get in the way too much ). I've got a contractor tasked with fully decoding the UDP bits I've not already figured out starting next week.

Please bear with me, it really annoys me I cannot offer Mac version at the moment, but once all the code can be unified behind either an official cross-platform SDK or a UDP decode, I should be able to get this project on track.

Regards

John

rcourtney's picture
Offline

Location

Eastern Iowa,
United States
Joined: 07/12/2011
Posts: 299
What tools are you using for OSX and WIndows?

I am using QT   (http://qt.nokia.com) and have a basic controller, Aux w/Tally, and working on compressing
images.  We are using UDP.

CameronMagee's picture
Offline

Location

Bentonville,
United States
Joined: 27/07/2012
Posts: 22
John, This is incredible.

John,

This is incredible.  Keep up the hard work knowing it is recognized among this group and know that you have a fan, this is some solid work you're up to.

-Cameron Magee   www.avad3.com   Arkansas, USA   479.366.1558   Cameron@avad3.com

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
CameronMagee, Thanks for your

CameronMagee,

Thanks for your comments, I assure you my company and I remain totally committed to this free-macros-solution. 

I would have liked to have already pushed an update out to better handle 3.1, and properly explain the XKeys Joystick functionality.  

Unfortunately we are at critical points in unrelated projects, so I haven't had a lot of time in recent weeks to look at the ATEM.

I will say the new version is a big improvement on the current, in terms of usability, and as I have already said, probably on this thread, The better CasparCG support in the next release is very useful.

Please bear with with me, it's very early days, and I'm still evolving my ideas of what exactly what should be in this app/package. I'll try to grab some time over the w/e to clean it & the new sample scripts up for release.

rcountney,

I've been following your progress with PSN on the QT library as well as Kaspar's original UDP project. unfortunately for me, neither are really an appropriate base for the way I multi-thread with the Lua Macros, but I'm really keen to see what you guys release, perhaps I can steal some ideas from you.

Hopefully if BMD see how innovation is ongoing with their devices, they might choose to throw some more effort into supporting us.

Cheers

John

rcourtney's picture
Offline

Location

Eastern Iowa,
United States
Joined: 07/12/2011
Posts: 299
Using tokens

I am opposite of what you are saying.  QT and using UDP gets the job done fairly easily,
but I am missing tokens or a language to make tasks easier for the operator!
Functionality for me is hard coded into routines responding to XKey presses.

I do wish BMD would be more open in sharing their tools.  However I think they are
seeing the hardware panel as a profit source. The software panel was needed to get a
switcher in your door but they may be hoping to make the most from having you
purchase the hardware panel.

I do believe QT was used in the design of the software panel, the DLLs were exposed in
early releases, later to be compiled into the final executable.

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
Hi rcourtney, I hope we are

Hi rcourtney,

I hope we are agreeing, not thinking in opposite terms. UDP is definitely going to be the solution in the future, I initially thought the official SDK from BMD and working within their guidelines would be the way to develop, but  they've just done nothing to support the efforts by Kaspar, and the other developers working with their gear.

I agree, on first glance, BMD seem to charge a premium for what amounts to be a keyboard, but I don't think you can deny the BMD surfaces are beautiful bits of kit, and I think Tom has shown on other threads the quality of the buttons and components BMD use mean they aren't "sticking it to their customers with the panels". In general the entire range of ATEM products represent excellent value for money. I think they are missing a trick, not letting us hook the Macro buttons on their panels, but it's not the biggest mistake they are making.

I agree the BMD software is written using QT, I think most of their UIs are written in QT, and QT is a great framework. I hope you took my "robbing your ideas" with the humor it was intended, I hope all developers can take the good ideas from each other and build on them, and thus the ATEMUsers reading this forum, will have a good mix of 3rd party software to supplement the free app BMD supply.

Good luck again with your project, looking forward to seeing what becomes available both from you QT/UDP guys, anyone working with C# or C++ and the BMD SDKs, Kaspar and what Fredpips develops with his new MIDI microprocessor system.

Fingers crossed for open UDP protocol or a fully featured cross-platform API from BMD, both or either would be welcomed by me.

Cheers

John 

rcourtney's picture
Offline

Location

Eastern Iowa,
United States
Joined: 07/12/2011
Posts: 299
QT and UDP

I am opposite in my design path missing the macro ability and being able to run on Linux, Mac, or PC.
My priority of AUX control without tabbing out of the switcher controls. I too am using x-keys.

Every function except the ability to copy an image to media bins is working for basic switcher control.  Some ME
functions have not been tested on a 1M/E by me as I am using CasparCG as my engine. 

I welcome help on the copy media bin issue.

In case anyone has copied stinger frames, you know it takes a long time depending on the number.
CasparCG is better for many situations, but I still need stills in the ATEM.

Offline

Location

Pasadena
United States
Joined: 12/04/2012
Posts: 319
Update to "Macros with XKeys"?

Update to "Macros with XKeys"?

John Bengston -  just checking I haven't missed any update here.  Have you posted a new version of the software that supports 3.1.1 firmware (not upgrading to 3.2 until I know of some solution to my HDMI problems I uncovered with that).   

I have an X-Keys controller now but I don't think I should really start messing with that until your new version comes out.  

Thanks for all you are doing with this product!

-Liam

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
Yeah  Liam, you haven't

Yeah  Liam, you haven't missed anything. I'm once again behind on my target release schedule. I will release the newer, better, version with 3.1+ special build, as soon as I possibly can, but I have some unrelated "problem projects", that are occupying most of my time. I'll work on ATEM into this evening a little and see if I can put something together.

The delay with this update, is I want to find the right way to explain the joystick. You've got a precision 3-axis joystick, and around 400 hundred values (each keyer, ME and CasparCG Layer property that is an integer or floating point numerical value), I need to explain how I'm trying to solve that, such that advanced users can access every possible feature, whilst newcomers, can get one and two button access to the most useful joystick features. Whereas I had originally hoped this would amount to a two page doc, I've found that many other things make sense to do, once you make an XKeys Joystick part of your workflow.

On 3.2, I'm using it without problems, with either SDK/API functions or the HDMI issues you have reported on other threads, I'll keep checking different HDMI sources and see if I can understand what is happening with your connections. Total guess work, and initial view only, but the HDMI problem described, "sounds like" a mix-up with PsF and P, with the graphics card, very much like the GoPro issues much discussed elsewhere. 

Offline

Location

Pasadena
United States
Joined: 12/04/2012
Posts: 319
Ahhh... I know that problem

Ahhh... I know that problem of "problem projects"... and please take your time.  Yes I am keen to get the update - but I can wait.

I am keen to get the XKeys Joystick - as that sounds like a critical add-on for doing certain types of DVE's with my 1M/E - but they are out of stock currently anyway.  I would probably be on the side of "newcomers" as far as doing things with that.

On the HDMI thing I'm going to re-flash one of my ATEM's with 3.2 and run comparative testing between 3.1.1 and 3.2.   It just leaves me concerned as (for me) the 3.1.1 just worked flawlessly with every HDMI laptop I connected.  That may have just been dumb luck.   

Thanks again.   

Offline

Location

Jyväskylä
Finland
Joined: 23/06/2012
Posts: 6
crash on connect with 3.2sw

hi,

I have a _slight_ problem of the app crashing each time I try to connect it (to atem, caspar connect is ok)

Just upgraded the atem to 3.2...did not try with previous version though...
now, any idea where to start listing the details?
I mean it should be just a simple  tcp/ip connect, should not matter at all what machine I'm using (it's acer v3-771g laptop + win7)
tried running as admin, disabled the wireless connection, typed the IP wrong on purpose (no crash then) etc.

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
Noitaking, A problem exists

Noitaking,

A problem exists with "JustMacros" on versions 3.1 and 3.2. details here:

http://www.atemuser.com/forums/atem-vision-mixers/developers/firmware-31...

There is a debug build as a temporary workaround, but you'll need to avoid the accessing the functions mentioned on the above thread. I'll have time this weekend to get the update out for 3.1 / 3.2 firmware, which traps these changes out.

Sorry for the delay, but check ATEMUser again on Monday, and you'll have a better version to use with 3.1 or 3.2 firmware.

Regards

John

Offline

Location

Pasadena
United States
Joined: 12/04/2012
Posts: 319
John.... any update on the

John.... any update on the update?  Can't... wait...much.... longer......aaaaargh.

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
Tonight man. I'll put it up

Tonight man. I'll put it up before I crash tonight, regardless of any final tweaking I may think is still needed, it'll go up anyway.

Offline

Location

Pasadena
United States
Joined: 12/04/2012
Posts: 319
Oh gawd... I feel like such a

Oh gawd... I feel like such a nag.     Thanks John!!    

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
Liam, This is the next

Liam,

This is the next release I can put together. But is working well for me with 3.2.

http://www.vis-ranger.com/ATEM/JustMacros_Ver2_1.zip

I'll start a a new thread for this version once the video has uploaded.

Cheers

John

Offline

Location

Pasadena
United States
Joined: 12/04/2012
Posts: 319
Wow... another insane late

Wow... another insane late night for you again.   I hope you get to sleep in some.  

Thank you!   I will download this right away.

-Liam

Offline

Location

Pasadena
United States
Joined: 12/04/2012
Posts: 319
Got it working pretty well.

Got it working pretty well.  Awesome.  I've done some basic configuration on the XKeys (I just have one XKeys-24).   I've simply configured several buttons to switch a particular source as preview... and then  implemented a CUT and AUTO button.  

The one thing I don't understand is how to configure the buttons to display their current status (program/preview) using the back lighting LEDs with each key.  How do you go about setting that up?

Is there any documentation on how to configure the XKeys?  

I've looked at the original documentation provided with the v2 code at the top of this post - but didn't see that information in there.

Thanks again for a fantastic capability and I really appreciate that you stayed up ridiculously late last night to get the new version up.

-Liam

Offline

Location

Jyväskylä
Finland
Joined: 23/06/2012
Posts: 6
thanks!

hi,

thanks a lot, it works now with atem 3.2sw and I can continue with my experiments..so far looking very good :)

one question though: are the xkeys pro series boards supported by your sw?
it's just that there is a larger keymat + jog&shuttle available than the xk12 + jog&shuttle
and is there some technical reason to go with xk series over pro series...or is it just the red and blue led backlights? :D
no problem going for xk60 + xk12+jog when xk60 becomes available...

again, thanks a lot, and if you ever need some fancy moving graphics(in kind of a return favor) for your casparcg templates just contact me...I'm pretty handy with After Effects :)
we use also casparcg and can recommend it to everybody :)

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
Liam, Documentation is high

Liam,

Documentation is high "on the list". I want to put a set of functionality "out there", and then I'll go back and tidy up things like documentation. Try experimenting with special button types on the XKeys page to find the functions you need.

Noitaking,

I'm going to look at the traditional XKeys Panels in a month or so, depending how much other work takes up my time.We went with the XK range so as to allow individual button illumination. Because our job is primarily going to use XK80s, and this is a spun-out development tool with a few usability tweaks, it has to follow  our main project roadmap.

Mega thanks for you offer with help on templates and graphics, I think you'll really like my "video 3", which will focus on feeding data to graphics. You might want to take a quick look at the macros in the "Macros\Demonstrations\ATEMUserGFX" sub-folder, and the tempates in "ExampleCasparTemplates" called "ATEM ALERT.ft". The scripts in there check the ATEMUser forum for recent comments and put a summary up on screen.

I'm about to start a new thread for "Video 2" (uploaded over-night), I've just noticed there is an edit problem with it,  but I've got no time to fix that until tonight, so I'll leave it, and hope the mistake is not too annoying.

Cheers

John

Offline

Location

Pasadena
United States
Joined: 12/04/2012
Posts: 319
John What "special button

John

What "special button types"  should I be looking at?    

Is it the "Standard" type (which doesn't sound very "special")  where there is an "On Button Down" and "On Button Up" property?

Thanks!!

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
Give me a few hours and I'll

Give me a few hours and I'll write a new Quick Start guide for configuring the XKeys side of the app, and post it up. I know it's a little awkward at the moment to configure, I've mostly been concentrating on ensuring everything works correctly. I will make the assignment process even easier in the future, but it shouldn't take me too long this evening to explain the basics in a PDF file.

Sorry about the confusion.

Regards

John

Offline

Location

Pasadena
United States
Joined: 12/04/2012
Posts: 319
That would be great.   In my

That would be great.   In my case I'm actually a .Net developer also... so I can handle it... even if it is a little awkward.  

Offline

Location

Birmingham,
United States
Joined: 08/10/2011
Posts: 86
Smart Videohub

Hi John,

I took your advice from a while back and added a BMD Smart Videohub to add more inputs to my ATEM 1M/E . I was wondering if you have intention of supporting this in a future version of your software? It sure would be cool to push a macro key and switch the router and change the label on the ATEM at the same time!

Your work is outstanding!! I am testing your new version right now.

Thank you so much for this,
Tony

Offline

Location

Tennessee
United States
Joined: 21/12/2011
Posts: 12
CasparCG and Xkeys

Would the following scenario work with Xkeys?

Director:
Using Xkeys hooked up to PC to control ATEM 1 and Caspar CG video/graphic playout.

GFX operator:
Using keyboard and mouse on the same PC to operate a Casper client to control clock start/stop ect.

Would the mouse clicks and keyboard presses of the GFX operator conflict with the xkeys panel functioning properly if they are on the same PC.

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
Tony, Great choice, I love

Tony,

Great choice, I love the BMD videoHubs, they are fantastic value, almost as unbelievably good as the ATEMs, I can drop the VideoHub in for you, again it'll only be single matrix control in this JustMacros app.

As I've committed to writing a quick doc tonight for "liamkennedy", I should be able to drop the videohub commands in too without any problem. 

HOWEVER WARNING: I'm constantly reworking my Matrix handling stuff, and the basic Lua Commands for single matrix control will expand massively at a later date. There are huge number of rules when dealing with 10+ interconnected matrixes regarding tielines and re-entrant devices, related Srcs/Dsts (e.g. Key/Fill,  Reverse IFB rules, etc.. etc..). Whilst I will always aim to maintain the commands I put into the system, I do warn that in a later release some functionality may be effected. Sorry: this is kind of difficult to explain, and it's why until someone asked, I was leaving this out until, leave it with me for and I'll get back to you, and probably irrelevant if you just want to make a few cross-points on your video hub.

Tony, and Liam, 

I'm going to post to the mini-update and document to the new thread, this one is getting long, and Chrome takes a while to load it each time. I hope you don't mind me switching thread on you.

Regards

John 

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
Switcheroo, Yeah you could do

Switcheroo,

Yeah you could do that, although you may need to connect on two different socket numbers to Caspar. The standard Caspar client for some reason doesn't play nice when other clients are connected. I normally have 4 or 5 clients connected to all our renderers, but as soon as someone attaches the standard CapsarCG standard client, all other clients get booted off, and the solution becomes unstable. The reasons for this are very complicated and too boring to go into here. My solution is to use a full custom GUI CasparCG client, which although I'm biased I think is much better than the standard. Unfortunately I'm still some way off being able to make that available.

As far as XKeys goes, we hook XKeys at their SDK  level, the XKeys into ATEM Just Macros doesn't simulate keyboard strokes and the system can run minimized (or in the system tray with the "/AutoHide" command line option), and the PC can be used as normal without any interference.

Cheers

John 

Offline

Location

Los Angeles
United States
Joined: 16/08/2012
Posts: 5
What drives the X-Keys tally lights?

Love this setup, this is absolutely the real deal and I have a client interested in deploying this.

The only thing I can't figure out... what drives the tally lights on the XK unit?  I have read up on the VB scripting in MacroWorks 3, it's fairly straightforward.  Is the tally handled by MW3?  I could definitely write the correct light behavior for the buttons in that.  If this is true, does each controller require an instance of MW3 running to control it?

Offline

Location

Pasadena
United States
Joined: 12/04/2012
Posts: 319
JustMacros directly connects

JustMacros directly connects with the XKeys via their API.  You don't run MW3 at all.  

I've had some inconsistent results as far as how the tally light thing is working.    I think you'll need to post further comments over on the new thread regarding the latest version of JustMacros John released a few days ago

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
BabaBooey, I've screwed

BabaBooey,

I've screwed something up with the LED Back lights  when I added the 80 button panel. I'm looking in to it.

If you code your buttons with STANDARD or MACROS type you can use the "XKeysSetButtonBlueLEDState" and "XKeysSetButtonRedLEDState", whilst I fix the default backlight behavior.

Please give me a short while (couple of days) to check the what I've done to the backlights, and I hope any remaining issues can be quickly resolved for you.

Regards

John

Offline

Location

Peoria
United States
Joined: 17/10/2011
Posts: 41
JustMacros with 3.3

John,

I posted in another thread, but I suppose this is more appropriate here.  Is JustMacros compatible yet with 3.3?  I'm testing it out to accomplish some complicated tasks for our sports broadcasts, but I'm not having much luck with 3.3.

Thanks

Brian

-- Brian Scheffler
-- ScheffTech Productions, LLC
-- Blackmagic Design Authorized Dealer

-- brian [AT] schefftech.com
-- (309) 524-5865 (US)

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
There is an updated version

There is an updated version that shouldn't give you any major issues with 3.3, but it's not what I wanted to be yet.

Give it a try, and let me know if you have problems.

http://www.vis-ranger.com/ATEM/JustMacros_Ver2_3_1.zip

If all goes well with my other jobs, I'll properly update Just Macros for firmware 3.3 in a day or two.

Regards

John

Offline

Location

Peoria
United States
Joined: 17/10/2011
Posts: 41
John, This seemed to solve

John,

This seemed to solve the minor issues I was having.  Thank you!

Brian

-- Brian Scheffler
-- ScheffTech Productions, LLC
-- Blackmagic Design Authorized Dealer

-- brian [AT] schefftech.com
-- (309) 524-5865 (US)

Offline

Location

Dartford
United Kingdom
Joined: 28/09/2011
Posts: 59
UK supplier for XKeys and parts

Hi John

Many thanks for all your hard work and especially sharing your XKeys project and software. It really looks like something I can use.

I am located in the UK and want to buy one of the 24 key models and some blanks but I am in a dilemma. The UK suppliers of XKeys don't seem to sell the accessories like the blanks and replacement key tops etc, and the US manufacturer appears to be in the stone age as far as their shipping options go. ($80+USD to ship the XKeys or $70+ to ship a set of the blank keys! And of course that doesn't include duties etc)

Do you know of anywhere I could purchase the accessories closer to home?

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
Jason, I order my panels and

Jason,

I order my panels and buttons direct from the PI Engineering, and although shipping from the US and import duties do apply, I still feel the XKeys panels are well worth the cost. The guys at PI Engineering are super-helpful, and I just prefer to deal with suppliers rather than importers or resellers, especially when I'm going to need their APIs.

The ATEMUser "PI48895", is  a PI Engineering representative, you could private message him, and I'm sure he will be able to explain their shipping policy.

My final alternative, is that I've been meaning to place a new order for a few weeks, and I'm in London. I'm off site until next Wednesday, but if you let me know what you want to order, I'll put your order in with mine, and when the panels arrive, I am happy to  meet you at Dartford services (or somewhere convenient), in a drug-deal like exchange. however........ I'd still have to give you a company invoice and charge 20% VAT, so I don't know it if that would work out to be more cost effective or not.

My company is not really set up as a import / reseller / shipping business, and our UK shipper is UPS, who aren't particularly low-cost either, but because we are "low volume" we can't use the guys that amazon and scan and the big UK tech distributors can use to do deliveries for £10. 

Anyway, if you want to "hop-on" my next order, let me know before next Tuesday, and I'll private message you when I get a quote for the total order, and work out what it would cost you to buy through us (I wouldn't look to make a profit).

Cheers

John

Offline

Location

Williamston,
United States
Joined: 18/07/2012
Posts: 26
UK resellers

Hi Guys,

We have four resellers in the UK listed here: 
http://xkeys.com/purchase.php#intresell

I don't know if any of them carry key blockers or transparent keycaps, but they might order some for you if you asked.  

Shipping across the Atlantic is expensive and we have no control over VAT.  

Dan from P.I. Engineering -  xkeys.com

Offline

Location

Dartford
United Kingdom
Joined: 28/09/2011
Posts: 59
HI Dan Unfortunately the

HI Dan

Unfortunately the resellers don't seem to have the accessories. Otherwise I'd most probably buy from them.
It's not the VAT I'm worried about, it's the import duties. :)

Offline

Location

Williamston,
United States
Joined: 18/07/2012
Posts: 26
X-keys

Hi Jason,

Piggy backing on John's order is probably your best bet right now.  I will send a message out to those resellers and suggest they consider adding the keycaps and blockers to their inventory.  

John,

The XK-12+Joystick units are due to land in our warehouse any day now.  

Dan from P.I. Engineering -  xkeys.com

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
Dan, Thanks for the info, as

Dan,

Thanks for the info, as above, I'm totally tied up until next Wednesday, but hope to organize my next order then. (Behind as always). It's the XK-68+Joystick and Jogwheel versions I really need next, plus  I'd like to get hold of a XK-Stick, as well as extra 80 button panels. Obviously I'll need loads of Key Caps, blanks and few of those little couplers too.

On my side - I still need to check for latest SDK, mentioned by Philip, as some users have reported problems with XK60, and I still have terrible code in my Lamp update thread, that needs to be re-written.

Will do my best to get all problems with this system resolved so the latest update can get out there, and your customers get better operation from your great products when using my app.

Thanks again for helping me, and other ATEMUsers out.

John

Offline

Location

Bergen op Zoom
Netherlands
Joined: 31/12/2011
Posts: 217
Any advice how to buy a

Any advice how to buy a x-keys set in Europe? Is there any supplier that imports them you know of?
I got a bit pissed off when I did a nice order for a xk80 with buttons, keycaps etc at pi engineering and did see $100 added for standard shipping. for a small box with a keypad and some accessories.

Offline

Location

Williamston,
United States
Joined: 18/07/2012
Posts: 26
X-keys in Europe

Hello mathijs,

Shipping across the Atlantic is very expensive, especially for small quantities.

You can find a list of our resellers here: http://xkeys.com/purchase.php#intresell

In your region, we would recommend Backshop Healthy Computing.  If they don't have what you want in stock, I am sure they will order it for you.  

Dan from P.I. Engineering -  xkeys.com

Offline

Location

Bergen op Zoom
Netherlands
Joined: 31/12/2011
Posts: 217
Thank you very much, I will

Thank you very much, I will give them a call tomorrow.

Offline

Location

Sydney
Australia
Joined: 18/10/2012
Posts: 6
Problems with the XK-60

Hi,

Just got a brand new XK-60 and am keen to fire it up with my ATEM 1 using this great little app. However, I'm having some trouble getting anything to happen. Was hoping you'd be able to point out what I'm doing wrong.

I've plugged it in and opened the latest version of JustMacros. The Red backlight remains on after opening the application (which I understand is not supposed to happen). When I click the X-Keys button and open up the X-Keys panel mode, down the left it says "Unknown" and no amount of changing the Unit Identifier seems to make any difference.

Here is a screenshot:

Thanks for your help. Let me know if you need more info.

Cheers,
Tim.

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
I think the 31Plus version

I think the 31Plus version (2.3), didn't have the support for XK60. 

Although I know I sound like, "the boy who cried wolf", but my plan is to put up a new version tomorrow, (2.4) supporting image uploads, and like a zillion bug fix fixes.

OR

You could give the latest patch version a whirl. 

http://www.vis-ranger.com/ATEM/JustMacros_Ver2_3_4.zip

The "Patch Version" will only work on ATEM devices on 3.3 firmware.

If you could copy-paste the HEX from the TPanelMonitorThread.ProcessDataBuffer into a post not as an image, and so I can see the whole line, I'll probably be able to be clearer about your issue, and be able to ensure it gets fixed in 2.4 tomorrow.

Very cool capabilities being added in 2.4, so I ask you to please bear with me.

Regards

John

Offline

Location

Sydney
Australia
Joined: 18/10/2012
Posts: 6
Thanks John, 18 Oct

Thanks John,

18 Oct 22:21:58.825: Reading System Settings from the registry........ (Official SDK)

18 Oct 22:21:58.846: TPanelMonitorThread.ProcessDataBuffer: (Unknown.0) : [$00][$64][$02][$00][$00][$00][$00][$00][$00][$00][$00][$00][$00][$00][$00][$72][$E1][$00][$00][$00][$00][$00][$00][$00][$00][$00][$00][$00][$00][$00][$00][$00][$00]

18 Oct 22:21:58.902: TPanelMonitorThread.ProcessDataBuffer: (Unknown.0) : [$00][$64][$D6][$00][$40][$80][$23][$20][$0A][$08][$40][$03][$61][$04][$62][$04][$63][$04][$00][$00][$00][$00][$00][$00][$00][$00][$00][$00][$00][$00][$00][$00][$00]

18 Oct 22:21:58.987: No Screen for this type of Panel at the moment

18 Oct 22:22:01.004: No Screen for this type of Panel at the moment

I've always got time to wait for free software, but wouldn't be disappointed if it did come out tomorrow!

I gave the patch version a go and that XK-60 is then recognised. Ran the LED test, but that is about as far as I got so far. I did notice that the LED test runs at varying speeds (downward strip pattern) and sometime skips a key or two.

Look forward to the next release.

Cheers,
Tim.

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
Yeah, you are now hitting

Yeah, you are now hitting upon my (hopefully only) laziness bug.

I assumed the PI Engineering DLL calls were thread safe, and coded the LED LAMP updates in an extremely bad way. The button read and execute thread is far better, and although the lamps currently exhibit latency (coz of retries), and in fact left for long enough the LED update threads will eventually blow up completely and die, the buttons will still function, and will remain reliable even after the LED lamps have died. 

Obviously this is far from ideal.

I've added various critical sections locks and thread synchronization blocks for the next update and after "some" testing it seems far better. I'm aiming for perfect, so I promise it'll get sorted eventually. I'm finally back on this project with a little time to focus.

Thanks for the XK60 data reports, I'll double check yours against a few others people have sent me, and ensure 2.4 handles that panel properly. 

Cheers

John

Offline

Location

Brighton,
United Kingdom
Joined: 23/04/2011
Posts: 1220
Sorry to of missed your call

Sorry to of missed your call John, I wil try and ring you tomorrow (friday) - though it seems like the above post might answer my main issue!

cheers
tom

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
Tom,No probs, It's still

Tom,

No probs, It's still looking pretty likely I'll  get the update online by close of play today.

It's worth you waiting a for this update before forming any strong opinions, and you have my number now, give me a call any time you like. 

I'd originally held off Media Asset management, thinking it would be a nice feature to have in a PRO version for $99. However since BMD decided to add Media Management to the public SDK before adding control for Keys / SuperSource / Audio Mixer etc.. And since users have clearly voiced a need to be able to re-load their entire media store on a button recall (software or hardware), rather than having to manually upload everything every time their switch is re-powered or needs re-provisioning for another show.

Todays update sorts that.

But it offers a few other things too....... for example..........

I came across a simple Lua rendering engine, which I will include in the standard package. It's called Lua-GD, and you can read about it at these links.

http://ittner.github.com/lua-gd/manual.html
http://www.boutell.com/gd/

It's been around a long time, and is beautifully simple. for example to render 2 Files, Fill and Key, and upload to the ATEM takes only 11 lines of Lua Script: (sure there is more to define the constants and values, but I am trying to make a bunch of simple to use Lua functions to allow the basic bugs/straps and scoreboards you see on many shows - i.e. NO External CG required). 

Script to show how to do a Dynamic Lower Super

EDIT: Just seen the bug in that demo, the 2nd parameter to the ATEM upload function should be the Media Store index not the ME_Number.

I don't expect you will be able to do everything, but it should help users who need ultra light-weight setup and don't want to carry an external CG machine for simple overlays.

Combined with a Fly in, or other internal ATEM effect, I believe innovate users might find ways to do cool things with this new tie-up.

Takes around 500ms to upload a 1920x1080 32bit RGBA frame, so rendering animations on the fly and uploading on the fly is more tricky, but not outside the realms of possibilities for clever TDs in flexible environments.

Anyway, back to work, I should get this available for you guys today, but you could play with GD ahead of time if you like.

Cheers

John

 

 

Offline

Location

Friedrichshafen
Germany
Joined: 29/01/2012
Posts: 71
Hey John, sounds gread. I'm

Hey John,

sounds gread. I'm looking forward to the new version!

Best regards, Toby

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
Hi Toby, Thanks for

Hi Toby,

Thanks for giving JustMacros a try, I am not going to apologise for missing yet another self-imposed-deadline yesterday as Mr Bassford allowed me to rant on at him on the phone about all I want to with the system for way too long yesterday afternoon.

Because he didn't tell me shut up and get on with the update, I ran out of hours, so this delay is kind of his fault.

I'm just working on finishing off the update and trying to recompile the versions with 2.7.2->3.2 firmware so they pickup the many new changes. I had origoinally thought I'd only need to manage 2.7.2, Offical SDK and UDP, but since every firmware is slightly different from an API Point of view, it's just "hassle".....

Hopefully a few hours only......

Cheers

John

Offline

Location

Brighton,
United Kingdom
Joined: 23/04/2011
Posts: 1220
It is indeed my

It is indeed my fault. 

Sorry! 

Now John - get back to work and stop wasting time posting on the forum (my fault for creating it - yeah yeah all the delays are down to me!! :) )

<cracks whip>

cheers
tom

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
Just Macros 2.4

Ok guys, new version 2.3.99999.

I have not yet been able to get compiles 2.7.2->3.1 up to 3.3 standards, so I'm changing my release style:

In the future, the primary package will be for the Black Magic's latest and greatest firmware only, whatever state that is in. I'll then have a legacy ZIP file which will contain the re-compiles for all the old firmware versions. At the moment, I don't have the legacy file to up date, I'm really sorry about this. I remain committed to back supporting all versions, but it's a lot of work, especially when there are still new 3.3 features yet to be added to Just Macros.

Summary of Changes:

  • Lua Server Sockets now open. HTTP server socket added, allowing users to build HTML / Javascript / etc.. systems that call into the JustMacros environment without having to write low level socket code of any kind.
  • XKeys Lamps update thread improved (but not yet properly resolved). I have a plan, but it involves quite a lot of work. Rest assured this will get resolved, and it should be better now than it was before.
  • "ATEMMixerGetVideMode" / "ATEMMixerSetVideMode" added in line with addition made to BMD firmware 3.3, and for fun I've called the modes 1080i59.94 and 720p59.94, 1080i60 and 720p60 respectively. We'll see how long it is until I have to add 1080i60_true and 720p60_true.
  • "ATEMMixerMediaStoreUploadStill" added to allow uploading of PNG files to the media store. I know it's limited, but it's also extremely powerful. I'll add the command to upload frames for clips in the true 2.4 update to follow in 10 days or so.
  • Basic VDCP Commands added. This should allow you to link VDCP compatible devices 
  • The start of the new "FORMS SUB-SYSTEM" is added. Eventually this will allow users to define their own form layouts, and basically build screens with Lua. However for now just two built in forms havew been added, allowing Scripts to request one and two line input from the user. To see how this works see examples "EXAMPLE05 - DIALOG - Two_Line_Lower_Super" and "EXAMPLE06 - DIALOG - BREAKING NEWS".  
  • Lots of changes to internal script processing engine, which hugely reduces memory leaks and increases execution performance.
  • System now defaults to AutoConnect, need to use /NoAutoConnect to prevent it.

The direct download link is:

http://www.vis-ranger.com/ATEM/JustMacros_Ver2_4.zip

And I've updated the main Just Macros index page.

Please have a close look at the new stuff regarding On-The-Fly rendering using Lua-GD. See these new demo scripts, which basically allow you to do simple CG tasks without an external CG machine, I'm not artistic, but I'm sure someone who is could do great stuff with relatively little effort.

New Examples of On-The-Fly CG

The VDCP Commands should be fairly self explanatory, but also considered experimental at this stage. I would love any feedback about success and failures people have trying it out and with what Decks or VDRs.

VDCP Commands

But I think the best feature of all in the new version, is the ability to use Just Macros as a "sort of" webserver.

If you visit the link below using Chrome, Firefox, Safari, or Internet Explorer 10 (Not 9 - you need Win8 and IE10 to use Internet Explorer), you'll see how by connecting your browser to JustMacros, you can indirectly control the Mixer, and VideoHub and Caspar, and you can developer your own User Interfaces that can be remotely used by multiple users.

http://www.vis-ranger.com/ATEM/WebTestHarness.html

It's super-basic HTML and Javascript (MAKE SURE YOUR HIT REFRESH), so anyone with a little web-development experience should be able to enhance it, I'll look into why I.E 9 and mobile browsers don't seem to like my form of AJAX calls or what my HTTP server is returning. 

Screen Shot from MAC connected to JustMacros

Anyway, let me know how you get on, and thanks for trying Just Macros out.

Between the finalizing of this version (releasing Legacy and Clip frame control) and the next version, I'll introduce a public bug tracker (as mentioned on the BMD forum), as I know there are still many problems reported, but still not fixed, however I wanted to get the dynamic still rendering and uploads available for people asap.

Cheers

John

thos-berlin's picture
Offline

Location

berlin
Germany
Joined: 19/06/2012
Posts: 478
Hi John, great work.

Hi John, great work.

Thomas  S e e w a l d - thos-berlin (amateur)

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
Cheers Thos-berlin, This

Cheers Thos-berlin,

This version is far better than the last (for users on ATEM 3.3 anyway), but please remember I'm developing this solution in public, the more people can feedback their problems the better it will ultimately be. It's a kinda Beta version, and will remain so until around the end of the year.

I do have to apologise if a bug already reported is not fixed in this version. I hope no-one will feel bad about hassling me about an issue, if it's a particular "show-stopping" problem for them, I'll try to raise the issue's priority, and release a patch.

I hope a SQL database which we use to track bugs and feature requests in our proprietary customer systems, can be adapted and made to work for JustMacros via a website, which should minimise this in the future. A colleague is looking into that as I write this message. 

I noticed someone else has posted another link to the "Custom Mac Graphics Card" tool, I really hope this will enable Mac users to upgrade to 3.3, the on-the-fly graphics uploading is certainly worth it. 

Will try to make a video this evening, but had to stop and put something up......

Best Wishes

John

Offline

Location

Bergen op Zoom
Netherlands
Joined: 31/12/2011
Posts: 217
Nice job! The ability to load

Nice job! The ability to load the mediapool on the fly gives lots of extra possibilities for sure.
The webpage is also a nice addition.

PEM
Offline

Location

Paris
France
Joined: 23/10/2012
Posts: 6
Hi John, It's a great job you

Hi John,

It's a great job you are doing here.

I have this question. Do you think / know if you can use the X-key Matrix board  http://piengineering.com/custom/xkmatrix.php with JustMacros ? Because the website seems to have a problem I am not able to see all the specs and don't know if you get a return information to light the buttons. Maybe the ReDac http://piengineering.com/custom/redac.php could be the answer.

I am very excited to try your new "webserver" function, and I think it could be a great feature if you can manage the Aux this way.

Sorry for my poor english (I'm French !)

Cheers

Pierre

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
Pierre, Great to hear from

Pierre,

Great to hear from you, thanks for trying out Juast Macros, and your English is far better than my French (I am ashamed to admit).

I will speak to PI Engineering about the XK matrix, but my intention is to add all XKeys products in the end. I am slowly working my way through them, as users request panels, I will try to add them. 

They have a whole ranger of developer products and offer custom solutions too.

http://piengineering.com/custom.php

Regarding the webpage control: You can build whatever you need, including AUX control.

For example, with Just Macros 2.4 running on a computer with name "PC_CONTROLLER" you can issue an http request like:

  • http://PC_CONTROLLER:39812/EXECUTELUA:ATEMMixerAUXSetInput(1,3,10)

And this would put BARS on AUX 3 on Mixer 1. You can simply type that command into any browser on any computer on your network, or create a webpage with a button that makes this request by using AJAX calls.

I hope this helps, good luck, and drop me a message if you hve any problems, and I will do my best to help you.

Regards

John

Offline

Location

Copenhagen
Denmark
Joined: 17/04/2012
Posts: 26
Matrix and more

John, that's one h... of an application you've created.

I managed to download the manual for the matrix encoder board, and unfortunately it looks like there is no feedback/led interface. I'm still waiting for confirmation from PI though.

Meanwhile, I have quite a few tipro keyboards that I'd like to use (http://www.tipro.si/index_products_free.html)
Is there any simple way to integrate non-xkeys keyboards with your macros?
Or maybe a stub that could be used with the tipro api?

By the way, I've noticed the grayed-out midi tab in the GUI - is that a far distant feature, or in the pipeline?

Regards
Rune

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
Rune, Many thanks for giving

Rune,

Many thanks for giving Just Macros a try, whilst I appreciate the sentiment of your message, I assure you it can be so much better, and it will be.

MIDI is very much in development, and working to some extent within our test tools. I cannot really say what version it will be pushed out in, as we need to see what BMD are doing with Mackie MIDI in their next version. 

Mackie are none-forthcoming with their protocols in terms of allowing 3rd party developers access, which if you read all my posts, you'll see "somewhat" annoys me.

I'm going to introduce a module I call "Global Key traps", and it will work like virus, it'll sit in Windows and monitor all key-strokes in all applications, I'll take steps to ensure you cannot use it as a Keystroke logger, but if say you've defined "CTRL-ALT-BACKSPACE" to perform a Lua Macro, you will be able to hit that in any application, and the script will run. I think this will be the easiest way into the system from other XKeys style implementations, especially if a supplier doesn't publish their protocol, and insists you use their software..

If however TIPRO want to share their protocol, I'm happy to build in commands that expose their controllers to the Lua Macros with a TIPRO system just the ATEM, CasparCG, VideoHub, VDCP, XKeys and the 1000 more I'm planning on adding.

Or you could write your own Lua Plug-in. It's why I used Lua as the base script execution engine, you can extend it to your hearts content.

For people who don't have a development team in their company, drop me specifications, and I'll add to the roadmap. Although..... please don't send me protocols that are not in the public domain, I'm just about sick of the companies who think there is value in hiding their communications protocols.

Cheers

John

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
Rune, As if to prove how

Rune,

As if to prove how pro-active the PI Engineering guys are (when compared to some other unnamed suppliers), I just got a direct email from them about your & other posts on this thread, and they are kindly going to lend me one of the encoder boards which you mentioned.

In return I've promised to quickly add support for these products, and therefore, additionally, I encourage you to contact them about any custom requirement you have, their stuff has been ultra reliable for me, and it's so d4mn cost effective.

Cheers

John

Offline

Location

Copenhagen
Denmark
Joined: 17/04/2012
Posts: 26
John, I'm curious about how

John,

I'm curious about how BMD implements midi as well, and hope they have chosen an open standard.
Mackies reluctance to answer questions on the mackie MCU protocol could be because they don't own it, as suggested by this post.
I was, however, primarily wondering if it would be possible to trigger justmacros from a show control application via standard midi or msc. I'll attempt to configure telnet commands to the new http-server interface and see how that works out.

With regard to your Global Key Traps, you might get some ideas from GlovePIE. It captures the keypress information at a level that makes it possible to react based on which keyboard the key is pressed on. That way one keyboard can be used for normal work, while a secondary keyboard can have assigned macro actions without conflicting with the first.

And TIPRO, I'm happy to tell, has an open API: http://www.tipro.si/support/Download.html
I have several of the 8x8 key modules and qwerty modules that are excellent. The only downside is the lack of lighted keys.

Best regards
Rune

Offline

Location

Copenhagen
Denmark
Joined: 17/04/2012
Posts: 26
John, I just got an email

John,

I just got an email from PI this evening - fast response!

Unfortunately it confirmed that the matrix module doesn't have any led control for lighted keys, which is really the main thing I'm missing from the tipro keyboards.
The matrix module might well be interesting to Pierre and others though.

Cheers
Rune

Offline

Location

Melbourne,
Australia
Joined: 07/09/2012
Posts: 8
John, just noticed this

John, just noticed this update and I like the HTML interface idea. Haven't had the chance to play with it, just wondering if the HTML interface calls JustMacros or calls the desk directly? And can you assign macros to the buttons in the HTML interface?

Adrian

Offline

Location

Friedrichshafen
Germany
Joined: 29/01/2012
Posts: 71
Hey John, thanks for the

Hey John,

thanks for the update. I will try it out on the weekend.

If you remember, recently (oh it's been september I think ;-) I had several CasparCG "problems"/suggestions (mixer volume control, mixer transition, ...) I will try that out, but I won't be disappointed if you have not been able to fix this yet.

I like the HTTP stuff!

Thanks, good work as usual :)

Best regards, Toby

Offline

Location

Bennington
United States
Joined: 24/04/2012
Posts: 73
Hi, John Great work with the

Hi, John

Great work with the macros. I noticed that your XK24 modules have the built-in lights showing through the buttons. The XK24 that I own has opaque buttons that don't allow the blue and red to show through. It looks like your keys are transparent. 

Offline

Location

Pasadena
United States
Joined: 12/04/2012
Posts: 319
You have to order  the

You have to order  the transparent key caps from PI engineering.

Offline

Location

Brighton,
United Kingdom
Joined: 23/04/2011
Posts: 1220
libgd2.dll error

Hi John

I'm getting a "program cannot start" error saying i'm  missing libgd2.dll when i try and run macros which use the strap graphics

also can you let me know if it is possible to make a macro to recall a specific still slot in a media player? 

oh and VDCP seems to be grayed out - what do i need to make it work,presumably some kind of rs422 dongle? or could i try using the port on the multibridge?

sorry only got round to looking at it a bit today while i;m waiting for renders to finish. 

cheers
tom

Offline

Location

Brighton,
United Kingdom
Joined: 23/04/2011
Posts: 1220
Hi John I solved the dll

Hi John

I solved the dll issues by manually installing the missing ones (about 5 in total), the gd stuff now seems to render something, but it still doesn't work on the TVS at least as all the examples use the DVE which the TVS doesn't have. 

It would be great to have some examples which work on the TVS, at the moment its the only BMD switch i have access to. 

cheers
tom

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
All, Sorry for not replying

All,

Sorry for not replying sooner, out of the office for a few days (sudden requirement), but will be back on JustMacros on Monday,.

Tom,

Glad you found those extra DLLs, I don't know what I was thinking just including one DLL, I assume my test machine must have had the entire Lua DLL Package installed on it somewhere.

For anyone else struggling with the renderering of stills on-the-fly, you can download and install from:

http://code.google.com/p/luaforwindows/downloads/detail?name=LuaForWindows_v5.1.4-46.exe&can=2&q=

This will also give you access to a whole load of other Lua libraries,  which can be included in your scripts with a "require" command.

Making it work on a TVS, absolutely, I think we can do  Reveal using masks, or a wipe transition, or obviously it should also work using a MIX transition effect.

Should be able to sort those demos early next week.

Toby,

The CasparCG updates are coming, but were delayed due to a last minute bug, I was unable to include the latest CasparCG code in the latest JustMacros package, that will be resolved next week, when I also patch the included DLLs as per Tom's findings. 

Adrian Jackson,

The HTTP Server is in the JustMacros computer not in the ATEM Switch itself.

And absolutely, you can run Macros or whatever Lua you want using that interface. The whole point of adding it, was to allow users with a little web-dev experience to be able to build their own User interfaces, just click "view source" on my example page, and hack. It's about as easy as I could make it.

I think including, HTTP and FTP and SNMP must have been rejected by Black Magic Design, as it would have been useful and logical to have industry standard protocols on the ATEM. Therefore, it must have made much more sense to them to invent a bespoke UDP protocol and hide the details.

I will be including the FTP server in JustMacros that will allow you to manage the Clip frames and Stills via that method if you prefer to using Lua (And why wouldn't you?). Hence any old FTP client could be used.

Thanks so much everyone, and once again apologies for going absent for a few days, New version next week.

John

Offline

Location

Villa Rica
United States
Joined: 31/10/2012
Posts: 102
Xkeys

Thanks for making this available John!  I appreciate it very much and has made life much easier for me and many others on show site. I just joined the forum and stumbled into all of this......I did purchase an XKEYS 24 and have had some success with the 2 3 JustMacros file using v.31Plus on firmware 3.1.1

The biggest plus for me was being able to advance to the next media clip as my client uses a lot of lower thirds.  Thank you very much for adding this feature! I did need to change the code around as it would not advance past slot 4 or 5, if I remember correctly. I don't know anything about code but just tinkered with it a little bit and got lucky.

I have a couple of quick questions.

The backlights on JustMacros are much dimmer than when running the XKEYS software.
-  Is there a way to make those backlights any brighter? I did find the menu under X-Keys XK-24 that had some options but didn't make a difference.
-  When I record a macro, the extension is not added to the script and has to be typed in manually or it won't show up. I did save the script and it executes fine using the "execute button" . Where am I going wrong here?

Thanks you in advance for all your help gang!

-Dean

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
Dean,Nice one for giving

Dean,

Nice one for giving Just Macros a try. 

The LED Back-lamps brightness can be controlled, and I now see it's missing from the Lua wrapper, so I've added this to the list. (at least) "3rd laziness bug report acknowledged" - Thank you.

The Recorded Macros not saving is a new one on me. BUT..... I confirm that I have that same problem in the current working ATEM Firmware 3.3 (JM 2.4) version. Basically the files get stored without the file extension, and for me in the wrong location.

I don't really use Recorded Macros, so hadn't noticed it, but this is a terrible bug to have introduced, so many thanks for this report. It'll be fixed as a "highest priority BUG".

I can only suggest as a workaround for now, you record your macro, and then shutdown, rename and move the file (if required), and then restart.

I am currently awaiting a delivery of a load of XKeys panels, as I wanted to make the next version released, finally sort the update thread, and ensure correct support and mimic diagrams for all the PI Engineering current range of panels & firmware versions. Effectively putting the "XKeys module to bed".

I'd be very surprised if it doesn't arrive this week. I'm recording 2 new videos on Saturday morning, so hope the update which will fix both your reported problems, as well as add in some pretty significant CasparCG updates, will "fingers-crossed" go out on Sunday.

That's probably the best I can do on these bugs, as I'm pretty busy once again, for the rest of the working week.

Finally, I again apologize for any inconvenience caused by any bugs founds, I hope you can understand this is free software being developed in public, I'm totally committed to the project, and as time goes on, the system will improve in stability, as well as, I hope, include more and more useful features.

Cheers

John

P.S. Note to Tom or others try VDCP. The reason the VDCP tab is still disabled in 2.4, is I've not built a screen for that yet. It's coming, for now you must establish VDCP connections using the "VDCPAddDevice" command. It simply takes the Communications port number that the device is attached to. Just Macros will then start polling your device for CurrentStatus and TimeSence information. All other VDCP commands will then be enabled, and you just pass "1" as the VDCP device number.

Offline

Location

Villa Rica
United States
Joined: 31/10/2012
Posts: 102
Xkeys

Thank you for all of that John.  No need to apologize for anything.  Your efforts are much appreciated!

I figured it was just "operator error" but if it's a bug then I'm sure you will squash it at some point...no worries.

I have been adding the extension manually and restarting JM....works fine.

Thanks again!!!!

-Dean

Offline

Location

Paris
France
Joined: 23/03/2012
Posts: 9
Raspberry PI as WebServer

Hello John,
In your first message, you talk about create a linux version. And in one of your last message you talk about your webserver...
And here we are... Raspeberry Pi ? What do you think about building a lightweight webserver server box, and IPad or anything else as a remote Web client ?
I think SDK doesn't exists for Linux... So...
What do you think ?

Offline

Location

Bergen op Zoom
Netherlands
Joined: 31/12/2011
Posts: 217
Good idea, only problem is

Good idea, only problem is that I know for sure John can make that work months before you can get a raspberry pi.
I ordered one in the beginning of june, still didn't receive it.

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
mcdoud23, Thanks for checking

mcdoud23,

Thanks for checking Just Macros out, and posting on this thread. I always read and try to respond to any poster who needs extra info for JustMacros.

Linux is VERY much part of my plans & activities, for this (Just-) Macros system.

You are correct to say there is currently no official Black Magic Design ATEM SDK/API for Linux, and I add that the MaxOS X official SDK is highly restrictive (next-to-useless) when compared to the Windows option.

ATEMUsers, Kaspar, PSN and RCourtney are all working on interesting platform independent UDP libraries, and my team are also working on a similar parallel development project. Also BMD have a policy of supporting Windows / Mac / Linux, and so I haven't completely given up on the idea, that at any moment, BMD will release a proper cross platform SDK.

Although I cannot give too many details (at the moment) about where the cross-platform project is, and how it will be structured. I can say, porting the Multi-threaded Multi-VM Lua execution engine to an RTOS is "absolutely" key, and that project is well into it's schedule.

The Raspeberry Pi solution may or not be capable of handling what we end up with, at this stage I cannot say for sure whether 512MB of RAM will be enough - although it almost certainly will be. There will be huge advantages to running my system within a deterministic executive framework, and by crossplatform, I do mean some kind of "ARM on a mini-convertor sized unit" up to "Four eight-core Xeons on one motherboard in a 4U rackmount case" .

I'll make significant efforts to ensure  many CPUs / Boards are supported, but the reference & development platform will always be x86 / x86-64, but that shouldn't matter as "currently" zero parts of JustMacros are in assembler. 

On the 8th of November the 6 weeks "suggested frame-frame" for the next BMD ATEM release will become available, it will be possible to make some pending decisions based on what that official update contains.

I'd like users who have time to run or experiment with JustMacros, to consider the Windows version (and OSX Port to follow) as a functional but also, kind of "prototypes" or "betas", and very much a test harnesses with which to find bugs, and help ensure a better system for all ATEMUsers.

When the system becomes truly-cross-platform, all the Lua Scripts written will continue to work, it's just real-time control commands will be added, and the just macros environment will get created in a slightly different way. But, really, from the end user point of view, pushing buttons, recording macros and taking and recalling snapshots, nothing will change.

I hope this helps clarify where the system is going, I am very much aware that the cross-platform ports are behind where they would have been if my original roadmap was still valid, however the feedback we've had from both customers, ATEMUser readers, and private contacts has drastically changed the overall roadmap, and this has inevitable knock on effects on timescales.

Mathijs,

I'll be improving the JustMacros HTTP Server, very soon, and significantly!!!!!!!!

Cheers

John
 

Offline

Location

Tennessee
United States
Joined: 21/12/2011
Posts: 12
Thanks for all the hard work

Thanks for all the hard work on this!  The software is working great.  However, I'm having a little trouble understanding how to properly integrate it with CasparCG.  I was able to change the basic playlists to allow me to play back video content from Caspar, but I'm confused on how to assign the xkeys keyboard other CasparCG tasks.

In particular, I'm trying to setup JustMacros and Xkeys to replace the CasparCG World Cup 2010 client https://sourceforge.net/projects/casparcg/files/FIFA_World_Cup_2010/Casp...

I'd like to be able to assign keys to start and stop the clock, as well as, increase each team's score by +1 increments.  I really just need the basic functions, but I'm struggling to figure out how to make this happen.  Any help or suggestions would be greatly appreciated.

Thanks!   

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
Switcheroo, Sounding like

Switcheroo,

Sounding like broken record time again; There is a major CasparCG update coming (I hope on Sunday). I think the current system exposes about 60% of the AMCP CasparCG protocol, the update should get this to 99%. 

I'll download and take a look at the FIFA_World_Cup CasparCG example Client (maybe at the w/e), and post up some more CasparCG Lua script examples.

I promise; there is "method" to my seemingly "all-over-the-place" development strategy. It's not quite as haphazard as it appears.

Cheers

John

Offline

Location

Paris
France
Joined: 23/03/2012
Posts: 9
Thanks Jonh. I can help on

Thanks Jonh. I can help on Web UI... 

Regards

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
mcdoud23, Many thanks for the

mcdoud23,

Many thanks for the offer!!!!!!!!!

If you can build a better example HTML/Javascript page that controls the ATEM to a greater extent than my example, I'll certainly put it up on our web-server so others can see.

If you can figure out the problem with Mobiles and I.E.9 AJAX calls not occurring, also massively appreciated. Workarounds are on their way, but I'd like to understand why Chrome, Firefox, I.E10 have no problem, but I.E9 & mobile devices don't seem to like making AJAX requests to devices on your internal network, when that request comes from a page served from an online server. It feels like security, and missing headers, but I haven't had the time to do any research.

Web development is not something I do a lot of, and all our web guys are always very busy.

Make the page look cool as, and I would be forever grateful!

Hey even if you don't do any of the Javascript / Lua calls yourself, just designing a fully functional webpage for controlling the the ATEM + a Caspar renderer + Videohub,  and making it look better than the BMD app would be amazingly helpful,  

I'll do the AJAX and code the the Lua calls if you don't feel confident to do it. I'd love to see a web-expert with a graphic artists eye build an HTML5 controller for ATEM / CasparCG / VideoHub . I don't have the time, so won't be bothering, but it could be done very well, I think my basic HTML page proves there is no real-latency problems, and you avoid UDP re-connection issues using HTML from tablets and other clients.

It's just a few DVE colour and border settings that cannot be controlled this way, everything else, if you design the controls, Justmacros will be able to hook the device and control the setting.

Looking forward to whatever you can contribute, and so many thanks again.

Cheers

John

Offline

Location

Brighton,
United Kingdom
Joined: 23/04/2011
Posts: 1220
VDCP

(Basic) VDCP is working to control the hyperdeck - i've only tested play and stop but its a good start!

I'm getting some errors in the log 
--------------------------------------------------------------------------------------------

01 Nov 21:53:57.125: VDCP: Wrong Number of Bytes returned by Status Sense, expected:8 got:0

01 Nov 21:53:58.171: VDCP: Wrong Number of Bytes returned by Status Sense, expected:8 got:0

01 Nov 21:53:59.184: VDCP: Wrong Number of Bytes returned by Status Sense, expected:8 got:0

01 Nov 21:54:00.182: VDCP: Wrong Number of Bytes returned by Status Sense, expected:8 got:0

01 Nov 21:54:00.276: Status Sense Data In  CMD1:7, Len:4, CMD2:14 [188==188]

01 Nov 21:54:01.117: VDCP: Wrong Number of Bytes returned by Status Sense, expected:8 got:0

01 Nov 21:54:01.290: VDCP Message : COM7.NACK(VDCP_NAK_COMMAND_NOT_SUPPORTED)

01 Nov 21:54:02.194: VDCP: Wrong Number of Bytes returned by Status Sense, expected:8 got:0

01 Nov 21:54:02.304: Status Sense Data In  CMD1:7, Len:4, CMD2:14 [190==190]

01 Nov 21:54:03.318: VDCP: Wrong Number of Bytes returned by Status Sense, expected:8 got:0

01 Nov 21:54:04.206: VDCP: Wrong Number of Bytes returned by Status Sense, expected:8 got:0

01 Nov 21:54:04.332: Status Sense Data In  CMD1:7, Len:4, CMD2:14 [189==189]

--------------------------------------------------------------------------------------------------
These were from running the following script.
---------------------------------------------------------------------------------------------------

VDCPAddDevice( 7 );

Sleep( 2000 );

VDCPPlay( 1 );

Sleep( 5000 );

VDCPStop( 1 );

Sleep( 2000 );

VDCPRemoveDevice( 7 );

-----------------------------------------------------------------------------
Its a promising start anyway :)

cheers
tom

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
That error message is

That error message is definitely a command framing / timing error on my side, why the h3ll does the stupid program expect to find a message, of any kind, in 0 bytes of data. Although now I look at those logs, I suspect JustMacros might be being a little aggressive with the hyper deck you've got plugged in, in terms of maybe it's sending too many status sense requests.

I'll do something about this for the Sunday release with it's ever growing "Must fix list".

Many thanks for the bug report Tom, I reckon that can take the title of "moronic bug number 1".

I really am only a few weeks (probably means a month) away form having a bug-tracking system with a decent database backend. That's going to help this immensely. 

Cheers

John

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
Also Tom, minor point. I

Also Tom, minor point. I think it's worth mentioning the VDCP connections will persist after the script that opens the port has terminated, so unless you want to, you don't need to connect and disconnect with each script.

Just add the connect in the AUTOEXEC script, and then use VDCP commands from whatever script you like.

Obviously this will be better when you aren't getting loads of error messages.

Offline

Location

Brighton,
United Kingdom
Joined: 23/04/2011
Posts: 1220
Yeah I realize i can leave

Yeah I realize i can leave the connection open, the close is just to stop the error messages :)

 The Hyperdeck will be really nice with Justmacros as a VT playback device. When you load quicktimes on to it you can have a timecode track in the .mov which is picked up by the hyperdeck - so you can set each clip to a defined start point to recall from the script. You don't want the clips to overlap so i'll be giving each clip its own hour of offset in the timecode. 
Then with the xkeys you can have a shotbox with instant recall of all your VTs. 

It's astounding that you've given us this for free, there are so many possibilities now with the blackmagic gear, but the official tools barely scratch the surface compared with justmacros.

Thanks for all your efforts, I look forward to the next version :)

cheers
tom

 

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
Tom, Cheers, as always, for

Tom,

Cheers, as always, for your kind words.

I'm "really" goin' need you guys to figure out what is possible with this system. I'm not a TD, I do know some, but to make a great system, you need loads of feedback from as many users using the system in different workflows. It's only coz of ATEMUser.com, that this is possible.

I'll try to have a look at a HyperDeck myself soon, but any testing feedback anyone can give in this or any area, is appreciated (big-time), so thanks again for testing the first release of VDCP. I've got some ideas that should make it better. 

I do want a commercial version (FREE VERSION will ALWAYS exist and never have functionality taken away), but's that's tricky until BMD release an official SDK that works.

Also I wouldn't feel right, and company couldn't, go charging for such a half finished product, I want (or in fact need);

  • rock solid stability, I'd like un-crashable - but that is quite tricky to pull off before we go to RTOS.
  • all commands working, and correctly documented with the built in HELP (lots of copy-paste errors at the moment) .
  • Real-time functionality - Very important if you want your scripts to control on-air masks and keys.
  • User definable Forms
  • Client Server - Database Connectivity (Firebird / MySQL / Oracle)
  • Lots more hardware control support

That'll be a nice feature set. And if some artistic web-users can start offering up some custom HTTP control pages, especially for iPad, and Phones, I think that would be pretty d4mn cool. 

We'll get there in the end, and I think it's going to good when it's done.....

Cheers

John

Offline

Location

Dartford
United Kingdom
Joined: 28/09/2011
Posts: 59
Are these possible?

Hi John

I've started to use JustMacros and it's working a charm so far, even for my simplistic usage of my TVS.
Even though everyone has said it already, I'll re-iterate: many thanks for this. It's really a great piece of software. I'm looking forward to all the improvements you have planned.

Thanks to Dean (stump221) for bringing up the extensionless scripts. I thought I must have been doing something wrong when I couldn't get them to assign to buttons, or find them in the interface! :O

At the moment I am not near my TVS and so can't check, and I'm just trying to work out if somethings are possible using JM.
Can I:

1) Control audio level (I want to fade everything in and out - fade to black and fade out audio)

2) Load media from disk into a media pool slot

3) Copy from media slot into either one of the TVS's media players

Cheers

Offline

Location

Bergen op Zoom
Netherlands
Joined: 31/12/2011
Posts: 217
2 and 3 can be done at this

2 and 3 can be done at this time, check the examples included in the latest version.

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
Jasonvincent, Mathijs is

Jasonvincent,

Mathijs is unfortunately 100% correct, there are currently no audio controls in Just Macros. This is just because Audio is not included in the Official SDK. The UDP projects WILL be able to get that going for you if you need it, or you always drop BMD an email and ask when the full SDK will be available - Just don't expect an answer!

On a positive note: when you call Fade to Black on an 1ME. The audio is cut when the fade reaches black, so you can "sort of", achieve what you are after, without worrying about the Audio. You'll have to test on TVS and 2ME for me, for now.

I won't rant on about when Audio will be making it's appearance in J.M. Suffice to say, I don't want to go too far down the audio road if BMD are adding MIDI audio control in version 3.4 as suggested by some IBC visitors, and  by BMD on their own forum.

If 3.4 doesn't appear in the next week or so, hassle me, and I'll talk about re-assessing the audio priorities.

Cheers

John

Offline

Location

Paris
France
Joined: 23/03/2012
Posts: 9
John, i am more a

John,
i am more a jquery HTML5 and responsive expert than a designer. But I've got some very good basis and can make a perfect crossover layout for your application.
I don't use Caspar... Let me one week.

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
mcdoud23, Please don't feel

mcdoud23,

Please don't feel pressured by me to deliver something to a deadline, anything you can provide to help, will be great for me, and I'm sure appreciated by others.

I literally just chucked coloured DIVs on a page and hooked up very basic javascript to make them change colour. It's pretty awful, and doesn't do justice to what is possible. However, I simply have no time, and no skills or decent experience in this area, so you aren't racing me to make a decent iPad / Phone / Web controller for the ATEM.

I'll do another simple basic demo for Caspar, and hopefully another ATEMUser member or casual visitor will take up that challenge, if you aren't familiar.

I will say, I'll probably task (contract - thus pay for) someone who does have skills to build an amazing Matrix (VideoHub) web controller. This is because matrix control is "my thing", and "Just Macros for Probel Compatible Control Frames & Matrixes" will be making an appearance as a product in the future. I this mention only, as I don't want to mislead anyone planning a project, about what my plans regarding websites are. 

Thanks again, and although no pressure, can't wait to see what you come up with.

Cheers

John

Offline

Location

Brighton,
United Kingdom
Joined: 23/04/2011
Posts: 1220
One comment I have whilst we

One comment I have whilst we are on the subject of example scripts. It would be really useful to have some ultra basic scripts which work across any of the ATEM switcher models.  Something which simply selects the DSK key and fill sources and then turns the key on for example would provide a very easy to deconstruct script which would enable people with a fear of code to realize how simple the scripting is. 

Most of the examples at the moment are a bit complex, and though its easy for anyone with basic programming knowledge to spot a control loop and see how it works, to someone who has never written a single line of code it can be quite confusing. 

Perhaps this is something that users of Justmacros could consider contributing to the project? An ulta basic starting point script with full comments explaining everything would be great and might help this amazing app get a wider user base.

---------
A couple of other things have come to mind over night on the VDCP front..

Firstly the format of timecode seems to be arseaboutface FF,SS,MM,HH is the opposite way round to how we are used to reading / writing TC and i suspect this may lead to annoying user errors in the future. If it's possible to change this at this stage to the conventional HH,MM,SS,FF format then that would be great (I apologize if this is a VDCP limitation)

Secondly i'm unsure of what i would need to do to look out for a specific timecode - i'd like to do something like...
Cue to 10:00:10:00
play
wait until TC= 10:00:35:00 then stop.

Do i need to poll the VDCP in a loop to get the current time or is there a better way (such a loop would seem to be an inefficient use of resources) 
 

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
Tom,  Part1: I hear you, all

Tom, 

Part1:

I hear you, all my scripts start out simple, and then I think, "Oh it would be good if if did that", and they gradually get more and more complicated, ultimately ending up like little programs.

This is bad. I agree. What I want to do very soon, is establish  bunch of basic tasks that are likely to be done in a range of situations (I know how vague that sounds), and then code up as simple scripts as possible.

Part2:

Timecode component order - no problem, best to swap it now before anyone is really using it. I was just following the order in the protocol at this stage - Stupid really, your way is better.

Lost count of the number of times I've seen this problem in one guise or another:

With many devices, such as the GVG Turbo, you would CUE your clip, then issue an OUT-PRESET command, in J.M. that is VDCPOutPreset. Then when you issue a play, the device plays from the Cue point to the the specified timecode, and then will normally STILL / PAUSE automatically. 

Now although this is really an editor command, it often works when in normal playback mode on modern devices, without first turning EDIT ON, but one some devices this is also enough, you simple script your CUE, EDIT-ON and OUT-PRESET commands, I'd then add a USERWAIT, followed by play. VDCP Status Sense will allow you to detect when playback has automatically stopped.

Now there are a fair few problems with this theory: Every Video Disk Player manufacturer I've come accross, thinks they know best about how the customers workflow SHOULD work, and decide to implement the VDCP commands in small groups, and very often the commands you might have expected a traditional VTR to respond to, don't work, or do something a bit different.

HENCE: The "experimental" word attached to VDCP I am affraid.

What we need to do is figure out what commands are supported by the BMD Hyperdeck, and then build scripts up into little libraries of functions, and demos (Back to Part 1).

A note on polling: The Status Sence commands are not tied up to the protocol, Just Macros polls for Timer and Status information whenever it doesn't have commands to send to the VDR from the user (and I'm going to allow some additional throttling). This means you can hit the StatusSence and TimerSence commands as hard as you like, and all you are doing is accessing memory. This is all to facilitate the multi-threaded nature of the system, and is a pretty standard way to build controllers in my expereince. In terms of the J.M. Timer Sence command, this needs enhancing, i.e. When a Lua script requests the time, the system needs to apply the gap between the last timeSence command with reference to the Status Mode to give an accurate time. It's on the list.

Sorry, yet another long post, I hope some of it makes sence, but I think it's better to have the details published somewhere, until I can get proper public documentation together.

Cheers

John

Offline

Location

Brighton,
United Kingdom
Joined: 23/04/2011
Posts: 1220
Yeah well i think thats it,

Yeah well i think thats it, the hyperdeck is not responding to quite a lot of commands in the way which you'd think it should. Inpoints / Outpoints all seem to be ignored at this point. 

The manual has a table of commands which are supposed to be supported, in a typically unhelpful way the table simple says "Acknowledge" rather than stating explicitly what the deck does when it gets each command - it seems that acknowledge means that the RS422 is Ack'd but the deck itself doesn't actually do anything! 

I will try plugging in an old Doremi DDR later and see if it works more smoothly than the hyperdeck. Its seems like we are once again up against BMDs poor / weird implementation of things, afaik JustMacros is working perfectly!
 

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
After I can get this update

After I can get this update out, I'll have a think about a test script, and some extra debug, so we can track down what works and what doesn't, I'll also download the Hyperdeck stuff next week, and take a look at what BMD say about it (maybe there will be some clues, or accidentally released API, never know).

Nice one if you can give it a test on some other devices, the more testing & information I can get the better. I'm sure you can find some more bugs in the VDCP implementation in you try a bit harder.

Once again, so many thanks for your time Tom. I'm certain we'll find a good way to make the Hyperdeck work, I simply won't allow BMD's lack of interest in their own products to limit what I can do.

A colleague described BMD yesterday as an "80:20 company": A company that does 80% of a product, then gets bored with the 20% of tiny details that really make the big difference to customers. Made me laugh as I'd been thinking like that for years, and I didn't even know it was a real thing with a name.

Cheers

John

Offline

Location

Villa Rica
United States
Joined: 31/10/2012
Posts: 102
FTB Audio Out

Hey John.  I was not aware of this feature on the 1 ME.  Audio is muted/cut when FTB is reached. Well.....I am here in Chicago working a show with one and got curious. I am using a 1 ME with 3.1.1 and FTB does not mute the audio when sitting in black......audio keeps going.  Is this only true for firmware above 3.1.1?

Cheers!

-Dean

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
I think you may need to move

I think you may need to move to a version of firmware that has the Audio Mixer for that to take effect.

If memory serves, the system on 3.1.1 doesn't support audio beyond basic embedding and monitoring on the XLRs.

I should add an additional condition, that "Audio Follow Video" also needs to be enabled for that to work. 

I know it's not a good solution but it's all I could suggest in a positive way for "Jasonvincent", to get around the problem of BMD not supporting full audio control in the SDK.

Maybe one day, I live in hope.

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
Everyone,I’m not quite done

Everyone,

I’m not quite done with the update, couple more days max, I’m actually still waiting for the XKeys delivery expected last week, so checking I’ve now sorted the XKeys compatibility for all models, is worth waiting for from my point of view.

The first of the videos is done, and since you can do all this with the current release, I thought I’d upload anyway. Unfortunately it is pretty heavy going, but I think shows the basics of what is possible with both TVS and DVE equipped models.

I do have a few more topics to cover by video, but if anyone has anything they want to be able to do, don’t know how, and thinks it could be helpful to have a video demo. I would like to make a list in the near future, and then see if there are things I can do to make those tasks easier.

{As always try to watch in 1080p if you possibly can, else you may not be able to read the words. }

Cheers

John

Offline

Location

akron
United States
Joined: 05/11/2012
Posts: 12
2 x XK80 + JustMacros33plus.exe

Hello,

Your software is a masterwork ! I am experiencing one problem with it, however.

The XK80s are not updating the backlights on the buttons all the time. Sometimes the buttons work well and others, it does not turn on or turn off the button backlight at all. The BUTTON FUNCTIONS WORK PERFECTLY, just the backlight functions do not update much of the time.

Your Run_LED_Test macro does not turn off the LEDs on the panels reliably either. If I edit the script to cange Sleep from 20 to 75, the script will turn all the button off...

 for i = 1, XKeysPanelCount() do
              if ( XKeysGetPanelID( i ) ~= 0 ) then
                   for j = 1, XKeysGetPanelButtonCount( i ) do
                       XKeysSetButtonBlueLEDState( i, j, "FALSE" );
                       Sleep(20);  <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<needs 75 to work well on my system
                   end;
              end;
       end;

I hope this helps your dev efforts....

Thanks so much !

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
rberk2, So sorry for this,

rberk2,

So sorry for this, it's a known issue, originally caused by laziness, I've had one go at fixing it, but turned out to be inadequate. It is just the bac-klights, so the response to button presses should NOT be effected by the latency, but that is not excuse, and a lesson I SHOULD have LEARNED LONG before now, - "Don't take shortcuts! - They come back to bite you."

I can only tell you that one of my highest priority fixes is to update the entire XKeys module. I've got a whole bunch of XKeys panels which I haven't seen before, sitting at the couriers that I am expecting to be delivered any day now, once I've had a chance to really pull apart and tidy up the LED back-lamps code with respect to all models and firmware, I feel confident it will be fixed, and it'll be fixed forever.

I really appreciate the serious pain-in-the-ar5e that this is, and promise if you could please wait a just few more days, I should have a permanent solution that will be satisfactory.

Regards

John

Offline

Location

akron
United States
Joined: 05/11/2012
Posts: 12
Shortcuts are like gaffer's (Duct) tape...

Apollo 13 returned from the moon safely thanks to gaffer's tape. From the highest tech sources to us hackers, shortcuts, band-aids and 'temp fixes' are the lifeblood of any great project. I learned long ago that the insistence on perfection leads to finishing nothing at all.  If I can help you in any way, I know my way around Visual Studio and would be happy to try to lend a hand if needed.

I am going to try to write a simple panel controller against the Blackmagic SDK and Xkeys sdk. I envision a background task that clears the buttons, reads the switcher status, and updates the lights as an array. I just got the XKeys today and the ATEM on Friday, so I am not an expert on this yet. However with a live shoot in a week, I will be an expert pretty quickly.

Thanks again for your software and your guidance. You are a friend to the ATEM world !

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
XKeys SDK is very easy to

XKeys SDK is very easy to implement, good luck with the ATEM SDK on a one week schedule. "Pressure", it's amazing what can done in a short amount of time when you've got pressure on your side.

For developer questions, post on the developer sub forum, and me, or one of the other guys will most likely be able to help you out. I'd point you there as a good starting point, there is tones of information you need. I've had my ATEM for a nearly a year and I'm still thinking of new ways it could be used.

Have fun!

Offline

Location

Budapest
Hungary
Joined: 16/03/2012
Posts: 60
The still upload function is

The still upload function is not working on my 2M/E.
It uploads fullframe white pictures. I tried it with my own script, and with one of the demo script too.

Also when will be the supersource, and the DVE moves will be supported?

Offline

Location

Adelaide
Australia
Joined: 09/11/2012
Posts: 4
X-Keys Matrix

Hi there,

I was just wondering if you have added support for the X-Keys Matrix or X-Keys Switch Interface yet? We have been looking high and low for a solution like this (for our BMD Videohub distribution system) and your program is perfect for us however we need to use the X-Keys Matrix Board in our setup. This is a critical need for us so any help or status update you could provide would be much appreciated. :)

Offline

Location

Budapest
Hungary
Joined: 16/03/2012
Posts: 60
Update: The

Update:
The 'ATEMMixerMediaStoreUploadStill' only works when the switcher is in 1080i mode. When it's 576i, or 720p, it's upload full black images.

Offline

Location

Budapest
Hungary
Joined: 16/03/2012
Posts: 60
Where can I report bugs? I

Where can I report bugs? I started to write scripts to my 2ME, and I found some. Maybe this forum is not the best for it.

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
Sorry slightly slow

Sorry slightly slow replying.

denes44,

Please feel free to drop me a direct message, and I will then reply, so that you have my direct email address, if you don't want to reports bugs on the forum. And I agree logginf bugs on a forum is not perhaps the best solution for this, and I'm working on a database / HTML/ Javascript page(s), where by bugs can be logged, and their status publicly viewed.

Let me check out rendering at none 1080i resolutions and get back to you. .

Technical Daniel,

I have an XKeys matrix on loan from PI Engineering (thanks again!), however it's stuck in customs awaiting a importer ID (or similar) from our company, which we can only get from HMRC, and that should now be available on Monday or, at the very latest, Tuesday.I am now hopeful that means I can get the panels and thus, get the major X-Keys re-work done, giving "FULL & COMPLETE support for all the products PI Engineering are currently offering, by the end of this coming week. I sincerely hope I am not misleading you on these timescales, and will make every effort to make this predication come true.

Regards

John

Offline

Location

akron
United States
Joined: 05/11/2012
Posts: 12
ATEM Macros with XKeys XK80

Hello John,

Thanks to you and your great forum, I have been able to write a simple version of an ATEM 1me controller. My reason for doing this was because the refresh of the backlights on the XKeys XK80 was unreliable or slow in JustMacros3.3exe

I also wrote a quick and dirty Watchdog program that runs in the background and watches the ATEM events, and uses that to update the Backlights, as a helper for JustMacros3.exe

Both of these programs work, but they illustrate Three Important points :

1) You have done an amazing job that shows a good understanding of the problem and solutions.

2) XKeys, using their SDK, is more poorly documented than the ATEM SDK. As far as I can tell from what is Available, programming the XKEYS backlights is VERY SLOW. Thus your updates are slow and so are mine with brand new code.  Simple code to turn the lights on and off one at a time is VERY SLOW...

3) SDK/ Programming support from PIEngineering is VERY BAD. From "Oh ya, I saw your email but lost it..." To " we will need to check with the development team and get back to you ... "" followed by days of no response.

I was looking for a quick and inexpensive solution, but I will look beyond XKEYS units very soon.  As you noted, the keypress logic is solid and responsive, but the backlight programming api/mpu update rate that seems to be available is very poor.

Also the keys on the XKEYS units are too close together, for my taste, for actual on the air switching operations. 

Thanks again for your hard work and generosity...

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
rberk2, I'm not certain the

rberk2,

I'm not certain the problem is quite as simple as the "panels are slow", at many times they are most certainly not, At times I can get them running very quickly for periods, but after one call to FastWrite fails, I start to have threading issues. I need to understand the buffers and timing limits to tune the perfect FIFO communications stack for XKeys, and hence why I have 7 panels in a box at Stanstead Airport (see above), and 3 guys lined up to do "an intensive test, and development sprint".  

I'm unconvinced PI Engineering had our use in mind when they designed their panels, but I'm 100% sure there is a solution.

I agree the PI Engineering SDK could be better documented, but then again, who's couldn't? I know my documentation is so far behind (and thus not even published), that it's embarrassing. 

In the end, everyone must form their own opinions, and I'm grateful to you, for posting your experiences with their devices here for everyone to read.

I do think the XKeys panels offer outstanding value for money. Are they the perfect tool to be a primary vision mixing surface on a live network TV news show? Probably not, but once I've got my bugs ironed out with a module rewrite, I think they can be very useful in many broadcast scenarios. Just my opinion, and I'll obviously keep you posted!

Finally, I should point out the ATEMUser forum is Tom Bassford's creation, and he deserves 100% of the credit for all the work that must be involved keeping it up and running 24/7. My expertise is limited to control software, and therefore  grateful to Tom for providing a forum which gives so much context to how the ATEM devices are being used, and by who.

Anyway, please let me know if you find alternative panels that you think are better, I'm very interested in keeping Just Macros expanding to many many many input devices, and if you come across interesting products, I know others who would probably be interested in hearing about it.

Good luck with your project, if I can be of assistance, let me know.

John

Offline

Location

akron
United States
Joined: 05/11/2012
Posts: 12
Xkeys as a solution and IE on the Forum

Hello,

I guess I may be the only soul still using Internet Explorer 9 ( Win7x86_64), but I cannot write a reply on the forum with IE9... Wasn't sure if this was known or it mattered... It's a great resource, none the less.

The fact that XKEYS provided you with some demo units is commendable, but should not cloud your realistic assessment of their hardware and limitations.

I have had the pleasure or challenge of building widgets and writing code since ICs were the 'new stuff' and our 'mini-computers' used magnetic core memory.  A disk drive with 500 megabytes was the size of a commercial washing machine and cost well over $50,000.

I have found that the need to 'tune fifos' is a losing proposition. Each rev of firmware or processor by the manufacturer, or OS changes,  will inevitably cause a problem. As 'intelligent' devices move the programmer further and further from the actual hardware, the problem to optimize the use of these become more difficult.  Also, trying to plug a square peg in a round hole is a Quixotic endeavor. I think the XKEYS, as they are documented and supported, may be a square peg.  Here is my assessment of the problems.

1)The keyboard is requiring long 'write string lengths' (lots of bytes) to do very little. This is a design flaw...

2) The optimization of the FIFO is the responsibility of the writer of the OS driver, not the user. If you expect to write this type of code for many devices with real-time timing requirements to all work together, without interference, under the Windows operating system User Code rings, good luck !

3) There should be a single instruction to control ANY or all backlights. The user should be able to update the light row and column matrix directly, with a single command. This should be capable of an update rate of at least 60 times per second, from user code, without any special tuning.

4) Doing any development with a company that is unresponsive and poorly documented is a huge mistake. You take a lot of pride in your code and your reputation and it shows. They do not seem to have the same enthusiasm, except for the sales and shipping operations, which are excellent.

5) Because these devices are designed to act like mice, keyboards, joysticks, etc, they are easy to use and globally available to windows clients. Unfortunately, they are tied in to restrictions and overhead in the OS that are not great for our purposes. In the 'good old days' you could write to a parallel port at 1 megahertz or above from user code. A better approach would be to have the driver not installing the HID overhead, and have direct hardware communications between the user software and the microcode driven device, like the ATEM itself. Sadly, I would guess the XKEYS is a micro-based HID and could not avoid the whole keyboard-mouse windows message loop that is tuned for input (to a point) and only designed to handle lighting up 'caps lock' and 'num lock' output to a keyboard, thus I fear the poor update rate on the XKEYS is rooted deeply in windows.  ( At one point the windows keyboard was only capable of 16 updates per second, with an 8 byte buffer, I don't know if this still stands today) 

6) The XKEYS XK80 backlights are too dim (at full intensity) to actually light up a key with any kind of labeling. A better keyboard would have the ability to supply backlight power externally, to enable the use of higher current LEDs.

I applaud your efforts, but I would hate to see them wasted on a castle built on quicksand !

I am not selling or endorsing anything, but I think the power of JustMacros33 is wasted without a good physical control panel.  I would guess most people would spend twice what an XKEYS panel costs, for something that works well and looks professional. Obviously, the ATEM screams out for a UDP, ethernet connected micro to handle this task. Doing so in a user programmable, easily configurable way, for a price less than the BMD solution is the challenge for us all. (  And one that I am sure BMD is less than enthusiastic about someone accomplishing )

Best wishes, and I stand ready to help !   

Offline

Location

Melbourne,
Australia
Joined: 07/09/2012
Posts: 8
SuperSource

John,

Just wondering where on the todo list SuperSource support is? No big deal if its low on the priority or not possible at the moment, just wanting some sort of indication.

Regards,

Adrian

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
Adrian, I have two

Adrian,

I have two development streams ongoing, one which is UDP and one which is Official SDK. At the moment only the Official SDK is available, when BMD add Supersource to the SDK, I'll immediately try to get it into Just macros for you, so that could be next week, or never. It will of course go into the UDP system which was originally planned for Q4 2012, but it now looking like it might well be Q1 2013 - Sorry! 

One other possibility, I've "put out there, on the Developer sub-forum" the GUIDs needed to access the Supersource - If another developer can work out the method headers, I might be able to get it in there quicker, but for, at least the next 2 weeks, I don't have time to do that kind of hacking exercise.

rberk2,

You are not the only one on IE9, I use IE9 for most browsing too, but for the ATEMUser site I use Chrome for the exact problem you describe, Chrome is pretty good and works well with this forum, I would recommend it to anyone looking for another browser.

"I really hear you on suppliers", and rewriting code all the time for changes and upgrades is a pain, and like you, I have spent most of the last 20 years effectively writing tens of thousands of "loops with conditionals", to cater for hundreds or maybe thousands of device types.

But I'm also an optimist, when my customers come to me with problems, I do whatever I can to help solve them, and I hope PI Engineering will turn out to act in a similar fashion. My experience so far of them has been pretty good, and therefore this colours my views.

I wouldn't argue with any of your points, but would say if I took point (4) where you are talking about PI Engineering, I would actually spin that one around, and state (for me) BMD has been the nightmare company in this development. BMDs hardware is fantastic, but their API & customer support, in my experience, can only be described as "completely sh1t".

I promise Just Macros is not built on sand. It is a "native" x86 application, that when BMD provide a cross-platform API or publish their UDP protocol, Just Macros will become available not only for other desktop OSs, but we are assessing 6 RTOS platforms on which to port the system to a mini-convertor sized comms unit. I've posted elsewhere my preference is for Green Hills Integrity, although it's looking like we'll probably go with a "slightly less perfect" solution in 2013, I still have my fingers crossed I can argue for Integrity.
If you like great keyboards, you've got to check out the Russian industrial designer, "Art. Lebedev Studio":

http://www.artlebedev.com/everything/optimus/maximus/

His keyboard has a mini colour OLED screen in every key. It's not cheap, but it is very cool in my opinion???

HOWEVER: On "Reliable Keyboards": Just Macros was originally designed for, the one I started out with, which is a called a Grass Valley Kayenne. But any Grass Valley mixer and surface will work, as they all support a protocol called PBUS. I can't really go into it, as I'm not sure how open GV are about it. I will say it allows short RS422 commands to be fired from GV Mixer timelines and macros, and thus trigger Lua Scripts to control equipment not directly support by GV. Feedback about the GV mixer and surface can be obtained through another protocol called ACOS, and there are many other ways to integrate tightly using JustMacros (or it's derivatives and parents). 

Hence if rather than the ATEM being your primary mixer, it is in fact, just providing a feed to some on set dressing / furniture, or providing a external Keyer/DVE facility, the ATEM can be tightly integrated with what I'm going to facetiously call a "real vision mixer", using Just Macros.

Although PBUS, ACOS and other protocols are not included inj the free release, if users can help me confirm they are entitled to use GV protocols (i.e. a contact at GV I can check with), I'm happy to give them a version of J.M. for that type of input device.

I hope this help clarify why J.M. uses, and to a certain extent, is promoting XKeys for use with small ATEM setups like many readers will have. You shouldn't think that XKeys is in some way integral to the system, it isn't,  I'd actually love to have loads of different keyboard types supported, I've had a few suggestions, and we are looking at adding them, and of course MIDI will open up lots of options too.

Cheers for the comments, I hope you'll stay in touch, and hopefully soon I'll be able to provide a better system that more closely meets your needs.

John

 

Offline

Location

akron
United States
Joined: 05/11/2012
Posts: 12
GVG protocol

Hello,

There is a GVG protocol manual that can be downloaded from GVG. Publishing this on the internet, by the copyright holder, should allow the 'fair' use of this information with impunity.  

http://www.grassvalley.com/docs/Manuals/switchers/kalypso/071-8063-08.pdf

I interfaced an earlier version the GVG protocol that began each rs422 control sequence with a "smpte break character", which required a bit-banging mpu or some creative uart  manipulation to accomplish transmitting the character. But that was when you could read and write the control registers of the Uart directly, even from windows.  When we first got the ATEM, my first thought was to use some old Grass Valley panels we had laying around. That was my first frustration with USB replacements for "real" uarts ....  I am considering replacing the 6800 in the GVG control surface with a modern micro, as it would make a really nice Controller for simple Atem live switching.

I moved my development efforts from BMD to AJA years ago ( as did nearly everyone else ) because of the driver and firmware instability and lack of serious developer support of the BMD products. I actually cornered them in their NAB booth one year, in front of "the public", and vented my frustrations with them. They made a lot of promises and never followed through with one of them. 

The video and film business has changed. The economy and the hunger for large volumes of product, at low cost with a very quick turnaround, forces companies like ours to turn to suppliers like Newtek, RED and BMD to be able to continue. All of the aforementioned would be looked upon with disdain in better times, but are held up as heros today. All of their products never make it out of the Beta stage, they sell them and patch them until the 'new' model comes out. There are 'reality' shows with large amounts of the video of the show coming out of Go Pro Hero ($200) cameras. 

The point of the rant .... It is worth it to live with the frustrations of the BMD for the ability to stay in Business and offer 10 bit live switching and keying, or RED to be able to offer 5K hdr shooting at a reasonable price, in spite of the insane backflips you need to do to operate the silly camera ? We think so, and are appreciative that the products exist to help us survive and grow.   However, the backflips for the XKEYS are less easy to justify....

When we find a good control panel solution, you will be the first to know...

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
rberk2, Nice ONE!!!! for the

rberk2,

Nice ONE!!!! for the GV link, I haven't seen that document before, only documents shown to me by clients who had themselves had signed NDAs or had or license restrictions in place, and thus I didn't feel happy about putting any GV commands into J.M. If there is actual interest (people need this now), I'll add GV protocols to the public ATEM build as an urgency, otherwise the GV stuff will make it's way into the system in the next few releases.

However having a quick scan read, it really reinforces & illustrates the differences between BMD and the established players, I hadn't realized GV had gone so open with their protocols, but it's not really a surprise, it just makes so much sense, with the increasingly wide use of video online and in corporate activities, outside of traditional broadcast workflows. GV would be mad to ignore those new markets, and I'm glad to see they understand what none-broadcasters need.

How easy would it be for BMD to do the same? "So easy" is the answer as far as I am concerned. They could go from a company "who makes great products", to a "Great company", what do I think the probability they will is? -  0% to 1% I reckon, we'll see, what they do with their next firmware.

Also thanks for the really interesting background, and cheers for the promise to keep me up to date with user interface panels you come across, or any ideas you have about how I could integrate better with your solutions???

Regards

John

Offline

Location

akron
United States
Joined: 05/11/2012
Posts: 12
Herein lie the Snakes

Hello John,

I did some testing while I had the place to myself this weekend and found some interesting things.

The behavior of the JM3.3 and the ATEM and XKEYS are HIGHLY dependent on the system you run the stuff on.

I have been using a 2.5 year old Lenovo w510 l I7 win7-64  quadcore mobile laptop with 32 gig of memory and 1tb ssds. ( My dev machine) . The XKEYS were bad, and the introduction of the BMD Tally, forcing the LAN to 100 megabits was enough to force the ATEM to lose comms  from time to time, requiring me to REPOWER the ATEM ...

I tried an older Core2 duo desktop system and the results were worse.

Then I tried a new Dell i5 ivy bridge touchscreen with Windows8 .

This configuration runs the best of all, with minimal lag on the XKeys Updates.

I also connected the Tally module via a switch, rather than looping the CPU through the Tally box, as BMD recommends.  You can see a noticeable difference in the update of the fader position on the BMD software control panel when connecting the Tally module via a switch. When the computer is forced to 100 megabits, the fader bar does not move smoothly on the screen.

On the new system with 4 cores and 4 threads, the cpu utilization spikes at about 14% during an auto transition with about 56kbit bandwidth on the ethernet according to the task manager.

This should not be stressing anything, but the performance of JM3.3/ATEM/Xkeys seems to be extremely hardware dependent, in my observation....

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
rberk2, Yeah, there is

rberk2,

Yeah, there is definitely some bad code in there. I actually don't really expect the system to use much "Noticeable in Task Manager" CPU time. It should be sat around at 0% almost all the time.

When a transition occurs it will (might) set XKeys buttons lamps, Somewhere that thread has synced with the user interface, and the treeviews on the XKeys page have an update timer (not sure why I added it), that recurses round the tree pretty inefficiently. These two processes are interacting with each other in the main application thread, and slowing the whole system down (under certain circumstances).

My experience is you cannot run the ATEM reliably on a none 1Gb/s switch, but again this should not be effecting CPU performance noticeably. I'm on something else again today, but will be back on JM tomorrow, and fingers crossed I might even have the XKeys delivery so we can get some testing done with 10+ panels attached, which should exacerbate the problem and allow us to better track it down.

Gut instinct is all performances issues are related to the same bad thread code surrounding the LED back lamps. Our testing this week (hopefully) should clean this up.

Cheers

John

Offline

Location

Melbourne,
Australia
Joined: 07/09/2012
Posts: 8
Thanks for the response

Hi John,

Thanks for the info re SuperSource functionality. Gives me a bit of an idea planning wise.

Thanks also for developing such a fantastic 3rd party solution. I'm coding up a bunch of scripts to make life easier for the volunteers who run our system in our church. This will mean we can run a cleaner and more effective program each week if all works out well (which I'm pretty confident it will).

Thanks again!

I'll post my scripts to the forum when I've tested them for others to build on/adapt etc provided my supervisors are happy for me to do so.

Offline

Location

akron
United States
Joined: 05/11/2012
Posts: 12
Ethernet

Hi John,

There is a BBC America promo campaign entitled "We speak English" ... Meaning the folks on this side of the pond don't , just in jest I'm sure.

Reading more anecdotal stories about ATEM suggests that heat and other factors beyond the user's control may affect the ATEM lan disconnection.

Further, our gigabit switch has only ATEM related gear connected and only the Atem subnet. So, from the point of view of the ATEM, it does not see any difference from a direct connection. HOWEVER, it allows the host computer to connect to the ATEM at GIGABIT speeds and the BMD Tally Relay box connects without slowing the entire loop to 10/100. I believe that the magic of speed bridging happens in the switch, and at low data rates, the ATEM will never know the difference.

The 14% cpu usage spike is related to the ATEM software control panel physically redrawing the fader bar on the screen of the computer, not JM. I included the specs just to assure you that the computer is loafing, not being stressed. We are running the BMD software control panel AND JM3.3 on the same computer. We assume this is OK (?).

I do my best to communicate succinctly and not waste your time... Sometimes I do not succeed.  Sorry for the confusion. 

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
rberk2, Not possible for

rberk2,

Not possible for users to be wasting my time when delivering feedback of any kind, much appreciated,  if you want to share thoughts critiques about the system, of any kind, please do so, or if you think your points might not interest general readers as it's too specific to your own processes, I am happy to be contacted off forum as well. 

I'm very sensitive to performance issues, especially when I'm embarrassed about the fact I know I've got a little cr4ppy code in there. 

Got a day on J.M. tomorrow during office hours, with assistance, so hope to be abler to make good progress again.

Thanks for all your information, please "know", it is ALL very helpful to me, and althougyh maybe boring to casual readers, the more detail the better from my perspective..

Adrian Jackson,

That's what it's all about!!!! I'm really glad you have been able to find value in the Just Macros utility / system, if you can post any success stories / examples, I'll be "over-the-moon" happy.

Thanks once again to everyone spending time experimenting or using Just Macros.

Cheers

John

Offline

Location

Dartford
United Kingdom
Joined: 28/09/2011
Posts: 59
Problem with loading stills into media store

Hi John

I was trying to get a macro running to load media clips into the 2 TVS media slots via a button press.
However, when I try to use the JM command it gives me an error:

LUA[$033C3588] : CRITICAL stop with error: Access violation at address 00789B30 in module 'JustMacros33Plus.exe'. Read of address 00000000

This is the only line in the script:

ATEMMixerMediaStoreUploadStill( 1, 1 "C:\\Users\\User\\Pictures\\media\\bees1.jpg" )

The file does exist (I get a file not found error when I change the path so that it's wrong).

Am I doing something wrong or is there an incompatibility perhaps with the TVS?
I am using the MIXER_NO constant value of 1 because that was the default in the example. Should I change that?

Cheers

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
Yeah, Sorry you cannot upload

Yeah, Sorry you cannot upload a JPEG directly at the moment (I will allow this), you need to use GD to load the JPEG and draw it into "an in memory PNG", save the PNG to the disk and then upload that. PNG is a loss-less RGB compression format, so you won't lose any JPEG detail.

What the error is; the code is trying to read a JPEG file as though it is a PNG file.

After 7 days waiting HMRC finally added some zeros to our VAT number and my XKeys delivery should be making it's way from Stanstead after it's two week stay in customs prison. Yippy!

If all goes to plan, I'll put an update out on Friday which solves lots of bugs. I'll then try over the weekend to write a document (I know it's "old school" compared to video demos, but perhaps it's going to be the way to go with something like this), which details how to get the best out of the media uploads. I think my "Captions video" barely scratched the surface of what is possible to do, but I need some creative people to step in this area.

I know you'll be thinking, "I just want to upload by JPEG!!", I'm a bit busy for the next couple of hours, but early-mid afternoon I'll post instructions and an example script of how to change your one line to add a few more, but make this work. You can do what you want to do, you just can't do it (at the moment) as simply as you, and I, both would like.

Cheers

John

Offline

Location

Dartford
United Kingdom
Joined: 28/09/2011
Posts: 59
PNG it is then...

> I know you'll be thinking, "I just want to upload by JPEG!!"

Or, I could just upload a PNG instead! :D Thanks for that.

One other thing I was wondering...

At the moment I am using the macros to just send stuff live and I'm not using them to send inputs only to preview at all. So my 'Cam 1' macro sets cam1 as preview and immediately puts it live. That was my preference and I just wanted to see how it would work in practice.

Now, I am wondering if I could use the same macro with a shift button (also a macro button press) as a modifier to say: "if shift is pressed, don't go live, just leave it in preview".

Will this be workable? I am not worried about the actual scripting to make it happen. I'll be able to work out how to do it in Lua, but just wondering if it will be a good idea and/or possible with JM.

Thanks again!

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
The other restriction is that

The other restriction is that the PNG MUST be the right size for the video mode you are in. Sorry for all the restrictions, the system is being built up in layers, eventually it'll be easier - but having got stuck in now, you'll always know how it's working under the hood.

Absolutely, you can check the shift state, If you have defined a button as "ATEMSHIFT", you can then use:

if ( ATEMMixerGetShiftState() == true ) then
 -- shifted actions
else
 -- none shifted actions
end

to test whether it is down or not from any other macro.

There is some information about using environment variables in the "Creating Custom GUIs" document available on the index page, that gives some idea how to pass more complex information between macros that may be executing simultaneously.

Have fun!

John

Offline

Location

Brighton,
United Kingdom
Joined: 23/04/2011
Posts: 1220
I've been wondering about

I've been wondering about multiple shift keys. 

How could I go about creating a shift key with pure JM / Lua (ie not setting / looking at the ATEM shift state). Is it possible to set some kind of global variable that persists in the JM / Lua system and can then be read from any macro? 

It would be advantageous to not use the ATEM shift for certain uses, especially when performing functions with VDCP or on the videohub. A global var would be perfect for these kind of situations. 

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
Yeah, you can do

Yeah, you can do that.

Instead of assigning a button as a "Macro" type, you would define it as a "standard" type, and thus you get an "OnButtonDown" and an "OnButtonUp" event.

Use EnviroWrite("Variable Name", "Variable Value") in both UP and DOWN events. e.g. Set "ALTButtonDOWN" to TRUE in the DOWN and FALSE in the up.

From any other Macro or button actions use X = EnviroRead("Variable Name")  and then test X for the state you are interested in. 

One thing to remember is Enviro-variables will persist after restarts of Just Macros, so if you want an initial startup state, remember to add EnviroWrite commands to the AUTOEXEC macro.

Environment variables (Global Variables) can be super-powerful. changing the states macros run in, or if you wanted to implement STYLES to your system. e.g. BUG ON/OFF and CLOCK ON/OFF could get their appearance from an Environment Variable, and then to toggle between two different shows types, you just run a macro (hit a button) that sets up your Environment. I kind of think of it a little like "mixer personalities", except in my opinion, "could be" more powerful, with the right users.

Cheers

John

Offline

Location

Brighton,
United Kingdom
Joined: 23/04/2011
Posts: 1220
Thanks for the explanation,

Thanks for the explanation, makes perfect sense. 

cheers
tom

Offline

Location

London
United Kingdom
Joined: 02/11/2012
Posts: 10
PBUS control
JohnBengston wrote:

any Grass Valley mixer and surface will work, as they all support a protocol called PBUS.

I'm pretty sure most vision mixers support PBUS as a protocol. 

Lance certainly do for their TDC100  controller.

So presumably JM could work with any mixer/surface that supports pbus? 

Offline

Location

Bergen op Zoom
Netherlands
Joined: 31/12/2011
Posts: 217
Ok, and now let's do a little

Ok, and now let's do a little tutorial. ;)

How do I set up shift buttons to change aux sources from the preview rail?

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
Trevora,That is great news,

Trevora,

That is great news, as I said in an earlier post, I was constrained what I could do with GV protocols prior to June 2011, and I didn't know they had made the protocol public until a few days ago.

PBUS has been my favourite Fire-and-Forget RS422 protocol for most of the past decade. "Can JustMacros work with any desk that supports PBUS?", not at the exact moment in time, but you can now bet your life it will be supported before the end of the year (along with all the other GV protocols).

Mathijs,

The website is coming, slowly, which will have as many tutorials as I can possibility imagine, however it's a little way away.

As for your specific problem, it's not currently possible, I considered have "Shifted Button Types", but ultimately decided against it. You would have to redefine your Preview Bus buttons as "Standard" or "Macro" buttons, and then drive the LEDs from a another Macro that you trigger regularly, (or as a scheduled event). 

If you look in the demo scrip[ts of the latest package, there are a set of macros designed to be assigned to a 24 button XKeys panel, it's a full crosspoint demo, so you can configure the inputs to TX, Prev, AUX1/2/3, Key1,2,3,4 Fill and Key inputs. You could probably adapt the Lua in these scripts to do what you need.

"::Macros\Demonstrations\Crosspoints\Destinations" and
"::Macros\Demonstrations\Crosspoints\Sources" with some shared functions to make it easier in
"::Macros\Demonstrations\Crosspoints\CrossPointTools.ATEMLuaScript"

I can only apologise again that what seems like an easy thing to do, there isn't a ready made solution, please know that questions like this and feedback are taken into account, and help shape future versions functionality. It's double annoying when we had a discussion that someone might want to do what you are suggesting, and then we rejected the option, only now to be considering putting it back it.

Thanks for the feedback

John

Offline

Location

Brighton,
United Kingdom
Joined: 23/04/2011
Posts: 1220
Assign an  xkey button  to

Assign an  xkey button  to set your environment variable (as John explains here)

then it would be something like
X = EnviroRead("VariableName");
if ( ATEMMixerGetShiftState() == true ) then
 -- shifted actions - send the standard shifted source to preview
else
if (X == true) then
set aux to whatever source // aux assignment
else
set non shifted source to preview //standard behavior

end

you'd have to add a bit of code if you wanted to be able to send atem shifted sources to the aux.. something with if ( ATEMMixerGetShiftState() == true && X == true ) should do. 

Offline

Location

Brighton,
United Kingdom
Joined: 23/04/2011
Posts: 1220
I hadn't thought about the

I hadn't thought about the leds.. its probably easier to just have a select bus to do aux assignments with!

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
Tom, I am going to fix the

Tom, I am going to fix the LEDs, please don't forget about them. They will be useful eventually. Chasing Courier every hour to get package cleared through customs today, the delay is all down to the some UK government interface with Europa experiencing problems, but hopefully it'll be cleared through another system this afternoon. I feel like I've pre-ordered a BMCC.

Offline

Location

Hyde Park,
United States
Joined: 09/01/2012
Posts: 53
Grass Valley Control Panel
JohnBengston wrote:

PBUS has been my favourite Fire-and-Forget RS422 protocol for most of the past decade. "Can JustMacros work with any desk that supports PBUS?", not at the exact moment in time, but you can now bet your life it will be supported before the end of the year (along with all the other GV protocols).

Woah! Does this mean I would be able to use an old GV Model 1000 Control Panel with JustMacros?

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
Don't know for sure, but if

Don't know for sure, but if the panel supports PBUS then yes definitely.

All the public GV protocols are now certainly "a priority", but not until I put out this bug-fix version I'm currently working on, which SHOULD tie up XKeys support once and for all.

If you find the GV Protocols as I implement them don't work for you, let me know, and I'll do something else, but GV Desk Automation / Integration is one of the things I know a a fair amount about, so I'm relatively sure we'll get something that works for you with that panel.

Offline

Location

Hyde Park,
United States
Joined: 09/01/2012
Posts: 53
GV 100/110/300/1000 Control Panel

Your response got me inspired to spend the last 4 hours reading old GV Technical Publications.  There is a Grass Valley Protocols Manual that is the most succinct collection of hardware protocols.  Unfortunately, page 93 states: "some very early Grass Valley Group switchers use a different protocol".

Low and behold, I succeed in finding the Model 100 Serial Interface Protocol!  I also found out that I'll need to do some hardware adaptation as well:  The Model 110-HD Install Guide shows the atypical pin-out of the communication port of the Model 100/110/1000 Control Panels.  Being the only port on the panels means it's also the power source.

(Am I the only one who sees the stark contrast here: GVG has very well documented products. BMD, not so much.)

Offline

Location

akron
United States
Joined: 05/11/2012
Posts: 12
GVG100 protocol

The panel uses rs422-like communications ( signaling levels) but transmits characters that would normally be seen as invalid data as Attention/Interrupt characters. If you use a Micro without a UART and Bit-Bang the data, it is easy to communicate with the panel. If you use a REAL UART, where you can control the registers directly as port or IO mapped devices, you can use some trickery to communicate. If you use FTDI usb serial port devices, you may find it more challenging to operate the panel. I have done the first 2 things before, in an election system I built for broadcast tv. It was kind of like JustMacros, but well over 20 years ago.

I am considering ripping some or all of the Model 100 panel electronics and replacing it with my own MPU, with ethernet on board. I need to gage the actual demand for something like this, but the GVG panel quality, even at 20+ years old puts the newer panels to shame at any price. 

 

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
They know what they are doing

They know what they are doing at Grass Valley, of that there is little doubt, but to be fair to BMD, GV have been at it a long time. I'm hoping BMD release similar documentation in the near future.

fdrlive,

I've had a decent read through the first doc, and have a decent amount of experience of most of those protocols, so I have code that can be "re-factored" and dropped into Just Macros and I will be doing that very soon. The 2nd doc, I hadn't seen before, thanks for linking to it, I'm luving the fact when they decided to publish that doc electronically, they had to scan in their paper copy. At first I thought it might have been written with a type-writer, but I think it's just a dot-matrix printer. I'll go through this new document in more detail later this week, and then try to make some suggestions for what to do, and we'll see what people think.

rberk2,

You still got the spec or code for your election system? I think election systems are probably the "Olympics" of "TV news graphics", and because before I was exposed to the broadcast industry / marketplace, my specialty was (large) client server database development, you'll see Client/Server database tools added to JustMacros also very soon. Although it might seem slightly strange there are very good reasons for adding database connectivity to a control system, and a hypothetical election scenario might create a good case study / demo to show how to link ATEM->CaspaarCG->JustMacros->Data feeds from stringers / external sources. Nice one for the idea!
 
As for industrial serial, USB->RS232/422 is never going to be ideal, I normally recommend a company in the UK called "Amplicon", they create their own and sell other peoples industrial computing PCI(e) adapters, and they even make and resell some ready made rugged PCs for use in things like the automotive industry. Even if I've had to resort to A2D or GPI, I've not yet come across something that had a remote control interface, but couldn't be controlled by a product Amplicon sell (and a computer).

Fingers crossed, we will be able to find a solution for fdrlive's GV panel. I think it might be nice to give some extra life to old panels. We do live in recession(-ary) times.

All,

Now Have Xkeys Desktop / Professional (no backlights), XK16,24,60,80,12+Joy,12+Jog implemented, just need to complete Pi3 matrix board, and latest version should go out.

Cheers

John

Offline

Location

akron
United States
Joined: 05/11/2012
Posts: 12
Election System

What I did began with 'state of the art' portable tty terminals and predated windows.

We were able to convince the election authorities to allow us to capture a printer port from their systems. When they 'published' results to a printer in the press room, our local PC captured the report and uploaded the document to our election computer via phone modem.

The election computer broke down the report into a Btrieve database file. A routine then updated the character generator. 

The election computer had a 'Light Pen' interface for fast viewing, new result visual indication, and airing of races. The election computer interfaced the GVG 100, Bosch Compositor character generator and an NEC DVE in real time.

This entire process put results on the air , with the TV program in progress squeezed back to reveal the results, in a few seconds after they were available. This was many minutes ahead of any of the Broadcast Media in our area at that time.  We got ratings through the roof on those nights, and ABC TV network actually dispatched some of their election people to study what we did and how we did it.

With the database we were able to automatically show category sequences like New Results, School Levys, Tax issues, results in a Multicounty race, order the results by vote count, show completed races, statistical winners, etc.

As you can imagine doing this with a 4mhz 8088 with 640k of ram was a little more of a challenge than we face today.

It was half a lifetime ago for me, but the code was ahead of it's time, especially for a small, local television station.

While I don't work in local TV Broadcasting anymore, I look at the Atem and other tools and wish I would have had them many years ago. Our SD election system used over $500,000 worth of equipment ( in 30 year old dollars ) to do what a PC and an ATEM could do today for less than $5,000....

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
Sounds like a great project

Sounds like a great project to have been involved with, and I bet, even today, only really 3 or 4 guys truly "know" what was  involved in bringing it all together back then.

I was thinking about updating the technology involved (slightly), and doing a demo / example which effectively uses an identical process.

Nothing really changes - it just gets lower cost, and it might be worth illustrating just how much you can do with an extremely limited budget in 2013.

Nice one for the background!

Offline

Location

London
United Kingdom
Joined: 02/11/2012
Posts: 10
More GVG protocol...
fdrlive wrote:

Low and behold, I succeed in finding the Model 100 Serial Interface Protocol!

That, I believe, is the protocol to drive the GV100 from an editor via a 9-pin. You (presumably) could get JustMacros to drive the GV100 via this, but really I would assume you'd rather have the reverse -  a way of using an older (and more robust) GVG control panel to drive an ATEM processor using JustMacros as the 'translator'. 

GVGs (other than maybe the GVG300) didn't report much back to the editor down the 9-pin, so I assume that it won't be much use (other than PBus commands which may be a little limited).

The Sony switchers, on the other hand, could be 'learnt' from the Sony editor - so all the button presses that occurred on the Sony Switcher control panel was reported to the editor (crosspoints, BKG / Key selection, autotrans etc etc).

That would offer more opportunity to drive an Atem with a more robust control panel.

Mind you, they still aren't cheap it seems.

Offline

Location

Conway,
United States
Joined: 15/03/2012
Posts: 92
Just Macros & BMD 1 ME Control Panel

is it possible to use Just macros on the BMD control panel?

Assigning the macros to the top row section on the 1 ME Panel?

This would be a huge help to those of us who use the 1 ME Panel but are looking for greater flexibility with the panel itself.

J Parker
Production Director
New Life Church

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
nlcproduction, Would love to

nlcproduction,

Would love to be able to hook those buttons, my gut instinct is absolutely zero fires out ofthe panels when those buttons are currently pressed. 

We have to wait and see what BMD do with them, although Tom doesn't like speculation, I think it can be fun, and I'd be lying if I said I hadn't given BMDs next step(move) a few thoughts.

  • They might implement Macros like I have done within their software panel, in which case the Macro buttons on the panels would cause the Tub (switcher) to send a message to client, and the macro would be processed on the computer. This would be very good for us - no problem hooking there!
  • They might implement their macros in the switcher itself, in which case JustMacros will simply have an 2 additional modes, either allowing BMD macros to be packaged up and managed through JustMacros, or JustMacros will be able to run in "relay mode" i.e. Panel---(UDP)--->JustMacros---(UDP)--->Mixer. Again this will allow us to either Hook or make use of BMDs macros, or incept all Panel to Mixer traffic and act however we like, on all the panel actions. i.e. Use the BMD panel just like an XKeys. Not quite so good for us, but still okay
  • They might implement their macros and snapshots entirely within their mixer surface, and leave users without panels, without macros. You'll need to talk to BMD about allowing a HTTP Request from their Macro language so that you can trigger events on the VideoHub or CasparCG or other ATEM commands from JM. Totally useless for us, and as far as I am concerned pretty dumb too.

You can of course attach a nice XKeys XK16 to the top of your BMD surface, or I'd love to see a photo of someone who had blue-tacked an XKeys-XK16 over that top row of buttons on BMDs panel. It might encourage them to get their Macros / Snapshots / Slavos (whatever they will call them) out the door.

I could of course, be wrong about the panels not sending anything out when those buttons are pressed. Can you make them do anything at all? If you can, we may be able to do something, ,let me know, I don't have access to a panel at the moment.

Trevora,

Nice one, for posting all these links, I will get to this, and don't worry, we'll get the right integration with old GV panels, if necessary, I'll hit up my contacts at GV and hassle them about anything extra we need. Since they've gone so open I wouldn't expect any problems.

Cheers

John

Offline

Location

Melbourne
Australia
Joined: 16/04/2012
Posts: 67
Hi John, A suggestion perhaps

Hi John,

A suggestion perhaps is to try something a bit non-conventional.  For example, is there a method of hooking the API to determine when the routing of an AUX, for example, changes?  If so, theoretically a user could assign the utility row to an AUX they don't plan to use and then have JM pick up on the routing change as a trigger to run a macro?

Just spitballing here, but it could be a useful short-term workaround for some no doubt.  If there's no event for an AUX, I know there is one for a change to the preview bus.  If nothing else that would theoretically allow you do set up a conditional like if a particular input is set as preview then the transition type can be set to, say, stinger, and one of the keyers might be then tied to the transition section.  Just a simple example of what you could do, but I don't doubt it could be useful for someone.

On the other hand it might be an unworkable or terrible idea...

James.

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
James, I've done way worse

James,

I've done way worse for Live TV before.

It's a nice idea and I was considering exactly that option, I don't use my AUX2 at the moment, and I was thinking you've got 20 on the 1ME and I guess around 40 on the 2ME, sources. You do get a Callback notification (Mixer fires a UDP packet at the client - it's not polled) when an AUX source changes, and thus you could hook that event to trigger another macro.

If you could map Sources to AUX Crosspoint commands to those Macro buttons on the BMD Surfaces, it would be a perfectly acceptable to me way to do save yourself a load of hassle.

I have a whole module called "events", but I need to hold back at least one or two things to encourage a few people to pay a few dollars for a "Professional Version" that will help keep this project going.

However, coz of BMD being a bit slow with 3.4 which I expect to include either "their version of Macros", or "a Full SDK". I will release in the next package (still hopefully tomorrow), the ability to hook the "OnATEMMixerAUXSourceChanged" event.

Cheers

John

Offline

Location

Conway,
United States
Joined: 15/03/2012
Posts: 92
Atem Panel

Right Now, all they are used for is selection buttons when mapping certain inputs to certain buttons.

Other than that I don't every use them for anything because they seem to have no purpose other than that.

J Parker
Production Director
New Life Church

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
nlcproduction, Does that mean

nlcproduction,

Does that mean you ca not use them to for example route COLOUR1 -> AUX2?

If you can set them to map a different source to an AUX output you aren't using, you will be able to use an EVENT, which I just mentioned I would make available.

How it might work is like this:

  1. You call a function called ATEMMixerRegisterEvent("OnATEMMixerAUXSourceChanged", [ScriptName], [FunctionName]) 
  2. In the Script File you name you must provide a Lua function by with the name you gave as the 3rd parameter, but you will need to allow for 3 parameters, "( pvMixerNumber, pvAuxNumber, pvSourceNumber )" 
  3. Within that function, you would write some code that said "if (pvAuxNumber == 2) then", this is the AUX we want to use, so we will now examine the Source Number, and depending on what Source was routed to AUX2, you trigger the Macro you want.
  4. You would trigger your individual macros with "ScriptExecuteBG" commands from your event handler to ensure each new route fires a macro in a new execution thread.
  5. You would want to set the AUX2 source back to a "Park Source" that doesn't trigger any actions at the end of your event handler, so that would allow you to continually hit the same macro to put "SDI3->AUX2", and as soon as the event has fired, BLACK would get routed back, so that you could fire again.

This is one of the reasons I'm holding back the 200 or so "Events" across the ATEMN, CasparCG, VideoHub and VDCP for the pro version, it takes the complexity to a whole new level.

If, of course, you cannot map a SOURCE to an AUX from the BMD Surface macro buttons, then this whole post is, pretty much, a complete waste of time, but now I've said I add this feature, I will.

Cheers

John 

Offline

Location

Conway,
United States
Joined: 15/03/2012
Posts: 92
Auxes

John

I"m afraid you are correct.  

You can not route auxes via those buttons.

You can only route auxes in the software control panel with a click of a mouse.

Which has been a huge problem for all of us.  These features are not available even for those of us who have a 2/me.

Thanks for all you are doing on this.  

J Parker
Production Director
New Life Church

Offline

Location

Brighton,
United Kingdom
Joined: 23/04/2011
Posts: 1220
NLC I think your mistaken

NLC

I think your mistaken here. the delegate bus can be used to route signals into the auxes

(from memory) hit aux on the soft buttons - they change to allow you select the aux your routing. (hit aux 1) the deligate bus will now switch AUX 1 output. To route sources such as TX out to the AUX you hold down shift and cut/fill. 

Hope this helps
cheers
tom

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
Is there anything whatsoever

Is there anything whatsoever you can effect on the mixer itself from those button? Don't really know why I am asking, I haven't kept my eye on the panels, but I bet they locked it down around version 2.8, and if things were possible before, they aren't now.

I'm feeling "aggravated by BMD today", just what I've been looking at in terms of code, not because of anything new they "haven't done" or in anyway relevant to the discussion, but does colour my tone.

I continually fail to understand why they want to make life to difficult for their customers. I understand they make their money out of new sales, not supporting existing customers, but what they do just makes no logical sense to me. I just want to help their customers get more value from their products at ZERO cost to BMD. Why? Because their customers are also my customers, there is nothing I can do about that, and thus I can't do the obvious thing; and walk away.

I'm so sorry to have indicated there was something I could do to help, I hope you'll stay in touch with this thread, as I'll be continuing to look for ways to do what you want to achieve, and as I said in an earlier post, once they launch their own version of "macros", one of the 3 solutions will work.

Until then, pretty much, your best option is to de-solder the very nice buttons, attach them to a simple circuit board with a few LEDs and diodes, and attach a PI Engineering Pi3 Matrix board, carefully re-insert the buttons, and run a USB from your panel to your controller / monitor computer. 

EDIT
So Tom posted before I finished typing, and I'm now on record again moaning about BMD. Nevermind they kinda deserve it. So hopefully exposing events, for users who have a spare AUX, this might help a little.
Thanks Tom!!!!!

Offline

Location

Conway,
United States
Joined: 15/03/2012
Posts: 92
Thanks

Tom

Thanks so much.  Some how I missed that.  Not for sure why.  But I did.

J Parker
Production Director
New Life Church

Offline

Location

Conway,
United States
Joined: 15/03/2012
Posts: 92
1 ME Control Panel Works with Just Macros

John

Just tested just macros with the 1 me panel to save scripts via lua.

It works smashingly!

J Parker
Production Director
New Life Church

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
Good stuff, I think when I

Good stuff, I think when I can explain AUX triggering a little better, and provide a sample, you'll then be able to trigger your macros from the desk.

I'll be working into the night to get it out tonight, but until then, if you are new to JM, watch out for the bug where Recorded macros get saved without the correct file extension and in the wrong directory, that is now fixed but, I'm in compiler h3ll at the moment, trying to get all my versions for all the different BMD firmwares consistent. (been trying to get this right for a months or so now).

Update soon as possible!

Offline

Location

Pasadena
United States
Joined: 12/04/2012
Posts: 319
John... I just love your

John... I just love your willingness to share your progress on Just Macros including some of the challenges you are facing.   Black Magic could learn something from that.  If they could just be somewhere between how open you are... and how mostly nonexistent their updates are would be much better in my opinion.  Oh well.. onwards.

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
59.94 / 60Hz - Has anyone got any ACTUAL new info?

Liam,

Please don't read anything into what I post on the official BMD forum, I do that to amuse myself, and to see what I can get away with before they throw me off, also to so see if I can provoke them into direct meaningful discussion.

Sure I accept this is "troll like" behavior, but like I said earlier today, their way of doing things is pi55ing me off today (particularly), and your  posts gave me just what I needed to post some subtle(-ish) messages "at BMD." You are correct it's not right you get caught up in it, and I apologize for that.

But to put that discussion more clearly in this open forum, "In January/February I had a similar official messages from a BMD rep about features that had been removed and promised to be replaced". You are assuming one or two posts from a BMD sales rep can be relied upon as an assurance you'll get what you need from the next firmware release, even though they are notorious for doing exactly the opposite of what all the customer pressure is asking for. 

I hope you are correct about 3.4 containing the update for 59.94/60Hz but until it appears, I advise airing on the side of caution to avoid being disappointed. For example the BMD rep said 6 weeks, and it's now 8, which is more than 25% more than the estimate, with no further posts on the issue. This fact alone shows the information is potentially unreliable.

I say again, I really hope they fix this, but I AM a "betting man", and I wouldn't place a single penny at 10:1 odds on 3.4 containing 59.94/60Hz fix. Time will tell.

Cheers

John

Offline

Location

Pasadena
United States
Joined: 12/04/2012
Posts: 319
We'll see of course.  You do

We'll see of course.  You do have more experience with the BMD "machine" than I do.  

However... the quotes I am referring to about 3.4 and 60Hz are not from some "sales guy",,, they are from :

Darren Lew
Senior Product Manager ATEM
Blackmagic Design

Now... I'm also a software developer (of sorts)... and I know that things can crop up in quality assurance at the last minute... so nothing is set in stone.   I do however expect them to be true to their word.. or to clean up their lack of integrity.  25% over their estimate is not a big issue to me really.   Just wanting to push for some kind of an acknowledgement beyond the heresay that I have seen recently.

And... my posts over of the "official forum" are simply my way to "stir the pot" some.  I think we are both doing a good job of that.  :-)

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
Yeah man, I like the way you

Yeah man, I like the way you campaign, but I want to play good-cop on the 60Hz issue, by justifying their actions the way they MIGHT do, in a totally outrageous way, and see if it generates a reaction. 

On the semantics of job descriptions, it's just the word "Manager" in the job title that makes me less then willing to bet money (relying on BMD to do something for a job I need) on his word. 

http://en.wikipedia.org/wiki/Peter_Principle

Offline

Location

Pasadena
United States
Joined: 12/04/2012
Posts: 319
Well... I've worked with many

Well... I've worked with many a Product Manager over the years and I've got to say my experience has me post them in a different category than simply "sales" or "management" per se.    I'm giving Darren that "power" rather than the "Peter Principle" brush.   Especially as I have never even met him in person.   

And... of course... as you know... I get my job done despite the lack of 60Hz support via various tiresome work-arounds.   So... the job I need to get done... gets done in any case.   But... it is time for those shenangans to get put to rest... So Says I.

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
I hope Darrens rely over on

I hope Darrens rely over on the BMD forum has made you happy. For everyone else the link is below, you have to decide for yourself, it the post indicates positively or negatively:

http://forum.blackmagicdesign.com/viewtopic.php?f=4&t=2650&start=20#p16629
The words used don't really clarify the situation much for me. It was hardly a "I assure you 60Hz sources will be accepted as 59.94Hz in the next version" kind of statement.

The phrase "60Hz is not a format that has ever been supported in the ATEM range", sticks out me me as a pretty good indication they won't put it back, "it's never been supported, that's why it got accidentally removed, and we are sorry about that, but it ain't going to change, as 60Hz remains unsupported" is how I read Darren's post.

Hopefully I am wrong, and maybe you read it differently.

You can't say life with BMD isn't exciting, I'm thinking about calling PaddyPower and getting some odds.

 

Offline

Location

Pasadena
United States
Joined: 12/04/2012
Posts: 319
I say that 60Hz is back in..

I say that 60Hz is back in.. he was just covering the issue that they took it out "by accident" and it wasn't formally supported previously.    

And... John... we REALLY have gone over all this ground before.  If you REALLY want I'll re-post the quote from them earlier which directly referenced them working on putting it back in.  But I am beginning to think you really are fully committed to your perspective on this being the right one.  So I give up on that as a waste for my time. 

Just one more quote from Darrens most recent post
"Let me also say that company policy does not allow me to give indications of dates or contents for intended releases. This is simply because these dates and contents change. The fact that I chose to do so in a recent quote should be taken as a sign that we value our customers very highly. "

What I can only take that to mean is he is referring to the post where he referenced what they are working on in 3.4. That included 60Hz. Go look for it if you are interested,

Have a good one John.   I'm getting back to work.

Offline

Location

Melbourne
Australia
Joined: 16/04/2012
Posts: 67
Approaching anything BMD says

Approaching anything BMD says without cynicism is like approaching a horse from the rear - both are almost a guarantee of a kick in the balls.

Offline

Location

Dartford
United Kingdom
Joined: 28/09/2011
Posts: 59
Trying to run the Picture Background Strap example script

When I try to run the Picture Background Strap example or any one that uses GD I get the following error:

"The program can't start because libgd2.dll is missing from your computer"

My understanding was that the gd.dll binary in the archive was all that was needed.

Googling libgd2.dll is only bringing up the sort of dodgy sites that are absolutely sure to infect my computer with a virus.
You know the sort: "Hey, click on this link to 'fix your computer'" (wink wink)

What should I do?

Cheers

Offline

Location

Dartford
United Kingdom
Joined: 28/09/2011
Posts: 59
Found the answer...

Sorry. Found the answer on this very page...

http://atemuser.com/forums/atem-vision-mixers/blackmagic-atems/atem-macr...

As I have a TVS I guess I won't be able to use these straps right now.

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
Webslave, Just absolutely

Webslave, Just absolutely brilliant!!!!

Jasonvincent, glad you found the solution. But if you watch the video, after the CasparCG demos (first two) there are a couple of examples that show a MIX and WIPE "transition effect" methods of bringing on lower super straps. Both these techniques can be used with the TVS, as they do NOT use the Fly on the keys.

All, I know I'm way later than hoped, but I'm so close with the update now, if it doesn't go up tonight, it'll go up tomorrow, and I really do hope it fixes all reported problems.

Cheers

John

P.S. Sorry for multiple edits

Offline

Location

Melbourne,
Australia
Joined: 07/09/2012
Posts: 8
Key Snapshot ME2

Hi John,

Noticed a bug doing some coding yesterday. I can't seem to take snapshots of the ME2 keys.

Adrian

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
Adrian, I've really got to

Adrian,

I've really got to get a 2ME, and a TVS, and put all the validation and checks in for the different versions. I should have done that before the end of the year.

At one point in the past the Snapshot 2ME menu options weren't working, but I just checked and they are tied up to the menu in the last JustMacros version (33Plus ONLY), so it SHOULD work. If you are trying to use the Lua function "ATEMMixerGetTakeSnapShotState", that that wasn't tied up to anything, and will work in the next version.

HOWEVER, there is a good chance something else is wrong here. Isaw the other day that Key3 and Key4 are tied to ME2 on the 2ME mixer? Is this true?

If it is, then perhaps you need to snapshot ME2-Key1 to actually snapshot mixer Key3?

I'm just going to add extra logging for ME2 snapshots, so with the version that "if it doesn't go out tonight, I'm going to jump out the window", you will be able to see what is causing that process not to work.

Sorry for the problems.

Regards

John

Offline

Location

Budapest
Hungary
Joined: 16/03/2012
Posts: 60
Yes, on the 2ME, you have two

Yes, on the 2ME, you have two keys on each ME.
So the KEY1 on the ME1 is not the same as the KEY1 on the ME2.

Offline

Location

leverkusen
Germany
Joined: 11/01/2012
Posts: 126
Big Problem with special characters

Hi John,

I have a big problem with special characters named "Umlaut" in German that aren't fetched to CasparCG with the recent JustMacros version.

If the Name for a textfield (f.e. f0) contains these "Umlauts" then it is simply not displayed by CasparCG. For example if I set f0 to "Sebastian Hämer" (the "ä" is the problem - then Caspar CG plays the lower 3rd as "Sebastian Hmer".

It is a Just Macros problem, because if I use the standard Caspar CG client the "Umlaut" is displayed with the same Flash template.

I have a show coming up on monday - is there any chance to get a workaround or update? I know I should have asked earlier - but I just experienced the problem today.

Thank you anyway for this fantastic software.

Cheers

james.

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
UTF8

jamesbrown,

This is a Just Macros bug, at some point in the processing chain, the data string being sent is being converted through ASCII, and it should be UTF8 all the way to CasparCG. I'm looking at it now.

Cheers

John

Offline

Location

leverkusen
Germany
Joined: 11/01/2012
Posts: 126
Fantastic! If you would fix

Fantastic!

If you would fix it (or find a workaround) until Monday, I'll owe you a crate of beer!

Not kidding!

Cheers

james!

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
jamesbrown, I think I have

jamesbrown,

I think I have fixed this, most of the sockets I use internally, are binary and hence ASCII, I just had some inherited code coming through to this plain text socket implementation, it seems "fine" to me now so should present no issues with European style umlauts and acutes, etc..

Would love some help testing really difficult to write (for me) languages, such as Arabic and Chinese, anyone reading this who has these skills and is prepared to offer some help, I'd really like to hear from them. I think we'll need to do something with the code editor, but it's something I'm pretty keen to try out.

I'm STILL "packaging" and "testing" the full system, but if by the time the F1 starts this afternoon in Brazil, I'm still not done, I'll upload a patch for you, so that you can test this change prior to your programme tomorrow, I'm like 99% certain it is fixed now, so I think  you'll be okay.

Sorry for this issue.

Cheers

John

Offline

Location

leverkusen
Germany
Joined: 11/01/2012
Posts: 126
John, great news from you!! I

John,

great news from you!!

I can't wait to test the new version (or the patch). Do you have an email adress? Because it is not possible in this forum to send private messages.

Cheers

james.

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
James,  It is possible to

James, 

It is possible to private message on this forum, I just sent you a message, reply direct to it, and I'll send you the EXE I am currently using, even though I'm still plugging in modules and trying to get all the versions for firmware consistent (Arhhhhhhh!!!!!!!!!!!), you can probably use the reference 3.3Plus build, and confirm some things are better for you..

Cheers

John

Offline

Location

akron
United States
Joined: 05/11/2012
Posts: 12
JustMacros extensibility

Hi John,

As you begin to get deluged for feature requests and solutions to very specific needs, I would suggest that you consider adding the ability to dynamically load a user provided dll.

Your framework could be easily customized for one-off needs without encumbering it with hundreds or thousands of functions that may not be useful to the vast majority of users.

In my case I wrote a background 'watchdog' routine to try to speed up the refresh of the lights on the xkeys panels. My routine was aiding and fighting the JM threads at the same time. If I had better control of the execution of my code, I could have done a better job of accomplishing what I wanted.

Just a thought... Keep up the great work!

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
James, I still haven't had

James,

I still haven't had the private email back so I got bored, and the F1 will start soon, so I have put up a patch:

http://www.vis-ranger.com/ATEM/JustMacrosPatchForJamesBrown.zip

Rberk2,

I'm very sorry to have been slow with the update, if the back-lamps thing is a real-big deal for you, you might want to use this patch too, as it's fixed in that build. It'll update the lamps automatically pretty well now, I've got 12 panels attached, each with a SHIFT button that should light up whenever any shift button is pressed, and they seem totally locked, and capable of maybe 5-7 updates per second.

This isn't yet the official update, as I'm still patching modules with updates from our version of "unit testing".

You can of course plug in whatever Lua compatible module you write in C++, check out this link.

http://lua-users.org/wiki/CreatingBinaryExtensionModules

I'm going to write my own version of this document which extends it a little to allow for enumeration of methods, along with the HELP functions, and then libraries can be managed, and "requires" commands will be handled by the Lua pre-processor, and it'll feel like user modules are part of JustMacros.

I'm not expecting performance problems until many "tens of times more commands are included" (50,000+ should be no problem at all), although I think we are probably already approaching the point where we need some filtering and searching on the command list.

Eventually every aspect of the lua-bootstrap-framework will be accessible from the Lua scripts, thus allowing Lua scripts to reconfigure the environment in which they are running - I like that, it's seems like is has a little element of AI to it.

Let me know any problems you have with this patch and I'll fix for the proper release later this evening

Cheers

John

Offline

Location

leverkusen
Germany
Joined: 11/01/2012
Posts: 126
John,thank you for being so

John,

thank you for being so lightning fast!! It works like a charm now with Umlauts.

OK - now I see how it works with PMs - The forum sends a direct email to my email account. There is no message area in this forum. You can only send an email.

Cheers

james.

Offline

Location

akron
United States
Joined: 05/11/2012
Posts: 12
Lua extensibility

Hi John,

The Lua link you were kind enough to include,  refers to the 'Borland' compiler or the newer version with msvc 6. These are VERY OLD tools. Are you using these relics ?  It would be good to know what versions you are using, so that runtime C library conflicts don't raise their ugly heads if one did attempt to write extensions.

While I haven't explored the docs fully, I guess you are saying that the Lua interpreter that you link in your code is capable of loading a dll at runtime. ie...

libinit = loadlib("msgbox.dll", "_libinit")
libinit()
msgbox("Hey, it worked!", "Lua Message Box")

Have you tried this in JM yourself ? 

Of course, without a com hook or net interface, one would need to write a wrapper dll to call the more advanced form of function calls.

Also, while the function call is useful, there does not seem to be any way to callback into the lua or jm code. There are cases where it would be much better to utilize a callback rather than a blocking function call. Possibly an extensible 'callback' table within JM would be something you might want to consider.

 

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
rberk2, I am using Delphi XE2

rberk2,

I am using Delphi XE2 and Visual Studio 2010/2012 as well as various GNU tools, and many custom tools my company has developed over the last 30 years, and me for nearly 20, I defend the use of slightly out  of date Delphi compiler, as the XE3 version is a bit of a rip off in my opinion. But in the end I'm not really a evangelist for any platform or compiler, I prefer to use the best tools for the job. 

Lua has been around for a long time, but it is hardly a relic, and although we are still using 5.1 with Just Macros, that's simply because I haven't yet had time to look at 5.2.

In my opinion Lua's performance and natural language combine to make it an ideal choice for this system. I prefer the license to GPL, and the fact it is a stack based virtual machine, really lends itself to some of our future goals of creating a multi-threaded RTOS executive on which to execute broadcast Lua scripts.

The link I sent is just "a useful link" as the Lua calling convention is very simple and hasn't changed much.

As I have already said; I will write a better document which will detail the Justmacros extensions to core Lua requirements. You should definitely read about and make sure you are using the very latest Lua headers and code from the main Lua project pages in you intend on building plug-ins for Just Macros in the future.

http://www.lua.org/download.html

To load a library from a script you can just use a "require" command in 5.1, and then all you need to do is make sure the DLL you have created is in the same location as the JustMacros.exe and Lua DLLs. And yes I've used this, for example the GD graphics library used to create the on-the-fly straps, is someone else's graphics library (discussed in earlier posts).

http://www.vis-ranger.com/ATEM/StrapsDemoScripts.zip

(again make sure you download the other GD DLLs I forgot to include - link above somewhere -  to try these out)

If your read the posts above about AUX cross-point triggering, you'll see "Events" are very much part of the system, and I will be exposing some of the built in "Events", (two now), later tonight. Again developers of Just Macros Plugins will obviously be able to hook into this functionality, but as I said above, this can get very complex, and I want to hold just a few of the advanced features for a Pro version to be released towards the end of the year for a very low cost.

With the free version, you should NOT have major performance problems polling on the raw TCP/IP or HTTP sockets, especially if you integrate horizontally, at times during testing, I've processed millions of Lua scripts per hour.

WARNING to ALL, stay off the database functions prefixed "DB.....", in this version, they'll leak memory like a sieve until I put the full version out.

I am sorry for not being able to yet meet the requirements you have, I promise I intend to continue to improve the system, and hopefully it'll soon meet your needs soon enough. I hope you will continue to stay in touch, and keep this stuff coming, as feedback from users such as yourself is invaluable.

Cheers

John

 

Offline

Location

Budapest
Hungary
Joined: 16/03/2012
Posts: 60
About the AUX-based macro

About the AUX-based macro execution. Can I somehow, get which button I pressed on the broadcast panel?
Because if I can only get the selected input, I will have to adjust the script that watching the changes of the AUX every time I change the crosspoints order on the broadcast panel.
Also I can use only that crosspoint buttons, which has a source assigned to it.

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
denes44,My guess is the

denes44,

My guess is the answer to all those questions will be "no".

I think the idea of cross-point triggering; is you allocate an AUX output to be "NOT USED", then you set a PARK SOURCE, my example is black which you use to as a "none-trigger". Your AUX will now sit on that PARK source almost all the time, and cannot be used for anything else. You would be giving up an AUX to get external macros.

You allocate your macros to a SOURCE->AUX cross-point.

On a 1ME that will give you 20-ish trigger-able macros, and on the 2ME 40 trigger-able macros.

You would always route the PARK Source back to AUX the instant you triggered a macro, thus potentially using environment variables you could get thousands of potential of actions from just a few buttons. 

How you integrate that into your workflow and button assignments on BMD mixers is between you and BMD. I know some members of this forum believe posting your requests over on the BMD forum might result in BMD helping you achieve your goals, you could give this a try, it's just my experience is you'll be wasting your time, and you are better off trying to find innovate solutions to your problems without their help.

Cheers

John 

Offline

Location

Budapest
Hungary
Joined: 16/03/2012
Posts: 60
You misunderstood me. My

You misunderstood me.
My first problem is, if I select Source1 to the first crosspoint button, and I want to execute Macro1 with the first crosspoint button, I write a script:
if aux changed and the selected source is Source1 then execute Macro1
However, if I change the mapping of the crosspoint buttons, and I select another source to the first button, when I press the first button I can no longer execute Macro1 with it.

The second program is, if I want to use all the 20 buttons for macros, I have to assign a source to every button.
In live enviroment to the first page (non shifted sources) I only assign the sources I use when switching live. That means four camera and one VTR (with an empty button between the cameras and the vtr to avoid accidentally switching to the vtr source when switching between cameras).

So if it's not possible the watch pressing the buttons, but only changing the sources to an aux, it won't be an ideal solution.

Offline

Location

Melbourne
Australia
Joined: 16/04/2012
Posts: 67
Denes44, you misunderstand

Denes44, you misunderstand the problem and why such a workaround exists,

The problem is that there is no way to hook keystrokes from the panel, so the workaround is to use the utility row to switch a 'dead' AUX.  Therefore, you're stuck with the raw layout on the panel.

That said, I don't see why that should be a problem because you can make each input on the utility row do something completely independent.  If, for example, you're assigning 'black' as your spacer you'd have to make a change to assign an unused input instead, otherwise JM isn't going to be able to tell the difference between the blacks.

Offline

Location

Budapest
Hungary
Joined: 16/03/2012
Posts: 60
If you read my posts, you

If you read my posts, you will see that, that was the question...
I understand the workaround about changing the sources of an aux, and watch this from a macro, but the question was if it's possible "to hook keystrokes from the panel"?

The problem is that the utillity bus is not independent from the program/preset bus. The sources are the same.

Assigning black or an unused input for a spacer is pretty useless, as it won't be a spacer. A spacer (emtpy source, so you cannot select that button) is useful for example between the cameras and the other sources. So while you change the cameras, you can't change to a vtr source accidentally.

And if you assign a source to every button, the problem still persists, that if you change the source of a button, you have to rewrite the script, or memorize which input executes which macro.

Offline

Location

Brighton,
United Kingdom
Joined: 23/04/2011
Posts: 1220
I would just go for an xkeys

I would just go for an xkeys stick blutacked to the top of the panel, that way you macro keys are always ready to use no matter what your doing on the BMD panel.

Offline

Location

Melbourne
Australia
Joined: 16/04/2012
Posts: 67
Recursion
denes44 wrote:

but the question was if it's possible "to hook keystrokes from the panel"?

Asked and answered a couple of times now.

denes44 wrote:

The problem is that the utillity bus is not independent from the program/preset bus. The sources are the same.

Already acknowledged in my last post.

denes44 wrote:

Assigning black or an unused input for a spacer is pretty useless, as it won't be a spacer. A spacer (emtpy source, so you cannot select that button) is useful for example between the cameras and the other sources. So while you change the cameras, you can't change to a vtr source accidentally.

I guess you could always just be a bit more careful when switching.  If you hit the wrong button you're odds on to take the wrong camera or VTR anyway, so the risk isn't significantly greater.  That's why we have a preview bus, after all.

denes44 wrote:

And if you assign a source to every button, the problem still persists, that if you change the source of a button, you have to rewrite the script, or memorize which input executes which macro.

It's almost like you're not familiar with the concept of a workaround.

Reminds me of the line from Road Trip (2000):
"It's supposed to be a challenge, that's why they call it a shortcut. If it was easy it would just be the way."

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
Events: AUX Triggering and Preview Management

All,

I think the best way I can help you to understand what you can can and can't do with AUX triggering, is to release another patch:

http://www.vis-ranger.com/ATEM/JustMacrosPatchWithEvents.zip

It has two events exposed "OnATEMAUXInputChanged" and "OnATEMPreviewInputChanged". The preview one just seemed so useful to add. i.e. You can now act and do special things when particular sources are put to preview. I have included a few example scripts in the ZIP file that should explain how to make it all work.

Maybe this is all pointless, but I don't think you can really "have too many options available to you". Let me state quite clearly "I love Tom's Idea", Blu-tack is an excellent systems integration tool. Although I have to warn buyers of the XK16, I now have one, and the travel on the buttons is not the same as the other XK keys. It's a nice micro-switch type action, and I think would be an ideal keypad for a VOIP talk-back controller, but I do worry slightly that people might think an XK16 is a strip version of an XK24 or XK60/80. It's not, the travel is far less, and I just thought I should point that out. It is now supported properly in JustMacros.

As always, let me know if you have any probs, I'm working late tonight on this...... again.......

I'm STILL integrating components for the proper "Official release", hence why all the CasparCG, and VDCP updates aren't in yet, and the Database stuff is incomplete.

Offline

Location

Bryan,
United States
Joined: 31/07/2012
Posts: 13
I am new to this forum and am

I am new to this forum and am interested in learning about the Just Macros software.  I have downloaded it but unless I'm mistaken, it looks like it does not recognize my XKEYS  MWII.  Is this correct?

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
Firstly, many thanks for

Firstly, many thanks for taking time to check JustMacros out.

What is an MWII? That sounds like PI Engineering's "Macro Works software", and no Just Macros is not a plug-in for that tool. Although an excellent tool for automating tasks on the desktop, Just macros is focused on broadcast equipment like the BMD ATEM visoin mixers, and the various systems that hang off that is a gallery like environment.

Lua was selected as the preferred scripting language to VBA for a number of complex internal reasons, and why Just Macros sits aside Macro Works. If you want full control of the backlamps, either disable Macro Works default back lamp control, or disable Macro Works.

In terms of XKeys support I want all XKeys models to be supported. Theoretically a keypad hat is not recognised will log HEX data at the bottom of the screen when you push keys. The idea being, if someone has an old Classic 46 key Jog and Shuttle, I should be able to take a copy-paste of the HEX log and roughly figure out how to get it working.

Originally it only supported XKeys XK range, but now it also supports Professional and Desktop. Is your panel shown on the list at the link below?

http://piengineering.com/xkeys.php

Make sure you are using the latest patch version for the best XKeys model support, and no latency issues with back lamps.

Cheers

John

Offline

Location

Bryan,
United States
Joined: 31/07/2012
Posts: 13
My mistake.  It is in fact an

My mistake.  It is in fact an XKEYS USB stick.  It says MWII on the back.  I am getting a screen similar to this and all the leds are on.

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
I think that product is now

I think that product is now discontinued, and hence why I haven't seen it before.

However, please give me a short while, and then check back on this thread. 

Regards

John

EDIT: Actually I've just seen you are running 31Plus that doesn't support XK16, which based on you saying you all the backlamps are on, makes me think you are running on ATEM firmware 3.1(.1) or 3.2.

Try this patch: It includes all the compiles of the latest build, but for all BMD firmware installs:

www.vis-ranger.com/ATEM/PatchVersionForAllATEMFirmware.zip

NOTE TO ALL: Whenever installing a patch, you just need to copy the contents of the patch zip file into the directory you already have from one of the main downloads you download from:

www.vis-ranger.com/ATEM/

Offline

Location

Bayswater
Australia
Joined: 28/11/2012
Posts: 29
Interface bug

John,

Somehow I have lost the log window at the bottom of the interface, I can hover and see the 'two arrows' to resize it .. but can not click and resize.

I think it happened while resizing the interface to move around on monitors of different dimensions

Kevin

ATEM Television Studio. BMD; HyperDeck Studio and Shuttle, HDMI->SDI  Battery Converter, SmartViewHD, GPI & Tally, UltraStudio Mini Recorder

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
Kavadni,Thanks for the big

Kavadni,

Thanks for the bug report, it'll be fixed in the upcoming release that is is so late it's stupid, here's the workaround for the time being:

  • Shut down Just Macros
  • Start - type "Regedit", on XP, you probably have to go to "RUN"
  • Navigate to "HKEY_CURRENT_USER\Software\VIS\Ranger\MacrosScreen\"
  • Find the REG_DWORD value with name "pnlLogContainerHeight"
  • Double click to edit
  • Set to 50 or something (watch out it defaults to HEX and that means you enter 100, you get 256 pixels).
  • Restart Just Macros

Resize the Panel on the screen, just try to avoid making it very very small, i.e. After it goes to Zero, it won't come back, but like I say, I'll fix this.

Cheers

John

Offline

Location

Bayswater
Australia
Joined: 28/11/2012
Posts: 29
That has fixed it John,

That has fixed it John, thanks.
Just having a play, without much background reading. A few questions:
Is there a way to return the model of the switcher?
Are there file system functions in LUA?

 

ATEM Television Studio. BMD; HyperDeck Studio and Shuttle, HDMI->SDI  Battery Converter, SmartViewHD, GPI & Tally, UltraStudio Mini Recorder

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
Good you've sorted it, the

Good you've sorted it, the GUI for the system is very basic, as pretty obviously, my focus is on the backend processing, and eventually anticipate every function being remote configured, including script writing and testing, and the actually processing engine running as a background service.

I'll be adding my own FileSystem Functions, Text and XLS File loading (i.e. Open a Text file or spreadsheet in one thread and access it from many others).  However, in the meantime, you could try:

http://keplerproject.github.com/luafilesystem/index.html

Which although really focused on Unix(-like OSs), does have some Windows functions that might help you.

Help me out a little: Want to do you want be able to do?, don't need any potentially business-sensitive details, just what functions are you after???? 

Cheers

John

EDIT: Get Switcher Model Name is not something I have in there at the moment, I'll add it, but for now your best bet is to check the input count and determin the switcher model from that.

Offline

Location

Bayswater
Australia
Joined: 28/11/2012
Posts: 29
Having a play. I am

Having a play. I am attempting to write a script which will load images from a directory specified by user input. I noticed that your example attempts to load 32 images, my TVS has only 20 image slots, so I added this

MY_ATEM_MODEL = "TVS";
CONST_ARRAY_SIZE = 32;
if ( MY_ATEM_MODEL == "TVS") then
     CONST_ARRAY_SIZE = 20;
end;

I then set up a single line form and a path variable:

FORM_TITLE = "Preload Directory";
FORM_LEGEND = "Directory Name";
RELATIVE_PATH = "Cache\\Stills\\";
DIR_PRELOAD_DEFAULT = "default";
DIR_PRELOAD_VALUE = EnviroRead( "DIR_PRELOAD_VALUE" );
Your check and default value load follows here.

I am then using two loops to build the array and upload the images:

for i = 1, CONST_ARRAY_SIZE do
    lvDefaultFile[ i ] = ApplicationPath() .. RELATIVE_PATH .. DIR_PRELOAD_VALUE .. "\\" .. i .. ".png";
end;

for i = 1, CONST_ARRAY_SIZE do
     ATEMMixerMediaStoreUploadStill( CONST_MIXER_NO, i, lvDefaultFile[ i ] );
end;

I am wanting to read the contents of the specified directory for error checking.
The idea being, to speed up setup for a regular podcast, or given project after restarts.

Thanks

Kevin

ATEM Television Studio. BMD; HyperDeck Studio and Shuttle, HDMI->SDI  Battery Converter, SmartViewHD, GPI & Tally, UltraStudio Mini Recorder

Offline

Location

Bayswater
Australia
Joined: 28/11/2012
Posts: 29
How's this

John,

if ( ATEMMixerInputCount( 1 ) == 18) then
       MY_ATEM_MODEL = "TVS";
    else
       MY_ATEM_MODEL = "1ME maybe, maybe not";
end;
VSLog( "Switcher Model: " .. MY_ATEM_MODEL );

Can you tell me the input count for the 1ME and 2ME

Kevin

ATEM Television Studio. BMD; HyperDeck Studio and Shuttle, HDMI->SDI  Battery Converter, SmartViewHD, GPI & Tally, UltraStudio Mini Recorder

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
Kavadni, If you can wait

Kavadni,

If you can wait until tomorrow, I'll do this for you, as it's something I want to do as well.

Your code looks pretty good to me, as long as your files are named and numbered 1.png, 2.png, 3.png etc..

Make sure you are defining the MixerID and creating the Array.

CONST_MIXER_NO = 1;

lvDefaultFile = {}

What I do when writing scripts, as the debugging isn't that great (YET!!!), is I work in small steps, and kind of build up what I am doing. But most of all; I insert a "CLS();" at the top of every script, and then use VSLog("Some text :" .. SomeVariable) commands throughout my scripts so I can track the processing and see what is happening, once I've established my script is working correctly, I remove the logging.

I'll add a whole load of directory and file enumeration functions over-night (basically some function I use internally) and write a generic script that might show anyone "a method" of  doing this a type of thing  - Yet another patch..... but I think worth doing now.

Cheers

John
 

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
In the "Information\ATEM\"

In the "Information\ATEM\" samples directory there is a script named "Show_ATEM_SourceInputs" which will generate a list like shown below for 1ME. So the answer to your question for the 1ME on 2.7.2 is 23. You need to get someone with a 2ME to do the same on a 2ME, as I still haven't got around to ordering ours.

List of 1ME Sources

Offline

Location

Bayswater
Australia
Joined: 28/11/2012
Posts: 29
Yes I can wait

John,

Thanks.

>Your code looks pretty good to me, as long as your files are named and numbered 1.png, 2.png, 3.png etc..
I will hopefully left pad .. 01, 02 and possibly some regex to allow "01 [Descriptive Title].png"

Here is the script so far .. it works

CLS();
-- --------------------------------------------------------------------
-- Purpose: This script is to demonstrate how to use the basic 1 line
--          dialog to load a directory of images to the media store
--
-- Requires a directory of images (png) Cache\Stills\[dir]
-- with the images 1.png, 2.png and etc.
--
-- Also needs 20 or 32 images .. file system functions?
-- --------------------------------------------------------------------

CONST_MIXER_NO = 1;

if ( ATEMMixerInputCount( 1 ) == 18) then
       MY_ATEM_MODEL = "TVS";
    else
       MY_ATEM_MODEL = "ME1 Maybe";
end;

VSLog( "Switcher Model: " .. MY_ATEM_MODEL );

CONST_ARRAY_SIZE = 32;
if ( MY_ATEM_MODEL == "TVS") then
       CONST_ARRAY_SIZE = 20;
end;

-- Because I am using 9 images to test.
CONST_ARRAY_SIZE = 9;
--

FORM_TITLE                        = "Preload Directory";
FORM_LEGEND                       = "Directory Name";
RELATIVE_PATH                     = "Cache\\Stills\\";
DIR_PRELOAD_DEFAULT               = "default";
DIR_PRELOAD_VALUE                 = EnviroRead( "DIR_PRELOAD_VALUE" );

if ( DIR_PRELOAD_VALUE == 0 ) then
       DIR_PRELOAD_VALUE = DIR_PRELOAD_DEFAULT ;
end;

VSLog( "INITIAL VALUE: " .. DIR_PRELOAD_VALUE );

DIR_PRELOAD_VALUE = VRFormsInstantiateModal(
                             "OneLineDialog", "",
                              FORM_TITLE,
                              FORM_LEGEND,
                              DIR_PRELOAD_VALUE );

if ( DIR_PRELOAD_VALUE ~= "CANCELLED" ) then
     EnviroWrite( "DIR_PRELOAD_VALUE", DIR_PRELOAD_VALUE );
     lvDefaultFile = {};

     for i = 1, CONST_ARRAY_SIZE do
       lvDefaultFile[  i ] = ApplicationPath() .. RELATIVE_PATH .. DIR_PRELOAD_VALUE .. "\\" .. i .. ".png";
     end;

     for i = 1, CONST_ARRAY_SIZE do
       ATEMMixerMediaStoreUploadStill( CONST_MIXER_NO,  i, lvDefaultFile[ i ] );
     end;
else
     EnviroWrite( "DIR_PRELOAD_VALUE", DIR_PRELOAD_DEFAULT );
end;

ATEM Television Studio. BMD; HyperDeck Studio and Shuttle, HDMI->SDI  Battery Converter, SmartViewHD, GPI & Tally, UltraStudio Mini Recorder

Offline

Location

Bayswater
Australia
Joined: 28/11/2012
Posts: 29
Sort Function List

John, could you please do a sort on the right hand side function list?

ATEM Television Studio. BMD; HyperDeck Studio and Shuttle, HDMI->SDI  Battery Converter, SmartViewHD, GPI & Tally, UltraStudio Mini Recorder

Offline

Location

Bayswater
Australia
Joined: 28/11/2012
Posts: 29
Yes, I found that script

John,

That's how I got the 18 count for the TVS

if ( ATEMMixerInputCount( CONST_MIXER_NO ) == 18) then
       MY_ATEM_MODEL = "TVS";
    elseif ( ATEMMixerInputCount( CONST_MIXER_NO ) == 23) then
       MY_ATEM_MODEL = "1/ME";
    else
       MY_ATEM_MODEL = "2/ME Hopefully";
end;

VSLog( "Switcher Model: " .. MY_ATEM_MODEL );

I think this will find it's way into my autoexec

Kevin

ATEM Television Studio. BMD; HyperDeck Studio and Shuttle, HDMI->SDI  Battery Converter, SmartViewHD, GPI & Tally, UltraStudio Mini Recorder

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
The List on the right hand

The List on the right hand side is a tricky one, as I don't want to mess up anyone who has become used to the order as it currently is, and that includes myself, as I found it really weird, when I sorted the list, and so I turned it off again, so I want to be careful about changing the GUI, as something like 450 downloads have now been done on only JustMacros 2.0, and I really don't want to p155 anyone off by changing things like that without careful consideration.

What I am looking at adding in some test builds I am involved with on other another project, that actually has about twice as many commands as the ATEM build has: Is "filtering", so if you aren't using CasparCG, or you aren't scheduling tasks, you can turn off entire groups of commands.

Also adding a search to the top of the list, so you can quickly enter a few characters, and it'll filter the command list and only show those commands containing the entered sequence of chars.

And I will now also add a Sorted (Yes/No) option to that menu too. Although I can quickly add the extra File System commands overnight, the GUI changes will have to wait a few days, I am afraid.

I hope these changes will help you, and allow the system to work a little easier for you. 

Regards

John

EDIT: At the link below is yet another patch (all BMD firmware), includes the file system commands necessary to scan the disk and sub-directories, and hence you could write scripts to scan paths, and uploads the files it files. "ExtractFileName / Path / Extension" functions are also included for easy of coding.

I've also had a first go at migrating the Command Filters and Search. So you can enter "atem fly" in the search at the top of the list, and the command list will auto-filter as you type. It ANDS words, but they don't need to be in the correct order.

Also you can right mouse click and hide/show command groups, as well as enable and disable the sort function on that list.

http://www.vis-ranger.com/ATEM/PatchVersionForFileSystemCmds.zip

Offline

Location

Bayswater
Australia
Joined: 28/11/2012
Posts: 29
Show_ATEM_Media_Status : Bug

John,

Might be a bug in Show_ATEM_Media_Status and or the function which uploads : ATEMMixerMediaStoreUploadStill
More testing is required.

Suffice:

05 Dec 13:16:17.381: LUA[$04FAC5D8] : --------------------------------------------------------------------
05 Dec 13:16:17.381: LUA[$04FAC5D8] :  M E D I A    S T A T U S
05 Dec 13:16:17.381: LUA[$04FAC5D8] : --------------------------------------------------------------------
05 Dec 13:16:17.382: LUA[$04FAC5D8] :                  Clips Count : 0
05 Dec 13:16:17.382: LUA[$04FAC5D8] :                 Stills Count : 7
05 Dec 13:16:17.382: LUA[$04FAC5D8] :                 Tracks Count : 0
05 Dec 13:16:17.382: LUA[$04FAC5D8] :   Type : Still
05 Dec 13:16:17.382: LUA[$04FAC5D8] :  Index : 7
05 Dec 13:16:17.382: LUA[$04FAC5D8] :    ( 1) {60DFB613-252B-52E2-5E75-D18A34B9B1BB} - 01 NTSC Bars
05 Dec 13:16:17.382: LUA[$04FAC5D8] :    ( 2) {9E33B7D4-7093-B8BE-9201-C4EBB0D272A5} - 02 CombinedColourMap
05 Dec 13:16:17.382: LUA[$04FAC5D8] :    ( 3) {463B234E-B8D2-3412-5368-72CF27E3AA25} - 03 ATEM 1 ME Panel
05 Dec 13:16:17.382: LUA[$04FAC5D8] :    ( 4) {01B40AE2-E96F-CA94-113F-C2C330B05BA1} - 04 ATEM 2 ME Panel
05 Dec 13:16:17.382: LUA[$04FAC5D8] :    ( 5) {DE4D0C4B-F7F5-BDC9-4404-DB662912B8F7} - 05 ATEM Camera Converter
05 Dec 13:16:17.382: LUA[$04FAC5D8] :    ( 6) {1A7CCB7A-D44E-940B-95CF-D8393397F25E} - 06 ATEM Television Studio
05 Dec 13:16:17.382: LUA[$04FAC5D8] :    ( 7) {00000000-0000-0000-0000-000000000000} - [BLANK]

Extension would be good here, for when TGA works.

There are actually 9 stills in the pool, and none of the names are correct.
That info reflects the very first batch of still I placed in the pool, 2 days ago.

After changing the stills via the BMD interface , and by the ATEMMixerMediaStoreUploadStill function
It reports the same information, even though I can see more than 7 stills in the BMD interface, and use the stills as sources.

Cheers

Kevin

ATEM Television Studio. BMD; HyperDeck Studio and Shuttle, HDMI->SDI  Battery Converter, SmartViewHD, GPI & Tally, UltraStudio Mini Recorder

Offline

Location

Bayswater
Australia
Joined: 28/11/2012
Posts: 29
Looking more closely

John,

I have analysed a bit more:

I am using a TVS with 20 slots for images in the media pool.

Querying for image name"

ATEMMixerMediaPoolGetStillsName( 1, 1 ); through to ATEMMixerMediaPoolGetStillsName( 1, 10 );
Work as expected.

ATEMMixerMediaPoolGetStillsName( 1, 11 ); and upwards to 20 produce an error.

TVISATEMMediaPool.Still(10): Error: List index out of bounds (10)

It looks like you/someone is using a single digit decimal for a function input range.

Also:

for i = 1, STILL_COUNT do
   VSLog('   (' .. LPad( i, 2 ) .. ') ' ..  ATEMMixerMediaPoolGetStillsGUID( 1, i ) .. ' - ' .. ATEMMixerMediaPoolGetStillsName( 1, i ) );
end;

This loop will not account for empty slots.

I would suggest a function that performs 20 queries of a TVS and 32 for 1/ME. A query of each slot.

I have added this to autoexec.

CONST_MIXER_NO = 1;

if ( ATEMMixerInputCount( CONST_MIXER_NO ) == 18) then
       MY_ATEM_MODEL = "TVS";
    elseif ( ATEMMixerInputCount( CONST_MIXER_NO ) == 23) then
       MY_ATEM_MODEL = "1/ME";
    else
       MY_ATEM_MODEL = "2/ME";
end;

EnviroWrite( "MY_ATEM_MODEL", MY_ATEM_MODEL );
VSLog( "Switcher Model: " .. EnviroRead( "MY_ATEM_MODEL" ) );

I would like to see something similar implemented in the application, preferably an array to allow for future addressing multiple switchers. It will allow for case statements in your functions.

Cheers

Kevin

ATEM Television Studio. BMD; HyperDeck Studio and Shuttle, HDMI->SDI  Battery Converter, SmartViewHD, GPI & Tally, UltraStudio Mini Recorder

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
Kavadni, I'll take a look at

Kavadni,

I'll take a look at this for you. One of the things that was an "early bug" is that the JM was only enumerating the clips at system startup.

So the system needs to refresh it's view of the switcher media pool whenever it gets a message from the mixer to say something has changed in the media pool. It is slightly more complicated than that, as the system tries to minimize when it reads that data, such that if all 32 stills are updated, it doesn't re-read the entire list 32 times in a short period -  I guess I've screwed that up in the move from OLD Media Pool to NEW Media Pool interfaces.

Multiple mixers are certainly covered in the system. The first parameter to every function is the mixer number. Obviously, I've intentionally restricted the system to one mixer at the moment. Early in the new year, the multiple mixer control version will be available. 

I'll do my best to solve the reading of still and clip information correctly with another patch as soon as I can for you, if it's easy I'll do it this evening.

Regards

John

Offline

Location

Bayswater
Australia
Joined: 28/11/2012
Posts: 29
I can confirm
JohnBengston wrote:

... JM was only enumerating the clips at system startup.

I can confirm that is still the case.

It's problematic, considering updates might come via other mechanisms, such as the photoshop plugin.
I am sure you're aware of that.

I think you're on the right track with the focus on Caspar and the Media Pool.

Would it be possible to give JM user defined function [hot] keys. (the 12 function keys would be enough.)
I don't have an XKeys board as yet .. I have to wait for somebody to pay me.

ATEM Television Studio. BMD; HyperDeck Studio and Shuttle, HDMI->SDI  Battery Converter, SmartViewHD, GPI & Tally, UltraStudio Mini Recorder

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
Kavadni, The reason the media

Kavadni,

The reason the media pool support is a bit lacking, is before BMD ATEM Firmware version 3.3, the media pool was going to be a pay-only feature, and I had a pretty major media sub-system based on 2.7.2 media-pool which I use on other projects. It's been one of my "pain-in-the-neck" issues, is figuring out how to go about releasing a merge, whereby my custom functionality is removed, and the system more directly wraps the "Official Media Pool Interface", in 3.3 and later versions. 

I assure you; I will get this fixed, and I hope quite quickly.

As for keyboard mappings, it's already in there in the patch I published last night, specifically on your request to have a better way of navigating the command list. Make sure you have "Hide Task Manager Commands" turned off, and you'll see the commands you need are prefixed "TaskManGKSC........".

It's pretty easy to use, for example in my Autoexec I have:

TaskManGKSCCreateMapping( 49, "17,18", "TEST_KB_CAP_1" );

TaskManGKSCCreateMapping( 50, "17,18", "TEST_KB_CAP_2" );

This maps Ctrl-Alt-1 to Macro "TEST_KB_CAP_1", and Ctrl-Alt-2 to "TEST_KB_CAP_2", and these keystrokes will work in most other applications, as long as the other application hasn't locked out key-trapping, thus you don't need JustMacros to be the active application, but you should test the apps that allow you to hook the keystrokes, for example: On Win7x64, internet Explorer 32 bits prevents it, but IEx64 allows it.

It's also worth saying you can Turn on and off logging of "Global Key Trap Data", by right mouse clicking the Logging window, and selecting the appropriate Logging option. This way you can see the Keyboard codes you'll need to use to map keyboard actions to JustMacros scripts.

It's perfectly possible to create 3 and 4 button combinations to trigger actions, and thus, although I 100% recommend XKeys XK Range of panels for use with the ATEM, you can build a very powerful keyboard mixer using this GKSC functionality.

Good Luck with your project, and thanks very much for your extensive feedback. I reiterate that I take all problems reports very seriously and go out of my way to resolve reported problems.

Cheers

John

 

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
Sorry here is the screen shot

Sorry here is the screen shot I forgot:

Command List Filtering

Offline

Location

Adelaide
Australia
Joined: 09/11/2012
Posts: 4
Next Version Release Update

Hi there, was just wondering if there were any updates regarding the next release version with Matrix Board Support? Got an event coming up which we really need the functionality for so was just checking in. Kind Regards. 

Offline

Location

Tennessee
United States
Joined: 21/12/2011
Posts: 12
I'm trying to make the change

I'm trying to make the change to JustMacros 2.4 for the added features.  But, I'm having some issues with my Caspar playlist macros.  These Macros worked perfectly in the last version, I'm not sure what has changed, or if I'm just missing something. Here is the code for the macro I'm trying to do.  Basically, I just want the ATEM to switch to HDMI Input 3 and then play the clip.  It seems to be hanging on the Clear Layer command.  Any Suggestions?

ATEMMixerMESetProgramInput( 1, 1, 4 );

 

-- Define some constants

lvTimePerFrame   = 30;

lvPreRoll        = 2;

lvCasparRenderer = 1;

lvCasparChannel  = 1;

lvCasparLayer    = 0;

lvLoop           = "FALSE";

lvAutoPlay       = "TRUE";

 

-- Stop the Layer to ensure everything is clear and the first clip will autoplay

CasparStopLayer( lvCasparRenderer, 1, lvCasparLayer )

 

-- Load The First Clip

CasparLoadToLayerBG( lvCasparRenderer, lvCasparChannel, lvCasparLayer, "marriott", lvLoop, lvAutoPlay);

 

 

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
TechnicalDaniel, If you have

TechnicalDaniel,

If you have a few minutes on Monday, I need a tiny bit of help mapping the messages to button numbers. I have a Pi3 matrix board, and basic support has been added in the latest Patch release on comment 225, however, I'm not a big soldering iron and  bubble etch tank user, and therefore haven't got round to building anything to attach to the Pi3 board to allow me to map the buttons. I'll put up another patch tonight for you for you to try out, and if you can feed back some debug info from your build, I am sure 'll be able to help you get it sorted.

Switchroo,

Your code looks good to me, although I would suggest adding a Sleep(500) after Stoping a layer. CasparClearLayer()  does a similar thing, but will actually cause a reset of the Flash COM object, if you have a template on that layer.

The other thing to remember is AUTOPLAY will not cause a clip to automatically play unless the layer is truly empty. This is a CasparCG feature, and I think it is right. Autoplay cause the background layer to automatically play as soon as foreground clip ends. So, if your STOP command hasn't finished stopping the foreground clip when the background clip gets loaded, something weird may be happening.

You could probably achieve your goal by not stopping the foreground layer before loading the new clip to the background. Sleep for an appropriate amount of time to load the clip, then issue a play command, either automatically or on a user action button.

Final suggestion, pass all the parameters (except de-interlace filter) in case I've got something wrong with regards to function overloading.

CasparLoadToLayerBG( 1, 1, 0, 'VISMEDIA\\YELLOWSUN', 'TRUE', 'TRUE', 1, 5000, 'SLIDE', 20, 'RIGHT', 'EASEINSINE' )

Obviously you can pass "CUT", 0, "LEFT", "LINEAR", to achieve what the system was defaulting to in previous versions.

Hope something here helps in some way.

Regards

John

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
TechnicalDaniel, At the link

TechnicalDaniel,

At the link below is another patch version which has the Legacy XKeys Matrix and the newer XKeys XK Pi3 Matrix board support properly implemented.

http://www.vis-ranger.com/ATEM/PatchVersionForFXKeysMatrixAndPi3.zip

What will likely be wrong is the button mappings. So if you lay your panel out as 16 columns of 8 buttons, Justmacros wants to number the buttons from top-left to bottom-right, and the illustration of the panel will look like that.

Picture of Matrix Mimic Diagram

So you will either have to live with assigning your macros / actions to whatever buttons your particular panel maps the signals to, or let me know how you'd like me to allow re-mapping of the buttons.

Hope this helps you get your urgent job done, the proper 2.5 release is still "imminent", but we are still chasing out bugs.

Regards

John

Offline

Location

Dartford
United Kingdom
Joined: 28/09/2011
Posts: 59
I saw some strange behaviour

I saw some strange behaviour recently and just thought I'd mention it here.

Two of my ATEM/JustMacros operators said they saw it stop working after a few button/macro presses. No button presses would take effect after 3-5 macros being used. Restarting JM 'solved' the problem for a few more button presses. I had used it the night before with no problems. I was able to re-create the behaviour without exception. It also seemed to stop working mid-transition which I thought was odd.There weren't any error messages logged as far as I can tell. I noted that restarting JM and using the JM interface to run the macros without the XKeys was fine. No problems doing that.

I couldn't work out what was the cause of all this as there weren't any changes I could think of that were made. Checking windows update I noted that there was one applied at log off the night before it started misbehaving but doing a system restore to before this update didn't fix it.

Anyhow, I located the JM registry keys and deleted the entire tree, then restarted JM and re-associated the XKeys and re-mapped all the  macros. This seems to have fixed it, and I haven't had the problem since. I'm a bit worried as I'd obviously prefer for this not to happen again! :D

Any idea what might have caused this?

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
Jasonvincent,I have never

Jasonvincent,

I have never seen that behavior, and I agree it's very worrying, and should NOT happen.

My gut instinct based hardly anything, is that you had associated a macro or some kind of action with a button which you had blanked off.

Some ideas for how to debug if you ever see this again:

  • Does the XKeys illustration still show the buttons being pressed. i.e. does that screen show them going Yellow, but no macros are running???? This would indicate you had somehow crashed the entire Lua sub-system, that would be seriously impressive, but in the very early days of development I did manage to crash it with some crazy scripts. If they don't go yellow, Just Macros has somehow lost contact with the panels, and it won't currently recover from that. That would also be very weird and I've never seen it except when panels have been physically unplugged, could this be a dodgy USB Hub or extension lead?
  • Use Justmacros Task manager to check to see if your Lua functions are running, and therefore problem is with the comms with the mixer. Do this by making sure you are selected in the macro edit window and press F4. This will change the screen to show a very basic "Environment display". Script housekeeping should run every 5 seconds or so, and when you hit your buttons, you should see your macro appear in the list at the bottom of the page, just above the log. Scripts that long or are stuck in never-eneding loops will appear in the list at the top of the page, but this list does not update in real-time, so if a task stays there for a second or two, don't assume it's running slow. The completed list at the bottom of the page shows (approximately) how long it took to execute your script. To get back to the macros page, click onto the list of completed scripts and press F4 again.
  • Always check that you haven't accidentally assigned a macro to a button you have blanked off. It's very easy to assign a macro, because until you press a button for the first time, JustMacros doesn't know the state of a panel. Using the assign button might end up assigning macros to blanked buttons.
  • Finally: always export your "HKEY_CURRENT_USER\Software\VIS\Ranger\XKeys\Profiles" registry key before deleting it if you have a problem. I may have been able to re-create your problem and thus track it down if you were able to send it me your profiles.

Cheers

John

Offline

Location

paris
France
Joined: 17/12/2012
Posts: 23
Xkay backlight heeeeeelp

Hi evrybody

I'm trying to make Leds working when pushing a button on my Xkey 24 for controlling my ATEM.

Can someone help me.
I understood macros and keystroke
i'm using justMacro 33 plus.

how to make a button led ON when pressing it ?
how to choose the color ?
How to choose mode, Toggle,  etc...

For ex. i choose Aux 1 on my atem, how to get feedback info to xkey ?.

i mean i can know if i'm on Aux 1 if it is "ON" (red or blue) on my xkey 
and if i change to Aux2,

how to make the button i've assigned to Aux 1 OFF
and the button i've assigned to Aux 2 "ON"

I need help or if you know a "start from scratch" tutorial

Thanks

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
kimage93,Firstly welcome to

kimage93,

Firstly welcome to ATEMUser.com.

In the sample scripts you should find a directory marked "ATEM Crosspoints".

There are a set of Macros in there that if you assign to the 24 buttons on a XK24 panel, allow you to manage cross- points for TX, Prev, AUX1,2,3 as well as the sources for the DSKs and USKS.

There is an inherent problem with this method, as when you allocate a Macro to a button, the system automatically uses the Red LED back-lamp to indicate that a button with a macro assigned is running. Thus my examples uses the Blue LED to show which Destination and Sources are selected, You can avoid this problem by defining the XKeys buttons as type "STANDARD" not type "MACRO", and put the code from the macros directly in the buttons.

The new "Events" functionality (discussed above) will allow you to cause the panel to update automatically on a change to the AUX outputs or Preview bus,  made by another system (i.e. a BMD Panel or Software instance). You can also schedule a refresh of the tally every 1 second which should also keep everything up to date.

If this all sounds like too much, and I know my documentation is kind of "none-existent" at the moment. So, send me exactly how you want your panel to be organized, and a point by point specification of what you need, and I'll adapt the samples, for you, over the next day or two if you don't feel confident yet to go for it, or you are under any kind of time pressure.

I hope you'll stick with it, it's a steep learning curve, but I hope you'll think it was worth it once you you've been using it for a while.

Best Wishes

John

Offline

Location

Adelaide
Australia
Joined: 09/11/2012
Posts: 4
RE: TechnicalDaniel, At the link

Hi John,

Thank you very much for putting out a patch for us to use. However I'm unsure exactly how to use this patch... when I open the program I can't find how to bring up the Matrix Board panel you have in your screenshot nor can i find the videohub controls in the command list.  

Maybe I'll give you the scenario for what we want to do:-
 
So basically we have 8 camera chains (CCU's) with their own Remote Control Panels (RCP) in which we control cameras.. I'll assume you know the process of Camera Control Units. :) Our CCU room has two banks of these RCP's (4 per operator) and a monitor, vectorscope and waveform for each bank. Basically what happens at the moment is when you push down on one of the paddles it sends a GPI trigger through a standard crossbar which flicks the monitor to the desired camera source that RCP controls. This works very well at the moment however we wish to upgrade our system for an event coming up in a few weeks to a full HD system. Part of this upgrade is replacing our patch bay with a videohub and all our crossbar's with a smart controller. So our dilemma is we need to create a way so that when we push down on the RCP paddle, it flicks the monitor to the correct source by performing a simple route on the videohub. The Pi3 Matrix Board is the perfect way to do this. In terms of wiring and the circuitry required to do this, we have that all sorted and tested - we just need your program to convert the command from the Matrix board to the command on the videohub.
Hopefully this makes sense, please let me know if you have any questions regarding this scenario.

JohnBengston's picture
Offline

Location

London
United Kingdom
Joined: 14/01/2012
Posts: 2145
Technical Daniel, Firstly

Technical Daniel,

Firstly lets find the VideoHub controls. On the command list on the right hand side of the screen.

  • Right Mouse Click
  • Select "Show All"
  • Now in the black edit box immediately above list type "VH", and all the VideoHub commands will appear and nothing else will be shown.

Or you could turn "Hide All commands", and then Right-mouse-Click -> Devices -> Hide BMD Videohub Commands.

Screen Shot

So to move onto the 2nd area, where is the Pi3 Board?

Select the XKeys button at the top of the main window.

This should change the screen to a 2nd mode. Down the left side of the screen you should see two zones one above the other. The top one should list your XKeys Panels attached, and the bottom panel should show the Xeys Profiles you have defined.

Firstly confirm the Pi3 Board is recognized, and then it should be a simple case of triggering your GPIs and seeing which buttons turn Yellow. You can create a Profile using a right mouse click on the bottom of the two panels on the left of the screen, and selecting "Add Profile For...".

Panel showing where Pi3 appears

The Unit Identifier and Profile Unit identifiers must match for the events to fire.

Hope this helps, if not, just post again, and I'll try something else.

John

Offline

Location

paris
France
Joined: 17/12/2012
Posts: 23
Atem xkey programming

Hi john,
thanks for your answer

this how i would like to first configure my xkey 24 (horizontally) for my ATEM 2ME