Script Examples for Specific Functions
GetApplicationPath
Copy and paste this Macro into the Global Macro Editor, for example, and monitor the Script Output to see the result.
@scriptname="Example GetApplicationPath";
@author="";
@version="MADRIX 2.8a";
@description="Display the application path,
running from script engine version 1.25 and MADRIX 2.8a";
void InitEffect()
{
}
void PreRenderEffect()
{
}
void PostRenderEffect()
{
WriteText(GetApplicationPath());
}
»Description
GetUserProfileDirectory
Copy and paste this Macro into the Global Macro Editor, for example, and monitor the Script Output to see the result.
@scriptname="Example GetUserProfileDirectory";
@author="";
@version="MADRIX 2.8a";
@description="Display the user profile directory,
running from script engine version 1.25 and MADRIX 2.8a";
void InitEffect()
{
}
void PreRenderEffect()
{
}
void PostRenderEffect()
{
WriteText(GetUserProfileDirectory());
}
»Description
CheckScriptEngineVersion
Copy and paste this Macro into the Global Macro Editor, for example, and monitor the Script Output to see the result.
@scriptname="Example CheckScriptEngineVersion";
@author="";
@version="MADRIX 2.8a";
@description="Check script engine version number,
running from script engine version 1.25 and MADRIX 2.8a";
void InitEffect()
{}
void PreRenderEffect()
{}
void PostRenderEffect()
{
if(CheckScriptEngineVersion(1,25)>0)
WriteText("Script engine version ok");
else
WriteText("Script engine version too old");
}
»Description
CheckSoftwareVersion
Copy and paste this Macro into the Global Macro Editor, for example, and monitor the Script Output to see the result.
@scriptname="Example CheckSoftwareVersion";
@author="";
@version="MADRIX 2.8a";
@description="Check software version number,
running from script engine version 1.25 and MADRIX 2.8a";
void InitEffect()
{}
void PreRenderEffect()
{}
void PostRenderEffect()
{
if(CheckSoftwareVersion(2,8,1,0)>0)
WriteText("MADRIX version ok");
else
WriteText("MADRIX version too old");
}
»Description
GetScriptEngineVersion
Copy and paste this Macro into the Global Macro Editor, for example, and monitor the Script Output to see the result.
@scriptname="Example GetScriptEngineVersion";
@author="";
@version="MADRIX 2.8a";
@description="Get MADRIX version,
running from script engine version 1.25 and MADRIX 2.8a";
void InitEffect()
{}
void PreRenderEffect()
{}
void PostRenderEffect()
{
WriteText("ScriptEngine " +GetScriptEngineVersion());
}
»Description
GetSoftwareVersion
Copy and paste this Macro into the Global Macro Editor, for example, and monitor the Script Output to see the result.
@scriptname="Example GetSoftwareVersion";
@author="";
@version="MADRIX 2.8a";
@description="Get MADRIX version,
running from script engine version 1.25 and MADRIX 2.8a";
void InitEffect()
{}
void PreRenderEffect()
{}
void PostRenderEffect()
{
WriteText("MADRIX " +GetSoftwareVersion());
}
»Description
SetText (SCE Ticker) and GetTime
Copy and paste this Macro into the Macro Editor of the effect SCE Ticker and monitor the Previews to see the result.
@scriptname="local ticker time";
@author="inoage";
@version="MADRIX 5.6";
@description="Set time in SCE_Ticker text with GetTime and pm and am";
void InitEffect()
{}
void PreRenderEffect()
{
timecode tc=GetTime();
string m,s;
if(tc.min<10)
m="0"+(string)tc.min;
else
m=(string)tc.min;
if(tc.sec<10)
s="0"+(string)tc.sec;
else
s=(string)tc.sec;
if(tc.hour>12)
SetText((string)(tc.hour-12)+":"+m+":"+s+" pm");
else
SetText((string) tc.hour +":"+m+":"+s+" am");
}
void PostRenderEffect()
{}
void MatrixSizeChanged()
{
InitEffect();
}
»Description
DrawPixelText - Font Size
Copy and paste this Macro into the Global Macro Editor, for example. It draws the text "Hello", which constantly increases over and over again.
@scriptname="";
@author="";
@version="";
@description="";
font f={10,
0,
0,
0,
FONT_WEIGHT_BOLD,
0,
0,
0,
CHARSET_DEFAULT,
PRECIS_OUT_DEFAULT,
PRECIS_CLIP_DEFAULT,
QUALITY_DEFAULT,
PITCH_DEFAULT,
FONT_FAMILY_SWISS,
"MS Sans Serif"};
int i=0;
void InitEffect()
{
i=0;
}
void PreRenderEffect()
{
}
void PostRenderEffect()
{
i++;
f.height=i%40;
DrawPixelText(WHITE,f,"Hello",0,0,ROTATION_CCW_0);
}
void MatrixSizeChanged()
{
InitEffect();
}
»Description
DrawPixelText - Font Color
Copy and paste this Macro into the Gobal Macro Editor, for example. It draws the text "Hello" and changes its color.
@scriptname="";
@author="";
@version="";
@description="";
font f={20,
0,
0,
0,
FONT_WEIGHT_BOLD,
0,
0,
0,
CHARSET_DEFAULT,
PRECIS_OUT_DEFAULT,
PRECIS_CLIP_DEFAULT,
QUALITY_DEFAULT,
PITCH_DEFAULT,
FONT_FAMILY_SWISS,
"MS Sans Serif"};
int i=0;
color col;
void InitEffect()
{
i=0;
col=WHITE;
}
void PreRenderEffect()
{
}
void PostRenderEffect()
{
i++;
col.r=i%255;
col.g=(i%512)/2;
col.b=(i%767)/3;
DrawPixelText(col,f,"Hello",0,0,ROTATION_CCW_0);
}
void MatrixSizeChanged()
{
InitEffect();
}
»Description
DrawPixelText - Moving Text
Copy and paste this Macro into the Global Macro Editor, for example It draws the text "Hello", which moves from the upper left to the lower right.
@scriptname="";
@author="";
@version="";
@description="";
font f={20,
0,
0,
0,
FONT_WEIGHT_BOLD,
0,
0,
0,
CHARSET_DEFAULT,
PRECIS_OUT_DEFAULT,
PRECIS_CLIP_DEFAULT,
QUALITY_DEFAULT,
PITCH_DEFAULT,
FONT_FAMILY_SWISS,
"MS Sans Serif"};
int i=0;
void InitEffect()
{
i=0;
}
void PreRenderEffect()
{
}
void PostRenderEffect()
{
i++;
i=i%50;
DrawPixelText(RED,f,"Hello",i,i,ROTATION_CCW_0);
}
void MatrixSizeChanged()
{
InitEffect();
}
»Description
DrawPixelText - Rotating Text
Copy and paste this Macro into the Global Macro Editor, for example. Draws the text "Hello", which rotates by 90°, 180°, and 270°.
@scriptname="";
@author="";
@version="";
@description="";
font f={20,
0,
0,
0,
FONT_WEIGHT_BOLD,
0,
0,
0,
CHARSET_DEFAULT,
PRECIS_OUT_DEFAULT,
PRECIS_CLIP_DEFAULT,
QUALITY_DEFAULT,
PITCH_DEFAULT,
FONT_FAMILY_SWISS,
"MS Sans Serif"};
int i=0;
void InitEffect()
{
i=0;
}
void PreRenderEffect()
{
}
void PostRenderEffect()
{
i++;
i=i%400;
switch(i/100)
{
case 0:DrawPixelText(RED,f,"Hello",25,25,ROTATION_CCW_0);break;
case 1:DrawPixelText(RED,f,"Hello",25,25,ROTATION_CCW_90);break;
case 2:DrawPixelText(RED,f,"Hello",25,25,ROTATION_CCW_180);break;
case 3:DrawPixelText(RED,f,"Hello",25,25,ROTATION_CCW_270);break;
}
}
void MatrixSizeChanged()
{
InitEffect();
}
»Description
GetTimeCode
Retrieves the currently used Time Code. This Macro/Script works in all four Script locations.
@scriptname="";
@author="";
@version="";
@description="";
void InitEffect()
{
}
void PreRenderEffect()
{
timecode tc = GetTimeCode(TIMECODE_TYPE_NONE);
timecode tc1 = GetTimeCode(TIMECODE_TYPE_MIDI);
timecode tc2 = GetTimeCode(TIMECODE_TYPE_ARTNET);
timecode tc3 = GetTimeCode(TIMECODE_TYPE_SMPTE);
timecode tc4 = GetTimeCode(TIMECODE_TYPE_ALL);
WriteText("NONE " + (string)tc.hour + ":" + (string)tc.min + ":" + (string)tc.sec);
WriteText("MIDI " + (string)tc1.hour + ":" + (string)tc1.min + ":" + (string)tc1.sec);
WriteText("ARTNET " + (string)tc2.hour + ":" + (string)tc2.min + ":" + (string)tc2.sec);
WriteText("SMPTE " + (string)tc3.hour + ":" + (string)tc3.min + ":" + (string)tc3.sec);
WriteText("ALL " + (string)tc4.hour + ":" + (string)tc4.min + ":" + (string)tc4.sec);
}
void PostRenderEffect()
{
}
void MatrixSizeChanged()
{
InitEffect();
}
»Description
GetDmxIn
Uses incoming DMX-IN data to show colors on the LED matrix. This Macro/Script works in all four Script locations.
@scriptname="DmxInToColor";
@author="inoage";
@version="1.0";
@description="Read DMX-IN data and makes to matrix color";
const int CHANNEL_START=0; // start by channel 1
const int CHANNEL_COUNT=3; // use this number of channels
const int UNIVERSE=0; // use this universe for DMX-IN data
int DmxValues[]; // array of DMX Universe
color col;
void InitEffect()
{
col=BLACK;
if(IsDmxInEnabled()==0)// if DMX-In is enabled
WriteText("DMX-IN is disabled!");
}
void RenderEffect()
{
if(IsDmxInEnabled()==1)// if DMX-In enabled?
{
// Get the DMX values from selected Universe
GetDmxIn(DmxValues,CHANNEL_START,CHANNEL_COUNT,UNIVERSE);
// set dmx value to color
col.r= DmxValues[0]; // channel 1 to red
col.g= DmxValues[1]; // channel 2 to green
col.b= DmxValues[2]; // channel 3 to blue
}
else
col=BLACK;// no DMX then no color
Clear(col);// set complete matrix with color
//Information for help
/* WriteText("Set color with Value Red="+(string)col.r+", Green="+(string)col.g+",
Blue="+(string)col.b);*/
}
void MatrixSizeChanged()
{
InitEffect();
}
»Description
GetMidiInNoteValue And GetMidiInControlValue
Uses incoming MIDI-IN data to control the Master. This Script works in the Global Macro.
@scriptname="MIDItoMaster";
@author="inoage";
@version="";
@description="Uses incoming MIDI to control the Master Fader";
const int NOTE=0; // MIDI Note for control
const int CHANNEL=0; // MIDI Channel for control
const int DEVICE_ID=0; // MIDI Device for control
void InitEffect()
{
}
void PreRenderEffect()
{
}
void PostRenderEffect()
{
if(IsMidiInEnabled()==1)
{
// MIDI NOTES 0x9, 0x8
const float Value = (float)GetMidiInNoteValue(NOTE,CHANNEL,DEVICE_ID)/127.0;
// MIDI CONTROLLER 0xb
//const float Value = (float)GetMidiInControlValue(NOTE,CHANNEL,DEVICE_ID)/127.0;
SetMasterFader(Value*255);
}
}
void MatrixSizeChanged()
{
InitEffect();
}
»Description
GetMidiInNote And GetMidiInControl
Uses incoming MIDI-IN data to control the Master and the Audio Input Level. This Script works in the Global Macro.
@scriptname="MIDItoMasterandAudio";
@author="inoage";
@version="";
@description="Uses incoming MIDI of 2 channels to control the Master Fader and Audio Level";
const int NOTE=0; // MIDI Note for control
const int NOTE_COUNT=2; // MIDI Note Count for control
const int CHANNEL=0; // MIDI Channel for control
const int DEVICE_ID=0; // MIDI Device for control
int MidiData[];
void InitEffect()
{
}
void PreRenderEffect()
{
}
void PostRenderEffect()
{
if(IsMidiInEnabled()==1)
{
// MIDI NOTES 0x9, 0x8
GetMidiInNote(MidiData, NOTE, NOTE_COUNT, CHANNEL, DEVICE_ID);
// MIDI NOTES 0xb
//GetMidiInControl(MidiData, NOTE, NOTE_COUNT, CHANNEL, DEVICE_ID);
SetMasterFader(MidiData[0]*255/127);
SetAudioInputFader(MidiData[1]*255/127);
}
}
void MatrixSizeChanged()
{
InitEffect();
}
»Description
DrawVectorText - Font Size
Copy and paste this Macro into the Global Macro Editor, for example. It draws the text "Hello", which constantly increases over and over again.
@scriptname="";
@author="";
@version="";
@description="";
font f={10,
0,
0,
0,
FONT_WEIGHT_BOLD,
0,
0,
0,
CHARSET_DEFAULT,
PRECIS_OUT_DEFAULT,
PRECIS_CLIP_DEFAULT,
QUALITY_DEFAULT,
PITCH_DEFAULT,
FONT_FAMILY_SWISS,
"MS Sans Serif"};
int i=0;
void InitEffect()
{
i=0;
}
void PreRenderEffect()
{
}
void PostRenderEffect()
{
i++;
f.height=i%40;
DrawVectorText(WHITE,f,"Hello",0.0,0.0,ROTATION_CCW_0);
}
void MatrixSizeChanged()
{
InitEffect();
}
»Description
DrawVectorText - Font Color
Copy and paste this Macro into the Global Macro Editor, for example. It draws the text "Hello" and changes its color.
@scriptname="";
@author="";
@version="";
@description="";
font f={20,
0,
0,
0,
FONT_WEIGHT_BOLD,
0,
0,
0,
CHARSET_DEFAULT,
PRECIS_OUT_DEFAULT,
PRECIS_CLIP_DEFAULT,
QUALITY_DEFAULT,
PITCH_DEFAULT,
FONT_FAMILY_SWISS,
"MS Sans Serif"};
int i=0;
color col;
void InitEffect()
{
i=0;
col=WHITE;
}
void PreRenderEffect()
{
}
void PostRenderEffect()
{
i++;
col.r=i%255;
col.g=(i%512)/2;
col.b=(i%767)/3;
DrawVectorText(col,f,"Hello",0.0,0.0,ROTATION_CCW_0);
}
void MatrixSizeChanged()
{
InitEffect();
}
»Description
GetTimeSunrise / GetTimeSunset
Copy and paste this Macro into the Global Macro Editor, for example. It provides the sunrise and sunset times of Dresden of today in the Script Output.
@scriptname="";
@author="";
@version="5.6";
@description="get sunrise/sunset of Dresden of today";
void InitEffect()
{
date d = GetDate();
timecode tc = GetTimeSunrise(d,51,3,13,44, 1.0); // DRESDEN
WriteText(tc.hour+":"+tc.min+":"+tc.sec);
tc = GetTimeSunriseCity(d, CITY_DRESDEN);
WriteText(tc.hour+":"+tc.min+":"+tc.sec);
tc = GetTimeSunset(d,51,3,13,44, 1.0); // DRESDEN
WriteText(tc.hour+":"+tc.min+":"+tc.sec);
tc = GetTimeSunsetCity(d, CITY_DRESDEN);
WriteText(tc.hour+":"+tc.min+":"+tc.sec);
}
void PreRenderEffect()
{}
void PostRenderEffect()
{}
void MatrixSizeChanged()
{
InitEffect();
}
»Description
GetTimeSunriseCity / GetTimeSunsetCity
Copy and paste this Macro into the Global Macro Editor, for example. It provides the sunrise and sunset times of Berlin of today in the Script Output.
@scriptname="";
@author="";
@version="5.6";
@description="get sunrise/sunset of Berlin of today";
void InitEffect()
{
date d =GetDate();// today
timecode tr =GetTimeSunriseCity(d,CITY_BERLIN);
WriteText("Sunrise: "+(string)tr.hour+":"+(string)tr.min);
timecode ts =GetTimeSunsetCity( d,CITY_BERLIN);
WriteText("Sunset: "+(string)ts.hour+":"+(string)ts.min);
}
void PreRenderEffect()
{}
void PostRenderEffect()
{}
void MatrixSizeChanged()
{
InitEffect();
}
»Description
GetMadrixTime
Copy and paste this Macro into the Global Macro Editor, for example. It changes the color of the LED matrix each second.
@scriptname="";
@author="";
@version="5.7";
@description="GetMadrixTime Example";
void InitEffect()
{}
void PreRenderEffect()
{}
void PostRenderEffect()
{
switch((GetMadrixTime()/1000)%3)
{
case 0: Clear(RED); break;
case 1: Clear(GREEN); break;
case 2: Clear(BLUE); break;
default: break;
}
}
void MatrixSizeChanged()
{
InitEffect();
}
»Description
Installed Examples
Throughout this MADRIX Script Help and Manual a lot of practical script examples are already given.
If you would like to see some more examples, several exemplary scripts are already installed on your PC if you have enabled this option during the installation process.
You can find the examples on your harddisk. Please navigate to C:\Users\Public\Documents\MADRIX5 Samples\scripts
It contains various examples.
|