Hallo, ich habe mir auf dem StreamDeck den Finale Controller installiert. Dort gibt es ein Skript, bei dem der obere Ton eines 4-st. Akkordes nach unten oktaviert wird.
Ich möchte gerne zwei Skripte in Finale erstellen bei dem in einem 4-st. Akkord a) der zweite Ton nach unten oktaviert wird und b) der zwei und vierte. (Also drop2 und drop2-4). Ich habe mir das Script herauskopiert und wollte durch probieren eine Lösung finden. Ist mir aber nicht gelungen.
Kann mir bitte jemand helfen? Vielleicht gibt es so etwas ja auch schon.
Danke Frank
ich habe es gefunden: in JW Staff Polyphony - Chord Lines - Transpose
Script Akkordtöne rotieren
Re: Script Akkordtöne rotieren
Hallo Frank - willkommen im Forum.
Falls du noch dabei bist: Drop2 und ähnliche Eingriffe gehen nicht mit FinaleScript (höchstens, indem ein FinaleScript das StaffPolyphony-PlugIn aufruft), sondern nur in JWLua. Eine JWLua-Script, das eine beliebige Stimme in einem angewählten Bereich droppt, könnte so aussehen:
Für Drop2 kannst du das Skript direkt im JWLua-Editor aufrufen. Jeder weiterer Aufruf droppt die dann jeweils an 2.Stelle von oben stehende Stimme. Für Drop2+4 müsste man das Skript also zweimal aufrufen:
Willst du die Skripte jetzt noch erstellen, oder hat sich das damit erledigt, dass du das JW-PlugIn gefunden hast?FrankBoehme hat geschrieben: ↑So Feb 28, 2021 12:41 amIch möchte gerne zwei Skripte in Finale erstellen bei dem in einem 4-st. Akkord a) der zweite Ton nach unten oktaviert wird und b) der zwei und vierte. (Also drop2 und drop2-4). Ich habe mir das Script herauskopiert und wollte durch probieren eine Lösung finden. Ist mir aber nicht gelungen.
Kann mir bitte jemand helfen? Vielleicht gibt es so etwas ja auch schon.
Danke Frank
ich habe es gefunden: in JW Staff Polyphony - Chord Lines - Transpose
Falls du noch dabei bist: Drop2 und ähnliche Eingriffe gehen nicht mit FinaleScript (höchstens, indem ein FinaleScript das StaffPolyphony-PlugIn aufruft), sondern nur in JWLua. Eine JWLua-Script, das eine beliebige Stimme in einem angewählten Bereich droppt, könnte so aussehen:
Code: Alles auswählen
-- "FindVoiceNote" gibt die Note in der Stimme #v im Akkord e zurück
function FindVoiceNote( e, v )
local n = e:CalcHighestNote( NULL )
for i=2, v,1 do
n = e:CalcHighestNote( n )
end
return n
end
-- "OctaveTranspose" transponiert eine Note um n Oktaven
function OctaveTranspose(note, n)
if note then
local SourcePitchString = finale.FCString()
local entry = note:GetEntry()
measures = finale.FCMeasure()
local measure = entry:GetMeasure()
measures:Load(measure)
local key_signature = measures:GetKeySignature()
note:GetString( SourcePitchString , key_signature, false, false)
octave = tonumber( SourcePitchString.LuaString:sub(-1,-1)) + n
local TargetPitchString = finale.FCString()
TargetPitchString.LuaString = SourcePitchString.LuaString:sub(1,SourcePitchString.LuaString:len()-1)..octave
note:SetString( TargetPitchString , key_signature, false)
end
end
---- START ----
for entry in eachentrysaved(finenv.Region()) do
local VoiceNote = FindVoiceNote( entry, 2) -- "2" ist die 2.Stimme von oben im Akkord
OctaveTranspose(VoiceNote, -1) -- die gefundene Note wird eine Oktave abwärts transponiert
end
- einmal mit FindVoiceNote( entry, 2), damit die 2.Stimme gedroppt wird
- einmal mit FindVoiceNote( entry, 3), damit die ehemals 4. gedroppt wird, die ist nämlich nach dem Drop2-Schritt die dritte von oben
Finale 3.0-27 / Windows 11
Eine Bitte an neue User: gebt bitte Betriebssystem und Finale-Version in der Signatur an - danke.
Eine Bitte an neue User: gebt bitte Betriebssystem und Finale-Version in der Signatur an - danke.
-
- Beiträge: 15
- Registriert: Sa Feb 27, 2021 8:13 pm
Re: Script Akkordtöne rotieren
Lieber Harald,
vielen herzlichen Dank. Das probiere ich gleich aus. Mit Lua kenne ich mich nicht so gut aus. Arbeite mich gerade ein wenig in FinaleScript ein. Herzliche Grüße Frank
vielen herzlichen Dank. Das probiere ich gleich aus. Mit Lua kenne ich mich nicht so gut aus. Arbeite mich gerade ein wenig in FinaleScript ein. Herzliche Grüße Frank
-
- Beiträge: 15
- Registriert: Sa Feb 27, 2021 8:13 pm
Re: Script Akkordtöne rotieren
Lieber Harald,
das funktioniert sehr gut und geht extrem schnell. Drop2 geht, drop 2-4 funktioniert nicht.
Ich gehe von folgender Überlegung aus:
Grundstellung: 1-2-3-4
Drop 2: 1-3-4-2
Drop 2-4 müsste sein: 1-3-2-4
wenn ich das Scrip 2-mal anwende kommt:
A) 1-2-3-4 (=Grundstellung)
B) 1-3-4-2 (=drop2)
C) 1-4-2-3 (weil der 2. Ton von oktaviert wird)
Oder habe ich einen Denkfehler?
Vielen Dank. Frank
das funktioniert sehr gut und geht extrem schnell. Drop2 geht, drop 2-4 funktioniert nicht.
Ich gehe von folgender Überlegung aus:
Grundstellung: 1-2-3-4
Drop 2: 1-3-4-2
Drop 2-4 müsste sein: 1-3-2-4
wenn ich das Scrip 2-mal anwende kommt:
A) 1-2-3-4 (=Grundstellung)
B) 1-3-4-2 (=drop2)
C) 1-4-2-3 (weil der 2. Ton von oktaviert wird)
Oder habe ich einen Denkfehler?
Vielen Dank. Frank
Re: Script Akkordtöne rotieren
Freut mich sehr. Man könnte eine drop2- und eine drop2+4-Funktion auch auf zwei Hotkeys legen, was beim Arrangieren für Big-Band hilfreich ist.FrankBoehme hat geschrieben: ↑Di Mär 02, 2021 12:45 amdas funktioniert sehr gut und geht extrem schnell.
Da kommt das ins Spiel, was ich unten drunter geschrieben habe: wenn das Script einmal gelaufen ist, haben sich die Nummern der (Unter-)Stimmen geändert: 1.=1., die neue 2. ist die ehemalige 3., die neue 3. ist die ehemalige 4., die neue 4. ist die oktavierte ehemalige 2. . Willst du also außer der 2. Stimme auch die ehemalige 4. droppen, musst du faktisch einen Befehl zum droppen der 3.Stimme auslösen. Dazu müsste man das Hauptprogramm (ab "---- START ----") folgendermaßen ändern:FrankBoehme hat geschrieben: ↑Di Mär 02, 2021 12:45 amdrop 2-4 funktioniert nicht.
wenn ich das Scrip 2-mal anwende kommt:
A) 1-2-3-4 (=Grundstellung)
B) 1-3-4-2 (=drop2)
C) 1-4-2-3 (weil der 2. Ton von oktaviert wird)
Code: Alles auswählen
---- START ----
for entry in eachentrysaved(finenv.Region()) do
local VoiceNote = FindVoiceNote( entry, 2) -- "2" ist die 2.Stimme von oben im Akkord
OctaveTranspose(VoiceNote, -1) -- die gefundene Note wird eine Oktave abwärts transponiert
VoiceNote = FindVoiceNote( entry, 3) -- die 3. ist die ehemalige 4.Stimme von oben im Akkord
OctaveTranspose(VoiceNote, -1) -- die gefundene Note wird eine Oktave abwärts transponiert
end
Code: Alles auswählen
---- START ----
for entry in eachentrysaved(finenv.Region()) do
local SecondVoiceNote = FindVoiceNote( entry, 2) -- finde die 2.Stimme von oben im Akkord
local FourthVoiceNote = FindVoiceNote( entry, 4) -- finde die 4.Stimme von oben im Akkord
OctaveTranspose(SecondVoiceNote, -1) -- die Note der 2. Stimme wird eine Oktave abwärts transponiert
OctaveTranspose(FourthVoiceNote, -1) -- die Note der 4. Stimme wird eine Oktave abwärts transponiert
end
Finale 3.0-27 / Windows 11
Eine Bitte an neue User: gebt bitte Betriebssystem und Finale-Version in der Signatur an - danke.
Eine Bitte an neue User: gebt bitte Betriebssystem und Finale-Version in der Signatur an - danke.
-
- Beiträge: 15
- Registriert: Sa Feb 27, 2021 8:13 pm
Re: Script Akkordtöne rotieren
Lieber Harald,
noch einmal vielen Dank. Du hast es genau durchschaut. Ich möchte das für den Unterricht nutzen damit die Studies sehr schnell kleinere Phrasen im Blocksatz (und den Kombinationen drop2 und drop2-4) probieren können.
Ich muss gestehen, dass ich das ich die Skriptsprache noch nicht richtig verstehe. Taste mich aber langsam vor. Durch ausprobieren habe ich jetzt das drop2-4 mit dem ersten Skript von dir kombiniert Wähle ich einen vierst. Satz an, kann ich zwischen dop2 oder drop2-4 auswählen. Tastaturkürzel belegt und es funktioniert alles tadellos.
ein großes Dankeschön. Ich gehe jetzt mit der Befehlsreferenz jeden Schritt noch einmal durch, um zu verstehen welcher Befehl welche Reaktion hervorruft.
Grüße vom F
noch einmal vielen Dank. Du hast es genau durchschaut. Ich möchte das für den Unterricht nutzen damit die Studies sehr schnell kleinere Phrasen im Blocksatz (und den Kombinationen drop2 und drop2-4) probieren können.
Ich muss gestehen, dass ich das ich die Skriptsprache noch nicht richtig verstehe. Taste mich aber langsam vor. Durch ausprobieren habe ich jetzt das drop2-4 mit dem ersten Skript von dir kombiniert Wähle ich einen vierst. Satz an, kann ich zwischen dop2 oder drop2-4 auswählen. Tastaturkürzel belegt und es funktioniert alles tadellos.
ein großes Dankeschön. Ich gehe jetzt mit der Befehlsreferenz jeden Schritt noch einmal durch, um zu verstehen welcher Befehl welche Reaktion hervorruft.
Grüße vom F