Monday, May 11, 2026

Some basics to control QLC+ with Reaper using MIDI

Here's how you can do some basic control of QLC+ scenes using Reaper.

This is using Windows 11

Download loopMIDI by Tobias Erichsen

Install then run the app

Click on the "+" plus button in the corner and add a loopMIDI port. 


Launch QLC+

In the Inputs/Outputs tab

Set loopMIDI port = INPUT


In the profile tab, set to Generic MIDI


Open a scene that you have created and go to "Virtual Console"

Here is an example scene with 2 mover scenes, and 2 static light scenes



Double click a scene that you want to set a MIDI command to.  

Then select "Auto Detect"


Open up Reaper

In this example a track has been added that will have MIDI cues assigned to.


Goto OPTIONS - Preferences

Goto Audio - MIDI OUTPUTS

Hopefully you'll see "loopMIDI port".  Double click on that

ENABLE output to this device


In Reaper 

INSERT - New MIDI item


If your midi track doesn't contain "ROUTE" button as displayed here, enable it by selecting VIEW - ROUTING MATRIX


Select a point where you want to trigger a MIDI event


Double click on the new box

You'll basically see a piano keyboard on the side and a series of boxes.

We can use this to toggle an effect.

In this example, the note C4 was pressed, and then by clicking and dragging in the squares beside it, they have been made a red color.  This is the duration which the midi command is sent, but this is really fast, so you probably only need one little square selected vises the 5 in this example.  Exaggerated for effect.

In the lower right corner of this window, change the output to "CHANNEL 1"


You can close this window.  You'll now see your MIDI box, and you'll see a little black box in it.  That indicates when the midi command will be sent.




Click on the "ROUTE" button
Set the MIDI Hardware output to "loopMIDI port"


Now with QLC in AUTO DETECT, if you press play as your timeline in reaper passes across the MIDI box, you should see the value in QLC change.

In this example, it changed to "189:C4"

And if you had a lights connected to that scene, they should have activated.

Every time that midi command is sent, it will toggle the scene on/off

You can speed up detection by using the programming by clicking on CHOOSE and see the values as they would be sent by the different piano keys in REAPER



In the example below, I'm sending MIDI commands to activate and deactivate sequences in QLC+







Friday, May 8, 2026

Control VLC with web browser

 Goto Preferences


In the bottom change 
Show settings ALL



Click the arrow beside INTERFACES. Then select LUA (most tutorials don't mention that arrow)




Give it a password and save.   Then restart VLC



Open a browser and goto 
http://localhost:8080

Leave username blank and put in your password and click "SIGN IN"


You'll be prompted with a GUI version of the VLC interface that you can now control VLC with






Thursday, May 7, 2026

Install OpenVPN Access Server on Debian

 Install Debian on a box.  This example has it being installed on ProxMox

Did a standard installation of Debian 13.2.0

The only 'additional' option I added at time of install was the SSH server.

Once installed the box was patched

sudo apt update && sudo apt upgrade -y

Then the following command was run (from the access server install on the openVPN site).  And it did the whole thing for this installation.

bash <(curl -fsS https://packages.openvpn.net/as/install.sh) --yes

My installation didn't come with CURL so it errored, you can install CURL this way
sudo apt install curl

It will go through a bunch of installation routines.  

You should note that the installation will generate a user/password during install.   It will look something like this:


When you get a "Installation successful!" response.  You should be able to HTTPS to the box

https://IPofServer:943/admin


Enter in your credentials

openvpn / XTI5Xj8Fqy2e

You'll get prompted with a License Agreement


You'll be in the GUI now


Change the GUI openvpn admin password

Goto USERS -> OpenVPN -> Reset Password




Monday, April 20, 2026

Migrating from one 365 tenant to another tenant.

We recently converted a few hundred users PCs from their old 365 tenant to our tenant (company purchase).

From the PC perspective, we had the users do the conversion of the machine (disjoin/join).  They followed a 50-step guide with pictures of what to do, had around 200 users do it themselves.  IT would remote in once in a while when something occurred that didn't match the document but was minimal overall.

CONVERSION SYNOPSIS

We the user add a local 'other users' account to the computer.  This account was given administrative privileges and allowed them to use this account to facilitate the switching from one 365 domain to another.  This conversion for us, resulted in NO data loss.  Our users were still able to access their old 365 tenant /user account and get data.  Prior to the migration, we had users export their browser bookmarks into a file on the computer which they could import upon conversion.

From a OneDrive and Outlook email perspective, we used a 3rd party cloud tool to migrate this data from one tenant to another.  We did develop procedure to do this all manually; however, the time and effort it saved us and our users was worth using. 

Once they added the local admin account, it was then logged into.  The account name was "conversion" in this example


They disjoined from the work/school domain 

When disjoined, MS has you do an account check to ensure you can log back into the computer. 
Users just used the local admin "conversion" account they created.

Computer is rebooted and the users log back into the local account

They re-add themselves to the new 365 account.

It's important that they use this option and not the top one.


Assuming you have MFA setup, they will be challenged to setup their MFA access


Once this authentication is working, they will then be prompted to JOIN the new tenant.

We used a sperate tool to migrate email and OneDrive, but it could be manually done, but its time consuming.

BitLocker keys transferred during this process

The original 365tenant user account was still on the machine and could be accessed.

Once users confirmed their data was done, they self-deleted the admin account and their old user account.

The actual conversion from one tenant to another only took about 30 minutes.  

We had contingency in place in case users had issues and needed to revert back to the original tenant, which they could, but it wasn't needed.

Tuesday, April 14, 2026

Provisioning a 365 user from a powershell one at a time

" We can’t show the OneDrive settings. If this is a new user, their OneDrive might not be set up yet. Try again in a few minutes. "


I tried to provision my new users using scripts, but I got nowhere.  So I used the following script.  I had to do with on a PER user basis, but is what it is.  (Created an AutoHotkey macro to do the actual work for me since I had a few hundred users)

If its a new user, the user has to "soak in 365" for a few hours before this will sometimes work.  
Ensure that you have the proper licenses in place for the user

1>
Create a file "singleconvert.ps1" and put in the code below.  Replace TENANT ID and COMPANYINC with your information.  Bottom of this page shows were to find Tenant ID
Param(
    [Parameter(Mandatory = $False)]
    [String]$SharepointURL = "https://COMPANYINC-admin.sharepoint.com/",

    [Parameter(Mandatory = $False)]
    [String]$tenantID = "TENANTID",

    [Parameter(Mandatory = $True)]
    [String]$UserEmail = ""
)

# Connect to services
Connect-MgGraph -TenantId $tenantID -Scopes 'User.Read.All'
Connect-SPOService -Url $SharepointURL

Write-Host "Checking if user $UserEmail exists..."

try {
    $u = Get-MgUser -UserId $UserEmail -Select UserPrincipalName, AssignedLicenses

    if ($u) {
        Write-Host "User found. Requesting OneDrive provisioning for $($u.UserPrincipalName)..."

        Request-SPOPersonalSite -UserEmails @($u.UserPrincipalName) -NoWait

        Write-Host "Provisioning request submitted successfully."
        Write-Host "Note: OneDrive creation is asynchronous and may take time."
    }
}
catch {
    Write-Error "Could not find user $UserEmail or unable to query Microsoft Graph."
}

Disconnect-SPOService
Disconnect-MgGraph
2>
Open up a powershell window as Admin and go to the directory you have saved your script



3>
Run the script

.\singleconvert.ps1
You'll see the following syntax appear


4>
Paste in the email of the user and press enter


5>
You will be prompted to login with a user that has privileges to work in the 365 tenant.




6>
You will get a subsequent prompt (likely) to enter in your credentials for a user that has 365 admin privileges



When the script is done (about 5 seconds) you'll see this.   


7>
Check your tenant again.  In my experience, if the script is run, and assuming the rest of your licenses are good, it only took a few minutes for the status to change in 365


NOTE:

The script isn't perfect.  It sometimes will error out for now reason.  If you see an error, try running it 2 or 3 more times.



How to find your Tenant ID

You can find your Tenant ID (at time of writing) but going to portal.azure.com, logging in and selecting "Microsoft Entra ID"

It will show you tenantID on the screen.

Sunday, April 5, 2026

Configure NDI on VLC

This will show you how to configure VLC to broadcast as an NDI source.

1>

Download the NDI tools for your computer.  Windows 11 is used in this example

https://ndi.video/tools/vlc-plugin-2/




2>
Install the NDI tools

...it can take some time just as it says....
It will ask you to register...you don't have to if you dont want to.

3>
Launch VLC

4>
Go to Tools > Preferences

5>
In the Video section, set the Output to NDI video output.



6>
Do the same for Audio.

AUDIO -> Output Module -> NDI Audio Output



8>
Click on SAVE.  

9>
Restart VLC

10>
Open up a media file and start playing.  

11>
Go to your NDI receiving device and go through the methedology of that device to receive an NDI.

In this example OBS is being used. 



VLC can't receive NDI, but OBS is free, and if you install the NDI plugin components, takes mere minutes, it can receive NDI broadcasts with ease to a display device.