Chameleon was created with the purpose of offering the possibility of creating a custom touch controller in a simple way. The software is quite easy to use, but it is really important read this guide to be able to use all the power of the software.
You no need a touch device to create and test your templates, all you need is a computer running Windows 10 Fall Creators or newer, a keyboard and mouse. Some users report software work under Windows 7 and windows 8, I can’t guarantee compatibility in future versions
Before install the software, you need to know exist a keyboard key is super important in the process of edit or create your template. The Escape (Esc) keyboard key.
When Esc keyboard key is pressed the software show the editor if the editor is closed, this action leave ready the system under Edition mode.
The trial version is limited by time, there are no limits such as creating or saving your templates. Each time the time limit is reached, if you are in the middle of the process of creating a template, the software will automatically save the template in which you are working in the folder Documents> Chameleon> Templates> Unclassified, with the name autosaved, you can reopen and continue your creation.
Please proceed to download the trial software:
After download the software, just unpack the zip and install the software.
Chameleon install in your desktop 2 icons:
Chameleon software and the License Manager, ignore for now the license manager.
At this point Chameleon is running and ready to create your custom MIDI controller.
The main screen look like this:
Load Latest button:
This button load the latest template you load, useful in order to just open the software and load already created template. Is a direct access to the latest template you load trough the Chameleon Editor.
Create & Edit button:
This button open the Chameleon Editor and empty template.
2nd Monitor button:
This button open Chameleon on second monitor, if you computer, is connected to a second monitor.
Quit button: close the software.
This time, just click Create & Edit
First Steps with the Editor
Every time open the software and editor appear, you can see a template load screen, what you can use later to load and use the template or load and edit.
This time is your first time, and you probably want to start creating your template, just close the loading window and continue.
By default the editor runs in edition mode but switching to performance mode is easy.
Simply select the Go To Touch button in the editor, the editor is closed and all objects on the template react to touch events .
I order to show again the editor, just press Esc keyboard key.
The Editor contains all the tools necessary to create, and edit your templates. Select from buttons, sliders, knobs, halo pads, encoders, decorating objects, and other tools in the Objects list. Objects have properties such as label, rotation, opacity, radius, color, toggle and friction, which you can edit.
An object that also supports MIDI will allow you to choose the MIDI channel, MIDI CC, MIDI notes, etc.
To start adding controls to your first template, simply select an object in the editor by clicking on it, and then click on the black background which will be your work surface.
See bellow video:
Page Control and Constructor
If you are following this guide step by step, you can see how easy it is to add objects and start create your template.
You already begin to have a clearer idea about how you could create your templates, but before you get down to work on creating your template, you need to learn about the Page Control features and Constructor features.
The software has two templates to use simultaneously in the same software, you see button T1 and button T2, where T1 means template 1 and T2 means template 2. Each template has 6 pages, PAGE 1 to PAGE 6. Each page can host all the objects and functions that the software provide.
In the bellow video you can see how work Template 1 and Template 2 and pages for that purpose I just locate random objects on the template in order to show how work.
H1 and H2, Window Handlers:
The window handlers allows you to set the size or position of the software window to be controlled.
This is especially useful if you want control with Chameleon two simultaneous programs, i.e Traktor,
and Ableton. Trough window handlers Chameleon will recall the program, it will also remember the window size and location of the program window.
Uh? yes sound weird……. do not worry, just continue with the guide, you understand window handlers soon.
Chameleon lets you cut holes in the template to integrate with part of window of the software to be controlled.
This feature can reveal important parts of the underlying program inside your template. Furthermore it allows you to interact with the underlying MIDI program under control.
In the bellow video you see how I cut holes for show vital parts of Traktor software and after that load 100% finished template and also navigate across few template pages, Trakor is already open and running under Chameleon screen:
Summary of the video:
The Transparency view makes it easy to see where you need to place the hole shapes before you do any (subtracting) cutting.
Once you have positioned the shapes, you create the holes using subtract.
If you watched carefully you also saw that it is possible to hide all the chameleon software to return and work in to the desktop and return to Chameleon by clicking on the top right corner orange button.
There is another function related to the creation of holes, MERGE holes.
Merging holes after they are cut is simple, and the process is exactly the same as when cutting holes.
Just place a hole shape over a hole, and press Merge.
To delete all the holes in a template at once, select Delete from the Edit section, another menu will appear, press the Holes button in the new menu, and all of the holes in the template will be deleted.
When you create templates with holes, window handler is a great tool allow to retain the position window of the software to be controlled. Is very simple to use.
In the next video you see how make your template save and force the position of the software to be controlled, in this example I use Traktor, but can be applied to any software.
As you can see on the video, this feature allow to retain the position and size of window, and also z order.
Not only useful for retain that properties, also for reduce the window size in order to gain space for add all controls you need.
Remember I comment in a previous chapter Chameleon provide 2 templates?
Well…. also provide a window handler per template, Template 1 have Handler 1 or H1 and Template 2 have Handler 2 or H2. Now imagine you want control 2 software.
Example: Traktor and Ableton, and you want see some portions of the screen of both software….
You can you can create 2 templates of 6 pages (per template) for 2 different software to be controlled and handle their window properties. You can sync Traktor and Abletton using Ableton Link, and have a great dual template to control !!
In this example I use Traktor and Ableton, but can be any combination of software you need to control.
The action of handle windows, can be fired from editor, or with Page button when his action is programmed is Template1 (fire Handler 1) and Page button when his action is programmed is Template2 (fire Handler 2)
Constructor Part 2
Continuing with the Constructor section, you will now learn about functions that are extremely useful and unique of Chameleon software.
When you create templates you will begin to observe that sometimes it is necessary for the same created object, i.e: a button, a slider, a knob, etc. It is available in multiple or different pages. For that task you can use the Float function. In the case of Float, this function makes the same object available in all the pages and in the same position / location in which it was created.
The Unfloat function removes the object from all the pages, leaving it available only where it was created.
See Float and Unfloat working in the bellow video:
Following the logic of the Float function, in some cases it will be necessary to make the same object available only in some pages. In that case we will use FLOAT TO, this function allows the same object to be present only in some pages and always in the same location or position where it was originally created. If the object moves after applying the function FLOAT or FLOAT TO, when changing the page it will return to the original position. an object with the property FLOAT TO, can be removed specifically from a page, using the function UNFLOAT FROM or from all pages with UNFLOAT.
IMPORTANT NOTE: for use UNFLOAT FROM, just go to page where you want unfloat an object, select the object and then click UNFLOAT FROM.
Please see the bellow video:
Finally, there is some cases it will be necessary to make the same object available only in some pages but in different location or position.
This function work exactly as float to, but now you can locate object in custom position in every page where object is floated.
The only limitation is the original position never should change.
In the edit section you will find some functions that do not require be explained , bellow read the detail of those that do require a guide.
Allows you to make identical copies of objects to any page in your template. Copying an object will only copy the physical object, it does not copy any of its MIDI parameters.
In the example bellow, I use copy to for create holes in the exact same position in 2 pages, and then create a PAGE button for surf from page 1 to page 2 with a buttons located in the same position, I use Traktor as a software to be controlled example, but the same logic can be applied to any other software.
Objects have properties such as label, rotation, opacity, radius, color, toggle and friction, which you can edit. An object that also supports MIDI will allow you to choose the MIDI channel, MIDI CC, MIDI notes, etc. for mapping it.
There are four categories of sliders available in Chameleon.
Standard Sliders, Crossfader, Inertial Sliders, and Bar Sliders.
Three types of Standard Sliders are available, and they start from their default value positions when you open a template.
● 0% default position or value
● 50% default position or value
● 100% default position or value
The Cross fader always starts in the middle by default, at 50% value position.
Two types of Inertial Sliders are available.
● 0% default position or value
● 100% default position or value
Two types of Bar Sliders are available.
You can set the value of these sliders independently, and they save at their position when you save the template. Next time you load the template, the Bar Slider will load from its previously saved position.
There are five Standard Knobs provided in Chameleon. They start from their default positions when you load a template.
0% position or value
25% position or value
50% position or value
75% position or value
100% position or value
Knob Logic Reset Switch
Double-clicking or double tapping a Standard Knob will make it return to its default position.
Standard knobs also come equipped with a knob logic function, which allows them to return to their default position when you release or stop touching them. The Knob Logic function is activated automatically, when a Reset Knob button is present on your template and enable it. To turn off knob logic, select the knob, then go to the editor and check the Rst Off box under Knob Logic.
The Auto Reset Knob will always return to the middle position at 50% and is never
affected by a reset knob button.
There are four Encoders available in Chameleon, and they function as endless rotary control knobs.
TIP: encoders only send MIDI CC.
Is a classic X Y pad.
The Tracking Pad never was completed and be available in some moment of November 2018 trough a new Chameleon update. This pad allow to track any green light trough your webcam and convert the movements to MIDI. Documentation also will be updated in November 2018.
Tools & More
If you are building a template to control DJ software, you’ll want the ability to search by track or artist names. Add a keyboard to your template, and you will not need to use the physical keyboard of your computer. The keyboard does not support midi and was originally designed for Traktor. Extend its usability is under analysis.
A Container allows you to keep buttons, sliders, knobs and any objects contained in a [collapsible] container, about the size of a button.
Containers are very useful because they allow you to maximize the surface space of your templates. You could easily have all of your controls in one of these small containers.
IMPORTANT: it is not possible to cut holes with the Subtractor inside a Container.
Expanded container with some objects inside:
Traktor Wave Ribbon
The Traktor Wave Ribbon was specifically developed for Traktor, when you need to have more precise touch detection in the waveform.
Place the Traktor Wave Ribbon over the waveform area of Traktor, after you’ve cut a hole in your template. Touching the Traktor waveform will be more accurate now.
TIP: you can turn down the opacity of the Traktor Wave Ribbon to 1%, making it almost
invisible, the Traktor Wave Ribbon does not have a color setting.
Chameleon provides many options for decorating templates. Everything from borders, shapes, images, text labels, and lines can be used to keep your templates organized.
These decorating tools will also make your templates look nice and pro.
Chameleon offer Z axis control over objects to allow you to stack objects in your template. You might find that some objects will no longer react to touch, once you place a border around them.
Move the Border back using Z Order, to resolve this.
The Border decorator is a very simple but effective way to decorate your templates. It has a
transparent body that can be used to frame objects or holes.
The Black Shape is a plain black decorating object. It is useful for hiding or fusing objects
with the same black color of the Chameleon background.
The color shape lets you set two colors, one for its border, and a second color for its body.
This color shape is also useful for hiding or fusing objects, or for framing objects.
Images are a great way to decorate or brand templates, and are also useful for changing the look of buttons.
By placing images behind buttons, and turning down the opacity of the button, you can create some very cool and unique templates.
Supported file formats: JPG / PNG (solid & transparent) / GIF (static & animated)
The text label allows you to set descriptive labels for objects in your template when a simple object label is not enough.
These labels are also very useful for organizing, and separating parts of your template.
The Line decorator lets you frame objects, or divide portions of your interface. It’s another great way to help keep things organized.
In addition to decorating with borders, shapes, or images, Chameleon also lets you
customize objects with labels, rotation, opacity, radius, and color.
Buttons also have a fill property which fills it [slightly] with the same color instead of body black background.
Chameleon lets you put text labels directly on objects such as buttons, knobs, halo pads, and the DJ plates.
Rotate allows you to rotate the object around from 0° to 360° and also negative i.e. -45°
Only one object can be rotated at a time.
To make an object semi transparent, change the value of its opacity from 0 to 100.
Minimum opacity is 0 and maximum opacity is 100.
By layering an image behind a button with opacity turned down, you can create some nice buttons in your template that are totally unique.
Keep in mind you can only edit the opacity of one object at a time.
Editing the radius of an object will create rounded buttons, borders, or shapes.
Keep in mind you can edit the radius of one object at a time.
The color property allows two colors for most objects.
The border color is represented by C1, and the fill color is represented by C2.
Multiple objects can be selected, changing their color properties at once.
Objects that don’t have two color settings:
● Image Buttons
Layering objects in Chameleon is done with Z Order, which is found at the bottom of
the editor. Objects can be placed in X, Y or Z axis. The “-” (minus sign) button moves objects backwards and the “+” (plus sign) button brings them forward.
Here we used Z Order to arrange the Z axis of objects, creating a layered look.
1. Place a line decorator that spans the length of the buttons.
2. Add a black shape, then move it forward using Z Order so it sits over top of the line
3. Finally add a text decoration, and move it forward overtop of the black shape.
This creates an elegant way to use a line and text label.
Physics, Friction, & Fast Render
This option in the Physics section sets the behavior of buttons from the standard ON / OFF to push button, when available.
Push can only be applied to the following Buttons.
● FF / RWD
● Reset Knob
Inertial sliders have properties which add friction (or drag) to the slider, to slow it down.
The motion is slowed down by adding friction to the Inertial sliders.
Friction will only affect the slider, upon release, this means while your finger is touching the slider, it will move normally, and as soon as you release it, the slider will keep moving according to the friction setting.
Encoders also support Friction.
Some low powered CPU’s might have a hard time keeping up with the movement of faders in Chameleon. Fast Render removes the decorative details of Standard Sliders in order to boost performance. (usefull only with really underpowered CPUs, i.e ATOM)
Saving a Template
Before you get too far in the design, save your work. It’s simple and could save you hours of building and / or MIDI mapping. Be mindful of the [Unscaled / Scaled] message in the Template section of the Editor. This shows Unscaled as long as your templates resolution matches the display resolution. If your template or screen resolution change, the message will also change indicating you are working on a different resolution.
If you plan to share your templates, you can inform other users about your name or nickname and put a picture of you.
Enter the folder name where you want to save the template, for example Ableton, Traktor, VCV. The template will be stored in this way in an organized way in the folder Documents> Chameleon> Templates> “folder name you chose”
Enter the name of the template you want without extension name, just the name.
MIDI map file:
If you want to save the MIDI mapping files next to your template, Chameleon can make an attachment so that everything that is required to run your template is enclosed within the same template file. If you share your templates with other users, they will only need to download only the template.
It is really advisable to share your templates from the forum. For the users of your templates you can save the forum URL, in this way they can find your post directly by simply clicking on the OPEN button. In this way they will always follow your progress and modifications easily.
In order to accomplish this task, just paste your template (forum) URL.
This Template Area
Here we see the original template resolution.
Your Screen Area
Here you will see the current display resolution. If your current display resolution is
different from the template resolution, it might be worth matching them.
Here you will see the scaling level of the template. This depends on the template resolution, and your current screen resolution.
If your current display resolution is 1600×900, and the template resolution is 1920×1080, you will see Scaled by a factor of 0.83% X 0.83 Y.
Unscaled means that the template is running in the same resolution as it was created.
Screen Aspect Ratio
This shows the current display aspect ratio.
Template Aspect Ratio
This shows the original template aspect ratio.
Chameleon can control your favorite music software trough MIDI using its own port, no third-party software is required.
You can find the MIDI ports in the MIDI section of the software to be controlled, the name of the ports are called Chameleon and you will find an output port and an input port.
Capable MIDI Objects
Most objects in Chameleon have midi support, and allow you to send, and also receive midi commands for controlling other midi programs. Objects capable of this will reveal MIDI Out, or MIDI In parameter. Midi parameters have a valid range in which they operate, and if the midi values become out of range, an object will stop sending MIDI signals.
The midi number parameter corresponds to the midi note number of MIDI CC.
The valid range is 0 to 127.
The midi value parameter corresponds to the midi volume (velocity) of a note or MIDI CC.
When the Notes parameter is enabled, objects send MIDI notes instead of MIDI CC.
Keep in mind encoders only send MIDI CC.
The Aft Value parameter (after touch) corresponds to the volume of a note or MIDI CC number. This
event is fired or launched after the touch of a button.
The valid range is 0 to 127.
Disables MIDI after touch.
The Channel parameter corresponds to the MIDI channel.
The valid range is 1 to 16.
Switch from MIDI mode 0 /127, to encoder mode 7Fh/01.
Only encoders support MIDI mode 7Fh/01.
Objects with MIDI support;
● Buttons (including Image Buttons & page buttons)
● XY Pads and
Objects without MIDI support;
● Containers or
● Traktor Wave Ribbon
If you want Page Buttons wont send midi, setup the MIDI channel value to 0 (zero)
Special MIDI objects
Some objects cannot use the all MIDI range of 0 to 127.
These objects are the Halo Pad, and 3State DJ Plate.
The Halo Pad uses two consecutive MIDI values. The first value is used for the “X” axis, and the second number is used for the “Y” axis.
1. If you assign a MIDI number 0 to the Halo Pad, it automatically
uses numbers 0 and 1 for X and Y
2. If you assign a MIDI number 126 to the Halo Pad, it automatically uses numbers 126 and 127 for X and Y.
If you assign a MIDI number 127 to the Halo Pad, it will automatically try using number 127 and 128. Since the range of MIDI is 0 to 127,
the MIDI value would be outside the valid range, and the pad will not send any MIDI signals.
State DJ Plate
The 3 State DJ Plate is a special encoder which sends three MIDI events, and similar to the Halo Pad it uses consecutive MIDI values.
Event 1: when you touch the platter, MIDI “ON” value is sent (value 127).
Event 2: when you turn the platter, MIDI event 0 to 127 or 7fh/01h encoder signal is sent.
Event 3: when platter stops turning, MIDI “OFF” value is sent (value 0).
1. If you assign a MIDI value (number) of 1, the 3 State DJ Plate automatically use MIDI values 1 and 2.
2. If you assign a MIDI value (number) 99, the 3 State DJ Plate, automatically use MIDI values 99 and 100.
If you assign a MIDI number 127 to the 3 State DJ plate, it will automatically try using number 127 and 128. Since the range of MIDI is 0 to 127,
the MIDI value would be outside the valid range, and the plate will not send any MIDI signals.
MIDI mapping the Halo Pad
To MIDI map the Halo Pad:
1. Select it, and change the Label to set, Set, or SET.
2. Activate Mouse Mode to touch the Halo Pad. Three buttons for mapping will appear.
3. Buttons X, and Y are used for mapping the Halo Pad.
4. Press OK when you are done.
Button X: sends a MIDI signal for mapping the X axis.
Button Y: sends a MIDI signal for mapping the Y axis.
Button OK: hides the mapping setup panel.
After you’re done mapping the Halo Pad you can also change the Label, to disable the mapping setup panel.
MIDI mapping the 3 State DJ Plate
To map the 3 State DJ Plate.
1. Select it, and change the Label to set, Set, or SET.
2. Disable Edit Mode, and activate Mouse Touch to touch the 3 State DJ Plate, and three buttons will appear.
3. Buttons 1 and 2 are used for mapping.
4. Press OK when you are done.
Button 1: sends a MIDI signal for mapping the “ON” and “OFF” status.
Button 2: sends a 0 to 127 mode or 7fh/01h MIDI signal when the platter is rotating.
Button OK: hides the mapping setup panel.
After mapping the 3 State DJ Plate you can change the label to disable the mapping setup panel.
The Escape (Esc) keyboard key.
When Esc keyboard key is pressed, the software show the editor if the editor is closed, and leave ready the system in Edition mode.
Control + C
Copy an object .
Control + V
Paste an object.
Control + Z
This is the undo action. Press the Z button on your keyboard while holding down the
CONTROL button. Operation might not always be available.
Control + Y
To re do a previously undone action, press the Y button on your keyboard while holding the CONTROL button. Operation might not always be available.
Control + D
To delete objects, press the D button while holding the CONTROL button. Alternatively, press the Delete key on your keyboard. Operation might not always be available.
Left, Right, Up & Down Arrow Keys
Use the Arrow keys on your keyboard to move objects with better precision. Movement is available in any direction indicated by the arrow key pressed.
Control + Mouse LeftClick
To select multiple objects, press and hold Control on your keyboard and mouse leftclick objetcs your template .
You can also drag with the left mouse button to select multiple objects.
Import Older Templates
Just copy the folder contain older templates you want open in Chameleon:
DOCUMENTS > CHAMELEON > TEMPLATES > YOUR-TEMPLATE-FOLDER
DOCUMENTS > CHAMELEON > TEMPLATES > TRAKTOR
Rename .emu files files inside the folder to .chameleon
Then load the template from Chameleon software.
Compatible with older templates up to v1.5.x
If you find any problem importing your template, do not hesitate to contact, click here.
Ableton Remote Scripts
Source code provided in order any user can improve.
Activate the software
In order to activate the software, after completing your order, just open the License Manager, enter your user and password. Remember you have created your user and password when you completed you order.
Not remember what is your user and pass? Do not worry, you can recover it at any time, Click here to recover your user and password. Internet connection is required in order to activate the software.
Windows® 10 Fall creators or newer. (32 or 64 bits)
Multi-Touch Tablet PC or Multi-Touch screen / Frame
MIDI enabled software for which you want to create a custom touch screen templates.
Some users report software work under Windows 7 and windows 8, I can’t guarantee compatibility in future versions
The Chameleon software was designed so you could build your own MIDI controllers by numbering and mapping objects in an interface template you build and customize yourself.
I suggest use an external mouse for designing your template in Chameleon, it will simplify your experience.
NOTE: Chameleon will allow to you to create templates at any screen resolution, however loading a template containing holes, must be done at the same resolution as when you created the template. The original resolution of the template is available on template INFO page, you can access to that info every time you load a template or press Save button in the editor.
Submit your feature request
Please submit your feature request, general comment or report any bug trough the Community Forum.
Before start interact with the forum, ensure setup your Forum profile after complete your login.
Present and future of Chameleon
I stopped coding this tool a few years ago and now (17-10-2018) decided it was time to bring it back to life after the insistence of old users. The first step that I took was remove a lot of features that really did not make much sense, clean the code, re-code and improve the code and replace the old MIDI library with a new one, which uses less CPU and provides almost near to zero latency. In terms of performance and usability of the templates, the software is solid as a rock. Small errors, or errors in the logic of use are present in the editor.
It will be a long way to improve the software and at the same time add new cool features I have on mind.
If you are a registered user, thank you for your support !
Chameleon v1.0.6– 16-01-2019
Bug fix: incorrect path of images saved inside of templates – Fixed
Bug fix: MIDI ports not are destroyed when close the software – Fixed
Bug fix: 50% knobs indicate incorrect value (25) when double tap – Fixed
Bug fix: 100% knob not work – Fixed
Bug fix: blink buttons not blink when receive MIDI IN and also no stop of blink in reaction to MIDI – Fixed
Chameleon v1.0.5– 2-12-2018
Bug fix: the software start zoomed duet incorrect resolution report – Fixed
Bug fix: the software might crash in some scenarios duet incorrect MIDI initialization – Fixed
Chameleon v1.0.4– 19-11-2018
Bug fix: reset button, incorrect behaviour under mode push – Fixed
Bug fix: reset feature appear incorrectly as Off on the editor, now renamed as Auto Reset – Fixed
Bug fix: image buttons and decoration image work incorrectly – Fixed
New feature: blink mode, reset buttons and labelled button now can blink when are turned on.
Chameleon v1.0.3– 14-11-2018
Bug fix: : impossible no send MIDI on page buttons – FIXED
User guide updated with more info about page buttons and MIDI:
Chameleon v1.0.2– 8-11-2018
Bug fix: : windows handler work in proper way now – FIXED
User guide updated with a new chapter:
Chameleon v1.0.1– 31-10-2018
Improvement: better navigation on page buttons inside the editor.
Bug fix: : under some scenarios Chameleon not work with dual monitor setup, now is fixed – FIXED
Chameleon v1.0 – 17-10-2018