Kurs Multimediaprogrammierung
Montag, 20. Januar 2014
Kurs Multimediaprogrammierung mehrere draw-, -keyPressed, -mouseOver-Funktionen bei komplexen Programmen sinnvoll (wie Spiele mit Menü, Spiel mit unterschiedlichen Levels, Abspann) arbeiten mit Webcam (Heiligenschein) public class Level1{void draw(){}} andere draw-Funktion aufrufen: registerMethod("draw", new Level1()); wieder herausnehmen mit unregisterMethod(); Audio-Bibliothek minim AudioPlayer sound; Minim soundSystem=new Minim(this); sound = soundSystem.loadFile("sound.wav"); sound.loop(); FFT (Fast Fourier-Transformation) mathematischer Algorithmus, der Funktion in anderen Raum transformiert fft = new FFT(sound.bufferSize(), sound.sampleRate()); bufferSize: Puffergröße kleiner Puffer: System reaktionsschnell, aber ungenauer fft.specSize(): Fenstergröße, die verarbeitet wird (Anzahl unterscheidbarer Frequenzen) fft.forward(sound.mix): führt die Frequensanalyse durch Frequenz auslesen: fft.getBand(i); Mikrofon: AudioInput sound; sound = soundSystem.getLineIn(); Video integrieren Bibliothek: video Capture cam; cam = new Capture (this, width, height); in der draw-Funktion: image(cam,0,0); cam.read(); Selbstporträt Selbstbildnis mit Beispiel-Skript, Processing
Montag, 13. Januar 2014
Kurs Multimediaprogrammierung Unterschiede Funktion / Klasse Pufferüberlauf (buffer overflow), häufigste Sicherheitslücke in aktueller Software zu große Datenmengen in einem zu kleinen reservierten Speicherbereich: andere Speicherstellen werden überschrieben auf Bibliotheken zugreifen, "Libraries" Sound-Bibliothek, Beispiel "Minim" Sprachausgabe: "ttslib" Bibliothek in Processing-Ordner "libraries" kopieren (Apfel+d = Datei kopieren) über "Import > Library" "ttslib" in aktuelles Projekt importieren TTS sprecher = new TTS(); "TTS" = Klassenname "sprecher" = Variable, selbst gewählt sprecher.speak("Hi!"); Frequenz ändern: setPitch() "map": Abbildung von einem Wertebereich in einem anderen 0 als 50 und width als 200 festgesetzt: map(mouseX,0,width,50,200); Frequenz 100 = Normalwert mehrere Stimmen gleichzeitig thread("sprecher1"); Funktion wird parallel zum Hauptprogramm abgearbeitet Name der Funktion wird übergeben ("sprecher1") notiert ein Lied mit richtiger Herzzahl und Tonlänge per Computer nachahmen Import Library > minim (mit mp3- und wav-Dateien arbeiten) Minim soundSystem = new Minim(this); AudioSnippet s; 1 s = soundSystem.loadSnippet("sound.wav"); 2 s = SoundSystem.loadSample("sound.wav"); loadSample: mehr Funktionalität als loadSnippet (nur einfaches Abspielen) roten Text in Meldefenster ausgeben: system.err.println() Sounddatei "anschubsen" (mehrere Male hintereinander ausführbar): s.trigger(); notiert nur bestimmte Teile einer Sounddatei abspielen: aus einem vorhandenen Satz mit dem selben Material eine andere Aussage machen (Beispiel: "wahr" > "falsch", wobei das nur bei längeren Sätzen geht) getLineOut(); AudioOut dac = soundSystem.get LineOut(Minim.Stereo,1024); dac.addSignal(ton); ton.setFreq(200); Aufgabe: Melodie aus Frequenzen herstellenMontag, 6. Januar 2014
Kurs Multimediaprogrammierung Vorteile Benutzung von Klassen Klasse = allgemeine Vorlage für ein Objekt Eigenschaften von Objekt in Klasse definiert (Farbe, Form, …) Methoden zum "manipulieren" vom Objekt (drehen, vergrößern, …) Bibliothek hinzufügen Sprach-Bibliothek (Vorlesen von Text) Prozesse gleichzeitig abarbeiten, nicht mehr über draw() bei delay() sollen weiterhin Prozesse stattfinden Gravitation / Ablenkung von einzelnen Körpern (kompliziertes Beispiel Sonnensystem) notiert zufällig herumfliegende Objekte ergeben nach einer gewissen Zeit ein erkennbares Symbol (über den Endzustand wird rechnerisch "zurückgespult"), siehe Idee "Uhrwerk" chaotische Systeme bit.fall, Julius Popp, 2007


Montag, 16. Dezember 2013
Kurs Multimediaprogrammierung Elektrolumineszenzfolien (EL-Folie) funktioniert mit Inverter flexible Folie, leuchtet bei angelegter elektrischer Spannung Entdeckung Elektrolumineszenz / Destriau-Effekt 1936 durch Georges Destriau im Labor von Marie Curie in Luft- und Raumfahrt eingesetzt Leuchtschnur in Natur, Bild über Stiers Lichtanlagen

Montag, 9. Dezember 2013
Kurs Multimediaprogrammierung Animation Welle als Klasse Klassenkonzept bisherige Verwendung: zusammengesetzte Variable class Ball() Ball b = new Ball(); Beispiel: b.r, b.x, b.y, … Klassen zur Strukturierung der eigenen Programme eigenen Variablentypen definieren Zeichenketten, Zahlen … zu "Mega-Variablen" zusammenfassen eigene Bibliothek basteln in extra Datei auslagern color f übergeben: "255x255x255x0" oder "#ffffff00" oder "0xffffff00" int*y: Zeiger auf int-Variable step(autist): autistischer Ball, der nicht mit anderen Bällen agiert neuen Tab: "Ball" (muss genau den Namen der Klasse haben) void DrawBall() in Klasse = Methode der Klasse "this." bezieht sich immer auf eine Klassen-Variable Anzahl Elemente in Array: ".length" for-Schleife ohne geschweiften Klammern: gilt immer nur für ein Befehl Stoppuhr programmieren mit Klassen (alle 5 Sekunden eine Ellipse zeichnen= Klassen Uhr.start(); und Uhr.aktuell(); Abstand zwischen zwei Punkten (x,y) bzw. (x,y,z): dist();Montag, 18. November 2013
Kurs Multimediaprogrammierung keine Maus: noCursor(); wieder anzeigen: cursor(ARROW) bei Alpha-Transparenz bleibt oft ein wenig Farbe übrig (rundet den Wert auf und kommt nie auf 0% Farbe) mit arc-Funktion PackMan programmieren (Mund auf und zu) Spiel angefangen zu programmieren (unkonzentriert abgebrochen)Montag, 11. November 2013
Kurs Multimediaprogrammierung 6 Minuten zu spät zu spät random: kein echter Zufallsgenerator deterministische Funktion für Außenstehende schaut es wie Zufall Zufall aus echter Zufall: in Kryptographie genutzt Zufall in der Quantenwelt durch Ungenauigkeit der Zahlen entstehen Muster Fixpunkt: Algorithmus hat sich "festgefressen" Aufgabe: überall wo ich hinklicke soll ein Stern gezeichnet werden Koordinaten von Linien für Stern aufgeschrieben und umgesetzt mit translate() und rotate() umgesetzt Farbraum HSB: Farbkreis colorMode(HSB,360,100,50); 360 = Farbe bei 360 Grad 100 = Sättigung 50 = Helligkeit for-Schleifen for(int i=1; i<=anz; i++){} mouseButton==RIGHT oder mouseButton==LEFT \t = Tab-Zeichen für print() und println() notiert Domain www.hgb-leipzıg.de oder www.hgb-leipzīg.de registrieren Teilen mit Rest: modulo() Beispiel: 100 % 100 = 0 (Rest 0) oder 200 % 100 = 0
Montag, 4. November 2013
Kurs Multimediaprogrammierung 2 Minuten zu spät zu spät 14 Minuten später angefangen Variablen "byte": Grundtyp, wenn man noch nicht weiß, was Inhalt sein soll 2^8 Zustände Datei einlesen: byte b[] = loadBytes("daten.dat"); notiert Website der Hochschule auf den Kopf stellen; über Sonderzeichen-URL, die der eigentlichen Domain ähnlich kommt; im Computerraum als Startseite anlegen (wird bei Neustart behalten) boolean: true oder false Vollbild mit Funktion: boolean sketchFullscreen(){return(true);} DisplayWidth und DisplayHeight: Gesamthöhe/-breite nutzen Variable global oder lokal definieren (je nach Gebrauch) Hintergrundfarbe heller werden lassen und danach wieder dunkler, mit If-Abfragen realisieren keyPressed: Faktor für schnelleres heller werden ändern line(0,0,l,0); translate(l,0); rotate(w); float w=radians(5); (5 Grad) translate(verschieben) scale() (vertikal und/oder horizontal spiegeln) pushMatrix() und popMatrix() Werte werden in andere Funktion übergeben und mittels popMatrix wieder gespeichert l+=random(-1,1); w+=0.01; translate zwar einfach, aber schlecht zu "überwachen (bei erreichen des Bildschirmrandes soll zum Beispiel die Richtung gewechselt werden) cos() und sin() Winkeländerung "dw" global ablegen kleines Spiel programmiert (Kugeln versuchen den Spieler aufzufressen und werden jedesmal größer; Spiel endet, sobald der Spieler aufgefressen wurde)
Montag, 28. Oktober 2013
Kurs Multimediaprogrammierung Aufgabe bis heute: "Das ist das Haus vom Nikolaus" mit Processing umsetzen E-Mail von gestern: "Na, da brauchst Du morgen gar nicht erst kommen. Schleifen werden wir wohl noch nicht behandeln." "Das ist das Haus vom Nikolaus"
Montag, 21. Oktober 2013
Kurs Multimediaprogrammierung zu spät zu spät Einleitung Processing rein mathematische Formeln ergeben organische Formen: Mandelbrot / Apfelmännchen Mandelbrot-Menge mit farbig dargestellter Umgebung

