Beamer Sound to Light - Interesse an einer Neuauflage?

  • Hallo,


    Einige werden mein Programm "Beamer Sound to Light" aka "Beamer as Light" sicher noch kennen.


    http://klomeister.eimer-24.de/Daten/BeamerSoftware.jpg


    http://klomeister.eimer-24.de/Daten/BeamerSoundToLight.exe


    Das Programm ist ja mittlerweile schon etwas in die Jahre gekommen und funktioniert nurnoch teilweise unter Windows Vista / 7 / 8(.1). Wirkliche gute Alternativen zu meiner Software gibt es aber bisher immer noch nicht. Es gibt zwar das ein oder andere Tool, das durchaus ein paar interessante Lichteffekte zaubern kann, aber die Möglichkeiten sind doch eher beschränkt.



    Es wäre also an der Zeit, eine Neuauflage des Ganzen anzufertigen, mit den Techniken und Steuerelementen aus der heutigen Zeit.


    Die damalige Software stammt ja in etwa aus dem Jahre 2008 und wurde in Visual Basic 6.0 geschrieben. Da müsste ich dann also ebenfalls eine neue aktuelle Programmiersprache wählen.



    Damals als ich die Software programmiert habe war ich 17 Jahre alt. Mittlerweile habe ich deutlich mehr Programmier-Erfahrungen sammeln können. Außerdem gibt es mittlerweile Steuerelemente die wesentlich Benutzerfreundlicher sind, wie die damaligen VB6 Steuerelemente. Damit könnte die Oberfläche also optisch wesentlich besser gestaltet werden und z.B. Drag & Drop orientiert sein mit Symbolen der einzelnen Effekte & co. Man könnte Zeitleisten basiert arbeiten und seine Effekte dann grafisch in diese Zeitleiste hineinziehen - Ähnlich wie z.B. im Bereich Video-Schnitt. Ebenso stelle ich mir vor, dass es auch Möglichkeiten geben sollte Effekte zu faden, so dass man Playlisten je nach Situation überblenden kann um so Musikänderungen wesentlich schneller gerecht zu werden. Auch Farben sollen zukünftig direkt mit einer Farbpalette angepasst werden können.



    Die Frage erstmal generell: Gibt es heute noch Leute die einen Beamer als Lichteffekt verwenden für Laserartige / Flowerartige-Effekte?


    Wenn es noch ausreichend Bedarf gibt, dann würde sich ein Neustart des Projektes vielleicht nochmal lohnen.

  • Hi!


    Also ich finde, dass es keine wirkliche Alternative gibt zu deinem Programm oder der Verwendung eines großen Lasers - also von mir definitiv Daumen hoch für eine Neuauflage mit Windows 8.1 oder vllt. sogar Mac OS. Gerade auf der PLS in FFM war das Beamer-Thema wieder stark in der PRG Show vertreten, zwar hauptsächlich im Projektionsbereich, aber das wird ja im PPA sicher weniger gefragt sein. Gerade jetzt, wo die Beamer immer besser und heller werden, kann man sich "hell mit geringer Auflösung" wirklich leisten.


    MFG

  • Nett wäre vielleicht auch, wenn es in einer Sprache geschrieben wäre, die nicht nur unter Windows lauffähig ist.

  • Ich liebäugle schon lange mit einer Beamerlösung für Lichtshows. Ich hab' mich bisher nur ein paar Stunden damit auseinander gesetzt. Es war mir dann zu wenig selbsterklärend, deshalb habe ich es dann gelassen.


    Wenn jetzt eine simple Lösung zu finden ist, wäre ich sehr interessiert!

    Der Ton macht die Musik.

  • Bezüglich der Plattformunabhängigkeit könnte für die Software z.B. die Java-Laufzeitumgebung verwenden.


    Für die Effekt- darstellung / erstellung, werde ich Flash wegen der Zukunftsorientierung absetzen müssen, da der Support immer weiter eingeschränkt wird. Ich denke man muss diesbezüglich eher auf HTML5 / CSS / Javascript zurückgreifen.


    Die Effekte werden dann vermutlich Webseiten mit CSS-Animation sein, wo dann diverse Parameter während der Laufzeit über Javascript angepasst werden können. - z.B. Farbe, Geschwindigkeit, Radius, Skalierung etc.


    Man müsste dann ähnlich wie z.B. in DMX-Control (dem DDF-Creator) für jeden Effekt diverse Parameter festlegen, die dann über das Programm modifiziert werden können. Die Effekte sind damit zwar wesentlich schwerer zu erstellen, aber dafür komplett dynamisch während der Laufzeit anpassbar. So kann man selbstdefinierte Parameter wie unter anderem Farbänderungen oder Größenmodifikationen auch Takt gesteuert auf den aktuellen Effekt anwenden.


    Jeder Effekt ist dann also letztendlich eine Webseite mit CSS animierten Shapes bzw. Bildern. Diese Elemente haben dann diverse ID's bzw. Gruppennamen. Im Nachhinein kann man dann je nach Effekt definiert, diese ID's oder Gruppen über die Software ansteuern um damit diverse Eigenschaften zu verändern. Die Software wird die Effekt-Möglichkeiten dann natürlich entsprechend auslesen und benutzerfreundlich grafisch darstellen.


    Personen die sich im Bereich Web Programmierung auskennen, werden dann auch die Möglichkeit haben selber Effekte erstellen zu können. Somit bleibt für Erfahrene weiterhin die Möglichkeit offen, selber Effekte erstellen zu können.


    Würde ich Beispielsweise im Programm selber Open-GL gerenderte Shapes oder 3D Objekte bewegen lassen, ist die Möglichkeit nach außen hin relativ eingeschränkt. Man könnte dann höchstens die Möglichkeit anbieten 3D-Animations unterstützte Formate wie z.B. Collada importieren zu lassen. Dort lassen sich jedoch im Gegensatz zu CSS keine Parameter definieren, die dann im nachhinein verändert werden können.


    Diesbezüglich werde ich erstmal experimentieren und wenn ich etwas erreicht habe, kann man darauf aufbauen.


    Fortschritte werde ich hier zwischendurch posten.

  • Hi Martin!


    Hört sich auf jeden Fall interessant an!


    Meine 2 Cent als Informatiker:


    Vergiss die Plattformunabhängigkeit! Java liegt ein tolles Konzept zu Grunde, aber wenn es darum geht, Dinge auf den Bildschirm zu bringen, die gut aussehen und dann auch noch auf "allen" Plattformen laufen sollen... nimm dir schon mal die nächsten 5 Jahre nichts Anderes vor :)
    Es gibt für grafiklastige Anwendungen einfach deutlich bessere Sprachen und Frameworks.


    Wenn du dennoch die Plattformunabhängigkeit partout beibehalten willst mal als Denkansatz: Die Generierung der Grafik auf einem Raspberry Pi und die Fernsteuerung über ein Webinterface.
    Dann hast du ein standardisiertes Ausgabegerät und musst dir keine großen Gedanken um 1000e Grafikkarten, Treiber, Auflösungen, Betriebssysteme,... machen. Das Teil gibt es für kleines Geld man kann auf einer der zahlreichen fertigen Distributionen aufsetzen und das Frontend kann von jedem beliebigen Endgerät angesprochen werden. Und wenn man die Schnittstellen entsprechend gestaltet sind Apps, DMX-to-Beamer, Artnet-to-Beamer,... Tür und Tor geöffnet.


    Ansonsten würde ich mich zum jetzigen Zeitpunkt auf Windows 10 konzentrieren und dafür eine saubere Lösung bauen. Damit würde ich vermuten kommst du am schnellsten voran und zu einer Lösung, die auch in Zukunft noch nutzbar sein wird.

  • Geplant ist wie bereits erwähnt, erstmal die Programmierung in einer Programmiersprache, die die Möglichkeit bietet für Windows, Mac OS X und Linux zu kompilieren. Falls es dabei zu irgendwelchen Problemen kommt, werde ich mich auf Windows beschränken. Mittlerweile kriegt man Windows hinterher geschmissen und einen Laptop oder einen alten PC mit einem 2. Ausgang werden die meisten Leute mittlerweile auch besitzen.


    Das mit dem Raspberry ist eine nette Idee. Ich glaube aber das es einige User abschrecken würde. Es gibt doch viele Leute, die sich damit nicht ausreichend beschäftigt haben bzw. es gar nicht versuchen wollen. Außerdem hat man dann 2 Geräte, die man über Netzwerk verbinden muss, was es meiner Meinung nach verhältnismäßig aufwändig macht.


    Ich möchte gerade mit der neuen Version, eine einfache und benutzerfreundliche Software erschaffen.


    Die Animationen (Webseiten) werden in einem WebKit basierenden Browser angezeigt, der direkt in die Anwendung integriert (kompiliert) werden kann und damit plattformunabhängig direkt aus der Anwendung heraus läuft (Zumindest mit der aktuell gedachten Programmiersprache). Warum sollte ich den Browser also auf einem Raspberry laufen lassen und das grafische User Interface nicht?


    Es gibt mittlerweile einige Programmiersprachen, die auf Frameworks oder selbst generierte Steuerelemente setzen, die auf jedem Betriebssystem gleichermaßen angezeigt werden.


    Bezüglich Auflösungen und co. sollte es mit Webseiten-Animationen auch keine Probleme geben, denn der Browser unterstützt wie jeder andere gebräuchliche Browser auch, Zoom-Funktionen um damit die Größe der Webseite optimal anzupassen.



    Erstmal sollte ich die geplante Theorie in die Praxis umsetzen, bevor wir über noch nicht vorhandene Probleme spekulieren.

  • Das beeinflussen der CSS- Stile in Echtzeit durch Javascript, funktioniert schonmal von der Desktop GUI aus mit dem Webkit Browser:


    Dazu habe ich einfach testweise eine simple Web Animation zusammengepfuscht.



    http://klomeister.eimer-24.de/Daten/HTML_Tests.mp4
    (Das Video wurde stark komprimiert und durch die Aufnahme sind einige Frames verloren gegangen, sieht natürlich in echt etwas schöner und flüssiger aus.)



    Gezeigt sind hier nur testweise einige wenige veränderbare Parameter. Theoretisch lassen sich so gut wie alle Eigenschaften während der Laufzeit manipulieren. Damit ist jeder Effekt sehr dynamisch nutzbar.
    Nicht ganz einfach wird es, diese ganzen Eigenschaften dem User einfach zugänglich zu machen und die Möglichkeit anzubieten, diese auch mit Schlüsselbildern (Keyframes) zu versehen, um dem Anwender auch erstellbare Übergänge in der Playliste zu ermöglichen. Ich denke dafür werde ich diverse Beispielmöglichkeiten zu jedem Effekt anbieten. Jedem Effekt liegt eine Liste diverser fertig erstellter Beispiel-Effekt-Übergänge bei, die von mir im voraus definiert wurden. Die können dann unteranderem direkt verwendet werden. Leute die zusätzlich mit diversen Parametern rumspielen wollen, können sich dann eben auch selber eigene Übergänge basteln. (Dazu fallen mit sicher noch im Laufe der Zeit ein paar Ideen ein.)



    Falls jemand gute Programme kennt die Web Animationen erstellen können, dann immer her damit. Aktuell kenne ich z.B. "Google Webdesigner", "Adobe Edge Animate CC"...

  • Ich verwende aktuell (testweise) die Programmiersprache Xojo (Leider nicht kostenlos):


    http://de.wikipedia.org/wiki/Xojo


    http://www.xojo.com/


    Da ich damals hauptsächlich mit Visual Basic 6.0 programmiert habe, kommt mir eine Programmiersprache die sich an der VB6 Syntax orientiert, also sehr gelegen.
    Diese Programmiersprache kompiliert zumindest nach Herstelleraussagen ohne erheblichen Mehraufwand auch nach Mac OS X und Linux und braucht dazu nicht mal ein Framework(Zumindest nicht für Windows und Mac, es wird alles direkt in die Anwendung integriert). Vorausgesetzt für die Plattformabhängigkeit ist natürlich, dass man keine direkten API Funktionen der jeweiligen Betriebssysteme nutzt.



    Es gibt auch ein paar nette Seiten die eine Menge Plugins zur Verfügung stellen mit tausenden von vordefinierten Funktionen:
    http://www.monkeybreadsoftware.de/xojo/plugins.shtml



    Wenn es nur unter Windows laufen sollte, wäre Visual Basic .NET sicher auch keine schlechte Wahl.

  • sehr schick.


    Dazu fällt mir spontan ein:


    - Bei der Beaterkennung in Pulten und Software vermisse ich meistens eine Funktion, dass nur jeder 2. oder 4. Beat triggert. Ich finde Farbwechsel bei jedem Schlag immer etwas "nervös".


    - Bei "Random"-Farbwechsel fände ich es schick, wenn man das Farbspektrum auf eine bestimmte Anzahl oder eine Auswahl an Farben reduzieren könnte. Freestyler zB haut die komplette Bonbonfarbenpalette raus, wenn man den Lauflichtgenerator im Random-Modus nutzt => "Kirmes-Modus" :)

  • Danke für die Vorschläge.


    Was ich bisher zusammengebastelt habe, sind nur Tests um erst mal die Funktionen und Möglichkeiten ausfindig zu machen und zu sammeln. Ich wollte generell erst mal schauen was ich plattformunabhängig alles realisiert bekomme.


    Das zufällige Farben so nicht geeignet sind, ist klar. Farben die Grauanteile besitzen, sind für den Video-Projektor verschenkte Leuchtkraft. Mindestens eine Farbe von RGB, sollte daher 100% Deckkraft besitzen und andere Farben können dazu beliebig addiert werden.


    Die Detailarbeit kommt zum Schluss.

  • Moin.


    Wäre es wohl möglich, die Software dann auch über ein DMX Interface direkt anzusteuern für die Pult nutzende Fraktion?
    Oder müsste man zwingend den Umweg über DMX Control nehmen wenn man sowas machen wollte?
    Ansonsten fänd ich sowas wie den Audioplayer aus DMX Control 2 auch nicht unputzig für "Only Beamer Lightshows"


    Generell fänd ich eine Neuauflage aber gut. Grade auch wenns eine vereinfachte Einstell/Ansteuerbarkeit gibt.


    Gruß Sascha

  • Die Verwendung von Midi-Controllern lässt sich eventuell einbauen, da dieses Protokoll einheitlich ist und man sich nicht auf verschiedene Modelle / Treiber spezialisieren muss. Bei DMX-IN ist das wesentlich schwieriger, da muss man sich explizit jedes einzelne Interface spezialisieren um da was abgreifen zu können (Das also eher nein).


    Aber solche Sachen kommen auch erst ganz zum Schluss.

  • Bisschen was habe ich noch gemacht.


    Ich habe jetzt eine einstellbare Beat-Erkennung: Frequenz, Schwellwert, (die dann auch noch eine intelligente Auto-Funktion besitzen wird) fertiggestellt. Außerdem wird jetzt eine FFT (http://de.wikipedia.org/wiki/Schnelle_Fourier-Transformation) des Eingangssignals durchgeführt und visuell in Echtzeit mit OpenGL gerendert (wegen der Performance).



    Eine intelligente voll funktionsfähige Realtime Beat-Erkennung zu programmieren, ist (war) halt schon ein recht großer Aufwand für sich.


    Natürlich ist auch alles bisher immernoch komplett Windows, Mac und Linux kompatibel.





    Hier noch ein aufgenommenes Video des ganzen mit Musik (Wurde mit einer Kamera abgefilmt, da die Desktop Recorder einfach zu viel Performance ziehen und zu wenig FPS liefern):


    http://klomeister.eimer-24.de/Daten/Beat_V2.mp4