Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| collabsynth:wellenformmanipulator [2022/04/28 08:42] – felixkarlheinz | collabsynth:wellenformmanipulator [2022/04/28 09:59] (aktuell) – felixkarlheinz | ||
|---|---|---|---|
| Zeile 33: | Zeile 33: | ||
| * Acrylplatte | * Acrylplatte | ||
| * Alter Draht | * Alter Draht | ||
| - | * 1x Raspberry | + | * 1x Raspberry |
| - | * 2x Arduino | + | * 2x Arduino |
| * Drahtösen | * Drahtösen | ||
| * Schrauben | * Schrauben | ||
| * USB-Kabel | * USB-Kabel | ||
| - | * Elektrisch | + | * 12m elektrisch |
| == Software == | == Software == | ||
| Zeile 54: | Zeile 54: | ||
| ==== Pure Data Patch ==== | ==== Pure Data Patch ==== | ||
| + | |||
| + | Das Herzstück des Moduls ist der Pure Data Patch, hierin wird ermöglicht eine halbe Wellenlänge eines Audiosignales mit den Fadern haptisch zu verändern und zu modulieren. Der Patch interpoliert diese " | ||
| {{ collabsynth: | {{ collabsynth: | ||
| + | ==== Arduino Code ==== | ||
| + | < | ||
| + | int pos_pin = 53; | ||
| + | int pos; | ||
| + | int an_pins = 12; | ||
| + | int mean_of = 3; | ||
| + | int wait = 10; | ||
| + | |||
| + | void setup() { | ||
| + | // Serielle Verbindung mit Baudrate 9600 starten | ||
| + | Serial.begin(9600); | ||
| + | |||
| + | // Pin 53 zur Identifizierung von Arduino 1 und 2 nutzen | ||
| + | pinMode(pos_pin, | ||
| + | delay(100); | ||
| + | if(digitalRead(pos_pin) == HIGH){ | ||
| + | pos = 0; | ||
| + | } else { | ||
| + | pos = 1; | ||
| + | } | ||
| + | } | ||
| + | |||
| + | |||
| + | void loop() { | ||
| + | // Arrays für Messwerte definieren | ||
| + | int values_raw[an_pins][3]; | ||
| + | int values[an_pins]; | ||
| + | | ||
| + | // jeder Pin wird [mean_of] mal gelesen, anschließend wird | ||
| + | // ein Mittelwert gebildet | ||
| + | for(int n = 0; n < mean_of; n++){ | ||
| + | | ||
| + | // Werte von Pins lesen | ||
| + | for(int i = 0; i < an_pins; i++){ | ||
| + | values_raw[i][n] = analogRead(i); | ||
| + | } | ||
| + | } | ||
| + | |||
| + | // über [mean_of] Werte mitteln | ||
| + | for(int i = 0; i < an_pins; i++){ | ||
| + | int sum = 0; | ||
| + | for(int n = 0; n < mean_of; n++){ | ||
| + | sum = sum + values_raw[i][n]; | ||
| + | } | ||
| + | values[i] = sum / mean_of; | ||
| + | } | ||
| + | | ||
| + | // Werte seriell an Computer senden | ||
| + | for(int i = 0; i < an_pins; i++){ | ||
| + | Serial.print(values[i]); | ||
| + | Serial.print(" | ||
| + | } | ||
| + | // zusätzlichen Wert zur Identifizierung von Arduino 1 und 2 senden | ||
| + | Serial.print(pos); | ||
| + | Serial.print(" | ||
| + | Serial.println(); | ||
| + | |||
| + | // Verzögerung zwischen Übertragungen | ||
| + | delay(wait); | ||
| + | | ||
| + | } | ||
| + | </ | ||
| + | |||
| + | ==== Final gebautes Modul ==== | ||
| + | |||
| + | {{ collabsynth: | ||
| + | ==== Video der ersten Klangerzeugungen ==== | ||
| + | |||
| + | {{ youtube> | ||
| + | |||
| + | |||
| + | ==== Ausblick ==== | ||
| + | |||
| + | Das Modul soll noch mit einer verbesserten Kabelführung sowie einem Gehäuse ausgestattet werden. Weiterhin muss die Führung der Fader leicht angepasst werden. | ||
| + | Zudem soll ein Reverb sowie eine Spatialisation realisiert werden, um den Klang gehaltvoller zu machen und Frequenzanteile auf verschiedene Kanäle aufteilen zu können. | ||
| + | Auch soll ein Autostart Skript auf dem Raspberry Pi implementiert werden, sodass das Modul unabhängig von einem externen Laptop startbar ist. | ||
| + | Sollten die anderen Module der Gruppe fertiggestellt werden, soll der CollabSynth entstehen. | ||