[E2 Plugin] Musik - Visualisierung - ein Prototyp :-)

  • Hi,


    da ich im Rahmen meiner VideoDB-Programierung auch Musik-Dateien unterstützen will (allerdings dauert das noch ein bisschen), und ich die ganze Zeit schon eine Musik-Visualisierung schreiben wollte, habe ich mich mal hingesetzt und einen Prototypen geschrieben, ich stehe nämlich auf solche Anzeigen und Spielereien. :tongue:


    Normalerweise veröffentliche ich nie einen Prototypen, aber das dauert noch ne ganze Weile, bis ich zu dem Thema Musik-Einbindung in VideDB komme, deswegen würde ich das gerne mal von Euch in der Zwischenzeit mal angetestet bekommen.


    Ich hab 4 Visualisierungen geschrieben: 3 x für die GUI, 1 mal für das OLED. Zu finden sind diese in der Extented-Plugin-Liste.


    Der Player ist natürlich nicht fertig (sonst wärs ja kein Prototyp), mal kann also nur 1 Musikstück hören, es springt nicht automatisch zum nächsten weiter. Spulen/ID3 Tag Anzeige/Restzeit etc... alles Fehlanzeige...es geht nur um die Visualisierung.


    So, zum eigentlichen Thema.


    Die Visualisierung ist natürlich ein CPU-Fresser. :D Für die Analyse der Musik und das Abspielen gehen ca. 15% CPU drauf, für die Anzeige in der GUI je nach Art noch mal zwischen 8% bis 25%...
    Dafür ist die Visualisierung natürlich zur Musik synchron, wie man es von vlc oder winamp gewohnt ist.


    VisuTest1 ist der größte CPU-Verschwenderer. Hier verwende ich 64 Bänder für die Anzeige.
    Bei den anderen hält sich meiner Meinung nach die CPU in einem (für das Plugin) angemessenen Bereich auf.


    Wo ich gerne Feedback bekommen würde ist das Verhalten der einzelnen Boxen, Musik beispielsweise über Netzwerk abspielen, ob die Anzeigen ruckeln oder es zu Spinnern kommt.


    Desweiteren das Verhalten der Visualisierung beim Internet-Streaming...ich hab eine Datei url.txt in das Plugin-Verzeichnis gelegt, in der eine streaming-url ist. die könnt ihr nach Eurem Geschmack natürlich austauschen. ;)


    Während der Ausführung des Plugins sollte KEINE Aufnahme auf eine NAS aufgenommen werden, oder per FTP Dateien auf die Box geschaufelt werden, da das Netzwerk der Box weitere CPU-Power beansprucht, das wird dann zuviel (im prinzip so wie beim DTS Plugin).


    Kurz zur Handhbung des Plugins:


    grün: --> Dateibrowser --> Musik auswählen
    blau: --> Internetstreaming (url aus url.txt)


    Abgespielt können alle Musik Dateien, wofür Ihr einen Codec installiert habt (also flac, ogg, mp3, wav etc).


    Ihr solltet einen HD Skin installiert haben... ich hab mir nicht die Mühe gemacht, SD oder XD zu unterstützen, VisuTest1-3 gehen aber auch in SD oder XD Modus.


    Das ganze ist zum dem jetzigen Zeitpunkt noch Closed Source, das ändert sich dann natürlich.


    Ich würde es extrem uncool finden, wenn jemand die c++ Lib von mir zu dem jetzigen Zeitpunkt schon für andere Projekte/Plugins nehmen würde. Das will ich natürlich nicht.


    Dann erstmal viel Spass mit dem Prototypen, wers denn gebrauchen bzw. testen will.
    Dr.Best

  • 7025 ist nicht bei dem Prototyp. :tongue: Hätte ich gesondert kompilieren müssen...hm, allerdings wäre das mal ein guter Test zu sehen, ob das da auch geht. Ich kompiliere morgen mal meine LIb mit einem 7025 OE.
    Ist das ne 7025+?

  • Quote

    Original von Swiss-MAD
    Nein ist keine + sondern noch die schöne alte. ;)


    Auf der alten 7025 geht meine Lib nicht, sorry. Wenn überhaupt nur auf der 7025+.
    Schade, wäre spannend gewesen zu sehen, ich denke eigentlich, dass die Power reichen sollte, zumindest für die OLED Anzeige.


    Edit: eigentlich müsste die Lib auch direkt ohne Neukompilierung auf einer 7025+ gehen...naja ich lasse mich mal überraschen, eventuell testet das ja jemand.

    4 8 15 16 23 42

    Edited once, last by Dr.Best ().

  • Ich hatte mit sowas ja auch bereits experimientiert, hab das aber wieder verworfen weil ich mich nicht mit dem Gedanken anfreunden konnte etwas Softzudekodieren obwohl die Hardware Harddecoding unterstützt.



    Meiner Meinung nach wäre der beste Weg sowas zu realisieren über ein Capture Device im Alsa Treiber.


    Evtl hab ihr sowas ja auch schon, kannst ja mal nachschauen.
    Alsamixer mit F6 Karte auswählen und TAB um Capture Devices anzuzeigen.


    Weil dann könnte man den PCM Stream abgreifen der zu den Lautsprechern geht und das ganze wäre echt Syncron.


    Ich habe mir das bereits bei duckbox angesehen und da existiert noch kein Capture Device, so fit bin ich leider auch nicht mit ALSA das ich das eingebaut hätte. ;-)



    Hast du in die Richtung evtl auch schon geforscht?

  • Quote

    Original von Schischu
    Evtl hab ihr sowas ja auch schon, kannst ja mal nachschauen.


    Naja, ich hab das Ding programmiert, ich weiß schon, wie ich das gemacht habe. :-)


    Ich mache halt eine fft Ananlyse, und klaro geht das über alsa. ;)


    Das ganze ist 100% synchron zur Musik, ansonsten wäre es doch witzlos. :-)

  • Vielleicht wäre es 'ne gute Idee das Plugin mit dem MerlinMusicPlayer zu kombinieren ?!

  • Quote

    Original von redskyfox
    Vielleicht wäre es 'ne gute Idee das Plugin mit dem MerlinMusicPlayer zu kombinieren ?!


    1. Post gelesen ? ;)


    Wenn VideoDB fertig ist, brauchst du den MerlinPlayer wohl gar nicht mehr.
    Und wenn doch, kommt der Player ja auch aus Dr. Best's Feder ...ääähh Tasten. ;)

  • Ok wusste ich nicht, dachte nur weil du von Codec Packs geredet hast das du die Streams in gstreamer softdecoden lässt.


    Das du das direkt über ALSA gemacht hast ist klasse ! :-)

  • Quote

    Original von Schischu
    Das du das direkt über ALSA gemacht hast ist klasse ! :-)


    Ne ne, das habe ich nicht gesagt. :-) Ich mache das schon in Verbindung mit gstreamer. Alles andere macht imO auch keinen Sinn.

    4 8 15 16 23 42

    Edited once, last by Dr.Best ().

  • Ach dachte weger
    >> Ich mache halt eine fft Ananlyse, und klaro geht das über alsa. Augenzwinkern


    Schade, naja das mit syncron kann ich mir nicht vorstellen den wenn du softdecoding machst wird das doch per lpcm stream über dvbaudiosink in die linuxdvb api injected die wiederum einen Buffer hat.


    Oder umschiffst du das komplett und injectest direkt von gstreamer in die alsa ?
    Dann würde es natürlich syncron sein.


    Wenn man ein Capture Device in Alsa hätte hätte man halt auf einen Schlag Zugriff auf alles, Lautstärke Pegel usw. jedes Audio Signals sei es Mp3 Playback oder Live TV.


    Auf doof wäre es dann nur ein einfacher Zugriff z.B. cat /dev/snd/controlC0 und man hätten den PCM Stream.

  • Glaubs mir, es ist synchron.
    Wenn ich den Code dann offen habe kannste Dir das gerne anschauen, wie ich das gemacht habe. :-)

  • Ist ja wie bei Lost, immer mehr offene Fragen statt antworten. Hoffe das Ende ist dann nicht genauso komisch. :-D

  • Bekomme die gleiche Meldung wie Swiss Mad. Habe es auf meiner 8000er probiert. Gruß Reno

  • reno, gib mal im Telnet ein:


    opkg update
    opkg install libcrypto


    Dann sollte es hoffentlich gehen. :-)

  • Bei mir auf der 8k laufen alle Visualisierungen. Wirkt auch wirklich synchron.
    Nur bei der Installation hat er gemeckert, dass das gst-plugin-spectrum fehlt.


    Nach einem opkg install gst-plugin-spectrum - 0.10.27-r0.0 läuft es.


    Scheint ein cooles Plugin zu werden...


    grüße
    kos

  • :hurra: :hurra:


    ist wirklich gut, das OLED auf die 8000 ist :top:



    hatte 1 x ain crash, keine ahnung ob das kommt weil ich das plugin aufs BP gelegt hab
    anbei der crashlog


    lasse jetzt mal das den inet-stream laufen