Incom ist die Kommunikations-Plattform der Fachhochschule Potsdam

In seiner Funktionalität auf die Lehre in gestalterischen Studiengängen zugeschnitten... Schnittstelle für die moderne Lehre

Incom ist die Kommunikations-Plattform der Fachhochschule Potsdam mehr erfahren

UPHO

Unknown Phonetic Object

UPHO ist ein Midi-Controller mal anders verpackt. Es ist ein Objekt, an welchem man sich erst ausprobieren und rantasten muss um zu verstehen was es ist und wie man damit umgeht. Die Ästhetik des Instruments spielt hierbei eine große Rolle, denn genau diese halte ich für sehr besonders bei Instrumenten und wollte sie in meinem Projekt wiederfinden.

Warum ich mich besonders mit der Ästhetik des Instruments beschäftigt habe? Mein Interesse an Musik ist sehr groß und auch der Wunsch selber ein Instrument zu spielen wächst immer mehr. Vor allem die Ästhetik von Streich und Blasinstrumenten die mich immer wieder beim Anblick verzaubern. Doch die Töne sind meist vorhersehbar. Warum also nicht mal ein Instrument betrachten, dessen Form man noch nicht kennt und welches man spielerisch erfährt und vom Ton eher überrascht wird als das man sofort weiß wie man es handhabt. Sphärische Klänge zu einem außergewöhnlichen Objekt, das war also mein Ziel.

Form und Gestaltung

2014-11-30 15.37.58.jpg2014-11-30 15.37.58.jpg

Die Form stand schon relativ früh fest. Auch während des Prozesses hat sich nur wenig daran verändert. Schon beim Prototypen habe ich versucht, die Form so zu bilden, dass man etwas zum streichen, drehen und betrachten hat.

IMG_7108.JPGIMG_7108.JPG

Der erste Prototyp

Programmierung

IMAG0896 (1).jpgIMAG0896 (1).jpg

In dem Kurs von Stefan Hermann habe ich mich in meinem Leben das erste Mal mit elektronischer Technik auseinander gesetzt. Und das ist nicht übertrieben. Ich erfuhr, unter anderem, dass dieser Buchstaben- und Zeichensalat auch ein Namen (Code) hat und was eine Platine ist. Das war wohl auch der interessanteste Teil des Projektes für mich. Zu erfahren, was überhaupt alles möglich ist in nur so wenigen Schritten. Was einem vorher so unglaublich kompliziert erschien, war auf einmal nachvollziehbar. Trotzdem fiel mir dieser Part des Projektes nicht leicht. Als ich eines Tages ein bisschen überfordert mit dem Anschließen und der Kalibrierung meines Accelerometers war, meinte ein Kommilitone beruhigend zur mir „Programmieren ist wie eine Fremdsprache, es braucht Zeit um sie zu lernen und verstehen. Und du bist halt gerade noch beim >Hallo, Danke, wie geht es dir<“. Sehr passend, wie ich finde.

Umsetzung

Bei dem Material entschied ich mich für Holz und Messing, damit ich es schaffe mein Objekt wirklich nach einem richtigen Instrument aussehen zu lassen. Mit einer Platte und zwei Kanthölzern aus Eichenholz habe ich mich zum ersten Mal an die Drechselbank gestellt um meine Vorstellungen zu realisieren. Das war übrigens der spannenste und zeitaufwendigste Teil meines Projektes.

Fertigstellung

upho 2.jpgupho 2.jpg

Damit man UPHO mit beiden Händen spielen kann und der Accelerometer überhaupt einen feststehenden Ausgangspunkt hat, habe ich einen Ständer gebaut. So kann man UPHO drehend nach rechts oder links bewegen. Die Tonhöhen verändern sich sobald sich die Ausgangsposition ändert. Mit dem Ständer kann mann UPHO auch einfach als Designobjekt ins Zimmer stellen, wenn es mal nicht in Gebrauch ist.

Fazit

IMG_5332.jpgIMG_5332.jpg

Der Kurs hat mir in vielen Hinsichten etwas gebracht und Spaß gemacht. Ich habe mich gerne das erste Mal mit physical Interface beschäftigt und bin echt zufrieden mit meinem Objekt. Doch besonders die Einstellung die uns Stefan ans Herz gelegt hat, ein Projekt anzugehen und zu planen, ohne dass man sich schon vorher irgendwelche Grenzen setzt, werde ich beibehalten.

Code

Ich habe die integrierten Capacitive-Touchsensoren vom Teensy 3.1 und einen Accelerometer ( ADXL362(Beschleunigungssensor)) verwendet.

include <SPI.h>

include <ADXL362.h>

ADXL362 xl;

int16_t temp; int16_t XValue, YValue, ZValue, Temperature; int channel = 1; void setup() { Serial.begin(38400); xl.begin(10);
xl.beginMeasure();
} void loop() { xl.readXYZTData(XValue, YValue, ZValue, Temperature); Serial.print(„0 1 - 15 16 17 18 19 - 22 23 \t \t“); Serial.print(touchRead(0)); Serial.print(„\t“); Serial.print(touchRead(1)); Serial.print(„\t - \t“); Serial.print(touchRead(15)); Serial.print(„\t“); Serial.print(touchRead(16)); Serial.print(„\t“); Serial.print(touchRead(17)); Serial.print(„\t“); Serial.print(touchRead(18)); Serial.print(„\t“); Serial.print(touchRead(19)); Serial.print(„\t - \t“); Serial.print(touchRead(22)); Serial.print(„\t“); Serial.print(touchRead(23)); Serial.println(„\t“);

int sensor1Wert = touchRead(0); int sensor2Wert = touchRead(1); int sensor3Wert = touchRead(15); int sensor4Wert = touchRead(16); int sensor5Wert = touchRead(17); int sensor6Wert = touchRead(18); int sensor7Wert = touchRead(19); int sensor8Wert = touchRead(22); int sensor9Wert = touchRead(23);

if (sensor1Wert>2100){ usbMIDI.sendNoteOn(71,127,channel); } else { usbMIDI.sendNoteOff(71,0,channel); } if (sensor2Wert>2100){ usbMIDI.sendNoteOn(70,127,channel); } else { usbMIDI.sendNoteOff(70,0,channel); } if (sensor3Wert>2100){

      usbMIDI.sendNoteOn(69,127,channel); }

else {

      usbMIDI.sendNoteOff(69,0,channel);

} if (sensor4Wert>2100){

      usbMIDI.sendNoteOn(68,127,channel); }

else {

      usbMIDI.sendNoteOff(68,0,channel);

} if (sensor5Wert>2100){

      usbMIDI.sendNoteOn(67,127,channel); }

else {

      usbMIDI.sendNoteOff(67,0,channel);

} if (sensor6Wert>2100){

      usbMIDI.sendNoteOn(66,127,channel); }

else {

      usbMIDI.sendNoteOff(66,0,channel);

} if (sensor7Wert>2100){

      usbMIDI.sendNoteOn(65,127,channel); }

else {

      usbMIDI.sendNoteOff(65,0,channel);

} if (sensor8Wert>2100){

      usbMIDI.sendNoteOn(64,127,channel); }

else {

      usbMIDI.sendNoteOff(64,0,channel);

} if (sensor9Wert>2100){

      usbMIDI.sendNoteOn(63,127,channel); }

else {

      usbMIDI.sendNoteOff(63,0,channel);

} while(usbMIDI.read());

int YValue = constrain(YValue, 0, 1100); int Voane = map(YValue, 1100, 0, 0, 127); usbMIDI.sendControlChange(52, Vorne, 1);

int ZValue = constrain(ZValue, 1100, 0); int Rechts = map(ZValue, 0, 1100, 0, 127); usbMIDI.sendControlChange(52, Vorne, 1); delay(1000);

}

Ein Projekt von

Fachgruppe

Gestaltungsgrundlagen

Art des Projekts

Studienarbeit im ersten Studienabschnitt

Betreuung

foto: Stefan Hermann

Zugehöriger Workspace

Musical Interfaces 2014

Entstehungszeitraum

Wintersemester 2014 / 2015