Aktuelle Zeit: 25.04.2017 08:37

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Sound to light
BeitragVerfasst: 13.11.2016 18:07 
Offline
Benutzeravatar

Registriert: 06.09.2004 13:26
Wohnort: Siegen
Hallo zusammen!
Ich möchte meine Lichtanlage passend zum Sound steuern. Jetzt aber nicht manuell (das klappt schon) nee ich möchte eine Light Show automatisch laufen lassen. Also wenn zb ein Klavierintro läuft, dann soll das Programm quasi 1 bestimmtes Licht eines Effektes einschalten usw.
Sicherlich gibt's da Profi Programme für, aber wofür habe ich pb? DMX und ArtNet kann ich mitlerweile ansteuern. Nun habe ich quasi 300 rgb Bälle und 9 LED RGB Stäbe.
Das Programm sollte jetzt entweder die Musik grafisch anzeigen und mir die exakte Position zeigen, So dass ich genau an dieser Stelle eintragen kann , welches Licht angehen soll.
Habe schon versucht die Musik grafisch darzustellen und anhand eines 300Pixel hohen BMPs die jeweiligen leds an der entsprechenden stelle "gemalt". Diese habe ich dann mit Point() per Zeitachse ausgelesen und entsprechend geschaltet - ist aber nicht ganz so übersichtlich...
Hat jemand eine noch komfortablere Idee??

_________________
PB 5.30 / Windows 7 32 +64 Bit / Multitouch Monitor

... ich mache dazu keine Aussage, weil ich mich damit selbst belasten könnte !


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Sound to light
BeitragVerfasst: 13.11.2016 23:22 
Offline

Registriert: 18.08.2012 19:18
Wohnort: Worms
hm , also vielleicht benutzt du statt eine bmp datei eine text datei.
könntest diese ja so aufbauen.

zeitleiste: --------_ pause
lichteffekt1: x
lichteffekt2: A A
lichteffekt3: B

als beispiel.
so könntest du auch einen editor bauen der dieses format dann abspeichert.

_________________
i7,12gb ram , Windows 10 ,Purebasic 5.50


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Sound to light
BeitragVerfasst: 24.11.2016 00:54 
Offline
Benutzeravatar

Registriert: 19.10.2006 12:51
Musst du das nur einmal machen und sind es nur wenige Punkte?

Dann nimm einfach Audacity:
1. Audio laden
2. Label-Track erstellen und dort die gewünschten Markierungen setzen
3. Label-Track exportieren
4. Die generierte Textdatei verwenden

Möchtest du ein Tool dafür programmieren?

Du könntest die Waveform auf ein Bild ausrendern. (So ähnlich, wie Audacity das macht, nur nicht so exakt, weil du willst den Ton ja nicht bearbeiten).

Das geht ganz leicht:

1. Du schaust, welche Samplerate die WAV hat (sagen wir 44100Hz)

2. Du erstellst ein Image (CreateImage()), das so etwa 512 Pixel hoch ist und so breit, wie 100 * SpieldauerInSekunden

3. Dann baust du eine Schleife, die folgendes kann:
Du liest 441 Samples aus einem der Tonkanäle der Datei (also 1/100tel der Samplerate, Mono reicht ja für die Darstellung).
Du ermittelst aus diesen einmal den positivsten Wert und einmal den negativsten Wert. Die Einzelsamples kannst du jetzt schon verwerfen
Jetzt malst du eine Line() von der Bildmitte nach oben und eine Line() von der Bildmitte nach unten(). Die Länge der Linie so nehmen, wie die ermittelten positiven und negativen "Extrempunkte"

Mit jedem Durchlauf renderst du somit Linie für Line von links nach rechts die Waveform aus. Ich hoffe, du verstehst ungefähr, wie ich meine.

4. Das Image kannst du jetzt in ein CanvasGadget() rendern (oder auch von vornherein dort rendern). Wirst mit Scrollbar arbeiten müssen, da das ganze ziemlich breit wird. Musst bisschen mit der Breite experimentieren (ich weiß ja nicht, auf wie viele ms genau du das brauchst)

Wenn du jetzt mit Klick-Events im CanvasGadget arbeitest, kannst du anhand der Mauskoordinate vom Klickevent ermitteln, welche Position angeklickt wurde (Ein Pixel = 10ms).

An der Waveform kann man Musik gut ablesen. Eine "Zacke" ist immer eine Note.

Du könntest das ganze noch ausschmücken:
- Du baust einfach noch die Features ein, die du brauchst
- Man kann die Datei von der markierten Position aus abspielen bzw. es wird angezeigt, wo man gerade ist (So wie bei Audacity)
- Du kannst versuchen, die BPM (Beats pro Minute) zu ermitteln und somit das ganze zu automatisieren (Wie eine Lichtorgel).

_________________
return;


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 3 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye