http://192.168.1.222:9001/p/bitsandsounds-notes
How to clone our repository?
git clone relearn@192.168.1.222:git/bits-and-sound.git
--> To retrieve the files from the remote repository
git pull
--> How to add files to our Git depository
- make sure you are in the correct folder (the git folder of bits-and-sounds) --> use cd for that
- tag the files you want to add to the common git folder (so everyone can get them!!)
git add blablabla.jpg bliblabloe.jpg
- to confirm your tags - you need to be committed!
git commit
Type in a clear message describing the changes and addition you make to the repository
- add your files to our common git folder (so everyone can download them!)
git push blablabla.jpg bliblabloe.jpg
Only the files you have added/tagged will go there
If you want to play with sound files catch those from your system
/usr/share/sounds/
Alvin Lucier
I'm sitting in a room
===========================================
update to gimp 2.8 from ubuntu
1. Uninstall Gimp from your system:
sudo apt-get autoremove gimp gimp-plugin-registry
2. Add the following PPA:
sudo add-apt-repository ppa:otto-kesselgulasch/gimp
sudo apt-get update
3. Install Gimp:
sudo apt-get install gimp
===========================================
touch.data -> make an empty data file
open it in GHex
enter some color value to create a pixel, for exemple FF 00 00 FF FF 00 00 00 00
save this
open it with Gimp (in your terminal "Gimp filename.data"
you just wrote the small belgian flag of the world
open Audacity
import the file, filename.data (raw)
select encodage : U-Law, in Mono
Select Transport "play a loop" (or shift space bar)
listen to your track !
pull && push > download new data and add yours
=========
>>> range(0,10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> for number in range(0, 10):
print("/t " * number + "yes")
>>> for number in range(0,10):
... print("/t"* number+"here")
...
here
/there
/t/there
/t/t/there
/t/t/t/there
/t/t/t/t/there
/t/t/t/t/t/there
/t/t/t/t/t/t/there
/t/t/t/t/t/t/t/there
/t/t/t/t/t/t/t/t/there
>>> for number in range(0,10):
... print("\t"* number+"here")
...
here
here
here
here
here
here
here
here
here
here
for item in ['chicken', 'egg', 'omelette']:
print(item)
>>> for item in ['time','space','breathe']:
... print(item)
... print(item)
... print(item)
...
time
time
time
space
space
space
breathe
breathe
breathe
>>> enum(['time','space','breathe'])
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'enum' is not defined
>>> enumerate(['time','space','breathe'])
<enumerate object at 0x7f8f5a501960>
>>> list(enumerate(['time','space','breathe']))
[(0, 'time'), (1, 'space'), (2, 'breathe')]
>>> for item in enumerate(['time','space','breathe']):
... print(item)
...
(0, 'time')
(1, 'space')
(2, 'breathe')
>>> for number, item in enumerate(['time','space','breathe']):
... print(" " * number + item)
...
time
space
breathe
>>> i=0
>>> for item in ['time','space','breathe']:
... print(" " * i + item)
... i = i + 1
...
time
space
breathe
>>> for item in ['time','space','breathe']:
... print(" " * i + item)
... i = i + 5
...
time
space
breathe
>>>
>>> for value in [1,2,3]:
... print(value)
...
1
2
3
>>> i=0
>>> for value in ['sky','pie','fly']:
... print(" "*i+value)
... i = i + 5
...
sky
pie
fly
>>> for value in ['sky','pie','fly']:
... print(" "*i+value+ "\n")
... i = i + 3
... n = i
...
sky
pie
fly
>>> range (10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
===============================================
for mac osx keyboard:
" [ " = Maj + alt(right) + (
"~" = alt(right) Space
=================================================
GIF :
Take all the images of a file to create a gif
path convert *.jpg (format) filename.gif (your generated gif)
Exemple :
/Bureau/bits-and-sound/monday-morning-glitches$ convert *.jpg animate2.gif
===========================================
---> for making a gradient , do in python::
for value in range(255):
print('0 0 ' + str(value))
--- > copy the numbers in a text file
---> add the PPM header (from wikipedia), so the file knows you are making a ppm raw image
P3
# The P3 means colors are in ASCII, then 3 columns and 2 rows,
# then 255 for max color, then RGB triplets
3 2
255
change the 3 and 2 values ---> for the size of your image
_____________________gradient.py________________________________
print('P3')
print('51 5')
print('255')
for value in range(255):
print('0 255 ' + str(value))
____________________In the terminal_______________________________
python gradient.py
python gradient.py > gradient.ppm
gimp gradient.ppm
_______________________ Write *REAL* bytes and not ascii ___________
import struct
out = open("image.data", "wb")
for x in range(100):
out.write(struct.pack('B', x))
out.write(struct.pack('B', 0))
out.write(struct.pack('B', 0))
===================================================
for i in $(seq 1 50); do cat damier.ppm >> /tmp/damier.wav; done
___________________________________________________________
for value in range(255):
print('0' + " " + str(value) + " " + str(value))
print(str(value)+ " " + '0' + " " + str(value))
print(str(value)+ " " + '0' + " " + '255')
print('23 00 255')
for value in range(255):
print('0' + " " + str(value) + " " + str(value))
print(str(value)+ " " + '0' + " " + str(value))
print('0' + " " + '0' + " " + '40')
print('12 200 55')
for value in range(255):
print('0' + " " + str(value) + " " + str(value))
print(str(value)+ " " + '0' + " " + str(value))
print(str(value)+ " " + '0' + " " + '255')
print('23 00 255')
for value in range(255):
print('0' + " " + str(value) + " " + str(value))
print(str(value)+ " " + '0' + " " + str(value))
print('0' + " " + '0' + " " + '220')
print('12 200 55')
for value in range(255):
print (str(value)+' 0 ' + str(value))
print ('0 ' + str(value) + ' ' + str(value))
print ('0 ' + str(value) + ' ' + str(value))
print ('0 ' + str(value) + ' ' + str(value))
print (str(value) + ' ' + str(value) + ' 0 ')
for value in range(255):
print (str(value)+' 0 ' + str(value))
print ('0 ' + str(value) + ' ' + str(value))
print ('0 ' + str(value) + ' ' + str(value))
print ('0 ' + str(value) + ' ' + str(value))
print (str(255 - value) + ' ' + str(value) + ' 0')
print (str(255 - value) + ' ' + str(value) + ' 0')
print ('0 0 0')
for value in range(255):
print ('0 ' + str(value) + ' ' + str(value))
print (str(255 - value) + ' ' + str(value) + ' 0')
print (str(255 - value) + ' ' + str(value) + ' 0')
print ('0 0 0')
for value in range(255):
print ('0 ' + str(value) + ' ' + str(value))
print (str(255 - value) + ' ' + str(value) + ' 0')
print (str(25 - value) + ' ' + str(value) + ' 0')
print ('0 100 0')
print (str(25 - value) + ' 0 ' + str(value))
print ('0 100 200')
print ('0 100 200')
print (str(value)+' 0 ' + str(value))
# Alex
import math
for y in range(50):
for x in range(50):
val = int(((1 + math.cos(y * x)) / 2) * 255)
print(val)
print(val)
print(val)
for value in range(255):
print("0 2 " + str(value))
print("12 0" + " " + str(value))
print('0 0 210')
print('12 222 55')
for value in range (255):
print("0 4 " + str(value))
print("14 0" + " " + str(value))
print('0 0 240')
print('12 222 55')
=====================================================
prendre une image .ppm
l'ouvrir avec audacity
modifier le son en rajoutant plusieurs pistes etc
l'enregistrer en .raw ---> exporter > autres formats non compressés > options > .raw + U law
ouvrir avec gimp
======================================================
Do effects on the sound you have made wit Sox
play name_of_your_file.wav pitch -1000 lowpass 1000
wooohoooooo!!
=======================================================
Play a non-wave file with sox.
sox --ignore-length --rate 8000 -b 8 -u -t raw
=======================================================
"sound is basically air being more or less compressed in our ears"
for the spreadsheet music:
https://pypi.python.org/pypi/sheetmusic
sudo apt-get install python-pip
sudo apt-get install python-lxml
or (longer)
sudo apt-get install python-dev libxml2-dev libxslt1-dev
sudo pip install sheetmusic
sudo apt-get install gnumeric-plugins-extra
export LANG=C
Select Gnumeric plugins
* sheetmusic
* Python loader
Sheetmusic bugs
* sheetmusic-installer doesn't work on French or Spanish terminals
* The documentation should say that you need to enable plugins.
* The documentation should say something about sound fonts.
* The sound font is hard-coded
Get sound fonts from the server.
scp relearn@192.168.1.222:*.sf2 .
sudo mkdir -p /usr/share/soundfonts
sudo cp Unison.sf2 /usr/share/soundfonts/Unison.sf2
OR
cp FluidR3_GM2-2.sf2 /usr/share/soundfonts/Unison.sf2
http://es.wikipedia.org/wiki/Sistema_de_notaci%C3%B3n_musical_anglosaj%C3%B3n
--> Opem Gnumeric
To run spreadsheet functions with multiple output cells, hit control + enter rather than just "nter".
--> open your python console
import sheetmusic
sheetmusic.init()
sheetmusic.play('B2:C2')
--> change tempo
sheetmusic.play('J1:M33', 'A', 4, 4, 200)
THE JOHN -SILENCE- CAGE DEPT. (aka virtualboxers)
we with no sound would like to play with morton feldman's music.
Gyorgi Ligeti
Steve Reich
Margaret Leng Tan
super formula
=concatenate(if(roundup(mod(A2/256*49,7))<2,"A",if(roundup(mod(A2/256*49,7))<3,"B",if(roundup(mod(A2/256*49,7))<4,"C",if(roundup(mod(A2/256*49,7))<5,"D",if(roundup(mod(A2/256*49,7))<6,"E",if(roundup(mod(A2/256*49,7))<7,"F","G")))))),if(roundup(A2/256*49/7)=0,1,roundup(A2/256*49/7)))
======================================================================
Install PD on linux
http://puredata.info/docs/faq/debian
osc~ / phasor~
dac~
metro 1000
random 500
copy paste = ctrl+D
add = bang (put different numbers to control it with the keyboard) + message box to define the number
to install Pd on Virtual Machines
sudo apt-get install gem
then check Gem is there :
cd/usr/lib/pd/extra
In PD
media>preferences>startup...
new...
copy the path of GEM folder
apply
RESTART PD
then be zexy
sudo apt-get install pd-zexy
In PD
media>preferences>startup...
new...
copy the path of zexy folder
apply
Install 'unauthorized:
sudo apt-get pd-unauthorized
In PD
For [playlist] make [unauthorized/playlist], and the object run!
Same for [shell]:
sudo apt-get pd-ggee
In PD:
[ggee/shell]
PD manual (GEM)
http://en.flossmanuals.net/pure-data/video-gem-tutorials/introduction/
# inspired by <https://gitorious.org/0xa/shiftop/source/e83960f9ecc033bd9820498ed2863da7f0e0fa5e:shiftop#L28-29>
cat /dev/urandom| mplayer -vo x11 -sws 4 -zoom -vf dsize=720:720 -demuxer rawvideo -rawvideo w=16:h=16:y8:fps=30 -
arecord | mplayer -vo x11 -sws 4 -zoom -vf dsize=720:720 -demuxer rawvideo -rawvideo w=16:h=16:y8:fps=30 -
# big larsen
arecord | aplay -
# hip hop to rgb
cat rap.wav | mplayer -vo x11 -sws 4 -zoom -vf dsize=720:720 -demuxer rawvideo -rawvideo w=16:h=16:format=rgb24:fps=30 -
sketch on Arduino o read analog in & serial
=====================================================================================================
Digital Drawdio --> connecting pencil drawings to all kinds of programmes and networks by dy-wen
==============================================================================
Arduino takes the resistive qualities of the black crayons and it can send it as serial data to
- pure data
- the terminal
- python
- the network
- chatbots?
- somewhere in space??
Setting up the Arduino in physical space
==================================
- take a 800KOhm resistor and make a voltage divider with the A0 as Arduino input (change the resistor value if necessary)
- put a pin in the graphite of the pencil & connect it to the Arduino with a aligator clip (this is one leg of your variable resistor in your voltage divider)
- connect a aligator clip to the drawing (onto the graphite) -> it is your ground
--> start drawing between the ground and further on the paper
Arduino & Pure Data-extended
==========================
- on Arduino, upload the StandardFirmata_slower sketch
- to connect with the Arduino in Pure Data --> put the Pduino_arduino_test.pd patch in the folder where your music patch is
- open it and follow these instructions
- Instructions to connect the Arduino data to your Pure Data Patch with Pduino
------------------------------------------------------------------------------------------------------------
- Choose the right serial port, for the usb to connect to the Arduino (little blocks in the top left of this patch)
- Open the connections to the Arduino (analog --> 14 & 15) in the top right box (configure mode for each pin)
- you should see values changing at the bottom left - there are two send objects: s arduino_analo0 & s arduino_analog1
- put two receive patches in your own pd patch to receive these data (r arduino_analo0 & r arduino_analog1)
arduino & the terminal::
============================
Put a sketch on your Arduino that sends serial data to the serial monitor
In a terminal -> run:
stty -F /dev/ttyACM0 9600
stty -F /dev/ttyACM0 raw
cat < /dev/ttyACM0
(potentially interesting: https://github.com/todbot/arduino-serial/)
Arduino & Python
========================
http://playground.arduino.cc/interfacing/python
Arduino and Python
Talking to Arduino over a serial interface is pretty trivial in Python. On Unix-like systems you can read and write to the serial device as if it were a file, but there is also a wrapper library called pySerial that works well across all operating systems.
After installing pySerial, reading data from Arduino is straightforward:
>>> import serial
>>> ser = serial.Serial('/dev/ttyNameOfYourSerialForArduino', 9600)
>>> while True:
... print ser.readline()
git branches
==================
to avoid merge problems
git checkout -b tom
git commit .
# ...
git push origin tom
Wanna talk on IRC : join #bitsandsounds
with Konversation