{"id":129,"date":"2018-07-12T13:56:35","date_gmt":"2018-07-12T13:56:35","guid":{"rendered":"http:\/\/techministry.blog\/?p=129"},"modified":"2018-07-12T13:56:35","modified_gmt":"2018-07-12T13:56:35","slug":"on-screen-tally-light-for-propresenter-using-software","status":"publish","type":"post","link":"https:\/\/techministry.blog\/?p=129","title":{"rendered":"On-Screen Tally Light for ProPresenter using software"},"content":{"rendered":"<p>I wrote a new piece of software recently that I&#8217;m really excited about. It&#8217;s called <em>ProTally<\/em> and it is designed to display video tally markers directly on the screen.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"  wp-image-140 aligncenter\" src=\"https:\/\/techministry.blog\/wp-content\/uploads\/2018\/07\/icon_512x5122x.png\" alt=\"icon_512x512@2x\" width=\"152\" height=\"152\" \/><\/p>\n<p>What&#8217;s tally? In broadcast setups, it is often helpful to be able to tell camera operators, computer graphics workers, etc. when their shot is being used on-air or visible on screens. Most broadcast equipment comes with some sort of tally light that, when connected to the right system, lights up to let the operator know.<\/p>\n<p>With today&#8217;s broadcast equipment, a lot of this tally information can be communicated directly over the network, in real time using a variety of protocols. One particular protocol is TSL UMD, from Television Systems Limited for Under Monitor Displays. It is supported by a wide variety of broadcast industry equipment and allows the devices to know the tally state of one another.<\/p>\n<p>In church environments where we use computer software like ProPresenter to send CG content to a video switcher, it can be very helpful to have a tally light that the user can see so they don&#8217;t accidentally change a graphic while it is live or on the screen. While there are a variety of external tally lights available for this purpose, I wanted to design something that would allow for a <span style=\"color:#339966;\">green<\/span> (in preview) or <span style=\"color:#800000;\">red<\/span> (in program\/on-air) box directly on the screen that the user can easily see while operating the software, without having to purchase additional hardware.<\/p>\n<p>For this project, I used Node JS and the Electron libraries, along with an existing Node JS module that acts as a TSL 3.1 Protocol server. I was able to whip up a demo in just a few short hours. Then it was just a matter of finessing and adding features.<\/p>\n<p>Using <em>ProTally<\/em>, you can monitor up to 4 Tally Addresses using TSL UMD 3.1 and keep track of their Preview, Program, and Preview+Program states. You can even customize the colors as needed! The boxes can be resized and moved around on the screen and those positions will be saved and recalled the next time the software launches.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"  wp-image-133 aligncenter\" src=\"https:\/\/techministry.blog\/wp-content\/uploads\/2018\/07\/screen-shot-2018-07-11-at-10-31-00-pm.png\" alt=\"Screen Shot 2018-07-11 at 10.31.00 PM\" width=\"509\" height=\"445\" \/><\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"  wp-image-136 aligncenter\" src=\"https:\/\/techministry.blog\/wp-content\/uploads\/2018\/07\/screen-shot-2018-07-11-at-10-32-26-pm.png\" alt=\"Screen Shot 2018-07-11 at 10.32.26 PM\" width=\"466\" height=\"292\" \/><\/p>\n<p>I decided to add options to allow the user to choose whether they wanted a filled-in box or a transparent box with a color border. It also reads the label data and stores that as it comes in, to give names to the tally addresses. And, because we use two Carbonite switchers at my church, I also wrote in an object array that uses the TSL UMD protocol implementation described by Ross here: http:\/\/help.rossvideo.com\/carbonite-device\/Topics\/Devices\/UMD\/TSL.html<\/p>\n<figure id=\"attachment_135\" aria-describedby=\"caption-attachment-135\" style=\"width: 318px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-135\" src=\"https:\/\/techministry.blog\/wp-content\/uploads\/2018\/07\/screen-shot-2018-07-11-at-10-31-31-pm-e1531364304441.png\" alt=\"Screen Shot 2018-07-11 at 10.31.31 PM\" width=\"318\" height=\"328\" \/><figcaption id=\"caption-attachment-135\" class=\"wp-caption-text\">The software stores the label names of the devices as they are read in the tally data over time, so as the software runs longer, this drop down list becomes mnemonicly helpful.<\/figcaption><\/figure>\n<p>Due to some limitations of the Electron framework, I had to make the windows appear &#8220;always on top&#8221; of other windows, to ensure they would be visible while clicking around in ProPresenter (or ProVideoServer or whatever software being used). This can be a little annoying if you&#8217;re using the computer for another task and don&#8217;t want to see the tally boxes, so to help with that, I added a &#8220;Hide All Boxes&#8221; option that can be used rather than quitting the software.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" size-full wp-image-131 aligncenter\" src=\"https:\/\/techministry.blog\/wp-content\/uploads\/2018\/07\/screen-shot-2018-07-11-at-10-30-45-pm.png\" alt=\"Screen Shot 2018-07-11 at 10.30.45 PM\" width=\"159\" height=\"123\" \/><\/p>\n<p>Here is <em>ProTally<\/em> in action:<\/p>\n<p>&nbsp;<\/p>\n<figure id=\"attachment_139\" aria-describedby=\"caption-attachment-139\" style=\"width: 644px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-139\" src=\"https:\/\/techministry.blog\/wp-content\/uploads\/2018\/07\/screen-shot-2018-07-11-at-10-35-13-pm-e1531403675254.png\" alt=\"Screen Shot 2018-07-11 at 10.35.13 PM\" width=\"644\" height=\"444\" \/><figcaption id=\"caption-attachment-139\" class=\"wp-caption-text\">This is a transparent window with a border sitting on the output window of ProPresenter.<\/figcaption><\/figure>\n<p>&nbsp;<\/p>\n<p>&nbsp;<\/p>\n<figure id=\"attachment_137\" aria-describedby=\"caption-attachment-137\" style=\"width: 617px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\" size-full wp-image-137 aligncenter\" src=\"https:\/\/techministry.blog\/wp-content\/uploads\/2018\/07\/screen-shot-2018-07-11-at-10-33-51-pm.png\" alt=\"Screen Shot 2018-07-11 at 10.33.51 PM\" width=\"617\" height=\"519\" \/><figcaption id=\"caption-attachment-137\" class=\"wp-caption-text\">This is a filled-in box.<\/figcaption><\/figure>\n<p>&nbsp;<\/p>\n<p>This solves a problem for a lot of people who want on-screen tally for ProPresenter, ProVideoServer, or whatever software they may be using. You can even use it to monitor general inputs like cameras, etc. Just assign the tally address, position the box, and you&#8217;re set!<\/p>\n<p>I will have this available in my <a href=\"https:\/\/github.com\/josephdadams\/\" target=\"_blank\" rel=\"noopener\">GitHub repository<\/a> soon. Feel free to check it out and if you use it, let me know how you like it! I plan to add more features to it as I have time.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I wrote a new piece of software recently that I&#8217;m really excited about. It&#8217;s called ProTally and it is designed to display video tally markers directly on the screen. What&#8217;s tally? In broadcast setups, it is often helpful to be able to tell camera operators, computer graphics workers, etc. when their shot is being used &hellip; <a href=\"https:\/\/techministry.blog\/?p=129\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;On-Screen Tally Light for ProPresenter using software&#8221;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[17,29,40,50,51,52,68,72],"class_list":["post-129","post","type-post","status-publish","format-standard","hentry","category-uncategorized","tag-church","tag-javascript","tag-nodejs","tag-production","tag-programming","tag-propresenter","tag-technology","tag-video"],"_links":{"self":[{"href":"https:\/\/techministry.blog\/index.php?rest_route=\/wp\/v2\/posts\/129","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/techministry.blog\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/techministry.blog\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/techministry.blog\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/techministry.blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=129"}],"version-history":[{"count":0,"href":"https:\/\/techministry.blog\/index.php?rest_route=\/wp\/v2\/posts\/129\/revisions"}],"wp:attachment":[{"href":"https:\/\/techministry.blog\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=129"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/techministry.blog\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=129"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/techministry.blog\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=129"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}