Ctrlr VST Plugin mit Lua Programmierung DIY

Hi

ich suche Leute die sich schon einmal mit dem Ctrlr beschäftigt haben und sich mit Lua Programmierung gut auskennen !
Das Programm kann ich nur weiter empfehlen, man kann fast alles machen ! http://ctrlr.org Vielleicht ist ja jemand dabei , ich würde mich freuen !
Ich würde gern ein einfaches LFO in Lua programmieren womit man dann einen CC Controller steuern kann. Mit dem Arduino habe ich das schon gemacht , das geht super!

Hier mal ein Beispiel:

Code:
// Arduino Example LFO  CC  MIDI OUT

// LFO 
String Modulator_BUTTON_Name    = "LFO_BUTTON";
boolean Modulator_BUTTON_Value  = true;    // 0-1 on/Off
String Modulator_LFO_SPEED_Name = "LFO_SPEED"; 
int Modulator_LFO_SPEED_Value   = 400; // 0-127 0ms - 800ms
// Taget 
String Modulator_CUTTOFF_Name   = "FADER_CUTTOFF";
int    Modulator_CUTTOFF_Value  = 0;   // 0-127 0ms - 800ms


const int MIDI_OUT_LED_PIN =  13;
const int CC        = 0xB1;  
const int CC_Nummer = 0x4a;
int       CC_Wert   = 0;    // 0-127
int LFO_Speed       = 150;  // 0 ms - 800 ms


void setup() 
{
  pinMode(MIDI_OUT_LED_PIN, OUTPUT); 
  Serial.begin(31250);
}

void loop() 
{
  if (Modulator_BUTTON_Value == true)
  {
       for (int CC_Wert = 0x00; CC_Wert < 0x7f; CC_Wert ++)
        {
        CC_WRITE(CC,CC_Nummer,CC_Wert);
        delay(LFO_Speed);
        }

       for (int CC_Wert = 0x7f; CC_Wert > 0x00; CC_Wert --)
        {
        CC_WRITE(CC,CC_Nummer,CC_Wert);
        delay(LFO_Speed);
        } 
  }
   
}

// Funktion 
void CC_WRITE(int CC, int CC_Nummer, int CC_Wert) 
{
   digitalWrite(MIDI_OUT_LED_PIN, HIGH);
  delay(2);
  digitalWrite(MIDI_OUT_LED_PIN, LOW);
  Serial.write(CC);
  Serial.write(CC_Nummer);
  Serial.write(CC_Wert);
}

Jetzt würde ich das ganze gern in Lua in dem Ctrlr Program umsetzen. Aber leider klappt das nicht so richtig . Die delay() oder sleep() Funktion in Lua läuft nicht richtig!

Kennt sich da jemand aus ?

Ich würde mich freuen !

Gruß Michael
 
Jesses; delay und sleep in der Microcontroller Umgebung ist nicht nur verpönt sondern kann auch eine Rakete zum Absturz bringen. Während delay oder sleep ausgeführt werden, kann der Micro nichts Anderes machen. Wenn du also Schalter, Potis o.Ä. betätigst, bekommt der Micro das nicht mit, weil er für die angegebene Zeit in einer sog. Endlosschleife steckt. Diese Funktionalitäten musst du mit Timern lösen. Ich kenne jetzt LUA nicht im Einzelnen, kann mir aber vorstellen, dass solche Funktionalitäten aus diesem Grund in LUA nicht zur Verfügung stehen.

Hier mal ein Beispiel, wie man sowas "ordentlich" macht:

https://www.arduino.cc/en/Tutorial/BlinkWithoutDelay
 


Neueste Beiträge

News

Zurück
Oben