Recording session with Mark Trayle

IMG_4734

I recently finished a recording session with composer Mark Trayle. We recorded his piece Nearfield Edges in the Wild Beast concert hall at CalArts. Mark’s piece uses a piezo-based feedback mechanism to activate the space with very high frequencies (in the 13K range) that bounce around the room and create mind altering sonic experiences. I used the mid-side stereo technique with a Schoeps CM5 as the mid and an AKG 414 as the side for the main pair. I used an array of Neumann km-184s in the back of the hall to capture room resonances. Look for a release of the piece in the late spring or early summer of 2014.

Raspberry Pi Workshop at Machine Project

Raspberry Pi workshop

I will be teaching a two day Raspberry Pi workshop at Machine Project on Wednesday, March March 12th and Monday, March 17th 2014. The workshop will focus on using the Raspberry Pi camera module with an emphasis on capturing time lapse videos.

The first class session will focus on getting the Raspberry Pi set up, learning the commands for the HD camera board and preparing a time lapse video capture script using the Python programming language. For homework, each student will shoot a time lapse video of their choice.

In the second class meeting we will cover how to convert the time lapse images into a video file for presentation. Each student will then show their time lapse video to the class. As time permits we will also cover modifications for the time lapse script, capturing video files to disk and using the pi camera board’s image effects remotely as a realtime “Video Synth.” We’ll also demonstrate a pan and tilt servo controller for the camera board.

You can register for the class using this link

Raspberry Pi – Initial Configuration for Video

raspberry pi video configuration

Raspi-Config Menu

When you boot your Raspberry Pi for the first time make sure it is connected to a display. The software configuration window should open. You can run the raspi-config program from the terminal at any time by typing:

sudo raspi-config

In the raspi-config menu navigate to the following options and make changes:

1) Expand the filesystem – will resize the amount of storage space available
5) Enable camera – yep. gotta turn it on
7) Overclocking — set to High or Turbo
8) Advanced options –
- A1 Overscan
- A2 Hostname
- A3 Memory split for gpu – set to 256

Click finish and reboot the Pi

SSH and Remote Login

After the Pi reboots at the prompt type:

ip addr

and make note of the address. It the other one, not 127.0.0.1

On your laptop open the Terminal program from the Utilities folder. At the prompt type:

ssh pi@ip-address 

replace ‘ipaddress’ with the ip address of your Pi

The command looked like this on my laptop:

ssh pi@10.0.1.20

Press return, answer ‘yes’ to the authentication question, and enter the password

Change the Keyboard Layout

Type

sudo nano /etc/default/keyboard

Change

XKBLAYOUT="GB"

To

XKBLAYOUT="US"

Save the file

Change the Time Zone

On your Pi’s terminal type:

sudo dpkg-reconfigure tzdata

Choose

US, pacific ocean

Setup a Python Script to Email IP Address

Download the following python script to your laptop:

startup_mailer

Once downloaded, change the name to “startup_mailer.py”
Open the file in a text editor on your laptop and add information to the following variables:
     to
     gmail user
     gmail password
Save the file to your desktop

Copy the file to your Pi using a new ‘local’ terminal window on your laptop
In the Terminal program on your laptop type command-t to open another session window
In the new terminal window type

 scp /users/username/desktop/startup_mailer.py pi@ip-adress:/home/pi/scripts

The command, assuming startup_mailer.py is on the desktop, looked like this on my laptop:

scp /users/dwingus/desktop/startup_mailer.py pi@10.0.1.20:/home/pi/cd /home/pi

Make the python script executable

sudo chmod +x startup_mailer.py

Make a new directory called scripts

sudo mkdir scripts

Move the startup_mailer.py file to the scripts directory

sudo mv startup_mailer.py scripts

Edit the rc.local file that will call the startup_mailer.py script when the Pi boots
Open the file rc.local in the nano text editor

sudo nano /etc/rc.local  

Add the following right above “fi”:

python /home/pi/scripts/startup_mailer.py

Save the file

Software Update
Its a good idea at this point to make sure all of the Pi’s software is up to date. The system version we installed was created in January so some of the libraries and programs have been updated since then. Type the following commands to do a complete software update

sudo apt-get update
sudo apt-get upgrade  

Your Pi is now configured! type the following to reboot

sudo reboot

Raspberry Pi – Image Viewer

Raspberry Pi Image Viewer

INSTALL AN IMAGE VIEWER ON THE PI – Single view and Slideshow

To install the FBI image viewer type the following in a terminal on your Pi:

sudo apt-get install fbi

To view an image type the following:

sudo fbi -d /dev/fb0 -a -T 2 0001.jpg

#  the -d /dev/fb0 flag calls a 'framebuffer'

#  the -T 2 is needed when controlling the pi via SSH - tells it to use the Terminal for input

To "unview" the image you have to kill the FBI process. To find the FBI process type:

ps -aux | grep fbi

# ps -aux lists all processes running which is then "piped" (|) to the grep search function which looks for any fbi processes

To kill the FBI process type:

sudo kill  [process id number]

To start a slideshow of images in a folder via SSH terminal

sudo fbi -d /dev/fb0 -a -T 2 -t 5 *.jpg

#  the - t  (lowercase) sets the time interval in seconds between images

To start a slideshow of images in a folder without the photo information on the bottom of the screen type:

sudo fbi -noverbose -a -t 10 -T 2 -d /dev/fb0 *.jpg

Digital Meditation Loop No.2

Digital Meditation Loop No.1

I’ve been experimenting with sound and video collisions using max/msp/jitter. The result of this particular collision is a one minute video loop using footage of a Dutch herring chef and a processed field recording of the market where the herring stand was located. The sonic and visual processing is driven by a crossed feedback network of parameter data from the digital audio and video files. The sound affects the video and the video affects the sound.

Raspberry Pi Video Synthesizer

I’ve been working on a Raspberry Pi video synthesizer that is coded in Python running on two Raspberry Pi computers. Each Pi runs a Python script to access the camera module controls and video effects. Each Pi’s camera is pointed at the other Pi’s video monitor to create a feedback loop. OSC commands provide remote control and are sent to each Pi from a max patch running on a laptop. More documentation with sound is on the way. For now enjoy the footage

Raspberry Pi Speakers running Pd

Raspberry Pi WIFI speaker boxes

I built these Raspberry pi Speakers using mono amplifier boards from Sparkfun, 8 ohm speakers from All Electronics, a few components and some wood from my garage I have made four WIFI speaker boxes for Raspberry Pi based audio projects. Each speaker box has a Raspberry Pi in the back that runs a Pure Data audio patch. The Pure Data audio patch is controlled via OSC through a WIFI dongle on the Pi. The speaker is powered via the Pi’s 3.3 volt GPIO pin and ground.

More information and a demonstration video is on the way!

Networked Raspberry Pis and Pure Data

This past Spring I have been tinkering with the Raspberry Pi computers. They are pretty amazing considering that they only cost about $40. The two areas I have been researching have been running Pure Data networked between three Pis and setting up stand-alone HD video players for use in galleries and kiosks. Here’s a demo video of three Pis networked together, running Pure Data, and being controlled via a laptop with Pure Data and a Korg Nano controller.

Raspberry Pi – Gallery Video Player

Yorgo_No-Feeling-is_Final_flat_screen_sm

This tutorial will turn your Raspberry Pi into a simple video player. The Raspberry Pi will automatically begin playing a folder of video files when it starts. The files in the folder will randomly repeat until the script is stopped or the Pi is turned off. To see a demonstration video please go here.The following instructions assume you are logged in to your Pi from a remote computer.

Create a folder and copy video files to your Pi

To create a new folder named videos for your video files type:

mkdir videos

To move into the newly created videos directory type:

cd videos

Open a new “local” terminal window. You’ll run the next command on the “local” terminal and not the terminal window connected to your Pi
To copy a folder of video files from your laptop’s desktop to your Pi type :

scp /Users/[your username]/Desktop/[folder name>]/* pi@[your Pi's ip address]:/home/pi/videos

The command looked like this on my computer:

scp /Users/dwingus/Desktop/vids/* pi@10.0.1.9:/home/pi/videos

Type your Pi’s password, press return and wait for videos to transfer. The next step is to create a shell script using the nano text editor.

Shell Script to play videos in a folder

Log in to your Pi. and type:

sudo nano playseries

Copy the following into the Nano text editor:

#!/bin/bash
if [ x"$1" = x"help" -o x"$1" = x"--help" -o x"$1" = x"-help" ];then
echo "Usage: playseries [folder path]"
echo "Audio mode can be either 'hdmi' or 'local'."
echo "Folder path is the full path to folder full of video files."
echo "This script will try to play all files in the video folder regardless of file type"
exit
fi
while true
do
for file in $2/*
do
omxplayer -o $1 $file
done
done

 

Save the script file by typing control-x
Make the script executable by typing:

chmod +x playseries

Move the file to the /usr/bin folder by typing:

mv playseries /usr/bin

 

Running the script

The script follows the format:

[scriptname] [audio-output] [path_to_directory]

To run the script using the HDMI audio out type:

playseries hdmi /home/pi/videos

To run the script using the local audio out type:

playseries local /home/pi/videos

Blanking the Pi's screen between video files

You'll notice when you run the script that OmxPlayer pauses between video files and there is text that is displayed on the video monitor. To eliminate the text you need to basically tell the Pi to make the screen black.
To fix this edit the file here:

sudo nano /etc/kbd/config


In the config file change "BLANK TIME" to a value of 2 and save the file
Then restart your Pi by typing:

sudo reboot

Logging In and Starting the Script on Startup

To get your Raspberry Pi to automatically log in when started and to call the playseries script do the following:
- Type sudo nano /etc/inittab
- Scroll to the line: #1:2345:respawn:/sbin/getty 115299 tty1 and put a # in front of it
- Add a new line underneath: 1:2345:respawn:/bin/login -f pi tty1/dev/tty1 2>&1
- Save the file. This will make your Pi automatically log in when started.
- Type sudo nano ~/.bash_profile to edit your .bash_profile file.
- Type playseries local /home/pi/videos
- Save the file. Commands in the .bash_profile file will be executed on log in
- Type sudo reboot