Anlegen von notwendigen Strukturen für die Arbeit als Team in der tubCloud.
Erstes Experimentieren mit Schall (Sinuswellen, etc.)
Erste Anfänge in der Theorie (Grundlagen der Fourier-Analyse)
27.November 2014
Erstellen des BILDINFO-Moduls, um grundlegende Bildinformationen zu ermitteln.
Erstellen des FREQUENZEN-Moduls, in dem im wesentlichen die Frequenzen gespeichert werden.
Nachdenken über das erste Konzept zur Umwandlung von Schall in Ton: Das Bild wird Pixel für Pixel abgearbeitet und für jeden Pixel ein Ton generiert. Dabei werden im Moment alle drei Farbwerte (rot, grün und blau) verglichen und dann je nachdem, welcher den größten Wert annimmt, die Tonika, Subdominante oder Dominante gespielt. Gibt es keinen größten Wert, so wird zufällig ein Akkord gespielt.
Dreiklänge lassen sich relativ einfach zu jedem beliebigem Grundton generieren, da sich die Frequenz von z.B. der Terz nach oben zu einem beliebigen Ton sich errechnen lässt, indem man die Frequenz des Grundtons mit $\frac{5}{4}$ multipliziert.
Leider ist zwischen den Tönen ein Knacken zu hören, welches folgendermaßen entsteht: Angenommen wir generieren eine einsekündige Sinus-Welle. Dann muss sie allerdings nicht notwendigerweise im Punkt $x=1$ den Wert 0 annehmen. Dadurch entsteht dann ein Sprung zur nächsten Sinuswelle und somit entsteht das Knacken. Damit unser Ton nämlich ohne Knacken abspielbar ist, muss die Sinuswelle an jeder Stelle differenzierbar sein - das heißt, keine Sprünge, keine Ecken und keine Amplitude mit einem Wert größer 1 - denn alles, was größer als eins ist, wird abgeschnitten und somit entsteht eine (undifferenzierbare) Lücke.
04.Dezember 2014
Erreichen des ersten Zwischenziels: Wir können jetzt das Windows Logo abspielen. Dazu haben wir die Dreiklang-Klasse, die aus den Pixeln des Bildes jeweils einen Dreiklang erzeugt.
Verändern des Tonerzeugungs-Algorithmus, sodass das „Knacken“ verschwindet. Um dies zu erreichen, haben wir das Schallwerkzeuge-Modul von Stefan um die $\texttt{Window}$-Methode erweitert, die Schallwellen am Anfang und Ende auf Null rundet - so wird das Knacken verhindert, weil es nun keinen 'Sprung' mehr gibt.
Außerdem haben wir den Code besser strukturiert - es gibt jetzt ein Sound-Modul, indem soundbezogene Methoden gespeichert werden und ein Bild-Modul, indem bildbezogene Methoden gespeichert werden.
11.Dezember 2014
Tonerzeugungs-Algorithmus wurde nun weiter verbessert - Nun können Sinuswellen auch ohne Pause aneinandergehängt werden. Da beide Sinuswellen an den Rändern gegen 0 streben, entsteht am Übergang eine Pause. Dies kann jedoch verhindert werden, indem man beide Sinuswellen in einem Grenzbereich überlappen lässt.
Neues Überdenken der Melodieerzeugung: Ein Bild Pixel für Pixel abzuspielen, mag vielleicht am Anfang relativ sinnvoll erscheinen. Jedoch wird relativ schnell klar, dass bei Bildern mit mehr als 600 Pixeln die Melodie durchaus recht lang werden kann, was relativ unpraktisch ist. Die neue Idee ist, das Bild spaltenweise durchzugehen und aus jeder Spalte einen Ton zu generieren.
Um jedoch die Menge der verschiedenen Informationen zu verringern, haben wir Farbräume eingeführt - dabei wird der RGB-Farbwürfel in $n^3$ kleinere Würfel zerlegt, und jede mögliche Farbe liegt somit in einem dieser kleineren Würfel. Statt Tripeln mit Werten von 0-255 hat man nun also einfach $n^3$ verschiedene Zahlen.
18.Dezember 2014
Erstellen einer Funktion, die aus einer Liste von Pixeln eine Liste macht, in dem nun für jeden Pixel der zugehörige Farbraum eingetragen ist.
Weiterhin haben wir darüber nachgedacht, wie man nun aus dieser Liste eine Melodie erzeugt. Da die Melodie außerdem nicht länger als 2 Minuten sein soll, mussten wir uns eine Möglichkeit überlegen, wie man die Informationen aus mehreren Tönen zusammen fassen kann. Dabei war unsere erste Idee, einfach den Mittelwert zu bilden.
08.Januar 2015
Unser Ziel ist es jetzt, zunächst eine Methode zu schreiben, die uns aus unserem Bild eine Melodie erzeugt, welche etwa 2 Minuten lang ist. Danach soll noch eine passende Begleitung dazu generiert werden.
Beginn der Programmierung einer Synthesizer-Methode, mit der man verschiedene Instrumente imitieren kann. Erstaunlicherweise muss man dafür nur bestimmte Obertöne eines Tones mitspielen. Nehmen wir als beispielhafte Erklärung für Obertöne den Kammerton 'a' mit einer Frequenz von 440 Hz. Dann ist der erste Oberton eine Oktave höher ($440*2$), der zweite noch eine Quinte höher ($440*3$), etc. Allgemein gilt das der n-te Oberton eine Frequenz von $n*440$ Hz hat. Wenn man nun auf einem Instrument einen Ton spielt, so wird nämlich nicht nur ein Ton dieser Frequenz gespielt (sonst klänge es wie ein Sinuston), sondern auch nur viele dieser Obertöne. Je nach Zusammensetzung der Obertöne entsteht eine andere Klangfarbe. Man kann dann die Obertonspektren verschiedener Instrumente analysieren und sie imitieren, indem man jedem Ton genau dieses Spektrum hinzufügt.
15.Januar 2015
Weiterarbeiten an den o.g.
Orgelähnliche Töne können nun erzeugt werden. Dazu spielt man zusätzlich zum 'Sinus-Grundton' zusätzlich noch höhere Oktaven, Quinten und Terzen (Obertöne) ab.
22.Januar 2015
Weiterarbeiten an den o.g.
plötzliches Auftauchen vom Knacken führt zu einer Anzahl an neuen, seltsamen Fehlern
29.Januar 2015
Weiterarbeiten an o.g.
05.Februar 2015
Nachdem das Ausmitteln für die Suche nach den überwiegenden Farben im Bild eine starke Vereinheitlichung des Bildes ergibt, haben wir doch noch auf die Fourier-Analyse zur Bildinterpretation zurück gegriffen. Im Fourier-transformierten Bild erkennt man Stellen der größten Veränderungen im Bild.
12.Februar 2015
27.Februar 2015
Auf der Suche nach einer neuen Methode zur Melodieerzeugung hat Stefan uns die Markov- Ketten vorgestellt.
Erstellung der Methode MARKOV, mit der wir aus dem Fourier-transformierten Bild Informationen für die Töne der Melodie gewinnen.
Markov-Ketten geben die Wahrscheinlichkeiten für den Übergang von einem zu anderen möglichen Zuständen an.
Erstellung der Methode Zufallszahlen für die Auswahl des Endzustandes aus den Markov-Möglichkeiten über die Berechnung der normierten Varianz der Farbwerte innerhalb einer Spalte.
28.Februar 2015
Erstellung einer Methode für den Rhythmus der Melodie Rhythmus aus der Markov-Matrix des Fourier-transformierten Bild bzw. auf Basis einiger Werke von J.S.Bach
Erste Überlegungen für eine Methode für die Begleitstimme mit bestimmten Bausteinen, die auf Basis von Wahrscheinlichkeiten und Abhängig vom Ton der Melodie errechnet wird.