A Prototype Developed by Michael J Junokas
In exploring the board, my initial thought was to develop towards exploiting the Linux/Arduino presence within the same local hardware. While my impulse is to accelerate project into complexity, I wanted to make this initial foray one of deliberate focus, channeling my energies toward understanding and efficient interactions of all the elements.
For an initial project, I decided to work with the voltage control aspects of the board as an interaction paradigm with custom circuitry I have designed. The basic control flow can be seen in the following diagram:
The Galileo itself would utilize a control program (written in Python) that would direct the amount of voltage to be fed to the Arduino. The Arduino would then feed that voltage to the custom audio circuit which has an aleatoric response to the amount of voltage it receives. The aleatoric response would manifest as audio (which would be projected sonically through a loudspeaker) and voltage, which would be fed back to the Arduino. This feedback would then be fed to the Linux board where it could be monitored or utilized for manipulating the control sequence of the overall circuit.
This control flow was purposefully designed to be generic so that the system could be modular within specification that the external audio circuit be principally driven by voltage. Through this modularity, myriad “species” of the same base circuit could be made that generate vastly different sonic environments.
For my first species of audio circuit, I was interested in emulating the feedback nature of the macro-environment while not taxing the overall voltage of the system. That is, I wanted to make a circuit that didn’t need more power than the Galileo could provide. It was also important that the circuit be minimal in nature, lending itself to the modular and understanding basis of the project. The initial audio circuit can be seen in the following schematic:
The circuit utilizes the LM386 IC (audio amplifier) in a feedback manner, sending the audio generated by the varying voltage back into the input of the IC. By introducing various capacitors and resistors at different connections of the IC (see dashed rectangle outlines), a variety of different voltage control rates are produced, varying the nature of the feedback within the system and the audio being output. The volatility of the feedback led to many different, often unstable configurations only able to be determined through empirical evaluation. The suggested diagram above is one of many different tested variations, with different resistor and capacitor values being used for each test.
Once the audio circuit had been designed to be driven by voltage, the control information could be sent from the Galileo. In preliminary tests, I tried to connect the Arduino side of the board to the audio circuit using the built-in FADING code from the Arduio IDE, which generates a linear fade of control signal from zero to the max output back to zero over a designated time. The results can be seen in the following video:
From there, I wanted to test the effect of multiple temporal soundscapes coupled with multiple sound output sources. I added another audio circuit that used the same schematic as the first (but with different component values) to the environment. I then ran the Arduino program to different pins at different rates so each audio circuit would have unique control information. I experimented with three generalized rates of change: fast, slo, and glacial. The results can be seen in the following videos:
With the audio circuits and Arduino interaction well established, I turned my attention the control information to be generated by the Linux side of the Galileo board. In an attempt to remain cohesive with the aleatoric and feedback nature of the audio circuits, I decided to attempt to generate control information using the Chua Circuit (Chua, 1992).
I decided to first analyze the nature of the Chua Circuit in Matlab before implementing anything in Python. Through empirical testing of the fixed parameter of the Chua Circuit algorithm, I landed on an interesting plot which would provide the control information for the system. The following two plots visualize that control information as one function in three dimensions and three separate functions in two dimensions over 1000 iterations:
With chaos being obtained functionally, I began to consider extending the biological metaphor of species creation and interaction, where chaos could be implemented as a way to introduce a naturalistic response to an environment.
Chua, Leon O. The genesis of Chua’s circuit. Electronics Research Laboratory, College of Engineering, University of California, 1992.
Collins, Nicolas. Handmade electronic music: the art of hardware hacking. Taylor & Francis, 2006.
Kennedy, Michael Peter. “Three steps to chaos. II. A Chua’s circuit primer.”Circuits and Systems I: Fundamental Theory and Applications, IEEE Transactions on 40.10 (1993): 657-674.