Halion 7 Unterricht

oove

oove

Registriert
10.08.10
Beiträge
2.853
Reaktionen
1.184
Punkte
6.638
Kennt jemand einen Experten, der meine Fragen gern auch gegen Bezahlung beantworten kann?

Hat jemand schonmal versucht Cc11 einen offset zuzufügen?

Ich scheitere seit 2 Tagen an diesem Thema.

Mit den Cubase Transformern ist das ein Kinderspiel, aber ohne sie?
 
Ich kenne seine Kurse, die bleiben oft an der Oberfläche. Es geht hier wirklich um zu vermeidende doppelte Midiroutings, Mappings und so. Aber vielleicht weiß er es doch oder kennt jemanden.
Ich versuchs.

Danke.
 
Ich kenne seine Kurse, die bleiben oft an der Oberfläche.

Als Content Creator für Steinberg Instrumente wird er schon tiefgreifendes Wissen haben.
Die Lernkurse sind ja i.d.R. für Anfänger gemacht um möglichst alle Regler und Buttons mal vorzustellen.
 
Ja, das stimmt wohl.
Ich vermute nur, dass er auf seine Kurse verweist, die sicherlich toll sind, bei denen ich aber weitere Zeit und Geld investieren muss, ohne zu wissen, ob mein Thema behandelt wird.
 
Zuletzt bearbeitet:
Nicht vermuten - fragen!
 
Ja, ich habe in der FB Gruppe gefragt, die er maßgeblich managt, es haben sich 2 andere gemeldet.
Ich will dieem vielbeschäftigten Mann eben nicht auf den Keks gehen.
Aber danke, falls das alles nichts wird, gehe ich ihm auf den Keks. :whip:
 
Hat jemand schonmal versucht Cc11 einen offset zuzufügen?
Ich habe es eben mal versucht, funktioniert:
1705398144339.png
 
Und du bekommst tatsächlich einen Ton, obwohl CC11 von außen auf 0 gesetzt ist?
Das funktioniert nur, wenn du das Default Routing im Auto/CC Tab löscht, sonst gibt es Murks.

Das herauszufinden hat mich 3 Tage gekostet!
 
Ohne Dein Program genauer zu kennen, ist es natürlich schwierig, konkrete Vorschläge zu machen.
Mit dem CC-Mapper kann man eingehende CCs verbiegen oder umlenken.
Dann gibt es auch noch die Mod-Matrix, da kann man ebenfalls einen Offset einstellen.
1705400525996.png


Wenn bestimmte Bedienelemente, z.B. die QCs, direkt an einen CC gekoppelt sind (über MIDI Learn), klappt das natürlich nicht.
Dort kann man die Grenzen durch Set min und Set max beeinflussen.

Aber das kennst Du ja wahrscheinlich alles....
 
Ja, aber es war halt die ganze Zeit so, dass ein Default Routing alle Einstellungen verwässert hat.
Mich wundert, dass das bei Dir läuft.
 
Gibt es eine Möglichkeit, den Parameter Bypass des Flexphrasers (der eigentlich nicht im GUI zu sehen ist), mit einer Note zu aktivieren? Auch noch negativ ... ? Also wenn die Note auftaucht soll Bypass ausgeschaltet sein.

Bisher habe ich mir über Quickcontrol geholfen.

Mein negativ Pitch ist im Sound selbst ausgeschaltet, so dass nichts tiefer wird. Dafür geht der pitch controller auf den Quickcontrol, welcher knapp über die Mitte justiert ist. Wenn ein negativ Pitch eintrifft, geht das auf die Macropage und schaltet den eigentlich immer eingeschallteten Bypass des Flexphrasers aus.

Funktioniert.

Nur: Beim Export als VST3 Preset gehen Quickcontrol Verbindungen flöten. Man muss nach dem laden des Presets die QCs neu anlernen. Außerdem wäre eine Note eh viel besser.

Also Note on=Bypass off

Ich habe kein Modul gefunden, das irgendwie (auch nicht über Umwege) dazu in der Lage wäre.

Wie gesagt, die Taste NICHT im Gui - also wird es ohne Macropage nicht gehen.
Zudem könnte sie wenn sie da wäre, keine Note sondern nur Controller lernen. Triggerpads nützen auch nix.


Ich bin ratlos.
 
Zuletzt bearbeitet:
Gibt es eine Möglichkeit, den Parameter Bypass des Flexphrasers (der eigentlich nicht im GUI zu sehen ist), mit einer Note zu aktivieren? Auch noch negativ ... ? Also wenn die Note auftaucht soll Bypass ausgeschaltet sein.
Du könntest so etwas mit einem Lua Script machen.

Ich habe das mal mit einem zufällig ausgewählten Werkspreset ("Hard Bread") ausprobiert, und es sollte auch bei Dir funktionieren.
In meinem Beispiel schaltet das mittlere C alle im Program enthaltenen Flexphraser aus (Bypass aktiv) und schaltet sie bei einem gespielten C# wieder ein.

Ich bin zwar alles andere als ein Lua-Experte, aber in diesem Fall ist es ja eine recht einfache Aufgabe
Hier der kurze Programmcode:
______________________________________

-- Bypasst alle im Program enthaltene Flexphraser, wenn die Note C (MIDI #60) gespielt wird
-- und aktiviert sie wieder, wenn C# (MIDI #61) gespielt wird

function onNote(event)
if event.note == 60 then -- diese Note wird nicht gespielt, sondern schaltet den Bypass ein
modules = this.program:findMidiModules(true)
if modules[1] then
for i, module in ipairs(modules) do
if module.name == "FlexPhraser" then
module:setParameter("Bypass",true)
end
end
end
elseif event.note == 61 then -- diese Note schaltet den Bypass aus
modules = this.program:findMidiModules(true)
if modules[1] then
for i, module in ipairs(modules) do
if module.name == "FlexPhraser" then
module:setParameter("Bypass",false)
end
end
end
else
local id = playNote(event.note,event.velocity) -- damit alle anderen Noten gespielt werden
end
end

___________________________


1705696082213.png

(
 
Zuletzt bearbeitet:
Wowwww!
Ich kann es erst morgen probieren.
Das wäre ja der Knaller.
Es sollte zwar nur eine Note sein Note on=Flex On
bzw
Note on=Bypass Off

Aber das kann man sicher auch anpassen.

Ich bin gespannt wie ein Flitzebogen
Holger kann erst frühestens am Montag.
 
Aber das kann man sicher auch anpassen.
Klar, mit Lua Script kannst Du quasi jeden Parameter ansprechen.

Wenn Du z.B. den Aktivierungsschalter des FlexPhrasers einschalten möchtest, dann musst Du anstelle des Objektnamens Bypass in der Zeile
module:setParameter("Bypass",false)
den Namen "Active" einsetzen (und statt false natürlich true).

Achtung: In Lua musst Du auf die richtige Groß und Kleinschreibung der Variablen achten!

Als Ausgangspunkt für Deine eigenen Tests habe ich mal das modifizierte Anima-Preset "Hard Bread" in meine Dropbox kopiert. Du kannst es hier herunterladen:

Wie oben beschrieben: Das mittlere C schaltet den Bypass des FlexPhrasers ein, das C# daneben wieder aus.
 
Zuletzt bearbeitet:
Nachdem ich endlich das e gefunden habe, den kopierten Text dort einfügen konnte und save gedrückt habe, blieb alles schwarz, aber es funktionierte wie Du beschrieben hast.
ich sah also nichts in dem Editor.

20 Minuten später... aha, man muss in dem komplet schwarzen Editor einmal kurz scrollen, dann wird er weiß und man sieht den Text ...
wow. Da muss man erstmal drauf kommen...

Nun habe ich versucht das anzupassen. Einerseits sehe ich wie Du lustig Kommentare rein schreibst, ohne das Skript zu stören.
Andererseits nehme ich auch nur einmal von 3x "end" weg, kommt eine Fehlermeldung.

Nach meinem Null - Ahnung Gefühl, musste ich zunächst die Notennummern ändern. 60 liegt natürlich genau im Spielbereich.
Also 24 und 25. Super das klappt.

nun sollte aber eigentlich nur
24 Note on = Flex on,
24 Note off = Flex off
sein

ich sehe vorn function onNote(event)
und rate ins Blaue hinein offNote (event)

function onNote(event)
if event.note == 24 then -- diese Note wird nicht gespielt, sondern schaltet den Bypass ein
modules = this.program:findMidiModules(true)
if modules[1] then
for i, module in ipairs(modules) do
if module.name == "FlexPhraser" then
module:setParameter("Bypass",true)
end
end
end
function offNote (event)
elseif event.note == 24 then -- diese Note schaltet den Bypass aus
modules = this.program:findMidiModules(true)
if modules[1] then
for i, module in ipairs(modules) do
if module.name == "FlexPhraser" then
module:setParameter("Bypass",false)
end
end
end
else
local id = playNote(event.note,event.velocity) -- damit alle anderen Noten gespielt werden
end
end


1705743806406.png


mit anderen Worten, ich rate nur herum und muss wohl die Programmiersprache lernen
 
ich sehe vorn function onNote(event)
und rate ins Blaue hinein offNote (event)
Die Callback Funktion, die bei einem Note-off-Event ausgelöst wird, heißt onRelease

Probier mal diesen Code:

function onNote(event)
if event.note == 24 then
modules = this.program:findMidiModules(true)
if modules[1] then
for i, module in ipairs(modules) do
if module.name == "FlexPhraser" then
module:setParameter("Bypass",false)
end
end
end
else
local id = playNote(event.note,event.velocity) -- damit alle anderen Noten werden gespielt werden
end
end

function onRelease(event)
if event.note == 24 then
modules = this.program:findMidiModules(true)
if modules[1] then
for i, module in ipairs(modules) do
if module.name == "FlexPhraser" then
module:setParameter("Bypass",true)
end
end
end
end
end
 
Zuletzt bearbeitet:
Es tut mir leid, dass ich immernoch im Dunkeln stochere


function onNote(event)
if event.note == 24 then
modules = this.program:findMidiModules(true)
if modules[1] then
for i, module in ipairs(modules) do
if module.name == "FlexPhraser" then
module:setParameter("Bypass",true)
end
end
end
function onRelease(event)
if event.note == 24 then
modules = this.program:findMidiModules(true)
if modules[1] then
for i, module in ipairs(modules) do
if module.name == "FlexPhraser" then
module:setParameter("Bypass",false)
end
end
end
else
local id = playNote(event.note,event.velocity) -- damit alle anderen Noten gespielt werden
end
end

Syntax Error: Line 24:'end' expected (to close "if" at line 2) near <eof>: end

Wenn ich in Zeile 12 statt if event elseif evvent benutze, kommt halt ein anderer Fehler.
Hab schon etliche Varianten durchprobiert.

Ich glaube - the end is near ...

:drink:
 
Wenn ich in Zeile 12 statt if event elseif evvent benutze, kommt halt ein anderer Fehler.
Hab schon etliche Varianten durchprobiert.
Hattest Du den Code von #17 kopiert?
Bei mir kommt da keine Fehlermeldung!
Ich hatte das auch so geändert, dass der Bypass bei gedrückter Note 24 ausgeschaltet wird, also wird nur bei gedrücktem C0 geflext.
 

Oft gelesene Themen

Zurück
Oben