Skip to content

dvzrv/random241

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 

random241

Python scripts for harvesting entropy from a random number generator (with an Americium 241 sample mounted over a webcam sensor as its source). This repository also features an OSC enabled SuperCollider random241.scd script that can interface with it and a rudimental python script read_gpio.py (made for BeagleBone Black) that can be used to further modify effects on the generated sounds in a live setup.

Requirements:

For the entropy_harvester you'll need the following packages and dependencies installed (names may vary depending on your distribution!):

  • python2
  • python2-numpy
  • python2-pyliblo
  • opencv
  • liblo

For the SuperCollider script you'll need SuperCollider installed (duh!).

For the remote_control you'll need the following:

If you want to build your own random number generator from scratch, you can follow my little howto guide (it's far from being perfect though).

Features:

As this is an ongoing project and was executed primarily within the boundaries of my course work for Audiovisual Programming - Embedded Systems led by Fredrik Olofsson at UDK Berlin in 2013/ 2014, bugs can be expected (especially if you set up your own device!) and the reporting of those is very welcome! For an audio example, check out my 1)3/1532 Bandcamp.

Currently the list of features for the entropy_harvester is as follows:

  • Grabbing of bright areas (aka regions of interest in pixels) above a certain threshold from a webcam
  • Calculation of mean x/y values from regions of interest and conversion to float range
  • Sending of time, x and y values via OSC to predefined host and port

The SuperCollider script is able to:

  • Receive OSC messages for the creation of SynthDefs with certain pitch, amplitude, length and loop time, according to coordinates and time sent.
  • Receive OSC messages for manipulation of post processing SynthDefs (FreeVerb for now).
  • Ignore OSC messages after a certain amount of SynthDefs created.
  • Release (all) SynthDefs after a certain amount of SynthDefs is reached.

The remote_control script is able to:

  • Read GPIO data from BeagleBone Black (P9_39-42 for now)
  • Send sensor data as OSC message to predefined host and port

TODOs:

  • Externalization of settings for remote_control and entropy_harvester
  • Further settings and advancements in sound for the SuperCollider script
  • Performance enhancements for entropy_harvester using different search algorithm (maybe even switch to C++)
  • Detection of false positives (pixel errors) on wacky cameras

About

No place like /dev/random? Build your own random number generator with an Americium 241 sample

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published