Wednesday, September 18, 2024

Setup FreePBX (AND Asterisk) in AZURE

This pretty much will work for any deployment I guess, but this is specifically written for AZURE, so there might be some tweaks in here that are specific for that environment.  This deployment was done via a Windows 10 machine.


In Azure, create a new virtual machine.

In my example i'm using a "PAY AS YOU GO" approach and have assigned it to a group called pbxtest1


I assigned it a virtual machine name and region


At time of writing this, the FreePBX deployment recommends Debian 12 "Bookworm"

Assign it with the appropriate CPU and RAM that you will need.  For testing, I'm using a minimal system



I'm leaving everything else default.  Select Review and Create

Select "CREATE" on the subsequent page, then you will be prompted "Generate new key Pair"

Download the private key


Your system should download the key file



Azure should start building your deployment


That will only take a few minutes to create normally.

Select "Go To Resource"


Note the IP address assigned to your instance


If you haven't already, install PUTTY from putty.org


Launch the APP " PuttyGEN


Select "CONVERSION" -> IMPORT KEY



Select the key file that you downloaded upon creation of the machine



Now select "FILE" -> "Save Private Key"


You'll get a PuttyGen warning about saving it without a passphrase, select YES


Give it a name and select SAVE


You can close the PuttyGEN app

Now open a regular PUTTY session


Enter in the IP provided to you by Azure.  Give it a name under "Saved Sessions"


Select "SSH" -> Auth -> Credentials to Authenticate with



In the Public-key authentication select  BROWSE and open up the key file you generated in PuttyGen



Scroll back up to "SESSION" then click on "SAVE

Now open your saved session.  If it works, you should get prompted with the similar security warning




Select "ACCEPT"

Logon with the default user " azureuser "

Should be prompted with something like this:


Lets update the system first (will take a few minutes depending on network and guest speed

sudo apt update && sudo apt upgrade -y

Now run the following to enter ROOT

sudo -i

Get the latest updates 

#################################################################################

The following command will install the latest release of FreePBX (at time of writing version 17) and the lastest GA of Aasterisk

cd /tmp

wget https://github.com/FreePBX/sng_freepbx_debian_install/raw/master/sng_freepbx_debian_install.sh  -O /tmp/sng_freepbx_debian_install.sh

bash /tmp/sng_freepbx_debian_install.sh

The script will now do a full install of all the necessary items to get FreePBX and Asterisk up and running.  Will take about 30 minutes

Will be something like this as you wait..

When all said and done, assuming no installation issues, you should be presented with this screen similar.


Goto your guest network settings:  
select "Create Port Rule"
then select InBound Port Rule

Create a rule with the service as HTTP.  You can use all the other default settings



Click on ADD

You should now be able to HTTP to the WAN IP that you used to SSH to the box.

And be presented with a screen like this:



Fill in the user name and email address that you want to logon to the system with and receive system status message in the future.

You have to change the System Identification name from the default provide to something new to continue.


Tuesday, August 27, 2024

Magic 3D Easy View with QLC+ configuration

*UPDATE*
This Reddit post by /u/SeanBannister has a massive amount of information to get this program going that might help too!


3D Easy View 1 - https://nicolaudie.com/downloads/files/Magic.exe


Here's how I got QLC+ and Magic 3D Easy View to work together.

First when you launch, if you see below, and clicking on ART-NET button doesn't populate the universes, this is the most common question in the forums.


What appears to be the real culprit are virtual ethernet adapters that are enabled preventing this app from detecting Art-Net.  Disable any vEthernet adapters you might have.



If you have this correct, when you launch Magic 3D Easy View, you'll be able to enable all the universes.



NOW, launch QLC.
You can either open an existing virtual console, or create a net new one.  Its easier to get things going probably if you open an existing one.

(Assuming that QLC and Magic 3D are on the same computer)
Now click on "UNIVERSE 1" on your left side, 
go to INPUT/OUTPUT tab
Then in ARTNET, click on "OUTPUT" box on the IP of your computer.  In my case, my computer was 10.0.0.46


Now here's a bit that isn't talked about, down in the ARTNET status window, make sure that status is OPEN and Nodes Discovered is "1".  This will indicate that QLC can see 3D Easy View application.

Click on the little 'tool' icon


Verify your connection data looks like this:

The output IP address on the left should reflect the IP Of your computer, the IP address to the right can be left default of whatever QLC populates as well as the ART-NET universe being 0

Now, assuming you are using a pre-made QLC virtual console, start it up and enable some lights, any lights.  We are going to confirm that Easy View can see the DMX data coming to it.

Startup QLC plus
 


Go to your QLC console and turn on some fixtures in the program.  You don't actually need them connected, nor do you need your DMX adapter connected.  We are looking only at DMX data being sent through the computer itself.

In my example, I turned on 8 lights that are set from DMX #001 - #008


Go to 3D Easy View and click on the DMX level.  You should see that some white boxes are filled with blue and an DMX value.  Seeing this signifies that QLC is talking to Magic 3D successfully.


If you don't see this happening, then you should review the steps to trouble shoot.

==================================

If you are getting valid DMX data being shown, you can now create some lights.

My test lights in my QLC script are white LED and only have 1 DMX setting which is its intensity.

I'm using this to keep this demo simple and let you  create some lights really quickly.

While in construction mode, select "ADD FIXTURE"


Since my demo had 8 faders, each set from DMX 1 - DMX 8,
I created a generic fixture with a par64 (this gives a nice spot light effect in Magic 3D)
I select it to start at DMX 1 and to create 8 fixtures.


Click on PATCH

In Universe 1, you should see 8 lights patched:


Click OK.

You should now see 8 lights in a box, well, 8 little things representing lights.



Click on "USER MODE"

Now go to QLC virtual console and turn lights on/off adjust intensity.  You should see it reflect in Magic 3D


That's about it for this.  Tons of YouTube videos how to do other stuff, this gets it working.

Sunday, August 18, 2024

Midi controller with QLC+

 Really quick how to get some MIDI to work with QLC+

I'm using an AKAI APCmini



After plugging it into QLC computer, launch QLC, select a new universe (assuming you are using Universe1 for your DMX controller, select another universe for your MIDI device.  In my example, i'm using Universe 2.   This has no effect on your DMX scenes, simply just a way for qlc to know where DMX commands, and MIDI commands are sent.

Select APC mini in the mapping, then select INPUT and FEEDBACK



No open up your QLC+ Virtual Console.

I'm assuming, in this demo, that you have some scenes already created for your lights.  Just need to create a couple of dummy scenes with dummy DMX light fixtures.  You need to do this to allow the buttons to function properly within QLC and to send the right info back and foth from the program and your MIDI controller.

Here's a clip from an existing controller I have setup.  Were going to setup the blue/green/red buttons on the left to buttons on the controller.


Double click on the button

Then click on AUTO DETECT


Assuming your MIDI controller is talking to your computer properly, you should be able to press a button on your MIDI controller and the values will automatically appear in INPUT universe and INPUT channel name.

Now click on CUSTOM FEEDBACK


This allows you to trigger button colors/effects.
The APC mini is capable of orange/green/red and Black.

Basically in this example, if the button/effect is not active, its yellow (lower value)
and if its operational it will be green.   QLC sends this data back to the controller, so the buttons will reflect the state of the button in QLC if you press it with a mouse, or if you press it on the MIDI controller itself.
Remember, the VALUE is not a DMX value, its an effect value for the MIDI button itself.



Wednesday, August 7, 2024

Control Synesthesia.live with QLC+ using OSC

Here's how to get QLC to work with Synesthesia (Synesthesia.live) using the OSC protocol.

NOTE:  You need to have the licensed version of Synesthesia.live to have OSC controls.  Its not available on the free version

This document also may help you getting QLC to work with OSC in general, as I think some of the setup steps will apply to other systems.

The assumption is that QLC and Synesthesia.live are running on the same computer.  We'll be using 127.0.0.1 local network address.  IF that is not the case, you will need to change those values to match the IP of your QLC and Synesthesia computers.


The very first thing that you have to do to make this work is create a QLC profile.

So go to INPUTS/OUTPUTS and select a UNIVERSE.

Now if you are using QLC for DMX control already, you are likely using "UNIVERSE 1" by default, so you will need to pick a different Universe.  In my example I'm going to use "Universe 4".  (its simple to change the universe used at a later time so its up to you)

So select Inputs/Outputs, select UNIVERSE 4, then select "OSC 127.0.0.1  INPUT and FEEDBACK" boxes

Double click on the "OSC 127.0.0.1" entry and you should see a box pop up like this:


Set the INPUT port to 7700 and the OUTPUT port (both entries) to 9000

Press OK

Now select the PROFILE tab

Now select the green + button on the right to add a new profile

Give it a Manufacturer name, and Model Name  and then set the TYPE to OSC


Click on INPUT MAPPING tab at the top

This bit is where you map the "OSC PATH" naming convention to Channel Numbers that are used by QLC.  With the default behavior of Synesthesia, when it starts up, it will broadcast a large number of its controls by default, which will make mapping of Synesthesia functions to buttons in QLC, like the way you would map a button or slider to a DMX fixture.

Click on the bottom button


A popup box with the follow will appear.  Click on "OK"


QLC is now in a "listening" mode, waiting for an OSC compliant device to broadcast its values

You will notice that the little "wizard" button is active, and the "OK" button is grey'd out.

Leave this QLC window open, and launch Synesthesia.live

Select the SETTING (gear) button in Synesthesia and scroll down to "OSC"


Toggle the INPUT and OUTPUT boxes to green.
Set the INPUT PORT to 9000 and the OUTPUT PORT to 7700

Set "Output Control Values" to "Output Normalized Values"
Set "Control Address Format" to "Scene-Specific Address"

Leave OUTPUT Address to 127.0.0.1


Once the OSC values match the above, close then relaunch Synesthesia.live

Now go back to your QLC Input Mapping Window.

If you have the ports/IP setup correctly, you should see values in side the box similar to this:


Click on the Wizard button to deselect it, then press "OK" which should now be active





Now with QLC+, in order for the buttons to function, at minimum they need to be assigned to a scene with a fixture.   These fixtures are dummy values within QLC, so you don't need any real DMX lights.  You just need to create some fake ones.

In the Fixtures tab in QLC, click on the Green PLUS button to add a fixture.




Search for "Generic
click on the Generic fixture
Set the Universe to "Universe 4" (this is especially important to prevent these fixtures DMX address from needlessly clashing with other real DMX fixtures if you are using this program for both.

Click on "OK"



In QLC click on the FUNCTIONS tab then click on the "SCENE" button


Click on the green button to add a dummy fixture to this button

Give the scene a unique Scene Name.   In this example its called "O1"


Click on the tab that will be called "Dimmers"
Click  on the box above the little light bulb to put a check mark in it.




Go to the "Virtual Console" window in QLC+

Create a new button, and go to button properties -> External input "CHOOSE"


You'll see a drop box with the name of your OSC Profile, in this example "Synesthesia.live"

Click on the first on "777: /controls/welcomescene/nomotion" then press "OK"



You'll see the "External Input" section will now be populated like this:



At the top of this box, click on the "Function" button


Select the scene created earlier and press OK


It will now look like this:


Press OK

Now start up QLC


For this example, launch Sythesia, you should see the default logo spinning:


Now if all is setup right, and you press the button you created in QLC, that logo should change to a static image with the title synesthesia below the logo.


I hope this worked for you!

Now you can go a create more buttons or faders

Here's an example of what a fader setup would look like that will act as a dimmer




Here's some other possibly helpful information:

There is a Synesthesia log that might help:
Activated OSC LOGGING in synesthesia console



If some Synethesia elements are not found in the QLC profile, you can find them in Synesthesia by click on the OSC button in the upper right corner, then selecting the feature you want. 

For example, the scene called "Canvas" as a "Noise On" button that isn't found by default.  To find (or other buttons) bring up your Input Profile Editor in QLC and click on the "automatic add" button.

With it waiting for an input, click on the value you are searching for in Synethesia.  It should appear in the list


you'll see this "Noise On/Off" value appears in the list now.  You can add that as a button.



To select different scenes, use the OSC path  /scenes/scenename

Example:
/scenes/iterationdisposal
/scenes/aliencavern

Add it to your profile


Then you can assign it as a button








--------------------------------------------------------------------------------------------------------------------------





















Below are some notes and screen shots I made up while working on this document and learning OSC protocol with Synesthesia and QLC+.  I'm leaving it here in case any of it is helpful.





The OSC path is /controls/meta/limitcolors

QLC doesn't recognize these types of "path" statements, , it wants numeric.  But it has a calculator built in the port setting.

by going to Inputs/Outputs, and double clicking on the OSC entry (127.0.0.1) the OSC Plugin Configuration window will come up, and there is a 'calculator' at the bottom.



Enter in the OSC path of "/controls/meta/limitcolors" that Synthesia wants, and append /raw to the end.

You will get a value of 49747




Under the OSC option, double click the box and enter in the value the calculator gave you (49747 in our example) however increase the value by 1.  So the value will be 49748


We'll use the value of 62883.  This OSC path gives a value in the QLC calculator of 62882, and we add a 1 to the value.



OSC expects "path" values like this to control elements:  

/playlist/next 
/playlist/previous 
/controls/banks/scene/default 
/controls/banks/meta/random 

(manual for reference) https://app.synesthesia.live/docs/manual/osc.html

In Synesthesia, you click on the "OSC" button in the upper right corner, it will highly a shade of purple, then clicking on each element will show a pop up of the path statement that OSC is expecting from QLC plus to change elements in Synesthesia, but I've been unsuccessful




Now you will get a channel number.  You need to increase this by "1"  

So in this example from the picture above, I got the channel number of 62882, however for Synesthesia to respond, you need to increase it by 1, so this would be 62883

What QLC wants is this number pasted into the Button.  


So I've created a button, in this example a Flash Button,
Select a dummy scene file (this triggers QLC to allow the button to function)
Click on 'CHOOSE"
Select OSC and put in the number that QLC gives you.





Using TouchOSC application (you can install and run this for free, and for testing, its great because the logging in it shows everything that is on the OSC.  When you run it, it has a pop up that does a 5-10 second count down before you can use it.  But you don't need to buy it to test

Setup the ports and turned on OSC logging, and when you click on a button in Synethesia, you get a whole bunch of stuff being sent when you click on a button.  Somewhere in there is the value you want.