aboutsummaryrefslogtreecommitdiffstats
path: root/howto.scd
blob: a1a17b58d733170af97fcea6ae42537a857ad507 (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
33
34
35
36
37
38
39
40
41
//First off: All of this eats shitloads of RAM (still), so be aware! Don't use this with less than 8Gb of RAM available! You have been warned! Also make sure your /tmp has enough space if you're recording to file!


//Parsing a file, writing a new one to disk
(
//parse a new file from opensnp.org
~parser = SNPParser.new("/tmp/1.23andme.9");
//get a SNPDict
~dictionary = ~parser.readFile;
//write the SNPDict to file
~file = SNPFile("/tmp/1.sonificate.snp");
~file.writeFile(~dictionary);
)

//You might want to recompile the Class library now. Your RAM will be full...
//boot server FIRST, then load file
(
s.makeWindow;
s.boot;
~file = SNPFile("/tmp/1.sonificate.snp");//read from own file (smaller)
~dictionary = ~file.readFile;//read in the file
~dictionary.positions;//the number of positions you'll be able to play
)


//Make some sound: These are examples on how to init the SNPSonificator class (only use one of them of course). Don't set the playTime below 1 hour. Your sound server won't like that... seriously!

~sonification = SNPSonificator.new(~dictionary, 8, 2, false, [], true, "/tmp/");// 8 chan, 2hour playtime, recording to file
~sonification = SNPSonificator.new(~dictionary, 8, 6, true, [], false);//8 chan, 6hour playtime
~sonification = SNPSonificator.new(~dictionary, 2, 2, true, [], true, "/var/run/media/dave/whitey/");//2 chan, 2hour playtime, recording to file
~sonification = SNPSonificator.new(~dictionary, 2, 2, true, [], false);//2 chan, 2hour playtime
~sonification = SNPSonificator.new(~dictionary, 8, 2, true, [\1,\2,\3,\4,\5,\6,\7,\8,\9,\10,\11,\12,\13,\14,\15,\16,\17,\18,\19,\20,\21,\22], false);//8 chan, 2hour playtime, ignoring all chromosomes but X, Y and MT


~sonification.playFromTo(0, 200000);//play from position - to position (round about 950k in all, if you leave second argument blank, it'll try to play to the end)
~sonification.queryTimeAndPosition;//get current position and time
~sonification.pausePlay;//pause play at current position
~sonification.resumePlay;//resume it