Skip to content

Instantly share code, notes, and snippets.

@cavis
Last active July 22, 2019 11:07
Show Gist options
  • Star 4 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save cavis/f17d7d9a2ab5520ab9500ad4114f3a16 to your computer and use it in GitHub Desktop.
Save cavis/f17d7d9a2ab5520ab9500ad4114f3a16 to your computer and use it in GitHub Desktop.
mueller report sonification
from miditime.miditime import MIDITime
from statistics import mean, median
import csv
# settings
tempo_bpm = 400
low_pitch = 57
high_pitch = 92
low_velocity = 30
high_velocity = 127
longer_notes = True
# source data
num_pages = 0
chars_per_page = []
percent_redacted = []
with open('redactions.csv') as csv_file:
csv_reader = csv.reader(csv_file, delimiter=',')
percent_redacted_idx = -1
ocr_chars_idx = -1
redacted_chars_idx = -1
index = 0
for row in csv_reader:
if num_pages == 0:
ocr_chars_idx = row.index("characters")
redacted_chars_idx = row.index("estimated_redacted_characters")
percent_redact_idx = row.index("percent_redacted")
num_pages += 1
else:
chars_per_page.append(float(row[ocr_chars_idx]) + float(row[redacted_chars_idx]))
percent_redacted.append(float(row[percent_redact_idx]))
num_pages += 1
print(f'Found {num_pages - 1} pages of data')
print(f' chars-per-page: min={min(chars_per_page)} max={max(chars_per_page)} avg={sum(chars_per_page)/len(chars_per_page)}')
print(f' percent_redacted: min={min(percent_redacted)} max={max(percent_redacted)} avg={sum(percent_redacted)/len(percent_redacted)}')
# notes: [time, pitch, velocity, duration]
midinotes = []
for i in range(len(chars_per_page)):
page = i + 1
chars = chars_per_page[i]
percent_chars = (chars - min(chars_per_page)) / (max(chars_per_page) - min(chars_per_page))
percent = percent_redacted[i]
pitch = low_pitch + (percent * (high_pitch - low_pitch))
velocity = low_velocity + (percent_chars * (high_velocity - low_velocity))
# OPTIONAL extend previous note rather than adding a new one
if longer_notes and len(midinotes) > 0 and midinotes[-1][1] == pitch:
midinotes[-1][3] = midinotes[-1][3] + 1
else:
midinotes.append([i, round(pitch), round(velocity), 1])
# print(f'p{page} - {i} {round(pitch)} {round(velocity)}')
# tempo and output destination
if longer_notes:
mymidi = MIDITime(tempo_bpm, 'mueller_report_longer_notes.mid')
mymidi.add_track(midinotes)
mymidi.save_midi()
else:
mymidi = MIDITime(tempo_bpm, 'mueller_report.mid')
mymidi.add_track(midinotes)
mymidi.save_midi()
page lines words characters estimated_redacted_lines estimated_redacted_characters percent_redacted
1 6 33 216 0 0 0
2 0 0 1 0 0 0
3 39 281 3420 0 0 0
4 44 287 3135 1 92.2 0.02856965791
5 4 287 3394 0 0 0
6 15 275 3288 0 0 0
7 13 197 3058 2.5 230.5 0.07009274745
8 0 0 1 0 0 0
9 4 481 3393 0 0 0
10 10 457 3046 0 0 0
11 2 60 445 0 0 0
12 11 409 2672 4.5 414.9 0.1344066863
13 7 478 3225 3 276.6 0.07899246059
14 5 565 3584 0 0 0
15 5 546 3518 0 0 0
16 7 457 3074 0 0 0
17 4 443 3041 6.5 599.3 0.1646292888
18 5 460 3134 0 0 0
19 6 517 3588 0 0 0
20 4 559 3802 0.5 46.1 0.01197993815
21 7 520 3563 0 0 0
22 13 497 3366 3 276.6 0.07593477187
23 29 348 2158 14.5 1336.9 0.3825288277
24 59 136 695 27 2489.4 0.7817485241
25 23 104 649 30 2766 0.8099560761
26 16 54 343 39 3595.8 0.9129176399
27 37 172 973 29.5 2719.9 0.736521433
28 13 29 157 51.5 4748.3 0.9679938026
29 19 128 687 21 1936.2 0.7381061299
30 10 268 1830 11.5 1060.3 0.3668477321
31 20 91 589 36 3319.2 0.8492912338
32 19 70 459 25 2305 0.8339363242
33 18 450 2992 1 92.2 0.02989429998
34 53 283 1701 14.5 1336.9 0.4400737351
35 22 322 2103 13 1198.6 0.3630361037
36 27 243 1504 12 1106.4 0.4238430892
37 19 407 2422 4 368.8 0.1321484879
38 0 0 1 57 5255.4 0.9998097557
39 53 283 1684 12 1106.4 0.3965022936
40 23 231 1548 15 1383 0.47185261
41 7 267 1831 23 2120.6 0.536643385
42 25 452 2731 0.5 46.1 0.01660005041
43 16 309 2044 7 645.4 0.2399791775
44 17 457 2936 3 276.6 0.08609848721
45 20 386 2522 4 368.8 0.1275771413
46 9 410 2587 6 553.2 0.1761671231
47 21 197 1248 29 2673.8 0.6817787751
48 10 356 2329 10.5 968.1 0.2936216675
49 12 433 2864 2 184.4 0.06049074925
50 18 439 2847 0.5 46.1 0.01593446476
51 20 545 3256 1 92.2 0.02753718416
52 18 415 2581 4 368.8 0.1250254255
53 17 493 2883 2 184.4 0.0601160592
54 15 365 2326 7.5 691.5 0.2291632146
55 22 462 2721 7 645.4 0.1917181559
56 16 348 2260 9.5 875.9 0.2793137536
57 5 442 2780 3 276.6 0.09049270431
58 14 373 2471 7 645.4 0.2070979335
59 9 211 1368 17 1567.4 0.5339647067
60 39 361 2184 16 1475.2 0.4031482291
61 21 204 1160 22 2028.4 0.6361811567
62 27 290 1536 17 1567.4 0.5050589676
63 13 150 880 23 2120.6 0.7067253216
64 7 152 874 28 2581.6 0.747077208
65 20 61 359 34 3134.8 0.897246551
66 16 245 1453 17 1567.4 0.518937889
67 20 305 1792 16 1475.2 0.4515181195
68 11 496 2965 0.3 27.66 0.009242613595
69 5 476 3033 0 0 0
70 13 472 2859 0 0 0
71 15 455 2823 1 92.2 0.0316273326
72 11 555 3358 0 0 0
73 9 282 1733 3 276.6 0.1376393312
74 3 524 3556 0 0 0
75 14 496 3135 2 184.4 0.05555220823
76 18 508 3188 0.5 46.1 0.01425435206
77 9 445 2636 0.5 46.1 0.01718802431
78 8 505 3086 0.5 46.1 0.01471855943
79 14 489 2811 0 0 0
80 11 454 2704 1 92.2 0.03297332094
81 17 599 3628 0 0 0
82 6 461 2847 0 0 0
83 14 555 3278 0.3 27.66 0.008367466709
84 16 487 2974 0.3 27.66 0.009214901088
85 11 461 2500 0 0 0
86 13 496 3010 0 0 0
87 20 517 3231 0 0 0
88 20 482 3044 0 0 0
89 21 502 3170 0 0 0
90 23 431 2683 0.4 36.88 0.01355942174
91 28 456 2751 5 461 0.1435242839
92 20 487 2947 0 0 0
93 11 305 1766 1.5 138.3 0.07262511159
94 17 306 1924 0 0 0
95 18 504 3091 0 0 0
96 20 484 3025 0.5 46.1 0.01501090814
97 18 564 3517 0 0 0
98 18 567 3364 0.3 27.66 0.008155298585
99 15 255 1621 0.3 27.66 0.01677726153
100 89 398 2255 0 0 0
101 14 415 2678 5 461 0.146862058
102 20 419 2777 1.5 138.3 0.04743937159
103 13 447 2786 0.5 46.1 0.01627767381
104 17 342 2080 4 368.8 0.1506043777
105 14 431 2511 1.5 138.3 0.05220246858
106 23 436 2634 3 276.6 0.09503195217
107 20 514 2969 0.3 27.66 0.009230276374
108 11 465 2732 1.3 119.86 0.04202871109
109 8 256 1569 13.7 1263.14 0.4460019632
110 22 472 2841 4.25 391.85 0.1212088405
111 9 429 2747 2.5 230.5 0.07741393787
112 13 536 2899 0.25 23.05 0.007888297599
113 16 500 2903 0 0 0
114 26 501 2945 0 0 0
115 13 485 2865 0 0 0
116 8 489 3015 0 0 0
117 6 524 3084 0.75 69.15 0.0219304505
118 14 487 3039 0.25 23.05 0.007527636714
119 22 373 2269 11.25 1037.25 0.3137240076
120 29 570 3599 2.5 230.5 0.06019062541
121 24 504 2875 0.25 23.05 0.007953623989
122 26 353 2161 2.75 253.55 0.105009215
123 15 544 3058 0 0 0
124 14 635 3707 1.25 115.25 0.03015239715
125 27 266 1680 13.25 1221.65 0.4210190754
126 20 305 1808 6.5 599.3 0.248951107
127 23 513 3077 0.4 36.88 0.01184374478
128 22 377 2213 11.5 1060.3 0.3239238689
129 12 370 2234 10 922 0.2921419518
130 11 413 2559 5.5 507.1 0.1653892567
131 13 456 3013 0.3 27.66 0.009096709267
132 19 459 2737 0 0 0
133 21 452 2874 0 0 0
134 24 475 2801 0.3 27.66 0.009778481684
135 12 445 2658 0 0 0
136 28 502 3034 0 0 0
137 8 600 3492 0 0 0
138 21 571 3534 3 276.6 0.07258699417
139 15 508 3149 0 0 0
140 25 399 2436 0 0 0
141 25 469 2742 0 0 0
142 27 446 2571 0.6 55.32 0.02106369369
143 18 523 3277 0 0 0
144 14 498 2801 2.4 221.28 0.07321624734
145 15 387 2298 2.6 239.72 0.09446274609
146 14 516 2882 0.25 23.05 0.007934458959
147 10 482 2955 2.3 212.06 0.0669579989
148 26 419 2499 7 645.4 0.2052537845
149 5 477 2967 0 0 0
150 11 538 3132 0.7 64.54 0.02019058107
151 17 251 1581 19 1751.8 0.5256240999
152 11 446 2900 1.5 138.3 0.04551887569
153 26 472 2776 0 0 0
154 13 444 2663 4.4 405.68 0.1322001642
155 8 454 2857 2.7 248.94 0.08014964874
156 17 231 1393 14.5 1336.9 0.4897248983
157 47 242 1453 14.5 1336.9 0.4791928026
158 25 481 2684 3.2 295.04 0.09903861647
159 14 335 1942 6.5 599.3 0.2358241845
160 26 406 2448 3.5 322.7 0.1164687624
161 19 320 1808 9 829.8 0.3145803321
162 20 238 1332 16 1475.2 0.5255058421
163 19 382 2239 4.5 414.9 0.1563359584
164 16 466 2746 0.25 23.05 0.008324154493
165 11 510 2931 0 0 0
166 5 576 2974 0 0 0
167 15 571 3118 0 0 0
168 14 553 2978 0 0 0
169 25 531 3005 0.5 46.1 0.01510930484
170 19 505 2862 0 0 0
171 15 445 2762 2 184.4 0.06258484931
172 14 460 2552 1 92.2 0.03486876938
173 17 443 2377 4.75 437.95 0.1555800281
174 15 342 1887 13.5 1244.7 0.3974518632
175 14 417 2586 5.25 484.05 0.1576684419
176 32 536 3073 0.5 46.1 0.01477990446
177 24 491 2929 0.25 23.05 0.007808133331
178 33 440 2595 1 92.2 0.03431080679
179 8 463 2848 0 0 0
180 30 485 2815 0.5 46.1 0.01611268393
181 6 121 829 0 0 0
182 6 475 3160 0 0 0
183 8 516 3222 2.75 253.55 0.07295248234
184 12 335 2000 28 2581.6 0.5634712764
185 0 0 1 50 4610 0.9997831273
186 2 8 49 48 4425.6 0.9890493005
187 6 149 960 29 2673.8 0.7358137487
188 4 492 3262 2.5 230.5 0.06599856836
189 5 535 3432 0 0 0
190 4 612 3700 0 0 0
191 6 490 3088 6.5 599.3 0.1625308491
192 6 513 3487 0.5 46.1 0.01304803147
193 2 574 3508 0 0 0
194 5 569 3724 0 0 0
195 5 592 3844 0 0 0
196 4 357 2256 19.5 1797.9 0.443498853
197 2 4 25 50 4610 0.9946062567
198 10 78 544 43.5 4010.7 0.880562935
199 5 339 2211 19 1751.8 0.4420611689
200 8 548 3453 0 0 0
201 2 558 3703 0 0 0
202 4 340 2075 21 1936.2 0.4826984444
203 7 583 3562 0 0 0
204 4 420 2541 17.5 1613.5 0.3883740522
205 2 75 492 44 4056.8 0.891839606
206 5 551 3646 0 0 0
207 4 36 278 28 2581.6 0.9027836061
208 8 37 222 0 0 0
209 40 348 3210 0 0 0
210 26 412 3365 0 0 0
211 15 375 3553 0.5 46.1 0.01280875774
212 12 107 1084 0 0 0
213 8 509 3376 0 0 0
214 12 551 3598 0 0 0
215 11 563 3609 0 0 0
216 8 628 3993 0 0 0
217 10 659 3928 0 0 0
218 6 585 3595 2.25 207.45 0.0545569304
219 11 567 3757 0 0 0
220 8 574 3856 0 0 0
221 12 585 3504 0 0 0
222 4 725 4192 0 0 0
223 2 643 3946 0 0 0
224 6 476 3093 0 0 0
225 2 602 3746 2 184.4 0.04691634439
226 2 266 1733 0 0 0
227 12 570 3673 0.1 9.22 0.002503924263
228 23 626 3582 0 0 0
229 25 454 2830 2.5 230.5 0.0753144911
230 38 443 2516 5 461 0.1548538797
231 23 550 3168 0 0 0
232 19 580 3518 0 0 0
233 28 503 3120 0 0 0
234 23 519 3100 0 0 0
235 34 478 2810 0 0 0
236 20 533 3246 0 0 0
237 30 554 3224 0 0 0
238 41 505 2769 0 0 0
239 15 715 4132 0 0 0
240 27 572 3360 0 0 0
241 27 522 3015 0 0 0
242 31 498 2982 0 0 0
243 29 587 3138 0 0 0
244 12 551 2994 0 0 0
245 16 631 3417 0 0 0
246 16 621 3471 0 0 0
247 20 718 4051 0 0 0
248 12 489 2878 0 0 0
249 31 551 2998 0 0 0
250 30 601 3237 0 0 0
251 24 482 2674 0 0 0
252 20 693 3813 0 0 0
253 4 700 4035 0 0 0
254 23 518 2937 0 0 0
255 26 469 2662 0 0 0
256 18 582 3324 0 0 0
257 7 583 3453 0 0 0
258 2 642 3816 0.5 46.1 0.01193651122
259 4 595 3752 0 0 0
260 16 492 2994 0 0 0
261 17 585 3388 0 0 0
262 23 552 3186 0 0 0
263 23 530 3100 0 0 0
264 16 649 3638 0.25 23.05 0.006296007976
265 33 589 3470 0 0 0
266 21 561 3306 0 0 0
267 8 489 2798 0 0 0
268 19 580 3138 0 0 0
269 23 460 2704 0 0 0
270 22 639 3700 0 0 0
271 31 599 3445 0 0 0
272 12 537 3331 0 0 0
273 2 538 3364 0 0 0
274 20 525 3213 0 0 0
275 24 594 3503 0 0 0
276 18 467 2661 0 0 0
277 25 579 3293 0 0 0
278 21 604 3398 0 0 0
279 21 462 2804 0 0 0
280 17 516 2988 0 0 0
281 14 563 3345 0 0 0
282 33 507 2907 0 0 0
283 10 597 3488 0 0 0
284 13 578 3221 0 0 0
285 14 563 3127 0 0 0
286 13 546 3399 0 0 0
287 4 643 3884 0 0 0
288 2 658 4081 0 0 0
289 13 574 3586 1 92.2 0.02506660867
290 22 529 3028 0 0 0
291 18 535 2988 0 0 0
292 9 612 3376 1.5 138.3 0.03935349856
293 16 538 3125 0 0 0
294 15 626 3766 0 0 0
295 17 545 3267 0 0 0
296 23 543 3311 0 0 0
297 14 600 3300 0 0 0
298 11 428 2338 0 0 0
299 22 526 2968 0 0 0
300 9 589 3584 0 0 0
301 6 583 3632 0 0 0
302 7 544 3409 0 0 0
303 15 413 2455 1.5 138.3 0.05332973432
304 25 463 2682 0 0 0
305 24 533 3040 0 0 0
306 21 519 3023 0 0 0
307 22 493 3006 0 0 0
308 24 493 2811 0 0 0
309 7 515 3346 1.75 161.35 0.04600339287
310 5 526 3164 0 0 0
311 22 564 3261 0 0 0
312 34 512 2739 0 0 0
313 33 502 2647 0 0 0
314 6 534 2855 0 0 0
315 23 553 2919 0 0 0
316 34 555 3045 0 0 0
317 23 519 2957 1.25 115.25 0.03751322321
318 2 661 3950 0 0 0
319 14 472 2840 0 0 0
320 12 484 2620 0 0 0
321 13 547 3196 0 0 0
322 23 552 3286 0 0 0
323 19 518 3101 0 0 0
324 6 634 3832 0 0 0
325 13 517 3097 0 0 0
326 15 572 3175 0 0 0
327 12 631 3311 0 0 0
328 24 556 2843 0 0 0
329 36 493 2583 0 0 0
330 8 564 3398 0 0 0
331 3 680 4070 0 0 0
332 11 492 3081 2 184.4 0.05647087646
333 10 634 3400 0 0 0
334 24 486 2798 0 0 0
335 16 665 3680 0 0 0
336 14 628 3552 0 0 0
337 31 584 3408 0 0 0
338 22 588 3342 0 0 0
339 30 603 3576 0 0 0
340 21 384 2115 16.5 1521.3 0.4183648214
341 12 50 282 33.5 3088.7 0.9163378527
342 23 67 386 39 3595.8 0.9030589181
343 7 581 3783 0.1 9.22 0.002431293543
344 4 534 3478 4 368.8 0.09587189352
345 2 252 1592 25 2305 0.5914806261
346 11 554 3410 0 0 0
347 9 599 3425 0 0 0
348 16 550 3147 0 0 0
349 9 504 2691 0 0 0
350 16 551 3090 0 0 0
351 13 565 3253 0 0 0
352 14 606 3484 0 0 0
353 16 614 3489 0 0 0
354 17 591 3210 0 0 0
355 18 620 3452 0 0 0
356 22 572 3202 0 0 0
357 20 653 3808 0 0 0
358 32 519 2683 1 92.2 0.03322283079
359 21 489 2691 1.5 138.3 0.04888134874
360 18 515 2971 0 0 0
361 13 546 3237 0 0 0
362 17 581 3261 0 0 0
363 10 452 2640 4 368.8 0.1225737836
364 15 555 3183 0 0 0
365 4 496 3177 0 0 0
366 2 573 3531 0 0 0
367 2 645 3894 0 0 0
368 7 565 3587 0 0 0
369 2 606 3977 0 0 0
370 6 424 2703 0 0 0
371 21 539 3715 0 0 0
372 7 475 2998 0 0 0
373 3 694 4293 0 0 0
374 5 622 3886 0 0 0
375 2 719 4188 0 0 0
376 3 683 3870 0 0 0
377 9 562 3547 0 0 0
378 5 679 4070 0 0 0
379 11 616 3941 0 0 0
380 12 515 3254 0 0 0
381 6 554 3650 0 0 0
382 2 628 3928 0 0 0
383 2 572 3609 0 0 0
384 3 663 4118 0 0 0
385 2 662 4008 0 0 0
386 4 638 4005 0 0 0
387 3 671 4225 0 0 0
388 6 611 3815 0 0 0
389 11 570 3501 0 0 0
390 3 602 3849 0 0 0
391 3 637 4214 0 0 0
392 5 606 3727 0 0 0
393 2 35 173 0 0 0
394 4 119 723 0 0 0
395 2 2 13 0 0 0
396 0 0 1 0 0 0
397 14 251 1543 0 0 0
398 0 0 1 0 0 0
399 4 16 104 0 0 0
400 0 0 1 0 0 0
401 24 408 2545 0 0 0
402 36 351 2249 0 0 0
403 22 357 2188 4 368.8 0.1442428035
404 38 418 2657 0 0 0
405 18 375 2498 3 276.6 0.09969004541
406 30 374 2521 0 0 0
407 30 329 2148 1 92.2 0.04115703955
408 10 402 2570 0 0 0
409 24 369 2343 0 0 0
410 30 326 2186 2 184.4 0.07779277759
411 24 336 2270 0 0 0
412 12 375 2502 0 0 0
413 16 268 1847 0 0 0
414 59 149 1106 0 0 0
415 2 2 13 0 0 0
416 0 0 1 0 0 0
417 23 558 3467 0 0 0
418 18 183 1180 6 553.2 0.3191783983
419 7 421 2425 0 0 0
420 4 434 2426 0 0 0
421 7 451 2724 0 0 0
422 10 412 2298 0 0 0
423 6 397 2380 0 0 0
424 5 428 2530 0 0 0
425 4 417 2517 0 0 0
426 4 283 1673 0 0 0
427 22 386 2217 0 0 0
428 23 443 2398 0 0 0
429 7 543 3045 0 0 0
430 11 509 3044 0 0 0
431 7 419 2590 0 0 0
432 22 410 2389 0 0 0
433 22 425 2450 0 0 0
434 2 471 2646 0 0 0
435 24 385 2310 0 0 0
436 15 551 3214 0 0 0
437 17 459 2821 0 0 0
438 23 410 2417 0 0 0
439 6 153 872 0 0 0
440 2 13 90 0 0 0
441 4 16 110 0 0 0
442 2 14 96 0 0 0
443 16 444 2843 0 0 0
444 4 296 1856 2 184.4 0.09037443639
445 25 360 2221 9 829.8 0.271994231
446 20 197 1206 19 1751.8 0.5922645209
447 10 30 189 35 3227 0.9446721311
448 16 121 792 10 922 0.5379229872
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment