Tuesday, July 29, 2025

Control Powerpoint slides with QLC+

Install this application called OSCPoint

OSCPoint: An OSC API for PowerPoint

Here is the GitHUB page and a link to a list of actions you can do.  This page will show the "NEXT" slide option as its the most common one.

oscpoint/ACTIONS.md at main · phuvf/oscpoint


1> Install the application, and it should appear in your PowerPoint tool bar

Open up a PowerPoint with some slides.


2> Setup QLC for OSC

Go to QLC -> INPUT/OUPTU tab

Scroll to the OSC section.

If you are running QLC on the same machine as PowerPoint, select 127.0.0.1

If you are using it on a different machine, select the local IP of your computer that is running QLC+

Select INPUT and FEEDBACK

Enter in the feedback port in INPUT PORT of 35550 and port 35551 into both output port sections.

3> Setup a dummy QLC fixture and scene

In order for QLC to toggle a button, we'll create a dummy fixture and scene

In this example, I'm using DMX 1 using a generic dimmer.  It can be anything really, i'm using a dummy, non existent light and unused DMX channel 



Create a dummy scene with this fixture and have it activated (checkbox at top)


4>  Setup the OSC command(s) to be available to QLC

Click on INPUTS/OUTPUTS

Select PROFILE

Select the green + PLUS button


Fill in the description and set the TYPE to OSC

Click on INPUT MAPPING

Click the GREEN button and put in an INPUT CHANNEL of 1 

and in the 'name' put /oscpoint/next


Click OK and OK

5> Setup a button in QLC to activate the OSC command(s)

Click on VIRTUAL CONSOLE

Create a button




In the "GENERAL" select the dummy scene you made earlier



External Input click on "CHOOSE"



Should look something like this.




6> Test it out

Click on the QLC PLAY/START button.



Start your PowerPoint.

now click your button in QLC and the slide should advance.
Click on the button in QLC.  Each time you do, you should see the slide change.


Saturday, July 26, 2025

Use QLC+ to control an X32 using OSC

 Work in progress. Mostly placeholder right now while I get all the details

Here is how you can use QLC to send commands to your X32 using the OSC protocol.

In my real-world example, I want to control the 6 mute group buttons, specifically #5 and #6.  I am using TheaterMix to control mic mutes, and I specifically use mute group #6 to advance the scenes.  But this explanation will cover most any connection and commands, I think.

1.  Get the IP of your X32

Have your X32 running and connected to the network.  Note the IP of it.

In my example, the ip is 10.0.0.93


2.  Download and install an x32 input profile

Here is a OSC X32 Profile, this needs to be put in your "/inputprofiles" sub directory (restart of QLC)

You Should see in Input/Output -> Profiles -> Profile "Behringer X32Rack-QLC" 



3.  Get the scene file which contains some pre-built faders and buttons

Here is a QLC scene file.  Download and open that file up in QLC




4. Setup the OSC connection.  QLC -> X32

Click on Input/Output -> Mapping

In the section OSC under the plugin tab, find the IP of your computer running QLC.  (In my example, QLC ran on my computer with the IP of 10.0.0.63)

Select FEEDBACK



5.  Setup the OSC connection.  QLC -> X32 (continued)

Double click on the IP to setup the configuration to the X32

In my example, my X32 is 10.0.0.93.  So under "Output Address" put in the IP of your X32.

Under "Output Port" use 10023


Click on OK

Setup the OSC connection.  QLC -> X32

Go to the Virtual Console, hit play.  If you have everything configured up, then moving the faders in QLC and pressing the mute group buttons, should reflect on the X32



If this tutorial has been of any help to you, I'd love to know! 
If you have suggestions of how to improve it, let me know in the comments!  Thanks!

Monday, July 21, 2025

Dock advanced scene switcher macros as buttons

 Here are some steps to dock Advanced Scene switcher macros to buttons in the OBS interface.

Select the macro you want to dock from the Advanced Scene Switcher macro list, then select the gear icon.

In this example, the macro "Replay-In" is being docked.


A new window will pop up, at the bottom there will be a section called "Dock Settings"
Select the option "Register dock widgets..."


Now give it a name in the "Run button text".  This is the name of the button as you want it to appear in the OBS console.  Useful if your macro names are cryptic in nature and you want something different to appear for the user.


I usually deselect "Add button to pause or unpause...".  If your macro is being manually triggered, you don't usually need this feature.


Scroll to the bottom of this windows and select "OK" for your changes to be saved.

Go to the main OBS window and select "DOCKS".  In my example you see the macro name (Replay-In) as it appears in AdvSS.



Select your macro name

You should now see it in a box with the name inside the box reflecting what you entered in for the Run Button Text.


You can now doc it into your OBS windows





Wednesday, June 4, 2025

Determine Dell Service Tag in Windows

This command will show you the serial number of your CPU of your computer.  
If your computer is a DELL, that is also known as the service tag.
  1. Open up a PowerShell window.

  2. Enter this command
    GWMI -Class Win32_Bios | select SerialNumber

  3. Press Enter.

System will return with your Dell Service Tag.

You can then enter that into the Dell site to get further information about the system.


If this tutorial has been of any help to you, I'd love to know! 
If you have suggestions of how to improve it, let me know in the comments!  Thanks!

Wednesday, May 21, 2025

OBS Replay using Source Record (2+ Cameras)

This replay will record multiple camera inputs simultaneously.  It wont record the program feed like the basic built in OBS replay does.

I show this in a 'from scratch' deployment of OBS, but you can add this to an existing input that you may already have.

This one uses a plugin called "Source Record" which allows us to directly record the camera feeds.

1> Download Exeldro's "Source Record" plugin and install it.  

https://obsproject.com/forum/resources/source-record.1285/

2> Setup a video source/input on your OBS

3> Right click on your video source that you want to record in your replay and select "FILTER"


4> Under "Effect Filters" select "Source Record"

5> You should now see something like this


6> Select the Path to put in the replay for this video source

7> Give it a unique file name for this replay recording.  This example will call this replay "Camera 1"


8> Scroll down to "Replay Buffer" and select the duration of the replay you want to have kept in memory.  OBS replay, in this case, will keep a buffer of the video in memory.  This example will keep 12 seconds in memory.


9> Now repeat steps 2-8 for the other inputs you wish to record.  Give them a unique reference however, like "Camera 2"  "Camera 3" 


10> Now we setup hotkeys to tell OBS to save the replay buffer in memory to a file on the computer drive.

Goto SETTINGS -> HOTKEYS

When you scroll through the list, you will want to look for the "Save Replay", but you will want the one that is referenced with "...Source Record" in the title.  Give them all the same hotkey.  This example uses F8.  By giving them all the same, when the hot key is pressed, all your camera angles will save at the same time, allowing you to play back different angles.


The default OBS buffer simply called "Replay Buffer" is not needed to be setup or used.

11> Press your hotkey that you assigned to the source record replay, and you should see a file appear in the directory you assigned in Step 6


If nothing appears, review your steps above.  Also exit OBS, then reopen it.  Sometimes that will fix the issue as well.

12> Now create a scene called "Replay Camera 1"

13> In that scene, add a "Media Source" and called it "Camera 1 Replay"

14> Set "Local File" and point it to the location and the file name for the recording.
Set the "SPEED" that you want the file to play back as.  For example 70% will play it at about 3/4 speed.


15>
Select "restart playback..."
        Select "Close file when inactive" (this keeps the file from being locked for subsequent replay saves

16> Now repeat steps 12-15 for each input you have.  Just change the name to identify each input.  Update the additional replay hotkeys that suit your deployment.

Using Replay

Now at any point press "F8".  I give the system about 1-2 seconds to create the files.
Cut to your "Replay Camera 1" scene, and you should see the video playing.  
You can now select "Replay Camera 2" and "Replay Camera 3" to watch each replay
When you are done you can cut back to your main camera feed.



You do not use the "start replay buffer" that is built into OBS.  this one is always running with Source Record.


OBS Replay using Source Record (1 Camera)

This replay will record a single camera input, not the program feed like the basic OBS replay does.

I show this in a 'from scratch' deployment of OBS, but you can add this to an existing input that you may already have.

This one uses a plugin called "Source Record" which allows us to directly record the camera feeds.

1> Download Exeldro's "Source Record" plugin and install it.  

https://obsproject.com/forum/resources/source-record.1285/

2> Setup a video source/input on your OBS

3> Right click on your video source that you want to record in your replay and select "FILTER"


4> Under "Effect Filters" select "Source Record"

5> You should now see something like this


6> Select the Path to put in the replay for this video source

7> Give it an unique file name for this replay recording.  This example will call this replay "Camera 1"


8> Scroll down to "Replay Buffer" and select the duration of the replay you want to have kept in memory.  OBS replay, in this case, will keep a buffer of the video in memory.  This example will keep 12 seconds in memory.



9> Now we setup a hotkey to tell OBS to save the replay buffer in memory to a file on the computer drive.

Goto SETTINGS -> HOTKEYS

When you scroll through the list, you will want to look for the "Save Replay", but you will want the one that is referenced with "...Source Record" in the title.


The default OBS buffer simply called "Replay Buffer" wont be used by us in this example.  We ignore that one.  
I've set the Hotkey of F8 beside my entry

10> Press your hotkey that you assigned to the source record replay, and you should see a file appear in the directory you assigned in Step 6


If nothing appears, review your steps above.  Also exit OBS, then reopen it.  Sometimes that will fix the issue as well.

11> Now create a scene called "Replay Camera 1"

12> In that scene, add a "Media Source" and called it "Camera 1 Replay"

13> Set "Local File" and point it to the location and the file name for the recording.


You can adjust the Speed of playback to let your replay be slow motion

14> Select "restart playback..."
        Select "Close file when inactive" (this keeps the file from being locked for subsequent replay saves

Using Replay

Now at any point press "F8".  I give the system about 1-2 seconds to create the file. \
Cut to your "Replay Camera 1" scene, and you should see the video playing.  
When its done you can cut back to your main camera feed.

You do not use the "start replay buffer" that is built into OBS.  Source Record is always running.

Using something like Advanced Scene Switcher, you can incorporate splash screens.  If that is something of interest, let me know in the comments.

Friday, April 18, 2025

Embed image data directly in an autohotkey script

Have an AutoHotkey GUI that uses images and you want to imbed those images INTO your script code? (and not have to use a path to an image file?)

The script will convert your image files into autohotkey data that can exist in your AHK script.

1> Download this conversion tool

computoredge.com/AutoHotkey/Downloads/Image2Include.ahk

2> Run the tool

Pick the image file that you want to include into your script

(This example an image called "colors.png", which is a TV style color bar pattern, is used)

3> Click the CONVERT IMAGE button


            Script shows a "successfully created!" at the bottom

4> Click on "SHOW SCRIPT"

You'll see something like this.  Not the first portion "Create_colors_png".  That is the name that you use in your code for the image name.


5> COPY all of the code and PASTE it somewhere in your script.
It would be suggested to put it at the very bottom.

6> If you have some gui code already that is loading a picture, you just replace the dir/image name with the following code syntax

% "HBITMAP:*" . Create_colors_png()

(NOTE!  You need to have the double parathesis at the end!  don't forget those)

Here's a quick example GUI that will show the image, in my example, a color bar pattern

gui, add, Picture,  , % "HBITMAP:*" . Create_colors_png()
Gui, Show
msgbox press key to continue

; # This #Include file was generated by Image2Include.ahk, you must not change it!
; ############################################################
Create_colors_png(NewHandle := False) {
Static hBitmap := 0

...rest of code copy/pasted from the conversion script

And if you run it, will look like this:


If this tutorial has been of any help to you, I'd love to know! 
If you have suggestions of how to improve it, let me know in the comments!  Thanks!