Bibliocircuitry
Mixed Media
Mixed Media
A few details
This project answers a reflective design challenge: how can we punctuate the familiarity and ordinariness of a book? It was inspired by Hancock et al.’s term, bibliocircuitry: the use of “physical books as platforms for experimenting with computation” (2014, 78).
Some special
The laser-cut “book” is chained and locked with a 3D printed fastener. Upon opening, viewers will see an interrupted circuit on the left side, which includes a folded “switch” bearing a cameo of the artist’s husband. When the switch is activated and the circuit completed, a light illuminates the inside. On the right, buttons on the micro-controller play the my parents’ voices while LED lights (in blue or pink) light up.
How I solved it
My mother’s audio comes from a recent (embarrassing yet endearing) voicemail message, while my father’s audio derives from an analogue cassette tape he used before his death in 2011. I chose this audio clip to represent her father as it offers an example of his fluid assistive technology use – her father states, “Lynn’s cellphone number” before his computer’s screenreader reads the telephone digits aloud.
import board
import digitalio
try:
from audiocore import WaveFile
except ImportError:
from audioio import WaveFile
try:
from audioio import AudioOut
except ImportError:
try:
from audiopwmio import PWMAudioOut as AudioOut
except ImportError:
pass # not always supported by every board!
# Enable the speaker
spkrenable = digitalio.DigitalInOut(board.SPEAKER_ENABLE)
spkrenable.direction = digitalio.Direction.OUTPUT
spkrenable.value = True
# Make the 2 input buttons
buttonA = digitalio.DigitalInOut(board.BUTTON_A)
buttonA.direction = digitalio.Direction.INPUT
buttonA.pull = digitalio.Pull.DOWN
buttonB = digitalio.DigitalInOut(board.BUTTON_B)
buttonB.direction = digitalio.Direction.INPUT
buttonB.pull = digitalio.Pull.DOWN
# The two files assigned to buttons A & B
audiofiles = ["mom.wav", "dad.wav"]
def play_file(filename):
print("Playing file: " + filename)
wave_file = open(filename, "rb")
with WaveFile(wave_file) as wave:
with AudioOut(board.SPEAKER) as audio:
audio.play(wave)
while audio.playing:
pass
print("Finished")
while True:
if buttonA.value:
play_file(audiofiles[0])
if buttonB.value:
play_file(audiofiles[1])
Audio files
Months of work
Set of headphones
Final grade