BPM in die Datenbank schreiben

Gibt es eine Software, die den BPM-Wert des Titels übermittelt und ihn in die mAirList-Datenbank schreibt? Ich habe bisher nur Lösungen gefunden, die diese Werte als eigene Liste auswerfen.

Mir ist keine solche Software bekannt. Aber wenn die Fremdsoftware die Daten in eine CSV-Datei exportieren kann (erste Spalte Dateiname incl. Pfad, zweite Spalte BPM), dann kannst du die sehr leicht in die mAirListDB übernehmen.

Der von mir bevorzugte Player AIMP kann das (siehe Screenshot). Und im - gleich mitgelieferten - Advanced Tag Editor gibt es das als Stapelverarbeitung per Knopfdruck mittels des Buttons “BPM” rechts oben. Wenn Du das dann speicherst, wird der Tag entsprechend erweitert.
AIMP ist Freeware.

Lediglich der letzte Schritt, die Übertragung in die mAirList Datenbank, der bleibt an Dir hängen. Aber angesichts eines sauberen Tags sehe ich da kein größeres Problem.


Problematisch wird es, wenn man die Daten nachträglich in die DB übernehmen will, für Dateien, die schon in der DB-Bibliothek enthalten sind. Man kann nämlich immer nur den gesamten Tag neu einlesen, nicht einzelne Felder.

Da ist der Weg über die CSV-Datei komfortabler, dort kann man nämlich gezielt bestimmte Felder aktualisieren.

https://www.mairlist.com/dokuwiki/reference:mairlistdb_library_csv_import_export#importing_items

mit dem thema bpm als id3tag und mairlist hab ich mich vor ein paar jahren beschäftigt.
und habe in der spalte BPM in der DB nun das so zu stehen wie ich es benötige, lediglich die anzeife in der ausspielplayliset efhlt, wie auch die qualität der mp3 in 320 kBit/s z.b.

Ansich wäre die Funktion mit BPM recht genial. Nicht wegen DJ oder sonstigen Quatsch, sondern um das laufende 24h Programm auch mal langsamer oder fettziger gestalten zu können ohne gleich alles durchhören zu müssen. Klar kommt es da in erster Linie auch auf die Ordentliche Pflege de DB an. Auch mit Attributen…
Ich stelle mir auch gut vor im Autofloat einen Pich Range zu haben von eventuell ± 5% in denen dann die Automation die Lieder besser verteilen oder ausspielen kann um weniger Abschnitte durch harte Fixzeiten zu haben. Verhindern würde man es nie und muss es ja auch nicht. (natürlich mit fester Tonhöhe)

Entweder die BPM beim Importieren schon analysieren oder im Nachhinein als Massenbearbeitung.
Wäre das möglich?

1 Like

Im Grunde ist hiermit alles gesagt:

Dennoch sollte man sich ganz (ergebnis)offen über die Ideen von @TomJumbo83 austauschen können.

Mittlerweile habe ich da einen gewissen Erfahrungsschatz angesammelt - und der sagt: Ab dafür. :-1:
Grundsätzlich sollten wir uns vor Augen halten: mAirList ist eine Radio-Automation und kein DJ-Programm. Ja, ich weiß, dass Du das erwähnt hast - aber gerade deshalb kann ich Deine Argumente nicht so recht nachvollziehen.

Aktuell habe ich Erfahrungen mit dem vorab erwähnten AIMP Advanced Tag Editor, dem foobar2000-plugin BPM Analyser (foo_bpm) sowie der rekordbox von Pioneer DJ.
Sieht man mal von der rekordbox ab - die habe ich in dieser Hinsicht nicht getestet, da für mich aktuell nicht relevant -, muss man alle ermittelten BPM-Werte kontrollieren und nachpflegen. Das ist ein enormer Aufwand.

Doch selbst mein aktueller Favorit - foobar2000 BPM Analyser - verrennt sich zu einem immer noch zu großen Prozentsatz regelmäßig.
So etwas passiert vor allem bei Titeln, die sich nicht an den klassisch-deutschen Mitklatsch-4/4-Takt zwischen 120 und 132 BPM halten wollen. Wenn es dann noch in den Black angehauchten Sektor geht und da etwas ruhiger wird, darf man sich nicht wundern, dass da plötzlich Werte > 160 BPM in der Tabelle stehen. Das schaffen die Tools offenbar noch nicht so sauber.

Das war anfangs auch mein Grundgedanke, als ich neue Dateien mit BPM-Tag in die Datenbank eingelesen habe. Ich wollte das Attribut BPM als Grundlage für Transitions nehmen.

Aus der Praxis: Das funktioniert so nicht. Nur mal als Beispiel, das ich gerade auf dem Kopfhörer habe:
Paffendorf - Be Cool - 141 BPM
Auch wenn die Beats stimmen: Der “Mood” ist ein ganz anderer als bei ähnlich schnell berechneten Titeln. Und spätestens hier funktioniert die Nummer nicht mehr - oder Du legst Dir viele verschiedene virtuelle Unterordner mit passenden Genres an…

Absolut. Und du wirst schnell feststellen, dass die BPM da nur einer von vielen Parametern sind, ja, unter Umständen sogar hinderlich sind, weil sie zusätzlich nachgepflegt werden müssen.
Ich habe mir in der Playlist ja eine Spalte “BPM” angelegt und stelle immer wieder Nachbesserungsbedarf fest, weil ich stellenweise nicht aufgepasst habe:
Anastacia - Not That Kind soll 196 BPM haben? :flushed:

Hinzu kommt, dass BPM zwar ein gemeinsamer Nenner sein können (ebenso wie - theoretisch - die errechnete Tonhöhe (die rekordbox kann so was, warum auch immer)), aber ich als alter Tänzer hier mal gepflegt die “Takte pro Minute” (T/M) ins Rennen werfe. Und spätestens jetzt wird’s konfus, denn ein Tanz(-typ) steht nun mal für eine gewisse Geschwindigkeit und passt nicht in die gleiche Schublade wie ähnliche BPM.

Spätestens hier scheitert Dein “ähnliche BPM als Maßstab für Programmgestaltung”.
Aktuell höre ich einen Titel mit - korrekt! - errechneten 87 BPM. Blöd dabei nur: Trotz seines vergleichsweise geringen Tempos ist er vom Charakter eher als “flott” einzustufen. Und da versagt jeder Automatismus.

Ich war mal bei einem Sender, da machte sich der verantwortliche Musikchef die Mühe jeden Titel nach Tempo grob einzustufen: langsam, mittel, schnell. Mit dem Zusatzhinweis, wenn ein Titel langsam anfing und mittel endete etc. - war hilfreich für den Einsatz von Transitions.
Ich bastel’ aktuell auch an so was rum - ist aber wahnsinnig aufwändig und, zurück zum Thema, nicht immer synchron mit den BPM.

Aus diesem Grund plädiere ich dafür, stärker auf den “Charakter” des Musikstücks abzuzielen.
(Wie heißt das korrekt? Mood? Flow?)

Wie beim öffentlich-rechtlichen Rundfunk so ein Archiveintrag aussehen kann, wurde vor Ewigkeiten mal in den radioforen geschrieben:

WILD CAT BLUES
Archivnummer => 3200901
Index/Schnitt => 000
Abspieldauer => 3'00
==============> => Titel
Komponist => Waller, Thomas "Fats" (1904-1943); Williams, Clarence (1893-
1965)
Bearbeiter M => Schönberger, Heinz (1926-)
Urheber-Kennz. => 1
Titel => Wild cat blues
Aufnahmeort => Studio II
Solist. Mitw. => Schönberger, Heinz (cl)
Chor-Einstud. => Tanzorchester des Hessischen Rundfunks
Ensemble M => Schönberger, Heinz
Titelinterpret => TO des hr; Schönberger, Heinz
Bereich => L Leichte Musik
Kateg/Präs.form => 12 Tanzmusik
Art/Charakter => Swing
Ausführung => 2 instr
Aufnahmedatum => 1977-02-25
Aufnahmeort => Studio II
Verlag-Titel => Clarence Williams
==============> => Tonträger
Obertitel => nicht vorhanden
repr. Interpret => TO des hr; Schönberger, Heinz (Ltg)
Entstehungsart => 1 Eigenproduktion (Herkunft: 3
Labelcode Label => X050 HR
Betriebsart TT => 2 Stereo
Tonträgerart => 1
Aufn/Abm/Wdg TT => XXA

(mit nostalgischen Grüßen an @Tondose, der sicher noch so einiges zur Archivierung und BPM zwecks Programmgestaltung beitragen kann)

Das Schöne daran: Mit mAirList kann man so einen Index natürlich auch erstellen (und den Mini-Scheduler irgendwann überfordern).
Die Kernfrage lautet also: Was ist sinnvoll für den Radiobetrieb und was nicht?

Auch hier aus der Praxis: Nein, bitte nicht.

mAirList bietet wahrlich genug Möglichkeiten, die Sendestunde sauber zu beenden.
Wenn Du zu viele Blöcke und / oder Fixzeiten in der Sendestunde in der Sendestunde hast, dann wird ein gepitchter Auto-Float auch nicht viel helfen.

Ein Rechenbeispiel: Ein Titel mit einer Länge von 4’ 00" hätte bei einem MasterTempo von +5% eine neue Länge von 3’ 48" - wenn mich meine Rechenkünste jetzt nicht im Stich lassen (DJs, helft mir!).

Ich habe im Hinterkopf noch eine Diskussion, ebenfalls in den radioforen, wo ein terrestrischer Privatsender von einem Titel unterschiedlich lange (selbst geschnittene!) Versionen eines Titels vorhielt, um vermeintlich “punktgenau” zur Werbung oder den Nachrichten enden zu können. Die Bezeichnung “unethisch” für dieses Vorgehen dürfte dabei noch die diplomatischste Umschreibung sein.
Ähnliches erwarte ich bei einem gepitchten float.

Brauchen Deine Hörer das wirklich?

Skeptische Grüße: Uli

Alle Achtung. Das das Thema so komplex ist hätte ich gar nicht gedacht.

Naja DJ Programme wie Traktor etc verbringen anscheinend nicht umsonst etliche Zeit mit der Berechnung der BPM. Und du hast vollkommen recht… auch diese machen Fehler. >Schade also das hier nicht gut an zu setzen ist mit “BPM”<

Solche privaten Sender im Terrestrischen Bereich kenne ich in Bayern auch zu gut. :face_vomiting:
Wobei hier aber von einem Profit Orientierten Unternehmen gesprochen wird mit Millionen errechbaren Hörern dessen selbst die Musik Ausspielung schon Geld ein bringt. ( Spielen die einen Song wird er bekannt… etc ) Passt mehr in die Stunde desto… usw…

Das war nicht ganz mein Vorhaben möglichst viel in die Stunde zu packen oder alle Lieder zu pichen. Eventuell pro Block das ein oder andere vor der Fixzeit. Aber wie gesagt nur ein Gedanke.

Zumindest haben oder hatten wir bei BPM den selben Grundgedanken im Thema. Du nur eben ein wenig früher als Ich. :smile:
Aber du hast mich überzeugen können das der Gedanke zwar gut ist, aber nicht wirklich sinnvoll umsetzbar angesichts zu viele Fehler oder Variablen.

Danke dir.

Interessanter Ansatz: Schreibt Traktor dann auch den Wert in den ID-Tag? In dem Fall ließe sich der doch in die mAirListDB übernehmen.
Allein: Wie Du diese Werte in mAirList verarbeitest, das ist ein ganz anderes Thema. Vielleicht machst Du da ja andere Erfahrungen, wer weiß?
Nicht gleich die Flinte ins Korn werfen. :wink:

Torben hatte ja den Export / Import via *.csv empfohlen. Bei mir ging es in der Massenbearbeitung mit dem Einlesen des kompletten Tags einwandfrei (in meinem Fall gab es mal dieses “ISRC-Problem”), allerdings mit FLAC und nicht mp3.
Erfahrungswert: Sofern bestehende Felder übereinstimmen, ändert sich da nichts. Im Tag nicht vorhandene Felder, die in der Datenbank bestehen, bleiben bestehen, werden aber nicht gelöscht. Neue Felder werden problemlos hinzugefügt.

Sofern Du mit mp3 arbeitest - nur dieses Format wird aus der mAirListDB in den ID-Tag zurückgeschrieben (andere Formate waren Torben bislang zu aufwändig, so steht es zumindest irgendwo im Forum) -, kannst Du ja die Tags vorab alle aktualisieren und dann die BPM einfügen und neu einlesen lassen (Massenbearbeitung).

Für die *.csv-Geschichte müsste ich vielleicht mal ein “How to” bebildern. Ich schreib’s mir mal auf die ToDo-Liste. :sunglasses:

Für neue Ideen, wie man seine Playlist phasen- oder stundenweise mal flotter oder mal relaxter gestalten kann, bin ich jederzeit offen.
Aktuell arbeite ich mit entsprechenden Musikvorlagen, aber da geht bestimmt noch mehr. Ob mit oder ohne BPM.
Tatsächlich experimentiere ich derzeit mit einem Feld “mood” - das ich allerdings händisch pflegen muss. Schöne Sonntagsarbeit (oder, im Sommer, in der Abendsonne auf dem Balkon).

[OT]

Ja, um genau jenen Sender ging es bei der Diskussion, wenn ich das richtig im Hinterkopf habe. Arbeitet Frau W. jetzt nicht bei einem ö-r Sender “tief im Westen”?
[/OT]

Bei professioneller Musikplanungssoftware (zumindest jenen, die ich kenne), wird neben dem Tempo (slow, medium, fast – für Rundfunkanwendung reicht das, also nicht exakt nach BPM!) auch nach Intensität (low, medium, high) unterschieden. Das trifft es ziemlich genau.

Im von Dir ausgebaggerten Beispiel kommt diese Größe gar nicht vor, denn sie zu bestimmen ist nicht Aufgabe des Archivs, sondern der Musikredaktion. Wollte man sie recherchieren, müßte man also in der Planungssoftware und nicht in der Archivdatenbank suchen. (Was aber niemanden davon abhalten soll, seine eigene mAirlist-Datenbank entsprechend auszubauen.)

Kategorisierte Grüße

TSD

Das ist in der Tat ein guter Ansatz, mit dem man auch den Mini-Scheduler füttern kann.
Dass ein Musikarchiv stets eine gute Pflege braucht, ist ohnehin unbestritten.

Danke für den Tipp. :slight_smile:

Ein (zugegeben etwas makabres) Beispiel dafür waren die (händisch umgestrickten) Musikprogramme nach den Anschlägen vom 11. September 2001: Zwar kamen durchaus auch mal BPM-haltigere Titel zur Sendung, es wurden aber durchgängig Titel mit der Intensität low eingesetzt, was den Effekt der trauernden Zurückhaltung erzeugte.

Erinnernde Grüße

TSD

Ich habe schon lange nicht mehr mit VDJ gearbeitet.
Hab mir gerade die Kostenlose Variante installiert. Diese geht ja nur auf eine Audiokarte ( Kanal ) aber das ist mir ja für mein Vorhaben relativ egal.
Nun hab ich einen Teil meiner DB analysieren lassen und “JA” … VDJ schreibt diese in die Tags.
Hier ein Ausschnitt auf MP3TAG
image
Das ReplayGain ist vorher schon entstanden durch EZ Audio Converter.
Ein Standart bei uns.
Mal schauen was sich jetzt daraus machen lässt :slight_smile:

In diesem Fall musste ich meine Antwort kurz Editieren da auf dem Foto ein paar prikante Daten zu sehen waren. :wink:

Nun ist es so das Virtual Dj diese Berechnung sehr schnell machen kann.
Dabei werden wir, denke ich mal wieder auf das Problem stoßen der falschen Analyse.
Sobald ich aber die Sammlung Syncronisiert hab werd ich mal schauen was ich daraus machen kann.

Also es hat geklappt :slight_smile:
image
Über die Einstellung der Standart Attribute habe ich einfach BPM als Einzeiliges Textfeld hinzugefügt.
Diese hat die mAirlist Datenbank exact der ID3 Tags übernommen und durch neues Einlesen der ID3 Tags auch richtig geschrieben.
Nun kann ich in der Datenbankübersicht bei Ansicht - Biblioteks Spalten - BPM Als spalte anzeigen lassen. Und natürlich auch dementsprechend sortieren.

Wir jetzt die endgültige Berechnung stimmt oder nicht wird sich rausstellen.

Bist Du schon. Major Tom, Wake Me Up und Take On Me haben alles andere als paarundachtzig bpm. Und Rosanna würde ich eher so bei 116 vermuten. Würdest Du wirklich die ganze Korrekturarbeit auf Dich nehmen wollen? Dann kannst Du es ja gleich mit der Hand (und dem Verstand!) messen.

Korrigierte Grüße

TSD

Das war jetzt nur ein erster Test den ich betriben habe mit der Lokalen Test Datenbank.
Das ist jetzt so nicht umgesetzt. Genau hier ist der Knackpunkt das ich bisher kein Anständiges Programm gefunden habe das mir nun auch mehr Informationen einbauen kann. Leider ist das Musicbrainz etc auch sehr lückenhaft.

Die Berechnung von BPM ist zwar kein klassisches mAirList-Thema, aber ich denke, dass Torben uns hier etwas Freiraum gewährt.

Ich habe mich inzwischen auf den Foobar 2000 Automatic BPM Analyser (foo bpm) eingelassen. Den passenden Wiki-Eintrag bei hydrogenaudio findest Du hier:
https://wiki.hydrogenaud.io/index.php?title=Foobar2000:Components/Automatic_BPM_Analyser_(foo_bpm)

Dieses nachträglich zu installierende component - funktioniert übrigens auch mit der portablen Installation - bietet die Möglichkeit der automatischen Erkennung, des manuellen “tap on beat” sowie der schnellen Korrektur über “double / halve selected BPMs”, wenn sich das Tool mal verrechnet hat. Erfahrungsgemäß reicht das auch; komplett daneben liegende Berechnungen habe ich bislang noch nicht festgestellt.

So sieht das Kontextmenü aus:

(natürlich können alle Dateien ausgewählt und auf einmal berechnet werden)

Hat man einen Ausreißer gefunden (oder vermutet das zumindest), kann man den Wert einfach halbieren (das ist m.M.n. der am häufigsten abweichende Anwendungsfall) - oder das manuell überprüfen.
Statt des Mausklicks auf das Tap-Feld kann man auch die Leertaste benutzen:

In der Konfiguration kann man den Algorithmus der BPM-Kalkulation anpassen:

Weitergehende Informationen finden sich im oben verlinkten Wiki-Eintrag.

Ich denke, dass man mit diesem externen Programm / Tool recht brauchbare Ergebnisse erzielen kann, mit einem vertretbaren Nachbesserungsbedarf.
Allerdings würde ich mich freuen, wenn es weiterentwickelt würde.

Foobar hatte ich auch kurz getestet allerdings nicht so umfangreich wie du jetzt. Genau um diese Doppelung oder Halbierung geht’s.
Richtig genial wäre es wenn man andere Daten abgreifen könnte auf Datenbanken wie Music brainz die zumindest eine Zuordnung der Stimmung hervorbringen könnte. BPM ist und wird leider immer fehlerbehaftet sein.

Um ehrlich zu sein, ich tue mich mit solchen Fremd-Zuordnungen etwas schwer. Das fängt doch schon beim Genre an - eine neverending story.

Meine Quelle - für gewisse Daten zumindest - ist übrigens Discogs.

Welche Werte kämen für Dich denn beim Attribut “Stimmung” in Frage? Angenommen, Du würdest in der mAirListDB eine dropdown-Auswahl erstellen (geht ja recht einfach), welche Werte ständen zur Auswahl?
Allein bei der Planung geht es doch schon los…

Was spricht gegen den von @Tondose eingebrachten, aus der Praxis abgeleiteten Vorschlag?