On 18th of January 2018, I will be giving a workshop on building live-electronic tools with Csound on the Bela-Board, at Incontri at the Hmtm-Hannover.

The workshop is meant to be for beginners, and primarily for composition students at Incontri. However, if anyone external likes to participate, just contact me in advance so we can arrange things.

Alex

Official Announcement (DE)

Design, Bau und Spieltechniken auf Live-Elektronikinstrumenten basierend auf BELA-Board und Sensoren

Freitag, 18. Januar 10-16 Uhr Raum E60

Dr. Alex Hofmann (Wien)

Der Workshop gibt eine grundlegende Einführung zum low-latency, low-cost Musikcomputer BELA (http://bela.io/) und den Möglichkeiten eigene Live-Elektronikinstrumente zu bauen.

Es werden verschiedene Setups vorgestellt (mit MidiController, Sensoren, LEDs), die je nach Anwendungsgebiet ermöglichen den BELA als Steuereinheit für Klangerzeuger, als Effektgerät oder als Sampler zu verwenden. Im Fokus steht die Steuerung der Audio-Software Csound (alternativ SuperCollider) mit verschiedenen Sensoren (Lichtsensoren, Drucksensoren, Potentiometern).

“Hands-on” wird jeder Teilnehmende zu Beginn ein einfaches Audio-Sensor-Setup mit dem BELA aufbauen. Im zweiten Teil des Workshops können individuelle Projektideen entworfen und skizziert werden. Bei ausreichend Interesse wird ein Anschlussworkshop im Sommersemester 2019 stattfinden, wo diese Projektideen mit technischer Unterstützung umgesetzt werden können.

! Bitte einen eigenen Laptop und ein Netzwerkkabel mitbringen um das BELA-Board zu konfigurieren und zu programmieren. !

alt text alt text

Workshop Material (DE)

Was ist Bela? Was kann Bela?

  • ein Paket basierend auf 1) einem Open Source Minicomputer BeagleBone, 2) einer ultra low-latency Soundkarte (100us) und einem 3) optimierten realtime Linux Betriebssystem

  • je nach Ausführung (Bela vs. Bela Mini), hat es a) 16 digital Kanäle sowie b) 8 analoge Eingänge als auch (nur Bela) 8 analoge Ausgänge

  • das Betriebssystem läuft auf einer SD-Karte auf dem Board, Audio-Programme lassen sich über eine browser-based IDE (Website) starten, stoppen und editieren

  • derzeit unterstützt das Bela Betriebssystem Audioprogramme, die in C++, PureData, SuperCollider oder Csound geschrieben sind (PureData Patches können nur gestartet werden, aber nicht auf dem Bela editiert)

Drei Beispiele von eigenen Bela Projekten:

1.) Tenor Saxophon mit FX-processor (Bela & COSMO Project)

Effects are running on the Bela-Board, software is written in Csound.

2.) Crackl - Box

A summary of noise patches written in SuperCollider running on the Bela.

alt text

Live Präsentation.

3.) Half-Physler

A physical modelling tube resonator, driven by feedback of sensor and actuator.

Live Präsentation.

Projekte der Bela Community

Der Bela-Blog gibt einen guten Überblick der aktuellen Projekte innerhalb der Bela Community. Diese besteht aus Musiker_innen und Entwickler_innen. Hier sind einige beeindruckende Beispiele vom vergangenen Jahr 2018.

Praktischer Teil: Einschalten und erstes Programm starten

Bei Linux-Computern einfach die folgenden 3 Schritte:

  • 1) SD-Karte einlegen
  • 2) USB-Kabel mit einem Computer verbinden (für Standalone zB. mit einem Akkublock)
  • 3) Webbrowser starten und http://192.168.7.2/ öffnen

!! Mac User müssen vorher noch einen Treiber an ihrem Mac Computer installieren, abhängig von ihrer OSX Version siehe Bela Anleitung !!

  • Nun sollte im Browser die IDE (Intergrated Development Environment) zu sehen sein.

alt text

  • 4) Ein Mouse-Click auf den “Run” button startet das geöffnete Programm. alt text

  • 5) !! Vorsicht kann laut sein !! Bei OUT die Mini-Klinke-Verbindungskabel anschließen und über Lautsprecher oder Kopfhörer sollte ein Sinus-Ton zu hören sein. (Kann beim aller ersten Mal recht lange dauern (ca. 3-4 min.), da alle Teile erst kompiliert werden müssen.)

  • Weitere Infos zum Einstieg in Bela: https://github.com/BelaPlatform/Bela/wiki/Getting-started-with-Bela

Beispiel Programme

Unter dem Menüpunkt mit der “Lampe” findet man Code Examples, die nach den Audio-Programmiersprachen aufgeteilt sind. Beispiele 01-bis 07 sind in C++ geschrieben. C++ ist eine der am häufigsten verwendeten Programmiersprachen um Audiosoftware zu entwickeln. C++ ist von der Syntax recht modern aber noch sehr Hardware nah, sodass der Entwickler Kontrolle über alle Hardware-Resourcen (z.B. CPU, RAM) hat. Eine sehr gute Einführung in die Audioprogrammierung in C++ findet man in dem “The Audio Programming Book, Edited by Richard Boulanger and Victor Lazzarini, MIT-Press”.

alt text

Es gibt aber Auch einige Audioumgebungen die für Musiker schneller zu erlernen sind als C++. Sehr populär ist die Software Max/MSP. Max/MSP ist leider eine propritäre Software, was bedeutet, dass der Quellcode nicht frei zugänglich ist, und daher nicht von der Community für spezielle Hardware wie z.B. das Bela Board angepasst und kompiliert werden kann. Bei Open Source Software ist das anders! So wurde PureData (sehr ähnlich zu Max/MSP) angepasst und kompiliert, dass es auch auf dem Bela läuft. Bela unterstützt derzeit (Sommer 2018) folgende Open Source Audio Software:

  • PureData
  • SuperCollider
  • Csound

Wir werden jetzt die Csound Beispiele ausprobieren. alt text

  • 1) Lade Beispiel “0-HelloWorld”
  • 2) Verbinde Kopfhörer mit AudioOUT
  • 3) “Run”
  • Es sollte ein Sinuston hörbar sein

Verwendung von Potentiometern (Potis) und Sensoren

  • 1) Lade Beispiel “1-AnalogIn”
  • 2) Nehme einen Licht oder Kraftsensor

  • 3) Schau dir die Belegung der Ein und Ausgänge vom Bela Board an. Wo sind 3V, Ground und AnalogIn0? alt text

  • 4) Nimm einen Drehknopf (Poti) und verbinde ihn mit 3V, Ground und AnalogIn.
  • 5) Starte das “1-AnalogIn” Programm
  • Drehen am Poti sollte das Timbre des Klangs verändern (Amplituden Modulation)

alt text

alt text

Verwendung von LEDs und Druckknöpfen

  • LEDs und Druckknöpfe/Taster können an die Digitalen I/Os angeschlossen werden. I/O steht für Input und Output, d.h. man kann in der Software entscheiden, ob man sie steuern möchte (z.B. LED ein/aus schalten) oder auslesen (z.B. einen Taster abfragen).

  • !! LEDs müssen immer mit einem Widerstand (resistor) in Reihe geschaltet werden, sonst brennen die LEDs oder noch schlechter, das Bela Board durch !!

alt text

  • 1) Öffne das Beispiel “3-DigitalInOut”
  • 2) Verbinde einen Taster mit +5V an einem Kontakt und mit digital pin 0 mit dem anderen Kontakt
  • 3) starte das Beispiel

  • 4) Verbinde stecke eine LED so auf das das Board, das das lange Bein in (+) geht
  • 5) stecke das kurze Bein in eine freie Reihe, die durchkontaktiert ist (a-e)
  • 6) stecke einen Widerstand (10K Ohm) in die selbe Reihe und das zweite Bein in (-)
  • (lass mich evtl. kurz drauf schauen)
  • 7) Verbinde die (+) Reihe mit digi1 und die (-) Reihe mit Ground
  • 8) jetzt sollte die LED jedesmal leuchten, wenn der Taster gedrückt wird