MIDI-Controller „APCmini“, Vorstellung und Programmierung

Hallo BSEplus,
wie Torben weiter oben schon gesagt hat, gibt es keinen Volumenregler für das Mikrofon.
Daher habe ich, für mich, die nachfolgende “Simulation” eines Mikrofonreglers realisiert:

  1. Änderung der “Absenkungs-Geschwindigkeit (ms)” für das Mikrofon (ON/OFF)
  2. Hintergrundscript, welches eine Bewegung des Reglers für das Mikrofon feststellt

Einstellung der “Absenkungs-Geschwindigkeit (ms)” von 200 ms (Standard) auf 800 ms und Einstellung "Player-Lautstärke automatisch absenken, wenn das Mikrofon aktiv ist" anklicken

image

Damit wird bei Ein- und Ausschalten des Mikrofon 800 ms vergehen, bis der “Absenkungs-Wert (dB)” auf -12 erreicht wird und umgekehrt.

Im nachfolgenden, kleinen Hintergrundscript (Quelle: mAirList Forum) wird die Auswertung einer Bewegung des ganz, rechten Schiebereglers realisiert:

const   // Zuordnung der Farben des AKAI "APCmini"-Controllers
  off = 00;
  green = 01;
  green_blink = 02;
  red = 03;
  red_blink = 04;
  yellow = 05;
  yellow_blink = 06; 


procedure OnMidiMessage(Device: integer; Status, Data1, Data2: byte);
// Eine Funktion ausloesen, wenn ein Fader benutzt wird
var
  changed: boolean;
  isAboveThreshold: boolean;
begin
  changed := false;
  // is the fader above the threshold value?
  isAboveThreshold := Data2 >= $02;
  // Fader for mic1 was moved
  if (Status = $B0) and (Data1 = $38) then begin   
    // Data1: $38 = 56 dezimal --> ganz rechter Volumenregler
    changed := mic1on <> isAboveThreshold;
    mic1on := isAboveThreshold;
  end;
  // only mute/unmute if something has changed
  if changed then begin 
    MidiOutOpen(1);   // --> MIDI Device oeffnen
  if not mic1on then begin
    // Mic OFF
    ExecuteCommand('ENCODER INPUT MIC OFF');
    MidiOut(1, $90, 88, off); // device, status, data1, data2   
  end;
  if mic1on then begin
    // Mic ON
    ExecuteCommand('ENCODER INPUT MIC ON');
    MidiOut(1, $90, 88, green_blink); // device, status, data1, data2  
  end;
  MidiOutClose(1);   // --> MIDI Device schliessen
  end;
end;

Wird der ganz, rechte Schieberegler für das Mikrofon über eine eingestellten Schwellwert (Data2 >= $02) im Hintergrundscript bewegt, schaltet sich das Mikrofon an oder aus, je nach Bewegungsrichtung. 800 ms entspricht etwa der Zeit, in dem ich den Schieberegler ganz nach oben oder unten bewegt habe. Gleichzeitig erfolgt eine entsprechende LED-Steuerung (blinkend/statisch).

Auf dem Tastenlayout sieht das Ganze bei mir dann so aus:

image

Zusätzlich habe ich auch noch eine Taste für Mikrofon ON/OFF in der MIDI-Konfiguration hinterlegt:

Mit etwas Übung kann man mit dem Regler für das Mikrofon und obigen Einstellungen recht gut arbeiten. Das Mikrofon schaltet sich ein, wenn der Schieberegler über einen Schwellwert (Data2 >= $02) bewegt wird. Das gleiche passiert bei Betätigung des Tasters für das Mikrofon.

Gruss
rbor

2 Likes