| Autor |
Beitrag |
Nano82
Hält's aus hier
Beiträge: 8
|
Verfasst: Mi 19.09.07 19:50
Hallo,
ich habe früher viele Probleme mit Delphi 2007 gehabt. Das hat sich gebessert, trotzdem übersah ich hin und wieder einige Dinge.
Momentan möchte ich folgendes tun: Ich möchte gerne dem Timer einen zum Schlag pro Minute proportionalen Wert zuweisen. Habe ich erst den Wert für BPM in einer Variable gibt es kein Problem mehr, nur wie schaffe ich es, die Musik, die eine Audioanwendung spielt in Delphi intern in BPM umzuwandeln und zwar so oft wie möglich ?
Es würde mich freuen, komplette Codebeispiele zu lesen, damit ich bei meiner eigentlichen Aufgabe weitermachen kann.
|
|
Gausi
      
Beiträge: 8553
Erhaltene Danke: 479
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Mi 19.09.07 20:12
Hallo und  in der Entwickler-Ecke,
Für die bass.dll gibt es die Erweiterung bass_fx.dll, die unter anderem Methoden zur BPM-Bestimmung bereitstellt. Gearbeitet habe ich damit noch nicht, aber das wäre zumindest ein Ansatz.
_________________ We are, we were and will not be.
|
|
Nano82 
Hält's aus hier
Beiträge: 8
|
Verfasst: Mi 19.09.07 20:15
Das Niveau der bass.dll ist mir zu hoch.
|
|
Gausi
      
Beiträge: 8553
Erhaltene Danke: 479
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Mi 19.09.07 20:22
In dem Fall: Programmier was anderes
BPM-Detektion ist afaik nicht gerade trivial, und die bass.dll (bzw. dieses Addon) dürfte einem da ungefähr 99% der Arbeit abnehmen.
_________________ We are, we were and will not be.
|
|
Nano82 
Hält's aus hier
Beiträge: 8
|
Verfasst: Mi 19.09.07 20:27
Ich will lediglich den Wert in meiner Variable haben, wie etwa: BPM := GetBPMfrom(<Devicenumber>); Also obwohl die bass.dll mir 99% der Arbeit abnimmt habe ich eine solche Funktion dort nicht gefunden.
Du schreibst, daß du dich noch nicht damit beschäftigt hast. Dann schlage ich vor, wir überlassen anderen mit der bass.dll erfahrenen Mitlesern die Möglichkeit, zu antworten.
Also: Wer kennt sich mit der bass.dll aus und kann mir hier weiterhelfen ?
|
|
Fighter#1
      
Beiträge: 787
Win XP, Ubuntu 8.04
Turbo Delphi 2006, Delphi 2005 Pe, Delphi 5 Pe, Netbeans 6.1, Eclipse, Microsoft VisualC#, Dev C++, PHP, HTML, CSS
|
Verfasst: Mi 19.09.07 20:59
Nano82 hat folgendes geschrieben: |
Du schreibst, daß du dich noch nicht damit beschäftigt hast. Dann schlage ich vor, wir überlassen anderen mit der bass.dll erfahrenen Mitlesern die Möglichkeit, zu antworten.
Also: Wer kennt sich mit der bass.dll aus und kann mir hier weiterhelfen ? |
Ich glaube kaum dass Gausi damit ausdrücken wollte das er keine Ahnung von der Bass.dll hat^^ nur diese EINE FUNKTION hat er noch nicht näher betrachtet!
Schau dir mal den GENIALEN Nemp Player an  ...
und sag dass er mit der bass.dll nicht vertraut sei
MfG, Fighter#1
_________________ Wer andere beherrscht ist stark,
wer sich selbst beherrscht ist mächtig. Lao Tse
|
|
JayEff
      
Beiträge: 2971
Windows Vista Ultimate
D7 Enterprise
|
Verfasst: Mi 19.09.07 21:51
Nano82 hat folgendes geschrieben: | | Wer kennt sich mit der bass.dll aus und kann mir hier weiterhelfen ? |
Die Bass _fx.dll nimmt dir 99% der Arbeit ab. Statt patzig zu Antworten und zu erwarten, dass wir dir das restliche % abnehmen, könntest du dich auch ein bisschen mit dieser DLL beschäftigen. Ich vermute, du brauchst keine halbe Stunde um die Funktion zu finden und einzubauen.
Als Ansatz: Bei der Bass.dll ist eine Unit dabei, die sämtliche exportieren Funktionen bereitstellt. Die ist sicher auch bei der fx-dll dabei. Dann gibt's sicherlich Dokumentationen zu der Datei.
Was Gausi betrifft: Er hat, mit der bass.dll ( NICHT der _fx.dll) als Grundlage, einen Musikplayer geschrieben, der Winamp und WMP und Cohorten von meinen MP3-Files verbannt hat, und zwar schon mit seiner Version 2.5a wenn nicht noch früher. Augenblicklich testen wir die Version 3.0
_________________ >+++[>+++[>++++++++<-]<-]<++++[>++++[>>>+++++++<<<-]<-]<<++
[>++[>++[>>++++<<-]<-]<-]>>>>>++++++++++++++++++.+++++++.>++.-.<<.>>--.<+++++..<+.
|
|
Gausi
      
Beiträge: 8553
Erhaltene Danke: 479
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Do 20.09.07 08:17
Jetzt mal ruhig, ok? Mein Player mag ja gut sein, aber außerhalb des DFs ist der bisher recht unbekannt. Kann ja nicht jeder wissen, dass ich schonmal damit gearbeitet habe  .
Mit der bass_fx.dll arbeite ich, um die Effeke und den Equalizer zu gestalten. Daher weiß ich aus der beiliegenden Hilfe, dass es dort Funktionen wie BASS_FX_BPM_CallbackSet gibt, wozu die Dokumentation sagt: "Enable getting BPM value by period of time in seconds." Ganz trivial ist das auch nicht, weil da mit Callback-Routinen gearbeitet wird, die vielleicht etwas schwieriger zu handhaben sind als eine Integer-Variable in einer for-Schleife, aber auch das sollte gehen. Ob es dafür auch ein Beispiel-Projekt gibt, weiß ich grade nicht. Kann aber gut sein.
Theoretisch sollte das in etwa so laufen:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| BASS_FX_BPM_CallbackSet(mainStream, @bpmproc, 4, Makelong(45,230), 0, 0);
procedure bpmproc(aStream: DWord; bpm: single; user: DWord); begin MainForm.Timer.Interval := bpm; end; |
_________________ We are, we were and will not be.
|
|
Nano82 
Hält's aus hier
Beiträge: 8
|
Verfasst: Do 20.09.07 20:45
Was ist mit "//nach erzeugen des Streams zum Abspielen:" gemeint.
|
|
Gausi
      
Beiträge: 8553
Erhaltene Danke: 479
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Do 20.09.07 20:55
Der ganze Ansatz mit der bass.dll und Addons setzt voraus, dass man das, wovon man den BPM-Wert ermitteln will, auch selbst abspielt. D.h. man spielt mit Hilfe der bass.dll etwas ab, und setzt darauf diese Erweiterungsfunktionen der _fx.dll an.
Wenn du das, "was man grade so hört", behandeln willst, wären evtl. die RecordStreams was für dich (mehr dazu in der Bass-Doku). Ob das klappt, kann ich nicht sagen  .
_________________ We are, we were and will not be.
|
|
|