Page 1 of 1
Macro Script, Control different var. with BPM or frequency?
Posted: Sun Jun 22, 2014 2:07 pm
by DIZZY
Hello Madrix Team and Users,
At first of all
I LOVE MADRIX
I want to use the Macro Sript Editopr in order to control different Effect Functions with BPM or different frequency (Bass, Mid, High).
For Example I want to control the length from the SCE Radial/Radar
lenght with BPM input or Bass. If the Bass drops it should send a higher var for the length.
Thanks for your good service so far.
Greetz Dizzy
Re: Macro Script, Control different var. with BPM or frequen
Posted: Mon Jun 23, 2014 10:06 am
by Guertler
Hello DIZZY,
Welcome to the MADRIX forum.
.
You can use different macro functions to control the "MADRIX effect slider" according to the audio input.
.
If you want to use the bass value of the incomming audio you have to use the function:
GetBassValue()
You can also analyse the level of the whole incomming sound value with the function:
GetSoundLevel(int channel)
If you want to analyse only a frequency you have to use the function:
GetNoteValue(int note)
In some cases it is helpful to calculate a factor to the analysed sound level.
.
If you want to control the BPM slider according to the analysed sound or bass level. You have to use the macro function:
SetBpm(int value)
.
If you want to change the length of the "SCE Radial" you have to use the functions:
GetLength()
SetLength(int length)
.
To learn more about the scripting please have a look to the "MADRIX Script Help and Manual".
http://help.madrix.com/m2/html/fixtureeditor/index.html
.
If you have any further questions, please do not hesitate to contact us again!
Thank you.
Re: Macro Script, Control different var. with BPM or frequen
Posted: Mon Jun 23, 2014 10:16 am
by DIZZY
Thanks for your fast request!
Ok i already read the manual for the Script Editor.
My question is now how do i get the Funktion together.
If i set GetBassValue how do i combine it with the Effekt Slider?
Re: Macro Script, Control different var. with BPM or frequen
Posted: Mon Jun 23, 2014 2:46 pm
by Guertler
Hello DIZZY,
.
To set a value of the MADRIX effect slider to the received bass value it is necessary to get the actual bass value and store it to a variable. In the next step you have to set this value to the desired slider. In the most cases it is also necessary that you transform the received value before you can set the value to a desired slider.
.
Below you will find a very simple example. In this Macro the received bass value will be setted to the length of the "SCE Radial". If the bass value is high the length of the radial is large and if the bass value is low, you will see a short length of the radial.
.
@scriptname="";
@author="";
@version="";
@description="";
int bass = 0; //inizialize a variable
void InitEffect()
{
}
void PreRenderEffect()
{
bass = GetBassValue(); //save the current received bass value to the variable "bass"
SetLength(bass); //set the length of the radial to the value of the variable "bass"
}
void PostRenderEffect()
{
}
void MatrixSizeChanged()
{
InitEffect();
}
Re: Macro Script, Control different var. with BPM or frequen
Posted: Mon Jun 23, 2014 11:30 pm
by DIZZY
Danke
Voerst denke ich ist es einfacher deutsch zu schrieben bzw. lesen
Ich habe einen anderen Post entdeckt der mich weiter gebracht hat habe diesen ein wenig modifiziert.
Sieht super aus in Verbindung mit dem Color Ring als Soft Light gemixt und den Fade ebenfalls per Bass gesteuert.
Die erste Frage hierzu; die Variable s wurde als Float definiert. Wie wirkt sich das Gleitkomma auf die Funktion GetBassValue aus ?
Leider funktioniert GetNoteValue anstatt GetBassValue nicht Wieso ?
Desweiteren würde ich gerne mehrere If/else funktionen hintereinander programmieren ist dies möglich oder auch verschiedene Frequenzbereiche mittel GetNoteValue verschiedenen effect Slidern zuordnen?
Vielen Dank
@scriptname="";
@author="";
@version="";
@description="";
void InitEffect()
{
}
void PreRenderEffect()
{
float s = GetBassValue();
if (s>=0.005)
{
SetAmplitude (100);
SetLength (10);
}
else
{
SetAmplitude(60);
SetLength (50);
}
}
void PostRenderEffect()
{
}
void MatrixSizeChanged()
{
InitEffect();
}
Re: Macro Script, Control different var. with BPM or frequen
Posted: Tue Jun 24, 2014 3:37 pm
by Guertler
Hallo DIZZY,
.
Gern können wir auch auf deutsch kommunizieren.
.
In dem Script wird auf die float Variable s ein integer Wert gespeichert. Das heißt, es wird der Wert nach float konvertiert, was bedeudet, es wird aus einer ganzen Zahl eine Gleitkommazahl mit einer Nachkommastelle (mit dem Nachkommawert 0) erstellt.
.
In meinem letzen Forumspost habe ich eine Möglichkeit der Soundanalyse via Script in MADRIX vergessen zu nenne. MADRIX stellt 2 globale Variablen mit den Namen: SOUND_DATA_LEFT [int index] SOUND_DATA_RIGHT [int index] zur Verfügung. Wobei mit dem index auf die verschiedenen Frequenzen zugegriffen werden kann.
Im Link findest Du die Zuordnung des Index zu den Frequenzen:
http://help.madrix.com/m2/html/script/i ... table.html
Diese 2 globalen Variablen liefern nun den Wert der jeweilgen Frequenz zurück und sind in deinem Fall die bessere Wahl. GetNoteValue(int index) liefert den Wert einer bestimmten Note zurück.
.
Im Script ist es möglich mehreren If/Else Strukturen hintereinader aufzurufen oder diese ineinander zu verschachtelt. Somit können mit verschiedenen If/Else Strukturen verschieden Slider "angesprochen" werden.
.
Falls du weitere Fragen hast, melde dich bitte bei uns.