Author

Topic: Sounds of Gox (Read 1069 times)

hero member
Activity: 728
Merit: 500
July 10, 2012, 12:58:30 AM
#3
For anyone interested, this will create a 1 min wave file from the first column of a csv you import into R. If you modify it to be longer, keep in mind it requires about 100 mb of RAM per each minute of output:

Code:
require(tuneR)

#Import headerless data from csv in working directory and convert to matrix
data<-read.csv("datafile.csv", header = FALSE)
data<-as.matrix(data)

#Selects column of matrix to transform into Hz
columnName <- 1
MaxHz = 1000
MinHz = 80
Freqs<-data[,columnName]/max(data[,columnName])
Freqs<-Freqs*MaxHz
Freqs<-Freqs + MinHz

#Function to create waveforms with frequencies of input data
MakeWave <-function (x) {

Waveform <- sine  #Desired waveform: can be sine, sawtooth, square
TotalDuration = 60  #Desired duration of output file (in seconds)
SampleRate = 44100  #Desired Sample Rate
Bitdepth = 16  #Desired Bit Depth
d=TotalDuration/length(Freqs)  #Sets the duration of note derived from each data point
Waveform(x, bit = Bitdepth, duration = d, samp.rate = SampleRate, xunit = "time")
}

#Generate output wave object
waves<-lapply(Freqs, MakeWave)  #Generate Waves from each datapoint
waves<-lapply(waves, prepComb)  #Smooth Transitions
output<-do.call(bind,waves)  #Concatenate Waves
rm(waves)  #Clear individual waves from memory
output

### Uncomment to play/save ###

#play(output)
#writeWave(output, "output.wav")
full member
Activity: 196
Merit: 100
Bitcoin is a food group.
July 09, 2012, 02:32:10 AM
#2
lol i like it! the bubble reminded me of galaga
hero member
Activity: 728
Merit: 500
July 09, 2012, 02:16:14 AM
#1
Quote
Interesting idea.. found this vid while searching on youtube

"The "White Noise" in this track is an aural exploration of the first 2% of the BitCoin BlockChain."

http://www.youtube.com/watch?v=8WivyA3-aww

doesn't say exactly how it was generated from the blockchain (or if directly at all!).
https://bitcointalksearch.org/topic/ambient-sound-blockchain-91908

This was inspired by the above post. It turned out pretty well.



http://www.youtube.com/watch?v=46TMVKEuYIc&list=HL1341816261&feature=mh_lolz

I couldn't figure out the right way to do this, so ended up just using a work around to write some of this half-manually in excel. If anyone knows the better way (allow someone to just make sine waves from each entry in the matrix, then concatenate them all, advice would be appreciated).

Data used:
Code:
0.04951
0.08584
0.0808
0.07474
0.07921
0.0505
0.06262
0.05454
0.0505
0.056
0.06
0.0589
0.0699
0.0627
0.06785
0.0611
0.06
0.06
0.057
0.061
0.0623
0.059
0.0609
0.071
0.07
0.067
0.07
0.0645
0.067
0.06529
0.0655
0.07
0.068
0.0667
0.0655
0.0664
0.066
0.06491
0.065
0.0648
0.064
0.065
0.0641
0.064
0.06497
0.06
0.0629
0.0634
0.06085
0.06238
0.0616
0.0616
0.061
0.062
0.06111
0.0618
0.06366
0.0615
0.06219
0.06199
0.0604
0.0619
0.059
0.061
0.0627
0.0621
0.06265
0.0622
0.06231
0.0622
0.06202
0.062
0.0622
0.0619
0.06191
0.0619
0.06197
0.0614
0.06111
0.0613
0.0614
0.06281
0.067
0.08685
0.0938
0.0965
0.095
0.0949
0.105
0.102
0.105
0.101
0.102
0.1024
0.097
0.099
0.107
0.1025
0.1055
0.11501
0.132
0.1503
0.1877
0.1731
0.19
0.1989
0.1925
0.1955
0.1938
0.1931
0.23
0.26
0.39
0.34
0.243
0.21
0.24
0.2231
0.2682
0.276
0.27904
0.2682
0.223
0.2299
0.2678
0.28
0.28301
0.27675
0.2879
0.28295
0.28299
0.28
0.2844
0.283
0.27
0.2299
0.2082
0.2275
0.255
0.25105
0.205
0.19
0.204
0.233
0.2388
0.2
0.204
0.228
0.22
0.2299
0.24669
0.23801
0.24996
0.24
0.241
0.2401
0.267
0.24
0.25
0.25
0.248
0.2499
0.265
0.265
0.281
0.3
0.3
0.3
0.3
0.29997
0.295
0.29895
0.299
0.298
0.32
0.3229
0.323
0.32659
0.32659
0.3188
0.3176
0.4
0.386
0.38679
0.3495
0.31299
0.31299
0.39
0.41991
0.4443
0.4424
0.4199
0.41
0.417
0.4212
0.446
0.439
0.4799
0.52001
0.7
0.716
0.69
0.811
0.92
0.89968
0.89
0.918
1.09
0.98031
1.07001
1.0799
1.05
1.07
1.05
1.045
1.04
0.8989
0.94898
0.85
0.8345
0.87023
0.9
0.99743
0.9111
0.958
0.89
0.86
0.92021
0.9399
0.93909
0.901
0.9103
0.8999
0.88502
0.86999
0.86449
0.9329
0.88
0.918
0.89249
0.8949
0.87
0.86
0.82542
0.81648
0.765
0.74108
0.75897
0.80901
0.84971
0.86688
0.88377
0.8552
0.82
0.79898
0.7925
0.7897
0.78461
0.77411
0.78199
0.779
0.68
0.71
0.74
0.7538
0.74999
0.73
0.7369
0.77
0.86
0.9225
1
0.98991
1.0499
1.1123
1.16199
1.1979
1.1421
1.21
1.40901
1.7001
1.63011
1.559
1.7949
1.9
2.21059
2.88
3.5
3.03311
3.2
3.41
3.40609
3.333
3.45
3.641
3.8659
3.8
5.81
5.5
6.30019
8.198
7.19769
6.98701
8.03388
7.19
6.88
6.805
5.59039
6.11971
6.6901
7.14991
7.42
8.3997
8.798
8.5002
8.3001
8.4299
8.8
8.741
9.57
10.6
14.29
18.89
16.7
18.5499
23.9234
29.6
28.919
23.9497
14.6511
18.5464
19.84
19.28
19.49
17
15.681
16.89
17.51
0.00
0.00
0.00
0.00
0.00
0.00
16.45001
16.75004
16.9498
16.845
16.10098
15.397
15.4
15.44049
13.86
12.90691
14.78347
14.77609
14.31399
14.38
14.9
14.20912
14.00943
13.95099
13.99
13.81
13.7191
13.16
13.48
13.85024
13.68943
13.61
13.69542
13.68
13.98001
14.0478
13.88214
13.9394
13.49011
13.49832
13.53034
13.35
13.0946
12.05
9.26
10.75
9.7999
6.55
7.9
7.79991
9.99
9.98
9.46248
9.46051
10.131
10.7957
11.14979
10.96409
10.94555
10.83001
11.65
11.453
11.31125
10.895
10.94001
10.8506
9.65702
8.17939
8.5902
9.07011
8.969
8.79134
8.19951
8.21
8.64
8.48
8.17798
7.61101
6.8628
7.1864
6.53
5.03
4.7739
5.86435
6.078
5.8
5.61932
4.84
4.82
4.77
5.2
5.46001
6.11191
5.6114
5.42781
5.54514
5.46829
5.33
4.86969
4.9156
4.77247
4.77935
5.14009
5.03241
5.02701
5.02401
4.96
4.87
4.73443
4.2728
4.00753
4.10288
4.1
3.9308
4.15
4.04615
3.98791
3.84214
3.55701
2.55998
2.41901
2.27
2.34801
2.57
3.1588
3.17
2.545
2.77
2.77302
3.04001
3.18999
3.58113
3.27
3.24801
3.15
3.25429
3.152
3.109
2.97002
2.95959
3.00677
3.03501
2.95001
2.83993
3.08001
3.03099
2.99686
2.22
2.32896
2.56035
2.25
2.04999
2.19585
2.2
2.294
2.3289
2.33209
2.4321
2.50612
2.47003
2.47991
2.55
2.75019
2.9701
3.06
3.1151
2.794
2.82809
2.8798
3.03
2.99001
2.98
2.96999
3.05
3.2511
3.135
3.2499
3.15
3.2
3.2
3.2001
3.193
3.5202
3.95
3.89
3.8901
3.94678
3.94
4.225
4.018
4.06997
4.18552
4.166
4.248
4.72202
5.26766
5.21678
4.8808
5.57383
6.9476
6.69693
6.81
7.11358
6.3257
6.36
6.9
6.79999
6.41
6.75001
7.00177
6.68254
5.59998
5.92
6.35979
6.48979
6.18
6.3097
6.356
6.28978
5.75
5.34
5.29199
5.62667
5.3809
5.49048
5.48379
6.07561
6.1
5.9593
5.87343
5.68881
5.45345
5.69
5.59998
5.83
5.9126
5.6005
5.51468
5.26
4.46292
4.3251
4.2739
4.41
4.22201
4.38669
4.36146
4.272
4.42474
5.015
5.0288
4.77302
4.922
4.95598
4.86798
4.86001
4.9213
4.70499
4.61436
4.82001
4.98427
4.9901
4.93752
4.93016
4.86112
4.83315
4.91
4.89005
5.27
5.38
5.32656
5.34388
5.2159
5.27943
4.6939
4.8379
4.81488
4.7043
4.68596
4.676
4.55001
4.61911
4.81125
4.788
4.80838
4.86
4.90873
4.827
4.974
4.952
4.91008
4.919
4.94991
4.68715
4.79252
4.87191
4.83668
4.9279
4.91968
4.93999
4.9597
4.96892
4.93201
4.97587
5.1178
5.13766
5.35
5.26008
5.20352
4.95999
5.09822
5.13182
5.09762
5.10947
4.9794
4.90441
4.9491
5
5.07367
5.13438
5.067
5.077
5.04991
5.07001
5.04997
5.0437
4.85
4.96
4.94619
4.92996
5.00594
5.035
5.0887
5.0998
5.11801
5.0995
5.09002
5.09977
5.09877
5.1397
5.11904
5.14546
5.10324
5.13896
5.1358
5.14997
5.135
5.18011
5.27481
5.24898
5.2051
5.26599
5.44001
5.46001
5.591
5.633
5.55997
5.46829
5.57471
5.70003
5.929
5.9541
6.5
6.4
6.16382
6.30998
6.49876
6.67
6.68008
6.54781
6.4285
6.35002
6.30482
6.4195
6.647
6.60588
6.65
6.68999
6.62898
6.75999
6.44993
6.5101
6.67
6.64811
6.76207


R script:
Code:
require(tuneR)
data<-read.csv("mtgox.csv", header = F)
data<-data/max(data)
data<-data*1000
data<-data + 80
data<-as.matrix(data)
data<-round(data)

w1<-sine(data[1], bit =16, duration = 1, xunit = "time")
w2<-sine(data[2], bit =16, duration = 1, xunit = "time")
w3<-sine(data[3], bit =16, duration = 1, xunit = "time")
w4<-sine(data[4], bit =16, duration = 1, xunit = "time")
w5<-sine(data[5], bit =16, duration = 1, xunit = "time")
w6<-sine(data[6], bit =16, duration = 1, xunit = "time")
w7<-sine(data[7], bit =16, duration = 1, xunit = "time")
w8<-sine(data[8], bit =16, duration = 1, xunit = "time")
w9<-sine(data[9], bit =16, duration = 1, xunit = "time")
w10<-sine(data[10], bit =16, duration = 1, xunit = "time")
w11<-sine(data[11], bit =16, duration = 1, xunit = "time")
w12<-sine(data[12], bit =16, duration = 1, xunit = "time")
w13<-sine(data[13], bit =16, duration = 1, xunit = "time")
w14<-sine(data[14], bit =16, duration = 1, xunit = "time")
w15<-sine(data[15], bit =16, duration = 1, xunit = "time")
w16<-sine(data[16], bit =16, duration = 1, xunit = "time")
w17<-sine(data[17], bit =16, duration = 1, xunit = "time")
w18<-sine(data[18], bit =16, duration = 1, xunit = "time")
w19<-sine(data[19], bit =16, duration = 1, xunit = "time")
w20<-sine(data[20], bit =16, duration = 1, xunit = "time")
w21<-sine(data[21], bit =16, duration = 1, xunit = "time")
w22<-sine(data[22], bit =16, duration = 1, xunit = "time")
w23<-sine(data[23], bit =16, duration = 1, xunit = "time")
w24<-sine(data[24], bit =16, duration = 1, xunit = "time")
w25<-sine(data[25], bit =16, duration = 1, xunit = "time")
w26<-sine(data[26], bit =16, duration = 1, xunit = "time")
w27<-sine(data[27], bit =16, duration = 1, xunit = "time")
w28<-sine(data[28], bit =16, duration = 1, xunit = "time")
w29<-sine(data[29], bit =16, duration = 1, xunit = "time")
w30<-sine(data[30], bit =16, duration = 1, xunit = "time")
w31<-sine(data[31], bit =16, duration = 1, xunit = "time")
w32<-sine(data[32], bit =16, duration = 1, xunit = "time")
w33<-sine(data[33], bit =16, duration = 1, xunit = "time")
w34<-sine(data[34], bit =16, duration = 1, xunit = "time")
w35<-sine(data[35], bit =16, duration = 1, xunit = "time")
w36<-sine(data[36], bit =16, duration = 1, xunit = "time")
w37<-sine(data[37], bit =16, duration = 1, xunit = "time")
w38<-sine(data[38], bit =16, duration = 1, xunit = "time")
w39<-sine(data[39], bit =16, duration = 1, xunit = "time")
w40<-sine(data[40], bit =16, duration = 1, xunit = "time")
w41<-sine(data[41], bit =16, duration = 1, xunit = "time")
w42<-sine(data[42], bit =16, duration = 1, xunit = "time")
w43<-sine(data[43], bit =16, duration = 1, xunit = "time")
w44<-sine(data[44], bit =16, duration = 1, xunit = "time")
w45<-sine(data[45], bit =16, duration = 1, xunit = "time")
w46<-sine(data[46], bit =16, duration = 1, xunit = "time")
w47<-sine(data[47], bit =16, duration = 1, xunit = "time")
w48<-sine(data[48], bit =16, duration = 1, xunit = "time")
w49<-sine(data[49], bit =16, duration = 1, xunit = "time")
w50<-sine(data[50], bit =16, duration = 1, xunit = "time")
w51<-sine(data[51], bit =16, duration = 1, xunit = "time")

# ...etc to w722

Gox<-bind(w1,w2,w3,w4,w5,w6,w7,w8,w9,w10,w11,w12,w13,w14,w15,w16,w17,w18,w19,w20,w21,w22,w23,w24,w25,w26,w27,w28,w29,w30,w31,w32,w33,w34,w35,w36,w37,w38,w39,w40,w41,w42,w43,w44,w45,w46,w47,w48,w49,w50,w51,w52,w53,w54,w55,w56,w57,w58,w59,w60,w61,w62,w63,w64,w65,w66,w67,w68,w69,w70,w71,w72,w73,w74,w75,w76,w77,w78,w79,w80,w81,w82,w83,w84,w85,w86,w87,w88,w89,w90,w91,w92,w93,w94,w95,w96,w97,w98,w99,w100,w101,w102,w103,w104,w105,w106,w107,w108,w109,w110,w111,w112,w113,w114,w115,w116,w117,w118,w119,w120,w121,w122,w123,w124,w125,w126,w127,w128,w129,w130,w131,w132,w133,w134,w135,w136,w137,w138,w139,w140,w141,w142,w143,w144,w145,w146,w147,w148,w149,w150,w151,w152,w153,w154,w155,w156,w157,w158,w159,w160,w161,w162,w163,w164,w165,w166,w167,w168,w169,w170,w171,w172,w173,w174,w175,w176,w177,w178,w179,w180,w181,w182,w183,w184,w185,w186,w187,w188,w189,w190,w191,w192,w193,w194,w195,w196,w197,w198,w199,w200,w201,w202,w203,w204,w205,w206,w207,w208,w209,w210,w211,w212,w213,w214,w215,w216,w217,w218,w219,w220,w221,w222,w223,w224,w225,w226,w227,w228,w229,w230,w231,w232,w233,w234,w235,w236,w237,w238,w239,w240,w241,w242,w243,w244,w245,w246,w247,w248,w249,w250,w251,w252,w253,w254,w255,w256,w257,w258,w259,w260,w261,w262,w263,w264,w265,w266,w267,w268,w269,w270,w271,w272,w273,w274,w275,w276,w277,w278,w279,w280,w281,w282,w283,w284,w285,w286,w287,w288,w289,w290,w291,w292,w293,w294,w295,w296,w297,w298,w299,w300,w301,w302,w303,w304,w305,w306,w307,w308,w309,w310,w311,w312,w313,w314,w315,w316,w317,w318,w319,w320,w321,w322,w323,w324,w325,w326,w327,w328,w329,w330,w331,w332,w333,w334,w335,w336,w337,w338,w339,w340,w341,w342,w343,w344,w345,w346,w347,w348,w349,w350,w351,w352,w353,w354,w355,w356,w357,w358,w359,w360,w361,w362,w363,w364,w365,w366,w367,w368,w369,w370,w371,w372,w373,w374,w375,w376,w377,w378,w379,w380,w381,w382,w383,w384,w385,w386,w387,w388,w389,w390,w391,w392,w393,w394,w395,w396,w397,w398,w399,w400,w401,w402,w403,w404,w405,w406,w407,w408,w409,w410,w411,w412,w413,w414,w415,w416,w417,w418,w419,w420,w421,w422,w423,w424,w425,w426,w427,w428,w429,w430,w431,w432,w433,w434,w435,w436,w437,w438,w439,w440,w441,w442,w443,w444,w445,w446,w447,w448,w449,w450,w451,w452,w453,w454,w455,w456,w457,w458,w459,w460,w461,w462,w463,w464,w465,w466,w467,w468,w469,w470,w471,w472,w473,w474,w475,w476,w477,w478,w479,w480,w481,w482,w483,w484,w485,w486,w487,w488,w489,w490,w491,w492,w493,w494,w495,w496,w497,w498,w499,w500,w501,w502,w503,w504,w505,w506,w507,w508,w509,w510,w511,w512,w513,w514,w515,w516,w517,w518,w519,w520,w521,w522,w523,w524,w525,w526,w527,w528,w529,w530,w531,w532,w533,w534,w535,w536,w537,w538,w539,w540,w541,w542,w543,w544,w545,w546,w547,w548,w549,w550,w551,w552,w553,w554,w555,w556,w557,w558,w559,w560,w561,w562,w563,w564,w565,w566,w567,w568,w569,w570,w571,w572,w573,w574,w575,w576,w577,w578,w579,w580,w581,w582,w583,w584,w585,w586,w587,w588,w589,w590,w591,w592,w593,w594,w595,w596,w597,w598,w599,w600,w601,w602,w603,w604,w605,w606,w607,w608,w609,w610,w611,w612,w613,w614,w615,w616,w617,w618,w619,w620,w621,w622,w623,w624,w625,w626,w627,w628,w629,w630,w631,w632,w633,w634,w635,w636,w637,w638,w639,w640,w641,w642,w643,w644,w645,w646,w647,w648,w649,w650,w651,w652,w653,w654,w655,w656,w657,w658,w659,w660,w661,w662,w663,w664,w665,w666,w667,w668,w669,w670,w671,w672,w673,w674,w675,w676,w677,w678,w679,w680,w681,w682,w683,w684,w685,w686,w687,w688,w689,w690,w691,w692,w693,w694,w695,w696,w697,w698,w699,w700,w701,w702,w703,w704,w705,w706,w707,w708,w709,w710,w711,w712,w713,w714,w715,w716,w717,w718,w719,w720,w721,w722)

plot(data)
data
#play(Gox)

Jump to: