Hallo,
ich hab am Freitag leider vergessen euch die CD mit meinem Endprojekt zu geben, seid ihr unter der Woche in der Uni?
LG Lisa
Hallo,
ich hab am Freitag leider vergessen euch die CD mit meinem Endprojekt zu geben, seid ihr unter der Woche in der Uni?
LG Lisa
Ich habe zwei Probleme mit meiner virtuellen Band. Ich habe ja mehrere Instrumente gleichzeitig und synchron am Laufen (loops), welche man einzeln aus- und einschalten kann. So weit so gut. Es ist blöderweise so, dass mal die Instrumente superperfekt synchron übereinander liegen / zusammen spielen, doch mal nicht. Das ist völlig unterschiedlich und zufällig, wenn man das Programm startet. Mal geht es, mal nicht, mal ist es das eine oder andere Instrument das nicht stimmt. Woran kann das liegen? Ich habe die genaue Länge aller Tracks überprüft, sie sind alle auf die Millisekunde genau gleich lang. So eine richtige Idee hatten wir am letzten Freitag nicht, es kam der Gedanke, dass es an verschiedenen Java-Versionen liegen kann. An den iMacs in der Schule lief es die paar Male eigentlich auch immer ohne Probleme, bei meinem iMac zuhause dagegen nicht, bin halt verunsichert ob es jetzt nur an meinem Rechner liegt oder ob es ein generelles Problem ist. Ich habe einen iMac der 4. Generation (weiß, Intel) und noch mit Tiger. Habe mir die letzte Java-Version runtergeladen und installiert und bin jetzt etwas ratlos… Gibt es da ne Idee?
Weiter habe ich jetzt ganz akut auch noch ein Speicherproblem. Ich habe neben den ganzen Musikstücken auch noch einige Bilder in dem Sketch. Jetzt kam auch noch eine Schrift dazu und es sind eigentlich auch noch ein paar Bilder mehr geplant. Nun kann ich den Sketch nicht mehr zum Laufen bringen. Ich habe den maximalen Speicher in den Einstellungen bereits auf 1000MB erhöht, doch das Problem lässt sich nicht mehr bereinigen. Hat noch jemand das Problem gehabt und eine Lösung gefunden? Gibt es eine maximale Anzahl an Dateien, die ich in einen Sketch laden kann?
Ich wäre euch sehr dankbar für Hilfe und Tipps.
Gruß, Max (aus der B).
— Update —
Das Problem mit dem Speicher hat sich jetzt anscheinend doch erstmal geklärt, da ich vergessen hatte die Schrift vorher über Tools umzuwandeln. Da war ich wohl etwas schnell…
Hallo Markus,
hier ist der Code welcher dein Bild einmal von links nach rechts Animiert und dann stoppt.
// variablen xPos ist gleich die x-Poition des bildes
float xPos;
// variable speed ist die Animationsgeschwindigkeit
float speed;
// variable img ist unser bild
PImage img;
void setup(){
size(500, 500);
// speed wird zunächst mit 1 definiert
// kann natürlich auch 0.5 oder 2 oder ... sein
speed = 1;
// legt des Startpunkt des Bildes fest
xPos = 0;
// das Bild aus dem Data Ordner mit dem Namen image.jpg wird geladen
img = loadImage("image.jpg");
}
void draw(){
// zeichnet das Bild in unser Proccesing Fenster
image(img, xPos, 0);
// solange die Position vom Bild nicht größer wird als die Bildgröße
// wird die Position immer um den Faktor speed geändert
if(xPos > -img.width + width){
xPos = xPos - speed;
}
}
Natürlich können die 250 Zeilen Code in 3 gekürzt werden, mit Hilfe des Arrays. Ein Beispiel mit einer Bildsequenz kannst du hier herunterladen. Der Code ist um gleich hier hineinzusehen:
// es wird ein PImage array erzeugt mit 4 Bildern
PImage[] img = new PImage[4];
int frame;
void setup () {
size (125, 153);
// Beginne mit Bild 0
frame = 0;
// Lade alle vier bilder
for(int i = 0; i < img.length; i++){
img[i] = loadImage ("bild_" + i + ".jpg");
}
}
void draw () {
// Bart wird nur alle 25 Bilder weiter animiert
// damit es nicht zu schnell durch läuft.
// Benutzt wird hier der sogenannte Modulo.
// Ein Kniff um das verstellen der Framerate zu umgehen.
if(frameCount % 25 == 0) {
// Da es eine Anmimation mit 4 Bilder ist
// wird die variable nach dem 4ten erhöhen auf 0 gesetzt
if (frame > 3) {
frame = 0;
}
// die variable frame dient als index um das bild
// mittels des img array anzuzeigen
image (img[frame], 0, 0);
// zählt in jeder draw() einen frame hoch
frame++;
}
}
Hallo an alle,
ich bin einiges durchgegangen an Lösungswegen..
Alle Dateien gleichzeitig zu laden ist zwar o.k. das muß aber doch einfacher gehen!
hier mal mein Salat:
—————————————————————————————————————–
// Start import
import ddf.minim.*;
Minim minim;
// beim aktivieren des Array gibt es eine Fehlermeldung Null Pointer Exception
//AudioPlayer track[];
AudioPlayer track21;
AudioPlayer track22;
//… obwohl ich meine 16 loops zusammen habe wird hier nur ein Teil dargestellt
// Felder 2-1 ist 21 geht bis 2-8- ist feld 28 und dann nochmal 3-1 geht bis 3-8 entspricht 38
AudioPlayer track38;
int loopcount = 10000;
void setup()
{
size(512, 200, P3D);
background(0);
minim = new Minim(this);
/*
// Array-Automatisierung.. durchlauf der einzelnen Files
for (int j = 1; j < 9; j++) {
for (int i = 2; i < 4; i++) {
println(“loop_”+(i*10+j)+”.MP3″);
track[i*10+j] = minim.loadFile(“loop_”+(i*10+j)+”.MP3″, 1024);
}
}
*/
track21 = minim.loadFile(“loop_21.MP3″, 2048);
track22 = minim.loadFile(“loop_22.MP3″, 2048);
track23 = minim.loadFile(“loop_23.MP3″, 2048);
track24 = minim.loadFile(“loop_24.MP3″, 2048);
…
}
void draw()
{
}
void keyPressed()
{
// Start aller Dateien hier funktioniert die Automatisierung och nicht
if ( key == ‘#’)
{
for (int j = 1; j < 9; j++) {
for (int i = 2; i < 4; i++) {
String testvar = “track”+(i*10+j);
println(testvar);
testvar.loop(loopcount);
}
}
/*
track21.loop(loopcount);
track22.loop(loopcount);
track23.loop(loopcount);
//… hier nur wieder ein Teil dargestellt
*/
}
}
void stop()
{// die einzelnen Tracks stopen kann ich mir sparen..
minim.stop();
super.stop();
}
————————————————————————————————————————————————–
gerne kann ich alles auch per Mail schicken.. an…?…
oder Ihr könnt euch die 2 Pakete runterladen..
www.evolutionderelemente.de/audio_test.rar
www.evolutionderelemente.de/feld_var3.rar
Vielen Dank für die Mithilfe
Gruß Rases
Wie schon angekündigt wird diesen Donnerstag (23/04) leider kein CC2-Kurs stattfinden. Die Sprechstunde verschiebt sich auf Mittwoch 13:45 bis 14:30. Da Jonas und ich verhindert sind, geht es am 30/04 planmäßig weiter im Programm mit den ersten Referaten und Input von uns. Postet eure Referatsthemen hier im Blog um allen Beteiligten einen Überblick zu geben bzw. Überschneidungen auszuschließen.
Bis dahin könnt ihr eifrig an den oop-Beispiel im wiki tüfteln.
sonnigen Donnerstag,
-steffen
Da anscheinend zu viele Kurse parallel laufen wird der CC2 Kurs ab dieser Woche immer
Donnerstags von 16:45 bis 19:15 Uhr stattfinden.
-
Die Creative Coding Sprechstunde findet davor von 15:45 bis 16:30 Uhr statt.