Volca FM - Velocity Steuerung in Logic (Scripter)

ARNTE

Ureinwohner
Hi,

ich hab nen Volca FM. Schönes Teil. Leider empfängt der kein Key Velocity. Er hat aber einen Velocity Parameter, der über MIDI CC41 angesprochen werden kann.

In Logic würde ich das gerne so wandeln, dass der Key Vel value in CC41 gewandelt wird. Mit dem Modifier PlugIn geht das nicht, da hier die CC Nummern 32 bis 63 ausgespart wurden.
So richtig geklappt hätte das aber eh nicht, da außerdem auch der NoteOn Befehl erst NACH dem CC value an den Volca kommen darf, damit das ganze richtig klappt.

Logic bietet aber ein MIDI PlugIn names Scripter. Hier kann via JavaScript praktisch alles gemacht werden.
Nur spreche ich leider kein Java Script.

Wer kann es und würde es machen?
Über eine sinnvolle Entlohnung kann gerne verhandelt werden (Freibier, ein paar olle Tretminen, Bargeld...alles denkbar... ;-) ).
 
Velocity to CC Converter Plugin gefällig?
Ich hatte als mein Volca FM kam kurz darüber gelesen und auch mehrere Lösungen gefunden. Vst Plugins gibts und auch ein Max4Live Device für Ableton. Ich hab mich dann aber dazu entschlossen beim Volca FM doch den Slider zu benutzen, daher muss ich n bisschen suchen, aber ich denke du könntest hier etwas passendes finden;

https://www.kvraudio.com/forum/viewtopic.php?t=300566

bzw. http://www.thepiz.org/plugins/?p=pizmidi

Probiers mal mit midiNotesToCC - Converts note number and velocity to CC messages
 
Danke Dino! Im Prinzip cool und würde helfen...aber ich nutze nunmal Logic. Und das PlugIn wird nur als VST angeboten (Logic braucht AU). :cry:


Hier sind doch soooo viele schlaue Leute. Irgendwer wird doch mal so ein Script schreiben können, oder?
ICH WILL DAS NICHT FÜR LAU!
dollar.jpg


Nochmal in Stichpunkten, was das Script machen soll:

- NoteOn abfangen/blockieren
- Key Vel value (>0) auslesen
- CC41 mit ausgelesenem value senden
- NoteOn senden
 
AH, im amerikanischem Logic Forum bin ich inziwschen etwas weiter gekommen. Und zwar hat dort jemand ein Script zum wandeln der CC Nummern geschrieben. Das kann ich dann in Kombination mit dem "modifier" PlugIn nutzen.
ALso erst Key Vel auf z.B. CC12 wandeln und dann via Script den CC12 in 41. Ich hoffe dabei, dass der Modifer den CC vor dem Note On sendet.
Ich werde testen und berichten...
Falls trotzdem jemadn gleich ein "komplkettes" Script schreiben möchte, nur zu :)

Hier mal das "CC Wandel Script":

Code:
// Declare an empty array.
var ccNum = []; 

// Populate the array with 128 elements to be used as CC numbers.
for (i = 0; i < 128; i++) { 
    ccNum[i] = i;
}

// Remap CC numbers. 
// Use these to remap CC's 12 through 19. These can be edited and/or extended
// as needed.

ccNum[12] = 44; 
ccNum[13] = 45; 
ccNum[14] = 46;
ccNum[15] = 47;
ccNum[16] = 48;
ccNum[17] = 49;
ccNum[18] = 50;
ccNum[19] = 51;

// Output remapped CC numbers while letting all other events pass unaltered.
function HandleMIDI(e) {
    if (e instanceof ControlChange) {
        var cc = new ControlChange(); 
        cc.number = ccNum[e.number];
        cc.value = e.value;
        cc.send(); 
        cc.trace();
    } else {
        e.send();
        e.trace();
    }
}
 
ARNTE schrieb:
Danke Dino! Im Prinzip cool und würde helfen...aber ich nutze nunmal Logic. Und das PlugIn wird nur als VST angeboten (Logic braucht AU). :cry:
Achsoo...Wusste ich nicht, sorry!
Hab sooft AU und Vst zusammen in Bezug auf Mac gelesen (natürlich nur überflogen, weil benutze Win), war dabei zwar etwas verwirrt aber naja...
AU ist also quasi das Logic Plugin Format!? Aha. Nunja..Hat's denn bei dir mittlerweile geklappt?
 
So, also das Script von oben tut. Es wandelt schön einen beliebigen CC in CC41. Zusammen mit dem Modifier PlugIn hab ich so eine VelKey Steuerung für meinen Volca.

Nur leider tritt das befürchtete ein, nämlich, dass der VelKey Wert immer erst für die nächste Note gilt aber nicht für die Note die gerade gespielt wurde.

Was ich also noch brauche ist eine Verzögerung des NoteOn Befehls, so lange bis der CC41 gesendet wurde.

Würde mich über jeden Tipp freuen!
 
vielleicht etwas wie:

Code:
function HandleMIDI(e) {
    if (e instanceof NoteOn) {
        var cc = new ControlChange(); 
        cc.number = 41;
        cc.value = e.velocity;
        cc.send(); 
        cc.trace();
       e.send();
       e.trace();
    } else {
        e.send();
        e.trace();
    }
}
 


News

Zurück
Oben