Hallo,
eine Frage zum Rhythmus detect bei Songs der verschiedensten Genres.
Ich habe ein Programm mit nem Kumpanen geschrieben (JAVA), welches man startet, dann Musik abspielt und dann im Tool die "Enter Taste" im Rhythmus-Takt (nicht bpm) drücken kann und diese Werte, das Drücken der "Enter Taste" werden in eine TXT Datei geschrieben.
Was sind das für Werte?
ein Song startet bei 0:0:0 (Minuten,Sekunden,Millisekunden)
in die TXT Datei wird nun bei jedem "ENTER" drücken die Millisekunde in die TXT Datei geschrieben, bei welcher Songposition ich gerade "Enter" gedrückt habe.
Wir brauchen dies um später visuell etwas zur Musik darzustellen. Dadurch, das die Werte in die TXT Datei geschrieben wurden weis ich bei welcher MS zb. der Rhythmus (Drum und Kickdrum oder Snare) gespielt wurde bzw wird bei entsprechendem Song.
weiter...
Problem: es ist sehr Zeitaufwändig bei mehreren Songs und vor allem bei Songs die man nicht kennt, immer im Rhythmus die Entertaste zu drücken.
Meine Frage:
ist es realisierbar in PureBasic dies umzusetzen?
ich lade ein MP3 in meinen PB Player dieser registriert anhand eines FFT die Rhythmus Ausschläge und schreibt mir alles automatisch in eine txt Datei.
Für Hilfe bin ich sehr dankbar.
Ich habe anhand eines Beispieles in PureBasic dies programmiert: download Beipsiel
komme aber nicht weiter das Ganze in Werten, in Form von Millisekunden in eine TXT Datei zu schreiben, wann ein Rhythmus Ausschlag war.
gibt es Beispiele oder jemanden der mir bei diesem Problem helfen kann?
viele Grüße
[erledigt] Musik Rhythmus detekt via FFT u. in txt schreiben
[erledigt] Musik Rhythmus detekt via FFT u. in txt schreiben
Zuletzt geändert von udg am 18.09.2014 02:54, insgesamt 2-mal geändert.
PB v5.43 LTS + v6.02 LTS | Windows 7 x86 + 11 x64 - Gforce RTX 4090 - AMD Ryzen 9 5900X 12-Core Processor 4.2 GHz - 64,0 GB RAM,
ASUSTEK TUF Gaming X570 Plus
ASUS ROG Thor-1200P Platinum (1200W, Aura Sync, OLED Display, 0dB-Cooling)
1x 1 TByte Samsung MZ-V7S500BW 970 EVO Plus 1 TB NVMe M.2 Internal SSD
1x 2 TByte Samsung MZ-V7S2T0BW 970 EVO Plus 2 TB NVMe M.2 Internal SSD
von BiSONTE! TOP. Kauft Eure Hardware gern bei ihm.
Monitor:
LG 38GL950G-B 95 (38 Zoll) Ultragear Curved 21: 9 UltraWide QHD IPS
ASUSTEK TUF Gaming X570 Plus
ASUS ROG Thor-1200P Platinum (1200W, Aura Sync, OLED Display, 0dB-Cooling)
1x 1 TByte Samsung MZ-V7S500BW 970 EVO Plus 1 TB NVMe M.2 Internal SSD
1x 2 TByte Samsung MZ-V7S2T0BW 970 EVO Plus 2 TB NVMe M.2 Internal SSD
von BiSONTE! TOP. Kauft Eure Hardware gern bei ihm.
Monitor:
LG 38GL950G-B 95 (38 Zoll) Ultragear Curved 21: 9 UltraWide QHD IPS
- NicTheQuick
- Ein Admin
- Beiträge: 8675
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
- Kontaktdaten:
Re: [ Frage ] Music Rhythmus detekt und in txt schreiben
Ich hatte da eine Vorlesung, in der genau sowas und noch mehr gemacht wurde. Wenn du willst, kann ich dir die Unterlagen schicken. Allerdings sind die auf Englisch und nur in Folienform, also kein Skript oder sowas.
Re: [ Frage ] Music Rhythmus detekt und in txt schreiben
Ich antworte, weil mich das Thema auch interessiert.
2. Wenn Du die FFT-Analyse beherrscht bist Du mir um Lichjahre vorraus und weisst wahrscheinlich schon, wie Du 1. löst. (Ich hätte jetzt den Beat einfach an der Elongation des Gesammtsignals abgemessen, falls das geht.)
3. Etwas in eine Textdatei zu schreiben ist das Allerleichteste in PureBasic. Siehe dazu den Code weiter unten.
Das Ganze könnte so aussehen:
Achtung: PSEUDOCODE !!!
1. Ich kann Dir sagen, dass PureBasic keine Sound-Unterstützung für MP3 hat. Es gab mal ein sehr altes PlugIn, dieses funktioniert jedoch mit aktuellen Versionen von PureBasic nicht mehr. MP3 kannst Du nur über die Movie-Bibliothek abspielen und wie Du diese Werte dann ausliest, weiß ich nicht.ich lade ein MP3 in meinen PB Player dieser registriert anhand eines FFT die Rhythmus Ausschläge und schreibt mir alles automatisch in eine txt Datei.
2. Wenn Du die FFT-Analyse beherrscht bist Du mir um Lichjahre vorraus und weisst wahrscheinlich schon, wie Du 1. löst. (Ich hätte jetzt den Beat einfach an der Elongation des Gesammtsignals abgemessen, falls das geht.)
3. Etwas in eine Textdatei zu schreiben ist das Allerleichteste in PureBasic. Siehe dazu den Code weiter unten.
Im Grunde öffnest Du eine Textdatei mit OpenFile() oder CreateFile() und schreibst Zeilen mit WriteStringN() hinein - was immer Du willst. Die Millisekunden kannst Du durch eine Schleife messen: Du brauchst den Befehl ElapsedMilliseconds().komme aber nicht weiter das Ganze in Werten, in Form von Millisekunden in eine TXT Datei zu schreiben, wann ein Rhythmus Ausschlag war.
Das Ganze könnte so aussehen:
Code: Alles auswählen
CreateFile(0, "Beats.txt")
Int_ZeitStart = ElapsedMilliseconds()
Repeat
If CheckForBeat() ; wenn wir einen Beat haben
Int_ZeitBeat = ElapsedMilliseconds() - Int_ZeitStart
WriteStringN(0, "Beat at " + Str(Hour(Int_ZeitBeat / 1000)) + ":" + Str(Minute(Int_ZeitBeat / 1000)) + ":" + Str(Second(Int_ZeitBeat / 1000)) + "," + Str(Int_ZeitBeat - Hour(Int_ZeitBeat / 1000) * 60 * 60 * 1000 - Minute(Int_ZeitBeat / 1000) * 60 * 1000 - Second(Int_ZeitBeat / 1000) * 1000))
EndIf
Until Bool_EndOfSong
CloseFile(0)
- ts-soft
- Beiträge: 22292
- Registriert: 08.09.2004 00:57
- Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel - Wohnort: Berlin
Re: [ Frage ] Music Rhythmus detekt und in txt schreiben
z.B. FMOD oder libzPlay könnten helfen:
http://www.fmod.org/download/#FMODExAPIDownloads
Für FMOD ist mir kein aktueller Wrapper bekannt, aber für zPlay
http://www.purebasic.fr/english/viewtop ... 94#p408794
http://www.purebasic.fr/english/viewtop ... 77#p375477
Das schreiben in eine Textdatei wirste dann wohl selber übernehmen müssen.
http://www.fmod.org/download/#FMODExAPIDownloads
Für FMOD ist mir kein aktueller Wrapper bekannt, aber für zPlay
http://www.purebasic.fr/english/viewtop ... 94#p408794
http://www.purebasic.fr/english/viewtop ... 77#p375477
Das schreiben in eine Textdatei wirste dann wohl selber übernehmen müssen.
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Re: [ Frage ] Music Rhythmus detekt und in txt schreiben
hey danke für die Vorschläge.
Im Moment schreib ich gerade an einer Version.
es muss nicht zwingend MP3 laden. Es kann auch wav oder ogg abspielen.
okay. mein Player spielt mp3 ab aber egal es kann auch wav oder ogg sein wie ich schon sagte denn es geht um die werte.
mein Beispiel Code, mein kleines Tool, dass ich als Download im ersten Post habe, zeigt ja das FFT funktioniert. Muss nur noch akkurat angepasst werden und bug fixed aber es funzt erstmal.
Hier einmal ein Beispiel meiner TXT Datei zu dem Song: Sexy Bitch von David Guetta
und so möchte ich die Werte automatisch in ein File schreiben. Diese hier habe ich manuell mit Enter zum Rhytmus getippt und dabei recorded.
Jeder Wert stellt eine Position im Song dar (in Millisekunden) wo eine Position eines Drums oder Snares oder ähnlichem sich befindet und ich im Rhythmus gedrückt habe.
@ NickTheQuick
danke sollte ich hängen bleiben komme ich gern auf das Angebot zurück, wenn das nicht zu krasse Umstände macht
so long
Im Moment schreib ich gerade an einer Version.
es muss nicht zwingend MP3 laden. Es kann auch wav oder ogg abspielen.
okay. mein Player spielt mp3 ab aber egal es kann auch wav oder ogg sein wie ich schon sagte denn es geht um die werte.
mein Beispiel Code, mein kleines Tool, dass ich als Download im ersten Post habe, zeigt ja das FFT funktioniert. Muss nur noch akkurat angepasst werden und bug fixed aber es funzt erstmal.
Hier einmal ein Beispiel meiner TXT Datei zu dem Song: Sexy Bitch von David Guetta
Code: Alles auswählen
472,
968,
1456,
1928,
2232,
2360,
2608,
...
u.s.w.
...
65800,
66016,
66240,
66464,
...
u.s.w.
...
190648,
190904,
191176,
191392,
191616,
Jeder Wert stellt eine Position im Song dar (in Millisekunden) wo eine Position eines Drums oder Snares oder ähnlichem sich befindet und ich im Rhythmus gedrückt habe.
@ NickTheQuick
danke sollte ich hängen bleiben komme ich gern auf das Angebot zurück, wenn das nicht zu krasse Umstände macht
so long
PB v5.43 LTS + v6.02 LTS | Windows 7 x86 + 11 x64 - Gforce RTX 4090 - AMD Ryzen 9 5900X 12-Core Processor 4.2 GHz - 64,0 GB RAM,
ASUSTEK TUF Gaming X570 Plus
ASUS ROG Thor-1200P Platinum (1200W, Aura Sync, OLED Display, 0dB-Cooling)
1x 1 TByte Samsung MZ-V7S500BW 970 EVO Plus 1 TB NVMe M.2 Internal SSD
1x 2 TByte Samsung MZ-V7S2T0BW 970 EVO Plus 2 TB NVMe M.2 Internal SSD
von BiSONTE! TOP. Kauft Eure Hardware gern bei ihm.
Monitor:
LG 38GL950G-B 95 (38 Zoll) Ultragear Curved 21: 9 UltraWide QHD IPS
ASUSTEK TUF Gaming X570 Plus
ASUS ROG Thor-1200P Platinum (1200W, Aura Sync, OLED Display, 0dB-Cooling)
1x 1 TByte Samsung MZ-V7S500BW 970 EVO Plus 1 TB NVMe M.2 Internal SSD
1x 2 TByte Samsung MZ-V7S2T0BW 970 EVO Plus 2 TB NVMe M.2 Internal SSD
von BiSONTE! TOP. Kauft Eure Hardware gern bei ihm.
Monitor:
LG 38GL950G-B 95 (38 Zoll) Ultragear Curved 21: 9 UltraWide QHD IPS
Re: [ Frage ] Music Rhythmus detekt und in txt schreiben
Schon mal Riffstation ausprobiert:
https://www.google.com/url?q=http://www ... tU4-0Atvgw
Hier ein Video dazu:
http://www.youtube.com/watch?v=ECvinPjm ... height=500
https://www.google.com/url?q=http://www ... tU4-0Atvgw
Hier ein Video dazu:
http://www.youtube.com/watch?v=ECvinPjm ... height=500
Windows 10
PB Last Final / (Sometimes testing Beta versions)
PB Last Final / (Sometimes testing Beta versions)
Re: [ Frage ] Music Rhythmus detekt und in txt schreiben
Danke aber das geht am Thema vorbei. Was Riffstation kann, kann ich mit meinen Soundtools ebenfalls erledigen. Bei meiner Frage ging es um etwas anderes.helpy hat geschrieben:Schon mal Riffstation ausprobiert:
https://www.google.com/url?q=http://www ... tU4-0Atvgw
Hier ein Video dazu:
http://www.youtube.com/watch?v=ECvinPjm ... height=500
Nichts desto trotz, danke an ALLE.
Mein Tool hab ich letzte Nacht fertigprogrammiert und erfüllt nun genau das was es soll:
NFO
PB v5.43 LTS + v6.02 LTS | Windows 7 x86 + 11 x64 - Gforce RTX 4090 - AMD Ryzen 9 5900X 12-Core Processor 4.2 GHz - 64,0 GB RAM,
ASUSTEK TUF Gaming X570 Plus
ASUS ROG Thor-1200P Platinum (1200W, Aura Sync, OLED Display, 0dB-Cooling)
1x 1 TByte Samsung MZ-V7S500BW 970 EVO Plus 1 TB NVMe M.2 Internal SSD
1x 2 TByte Samsung MZ-V7S2T0BW 970 EVO Plus 2 TB NVMe M.2 Internal SSD
von BiSONTE! TOP. Kauft Eure Hardware gern bei ihm.
Monitor:
LG 38GL950G-B 95 (38 Zoll) Ultragear Curved 21: 9 UltraWide QHD IPS
ASUSTEK TUF Gaming X570 Plus
ASUS ROG Thor-1200P Platinum (1200W, Aura Sync, OLED Display, 0dB-Cooling)
1x 1 TByte Samsung MZ-V7S500BW 970 EVO Plus 1 TB NVMe M.2 Internal SSD
1x 2 TByte Samsung MZ-V7S2T0BW 970 EVO Plus 2 TB NVMe M.2 Internal SSD
von BiSONTE! TOP. Kauft Eure Hardware gern bei ihm.
Monitor:
LG 38GL950G-B 95 (38 Zoll) Ultragear Curved 21: 9 UltraWide QHD IPS