Ich bin gerade dabei ein Script für Mairlist zu bauen was immer schaut wie lang das Lied noch geht und wenn es nurnoch 5 sekunden geht wird auf das nächste Lied gefadet.
Leider fehlen mir dafür die Befehle.
Kann mir jemand dafür ein Code Beispiel geben?
Ich weis das es sich dann bei manchen liedern nicht so gut anhört aber das finde ich für mein vorhaben erstmal nicht so schlimm.
Ich hab die autofade/cue-detect Funktion aktiviert.
Ich habe in der Config folgende werte gesetzt.
Einmal “Fade-Out Wert für neue Elemente auotamtisch bestimmen”
Dann noch Cue In und Cue Out.
Wenn ich dann für den Titel die mmd schreibe wird dort für Fade und Cue folgendes reingeschrieben.
Wenn ich aber in Mairlist bei dem jeweiligen Titel auf eigenschaft gehe steht dort bei “Fadeout Länge” 0
Leider wird das Lied beim abspielen auch nicht gefadet
Ich nutze mommentan die Version 2.1.42.
Die mmd dateien werden in dem Ordner gespeichert in dem auch die Tracks liegen.
Es scheinen alle Werte korrekt gesetzt sehe ich gerade hatte am Anfang falsch geschaut.
Leider wird aber nicht gefadet obwohl alles richtig gesetzt wurde.
Gruß Space
Edit: Der Wert Start Next wird nicht gesetzt kann es deswegen net gehen wenn die Automation an is?
Edit2:Der wert für Start Next war es… Aber der wird nicht automatisch geladen.Gibt es dafür vieleicht eine Funktion?
Start Next hat auch eigentlich nichts mit Fadeout zu tun, es gibt ja lediglich an, wann der nächste Track starten soll(bzw er vom Fadeout-Punkt abweicht)
Vielleicht liegen Cueout und Fadeout so nah beieinander, dass du nicht merkst, dass gefadet wird?
So wie ich das beobachte, ist der Fadeoutpunkt auch gleichzeitig der Startnext-Punkt (sofern kein anderer Startnext-punkt gesetzt ist. Diesen startnext braucht man eventuell bei langen Phasen ohne Beat am Ende eines Liedes… Das kannst du aber nur manuell setzen ).
Wenn dir der Fadepunkt zu “spät” gesetzt wird, kannst du ja die Referenzlautstärke in mAirListConfig anpassen.
Ein Titel wird nur ausgeblendet, wenn sein Fade-Out-Punkt gesetzt ist.
Professionelle Musikredaktionen setzen den Wert manuell für jeden Titel. Es gibt aber auch die Möglichkeit, den Punkt anhand eines dB-Wertes automatisch ermitteln zu lassen. Siehe mAirListConfig, “Verschiedenes” -> “Datei-Import”. Oben die Option aktivieren, unten evtl. den Wert anpassen. Eine weitere Möglichkeit ist, im Cue-Dialog Shift zu drücken und dann auf SET zu klicken, dann wird der Wert auch ermittelt und eingetragen, selbst wenn die genannte Option sonst ausgeschaltet ist.
Speichert man fertig eingestellte Cuezeiten in einer Playlist, einer MMD-Datei oder dem ID3-Tag, wird sie beim erneuten Reinziehen des Titels nicht wieder ermittelt sondern stattdessen der Wert aus der Playlist/MMD/Tag genommen.
Der Fade beginnt am genannten Fade-Out-Punkt. Die Fader-Dauer (also die Zeit, bis die Lautstärke 0 erreicht hat), ermittelt sich so:
a) wenn der Titel auch Cue Out gesetzt hat, geht der Fade bis zum Cue Out
b) ansonsten, wenn der Titel eine Fade-Dauer <> 0 eingetragen hat, wird diese genommen (Einheit: ms)
c) ansonsten wird die Dauer genommen, die in der Konfiguration als Standard-Fade-Dauer der Playlist eingestellt ist.
Eine sehr interessante Info, danke!
Wo wir beim Thema Faden sind: Gibt es eine Möglichkeit, in dieses Next-Skript eine Fade-Dauer von 1 Sekunde zu implementieren? Also so, dass der Fade immer eine Sekunde dauert, wenn die Next-Taste gedrückt wird?
[code]var i, player, item: integer;
begin
player := -1;
item := -1;
for i := 0 to CurrentPlaybackControl.GetPlayerCount - 1 do
if ((CurrentPlaybackControl.GetPlayer(i).GetState = PS_LOADED) or
(CurrentPlaybackControl.GetPlayer(i).GetState = PS_PAUSED))
and
((item = -1) or
(CurrentPlaylist.IndexOf(CurrentPlaybackControl.GetPlayer(i).GetItem) < item))
then begin
player := i;
item := CurrentPlaylist.IndexOf(CurrentPlaybackControl.GetPlayer(i).GetItem);
end;
if (player = -1) then
SystemLog(‘Keinen freien Player gefunden.’)
else begin
CurrentPlaybackControl.PlayerStart(player);
for i := 0 to CurrentPlaybackControl.GetPlayerCount - 1 do
if i <> player then CurrentPlaybackControl.PlayerFadeOut(i);
end;
end.
[/code]
Dies hätte den Vorteil, dass ich die standardmäßige Fade-Dauer wieder auf fünf Sekunden hochsetzen könnte, weil 1 Sekunde z.B. in der Automation relativ kurz ist.
Vielleicht einfach die Fade-Zeit für die ausgeblendeten Elemente setzen? Ergänze mal unten wie folgt (nicht getestet):
for i := 0 to CurrentPlaybackControl.GetPlayerCount - 1 do
if i <> player then begin
if CurrentPlaybackControl.GetPlayer(i).GetItem <> nil then
CurrentPlaybackControl.GetPlayer(i).GetItem.SetFadeOutDuration(10000000);
CurrentPlaybackControl.PlayerFadeOut(i);
end;