aboutsummaryrefslogtreecommitdiffstats
path: root/README.md
blob: e39025c3deca780fb8bb53065c74a89a2d921060 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# thesoundofpeople

## About
Supercollider classes for interacting with data sets from http://opensnp.org (parsing, sonification, etc.).  
This is a prototype! It's quite slow and eats a lot of RAM. I've only tested it on Linux with JACK. So be aware of that, when using it!

## Features
- Parse 23andme files, write them to a different - self-invented and faster readable - format.
- Loading the contents of both types of files (parsed and read) into a SuperCollider Dictionary. This will require *a lot of* RAM (get ready for ~5,7Gb (**parsing**) and ~4,7Gb (**reading**)!
- Rendering sound from positions (or rather: bases/base pairs at a position on a chromosome) of up to 25 chromosomes at the same time.
- Possible audio setups are: *2*, *4*, *6*, *8* and *12* speakers

## Installation

Clone this repository to somewhere sclang will pick it up on recompiling its class library:

    cd ~/.local/share/SuperCollider/Extensions/local
    git clone git://sleepmap.de/thesoundofpeople.git

If the local folder doesn't exist, create it, otherwise you can also directly clone into the Extensions folder (the folder and all of its children will get picked up on recompile).
Symlinking is fine, too!  

    cd ~/some/other/directory
    git clone git://sleepmap.de/thesoundofpeople.git
    cd ./local/share/SuperCollider/Extensios/local/
    ln -s ~/some/other/directory/thesoundofpeople .

## TODO
- flesh out SNP.sc (a million instances eat too much RAM on filling a SNPDict), that comes with a lot of looking around what has to be changed in the other classes to make this work.
- fine grain the synthesizers used, so each chromosome will become more distinct (currently only X, Y and MT are very recognizable)
- use a set of filters based upon the form of each chromosome and its "interesting areas"
- make updating resolvers less RAM consuming (and thus usable)