summaryrefslogtreecommitdiff
path: root/python-epms.spec
blob: d90450475cdd0b0b3b189af2862a35e9fd62cccb (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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
%global _empty_manifest_terminate_build 0
Name:		python-EPMS
Version:	0.0.8
Release:	1
Summary:	The Expressive Polyphonic MIDI Serializer is a tool to turn MIDI files into a model-friendly, expressive representation for ML projects.
License:	MIT License
URL:		https://github.com/petcomputacaoufrgs/EPMS
Source0:	https://mirrors.aliyun.com/pypi/web/packages/e4/d4/87e60ea56813c82ce93cc1ca450bfec6ad5f4a8563fab1699fd79ca3d198/EPMS-0.0.8.tar.gz
BuildArch:	noarch


%description
# EPMS: Expressive Polyphonic MIDI Serializer

## Introduction

The MIDI (Musical Instrument Digital Interface) protocol is extremely useful - and awesome -  when we want to work with digital audio. One of its many utilities is in
Machine Learning, where it allows us to train data models to generate musical pieces.
However, the current literature lack a tool that transcribes MIDI data to a model-friendly  structure while preserving
polyphony and the whole expressive dimension of music.

EPMS is being build to address that need. While simultaneously working on a  
LSTM that predict and translates musical data between instruments, our [PET](https://www.inf.ufrgs.br/site/pet/) group from the [Institute of Informatics](https://inf.ufrgs.br)  of the [Federal University of Rio Grande do Sul (UFRGS)](https://ufrgs.br) - Brazil, is maintaining and developing this repository.

 With the advances of [MIDI 2.0](https://www.midi.org/midi-articles/details-about-midi-2-0-midi-ci-profiles-and-property-exchange) in mind, we're working on merging concepts from Music Information Retrieval (MIR) and Machine Learning (ML) to prepare the ground for future works that can popularize the feeling of making music.


## The Concept

The main idea behind the project is to represent a MIDI file in some format that is easy to manipulate and feed to a Machine Learning (ML) model, like a neural network.
Simply put, we transform the input file in a **Pandas DataFrame** where information is stored.

### Settings
There are currently 3 setting parameters for the serialization process:
1. **RESOLUTION** (int): the amount of *frames per beat* to be recorded.  
2. **KEYBOARD_SIZE** (int): the amount on *notes* that we'll be tracked by the serializer.
3. **KEYBOARD_OFFSET** (int): the *MIDI value* of the first key in our keyboard

\
For example, we can set the serial parameters like

```python
SETTINGS = {
    'RESOLUTION': 16,
    'KEYBOARD_SIZE': 13,
    'KEYBOARD_OFFSET': 60
}
```

that will be internally transformed into a serie.

| SETTING | VALUE|
|:-----------|---|
| RESOLUTION | 16|
| KEYBOARD_SIZE | 13 |
| KEYBOARD_OFFSET | 60 |

### Serialization
Each row in the serial DataFrame corresponds to a **frame** of the song
and each frame is formed in a set of different *blocks*:
* the **Instrument Block**, that stores information about instrument qualities


| NAME   | INSTRUMENT   |   MIDI_PROGRAM | SOUND             |
|:-------|:-------------|---------------:|:------------------|


* the **Metric Block**, that will be our time reference across the song

|   MEASURE |   BEAT |   FRAME |
|:----------|:-------|---------|

* the **Environment Block**, that provides the musical context of one's model environment


| ORIGINAL_KS   | TS   |   TEMPO |
|:--------------|------|---------|



* and the **Performance Block**, that is a *piano-roll*-like representation that specifies one column for every
key in our model's 'artificial piano'. In this block we focus on representing the main
  expressive characteristics of human musical performances, such as *dynamics*, *syncopations* and *articulations*.
\
\
With the settings values as shown before,
the Performance Block would be:

| C4    | C#4   | D4    | E-4     | E4    | F4    | F#4   | G4 | G#4 | A4 | B-4 | B4 | C5 |
|:------|-------|-------|---------|-------|-------|-------|----|-----|----|-----|----|----|


\
\
Finally, our frames will contain MIDI data in the following columns:

| NAME   | INSTRUMENT   |   MIDI_PROGRAM | SOUND             |   MEASURE |   BEAT |   FRAME | ORIGINAL_KS   | TS   |   TEMPO | A0    | B-0   | B0    | C1    | C#1   | D1    | E-1   | E1    | F1    | F#1   | G1    | G#1   | A1    | B-1   | B1    | C2    | C#2   | D2    | E-2   | E2    | F2    | F#2   | G2    | G#2   | A2    | B-2   | B2    | C3    | C#3   | D3    | E-3   | E3    | F3    | F#3   | G3    | G#3   | A3    | B-3   | B3    | C4    | C#4   | D4    | E-4   | E4    | F4    | F#4   | G4    | G#4   | A4                          | B-4   | B4    | C5                          | C#5                         | D5                          | E-5   | E5                          | F5                          | F#5   | G5    | G#5   | A5                          | B-5   | B5    | C6                          | C#6                         | D6                          | E-6   | E6                          | F6                          | F#6   | G6    | G#6   | A6    | B-6   | B6    | C7    | C#7   | D7    | E-7   | E7    | F7    | F#7   | G7    | G#7   | A7    | B-7   | B7    | C8    |
|:-------|:-------------|---------------:|:------------------|----------:|-------:|--------:|:--------------|:-----|--------:|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:----------------------------|:------|:------|:----------------------------|:----------------------------|:----------------------------|:------|:----------------------------|:----------------------------|:------|:------|:------|:----------------------------|:------|:------|:----------------------------|:----------------------------|:----------------------------|:------|:----------------------------|:----------------------------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|


### Serialization Diagram
![](docs/serial-diagram.png "Diagram representing the serial block division concept.")



## Performance Block (PB) Representation
As a group project decision, the values stored in the PB are formatted in a way that we can
easily turn one row (one frame) into a **Multi Hot Encoded Performance (MHEP) frame**, that can be
used as input vector for a model that uses Binary Cross Entropy Loss (BCE Loss) to get a rapidly convergent
*'what notes should I play?'* kind of learning. The main point of this decision is that this way we
treat the playing problem as a Classification Problem, that is easier to work on.

In that sense, the data inside the PB is represented in a way where different data types provide
different semantic meaning for a note's frame in the performance encoding:

> ### **Boolean**
>
> **False**: represent silence, the note is not being played in the frame.


> ### Float32
>
> *****value*****: represent that this note is playing in the frame with current scalar velocity *****value*****.

* ****

## Usage and Example
First of all, you must import the package and define the settings for the serializer.
```python
from EMS import serialization, deserialization

SETTINGS = {
    'RESOLUTION': 16,
    'KEYBOARD_SIZE': 88,
    'KEYBOARD_OFFSET': 21
}
```
Then, to serialize:
```python
serial = serialization.file('test_midi_files/George Benson - Breezin.mid',
                            SETTINGS,
                            save_as='serial.pkl') ## optional
```
The following is the score for the first flute measure of George Bensons - Breezin:

![](docs/breezin_flute_first_measure.png "Score for the first flute measure of George Bensons - Breezin.")
  
The serial version of this measure can be seen below, it is a Pandas DataFrame with dimensions (64, 98):

| NAME   | INSTRUMENT   |   MIDI_PROGRAM | SOUND             |   MEASURE |   BEAT |   FRAME | ORIGINAL_KS   | TS   |   TEMPO | A0    | B-0   | B0    | C1    | C#1   | D1    | E-1   | E1    | F1    | F#1   | G1    | G#1   | A1    | B-1   | B1    | C2    | C#2   | D2    | E-2   | E2    | F2    | F#2   | G2    | G#2   | A2    | B-2   | B2    | C3    | C#3   | D3    | E-3   | E3    | F3    | F#3   | G3    | G#3   | A3    | B-3   | B3    | C4    | C#4   | D4    | E-4   | E4    | F4    | F#4   | G4    | G#4   |       A4 | B-4   | B4    |       C5 |      C#5 |       D5 | E-5   |       E5 |       F5 | F#5   | G5    | G#5   |       A5 | B-5   | B5    |       C6 |      C#6 |       D6 | E-6   |       E6 |       F6 | F#6   | G6    | G#6   | A6    | B-6   | B6    | C7    | C#7   | D7    | E-7   | E7    | F7    | F#7   | G7    | G#7   | A7    | B-7   | B7    | C8    |
|:-------|:-------------|---------------:|:------------------|----------:|-------:|--------:|:--------------|:-----|--------:|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|---------:|:------|:------|---------:|---------:|---------:|:------|---------:|---------:|:------|:------|:------|---------:|:------|:------|---------:|---------:|---------:|:------|---------:|---------:|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      1 |       1 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0.385827 | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      1 |       2 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0.385827 | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      1 |       3 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0.385827 | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      1 |       4 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0.385827 | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      1 |       5 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0.385827 | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      1 |       6 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0.503937 | 0.385827 | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      1 |       7 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0.503937 | 0.385827 | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      1 |       8 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0.503937 | 0.385827 | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      1 |       9 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0.503937 | False | False | 0        | 0.503937 | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      1 |      10 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0.503937 | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      1 |      11 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0.503937 | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0.385827 | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      1 |      12 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0.503937 | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0.385827 | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      1 |      13 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0.385827 | 0.503937 | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      1 |      14 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0.385827 | 0.503937 | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      1 |      15 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0.503937 | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      1 |      16 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0.503937 | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      2 |       1 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0.385827 | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      2 |       2 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0.385827 | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      2 |       3 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0.385827 | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      2 |       4 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0.385827 | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      2 |       5 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0.503937 | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      2 |       6 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0.503937 | 0        | False | 0        | 0        | False | False | False | 0.503937 | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      2 |       7 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0.503937 | 0        | False | 0        | 0        | False | False | False | 0.503937 | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      2 |       8 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0.503937 | 0        | False | 0        | 0        | False | False | False | 0.503937 | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      2 |       9 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0.503937 | 0.503937 | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      2 |      10 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0.503937 | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      2 |      11 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0.503937 | 0.503937 | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      2 |      12 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0.503937 | 0.503937 | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      2 |      13 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0.503937 | False | False | 0        | 0.503937 | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      2 |      14 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0.503937 | False | False | 0        | 0.503937 | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      2 |      15 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0.503937 | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      2 |      16 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0.503937 | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      3 |       1 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0.629921 | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      3 |       2 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0.629921 | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      3 |       3 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0.629921 | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      3 |       4 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0.629921 | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      3 |       5 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0.629921 | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      3 |       6 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0.629921 | 0.629921 | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      3 |       7 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0.629921 | 0.629921 | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      3 |       8 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0.629921 | 0.629921 | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      3 |       9 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0.503937 | 0        | 0        | False | 0.629921 | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      3 |      10 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0.503937 | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      3 |      11 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0.503937 | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0.503937 | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      3 |      12 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0.503937 | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0.503937 | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      3 |      13 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0.503937 | 0.503937 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      3 |      14 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0.503937 | 0.503937 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      3 |      15 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0.503937 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      3 |      16 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0.503937 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      4 |       1 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0.503937 | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      4 |       2 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0.503937 | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      4 |       3 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0.503937 | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      4 |       4 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0.503937 | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      4 |       5 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0.503937 | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      4 |       6 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0.503937 | 0        | False | False | False | 0        | False | False | 0.503937 | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      4 |       7 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0.503937 | 0        | False | False | False | 0        | False | False | 0.503937 | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      4 |       8 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0.503937 | 0        | False | False | False | 0        | False | False | 0.503937 | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      4 |       9 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0.503937 | 0.503937 | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      4 |      10 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0.503937 | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      4 |      11 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0.503937 | 0.503937 | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      4 |      12 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0.503937 | 0.503937 | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      4 |      13 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0.503937 | 0        | 0        | False | 0.503937 | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      4 |      14 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0.503937 | 0        | 0        | False | 0.503937 | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      4 |      15 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0.503937 | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      4 |      16 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0.503937 | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |

Some Falses are being printed as 0's, but that is just a visualization problem, internally they are Falses.

Getting back to the MIDI format is simple:
```python
deserialized = deserialization.file(serial,
                                    SETTINGS,
                                    save_as='result.mid') ## optional
```




%package -n python3-EPMS
Summary:	The Expressive Polyphonic MIDI Serializer is a tool to turn MIDI files into a model-friendly, expressive representation for ML projects.
Provides:	python-EPMS
BuildRequires:	python3-devel
BuildRequires:	python3-setuptools
BuildRequires:	python3-pip
%description -n python3-EPMS
# EPMS: Expressive Polyphonic MIDI Serializer

## Introduction

The MIDI (Musical Instrument Digital Interface) protocol is extremely useful - and awesome -  when we want to work with digital audio. One of its many utilities is in
Machine Learning, where it allows us to train data models to generate musical pieces.
However, the current literature lack a tool that transcribes MIDI data to a model-friendly  structure while preserving
polyphony and the whole expressive dimension of music.

EPMS is being build to address that need. While simultaneously working on a  
LSTM that predict and translates musical data between instruments, our [PET](https://www.inf.ufrgs.br/site/pet/) group from the [Institute of Informatics](https://inf.ufrgs.br)  of the [Federal University of Rio Grande do Sul (UFRGS)](https://ufrgs.br) - Brazil, is maintaining and developing this repository.

 With the advances of [MIDI 2.0](https://www.midi.org/midi-articles/details-about-midi-2-0-midi-ci-profiles-and-property-exchange) in mind, we're working on merging concepts from Music Information Retrieval (MIR) and Machine Learning (ML) to prepare the ground for future works that can popularize the feeling of making music.


## The Concept

The main idea behind the project is to represent a MIDI file in some format that is easy to manipulate and feed to a Machine Learning (ML) model, like a neural network.
Simply put, we transform the input file in a **Pandas DataFrame** where information is stored.

### Settings
There are currently 3 setting parameters for the serialization process:
1. **RESOLUTION** (int): the amount of *frames per beat* to be recorded.  
2. **KEYBOARD_SIZE** (int): the amount on *notes* that we'll be tracked by the serializer.
3. **KEYBOARD_OFFSET** (int): the *MIDI value* of the first key in our keyboard

\
For example, we can set the serial parameters like

```python
SETTINGS = {
    'RESOLUTION': 16,
    'KEYBOARD_SIZE': 13,
    'KEYBOARD_OFFSET': 60
}
```

that will be internally transformed into a serie.

| SETTING | VALUE|
|:-----------|---|
| RESOLUTION | 16|
| KEYBOARD_SIZE | 13 |
| KEYBOARD_OFFSET | 60 |

### Serialization
Each row in the serial DataFrame corresponds to a **frame** of the song
and each frame is formed in a set of different *blocks*:
* the **Instrument Block**, that stores information about instrument qualities


| NAME   | INSTRUMENT   |   MIDI_PROGRAM | SOUND             |
|:-------|:-------------|---------------:|:------------------|


* the **Metric Block**, that will be our time reference across the song

|   MEASURE |   BEAT |   FRAME |
|:----------|:-------|---------|

* the **Environment Block**, that provides the musical context of one's model environment


| ORIGINAL_KS   | TS   |   TEMPO |
|:--------------|------|---------|



* and the **Performance Block**, that is a *piano-roll*-like representation that specifies one column for every
key in our model's 'artificial piano'. In this block we focus on representing the main
  expressive characteristics of human musical performances, such as *dynamics*, *syncopations* and *articulations*.
\
\
With the settings values as shown before,
the Performance Block would be:

| C4    | C#4   | D4    | E-4     | E4    | F4    | F#4   | G4 | G#4 | A4 | B-4 | B4 | C5 |
|:------|-------|-------|---------|-------|-------|-------|----|-----|----|-----|----|----|


\
\
Finally, our frames will contain MIDI data in the following columns:

| NAME   | INSTRUMENT   |   MIDI_PROGRAM | SOUND             |   MEASURE |   BEAT |   FRAME | ORIGINAL_KS   | TS   |   TEMPO | A0    | B-0   | B0    | C1    | C#1   | D1    | E-1   | E1    | F1    | F#1   | G1    | G#1   | A1    | B-1   | B1    | C2    | C#2   | D2    | E-2   | E2    | F2    | F#2   | G2    | G#2   | A2    | B-2   | B2    | C3    | C#3   | D3    | E-3   | E3    | F3    | F#3   | G3    | G#3   | A3    | B-3   | B3    | C4    | C#4   | D4    | E-4   | E4    | F4    | F#4   | G4    | G#4   | A4                          | B-4   | B4    | C5                          | C#5                         | D5                          | E-5   | E5                          | F5                          | F#5   | G5    | G#5   | A5                          | B-5   | B5    | C6                          | C#6                         | D6                          | E-6   | E6                          | F6                          | F#6   | G6    | G#6   | A6    | B-6   | B6    | C7    | C#7   | D7    | E-7   | E7    | F7    | F#7   | G7    | G#7   | A7    | B-7   | B7    | C8    |
|:-------|:-------------|---------------:|:------------------|----------:|-------:|--------:|:--------------|:-----|--------:|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:----------------------------|:------|:------|:----------------------------|:----------------------------|:----------------------------|:------|:----------------------------|:----------------------------|:------|:------|:------|:----------------------------|:------|:------|:----------------------------|:----------------------------|:----------------------------|:------|:----------------------------|:----------------------------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|


### Serialization Diagram
![](docs/serial-diagram.png "Diagram representing the serial block division concept.")



## Performance Block (PB) Representation
As a group project decision, the values stored in the PB are formatted in a way that we can
easily turn one row (one frame) into a **Multi Hot Encoded Performance (MHEP) frame**, that can be
used as input vector for a model that uses Binary Cross Entropy Loss (BCE Loss) to get a rapidly convergent
*'what notes should I play?'* kind of learning. The main point of this decision is that this way we
treat the playing problem as a Classification Problem, that is easier to work on.

In that sense, the data inside the PB is represented in a way where different data types provide
different semantic meaning for a note's frame in the performance encoding:

> ### **Boolean**
>
> **False**: represent silence, the note is not being played in the frame.


> ### Float32
>
> *****value*****: represent that this note is playing in the frame with current scalar velocity *****value*****.

* ****

## Usage and Example
First of all, you must import the package and define the settings for the serializer.
```python
from EMS import serialization, deserialization

SETTINGS = {
    'RESOLUTION': 16,
    'KEYBOARD_SIZE': 88,
    'KEYBOARD_OFFSET': 21
}
```
Then, to serialize:
```python
serial = serialization.file('test_midi_files/George Benson - Breezin.mid',
                            SETTINGS,
                            save_as='serial.pkl') ## optional
```
The following is the score for the first flute measure of George Bensons - Breezin:

![](docs/breezin_flute_first_measure.png "Score for the first flute measure of George Bensons - Breezin.")
  
The serial version of this measure can be seen below, it is a Pandas DataFrame with dimensions (64, 98):

| NAME   | INSTRUMENT   |   MIDI_PROGRAM | SOUND             |   MEASURE |   BEAT |   FRAME | ORIGINAL_KS   | TS   |   TEMPO | A0    | B-0   | B0    | C1    | C#1   | D1    | E-1   | E1    | F1    | F#1   | G1    | G#1   | A1    | B-1   | B1    | C2    | C#2   | D2    | E-2   | E2    | F2    | F#2   | G2    | G#2   | A2    | B-2   | B2    | C3    | C#3   | D3    | E-3   | E3    | F3    | F#3   | G3    | G#3   | A3    | B-3   | B3    | C4    | C#4   | D4    | E-4   | E4    | F4    | F#4   | G4    | G#4   |       A4 | B-4   | B4    |       C5 |      C#5 |       D5 | E-5   |       E5 |       F5 | F#5   | G5    | G#5   |       A5 | B-5   | B5    |       C6 |      C#6 |       D6 | E-6   |       E6 |       F6 | F#6   | G6    | G#6   | A6    | B-6   | B6    | C7    | C#7   | D7    | E-7   | E7    | F7    | F#7   | G7    | G#7   | A7    | B-7   | B7    | C8    |
|:-------|:-------------|---------------:|:------------------|----------:|-------:|--------:|:--------------|:-----|--------:|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|---------:|:------|:------|---------:|---------:|---------:|:------|---------:|---------:|:------|:------|:------|---------:|:------|:------|---------:|---------:|---------:|:------|---------:|---------:|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      1 |       1 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0.385827 | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      1 |       2 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0.385827 | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      1 |       3 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0.385827 | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      1 |       4 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0.385827 | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      1 |       5 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0.385827 | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      1 |       6 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0.503937 | 0.385827 | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      1 |       7 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0.503937 | 0.385827 | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      1 |       8 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0.503937 | 0.385827 | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      1 |       9 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0.503937 | False | False | 0        | 0.503937 | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      1 |      10 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0.503937 | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      1 |      11 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0.503937 | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0.385827 | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      1 |      12 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0.503937 | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0.385827 | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      1 |      13 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0.385827 | 0.503937 | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      1 |      14 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0.385827 | 0.503937 | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      1 |      15 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0.503937 | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      1 |      16 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0.503937 | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      2 |       1 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0.385827 | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      2 |       2 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0.385827 | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      2 |       3 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0.385827 | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      2 |       4 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0.385827 | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      2 |       5 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0.503937 | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      2 |       6 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0.503937 | 0        | False | 0        | 0        | False | False | False | 0.503937 | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      2 |       7 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0.503937 | 0        | False | 0        | 0        | False | False | False | 0.503937 | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      2 |       8 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0.503937 | 0        | False | 0        | 0        | False | False | False | 0.503937 | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      2 |       9 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0.503937 | 0.503937 | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      2 |      10 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0.503937 | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      2 |      11 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0.503937 | 0.503937 | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      2 |      12 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0.503937 | 0.503937 | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      2 |      13 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0.503937 | False | False | 0        | 0.503937 | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      2 |      14 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0.503937 | False | False | 0        | 0.503937 | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      2 |      15 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0.503937 | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      2 |      16 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0.503937 | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      3 |       1 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0.629921 | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      3 |       2 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0.629921 | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      3 |       3 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0.629921 | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      3 |       4 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0.629921 | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      3 |       5 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0.629921 | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      3 |       6 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0.629921 | 0.629921 | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      3 |       7 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0.629921 | 0.629921 | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      3 |       8 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0.629921 | 0.629921 | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      3 |       9 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0.503937 | 0        | 0        | False | 0.629921 | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      3 |      10 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0.503937 | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      3 |      11 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0.503937 | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0.503937 | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      3 |      12 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0.503937 | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0.503937 | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      3 |      13 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0.503937 | 0.503937 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      3 |      14 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0.503937 | 0.503937 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      3 |      15 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0.503937 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      3 |      16 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0.503937 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      4 |       1 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0.503937 | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      4 |       2 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0.503937 | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      4 |       3 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0.503937 | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      4 |       4 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0.503937 | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      4 |       5 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0.503937 | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      4 |       6 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0.503937 | 0        | False | False | False | 0        | False | False | 0.503937 | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      4 |       7 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0.503937 | 0        | False | False | False | 0        | False | False | 0.503937 | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      4 |       8 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0.503937 | 0        | False | False | False | 0        | False | False | 0.503937 | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      4 |       9 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0.503937 | 0.503937 | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      4 |      10 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0.503937 | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      4 |      11 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0.503937 | 0.503937 | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      4 |      12 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0.503937 | 0.503937 | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      4 |      13 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0.503937 | 0        | 0        | False | 0.503937 | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      4 |      14 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0.503937 | 0        | 0        | False | 0.503937 | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      4 |      15 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0.503937 | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      4 |      16 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0.503937 | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |

Some Falses are being printed as 0's, but that is just a visualization problem, internally they are Falses.

Getting back to the MIDI format is simple:
```python
deserialized = deserialization.file(serial,
                                    SETTINGS,
                                    save_as='result.mid') ## optional
```




%package help
Summary:	Development documents and examples for EPMS
Provides:	python3-EPMS-doc
%description help
# EPMS: Expressive Polyphonic MIDI Serializer

## Introduction

The MIDI (Musical Instrument Digital Interface) protocol is extremely useful - and awesome -  when we want to work with digital audio. One of its many utilities is in
Machine Learning, where it allows us to train data models to generate musical pieces.
However, the current literature lack a tool that transcribes MIDI data to a model-friendly  structure while preserving
polyphony and the whole expressive dimension of music.

EPMS is being build to address that need. While simultaneously working on a  
LSTM that predict and translates musical data between instruments, our [PET](https://www.inf.ufrgs.br/site/pet/) group from the [Institute of Informatics](https://inf.ufrgs.br)  of the [Federal University of Rio Grande do Sul (UFRGS)](https://ufrgs.br) - Brazil, is maintaining and developing this repository.

 With the advances of [MIDI 2.0](https://www.midi.org/midi-articles/details-about-midi-2-0-midi-ci-profiles-and-property-exchange) in mind, we're working on merging concepts from Music Information Retrieval (MIR) and Machine Learning (ML) to prepare the ground for future works that can popularize the feeling of making music.


## The Concept

The main idea behind the project is to represent a MIDI file in some format that is easy to manipulate and feed to a Machine Learning (ML) model, like a neural network.
Simply put, we transform the input file in a **Pandas DataFrame** where information is stored.

### Settings
There are currently 3 setting parameters for the serialization process:
1. **RESOLUTION** (int): the amount of *frames per beat* to be recorded.  
2. **KEYBOARD_SIZE** (int): the amount on *notes* that we'll be tracked by the serializer.
3. **KEYBOARD_OFFSET** (int): the *MIDI value* of the first key in our keyboard

\
For example, we can set the serial parameters like

```python
SETTINGS = {
    'RESOLUTION': 16,
    'KEYBOARD_SIZE': 13,
    'KEYBOARD_OFFSET': 60
}
```

that will be internally transformed into a serie.

| SETTING | VALUE|
|:-----------|---|
| RESOLUTION | 16|
| KEYBOARD_SIZE | 13 |
| KEYBOARD_OFFSET | 60 |

### Serialization
Each row in the serial DataFrame corresponds to a **frame** of the song
and each frame is formed in a set of different *blocks*:
* the **Instrument Block**, that stores information about instrument qualities


| NAME   | INSTRUMENT   |   MIDI_PROGRAM | SOUND             |
|:-------|:-------------|---------------:|:------------------|


* the **Metric Block**, that will be our time reference across the song

|   MEASURE |   BEAT |   FRAME |
|:----------|:-------|---------|

* the **Environment Block**, that provides the musical context of one's model environment


| ORIGINAL_KS   | TS   |   TEMPO |
|:--------------|------|---------|



* and the **Performance Block**, that is a *piano-roll*-like representation that specifies one column for every
key in our model's 'artificial piano'. In this block we focus on representing the main
  expressive characteristics of human musical performances, such as *dynamics*, *syncopations* and *articulations*.
\
\
With the settings values as shown before,
the Performance Block would be:

| C4    | C#4   | D4    | E-4     | E4    | F4    | F#4   | G4 | G#4 | A4 | B-4 | B4 | C5 |
|:------|-------|-------|---------|-------|-------|-------|----|-----|----|-----|----|----|


\
\
Finally, our frames will contain MIDI data in the following columns:

| NAME   | INSTRUMENT   |   MIDI_PROGRAM | SOUND             |   MEASURE |   BEAT |   FRAME | ORIGINAL_KS   | TS   |   TEMPO | A0    | B-0   | B0    | C1    | C#1   | D1    | E-1   | E1    | F1    | F#1   | G1    | G#1   | A1    | B-1   | B1    | C2    | C#2   | D2    | E-2   | E2    | F2    | F#2   | G2    | G#2   | A2    | B-2   | B2    | C3    | C#3   | D3    | E-3   | E3    | F3    | F#3   | G3    | G#3   | A3    | B-3   | B3    | C4    | C#4   | D4    | E-4   | E4    | F4    | F#4   | G4    | G#4   | A4                          | B-4   | B4    | C5                          | C#5                         | D5                          | E-5   | E5                          | F5                          | F#5   | G5    | G#5   | A5                          | B-5   | B5    | C6                          | C#6                         | D6                          | E-6   | E6                          | F6                          | F#6   | G6    | G#6   | A6    | B-6   | B6    | C7    | C#7   | D7    | E-7   | E7    | F7    | F#7   | G7    | G#7   | A7    | B-7   | B7    | C8    |
|:-------|:-------------|---------------:|:------------------|----------:|-------:|--------:|:--------------|:-----|--------:|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:----------------------------|:------|:------|:----------------------------|:----------------------------|:----------------------------|:------|:----------------------------|:----------------------------|:------|:------|:------|:----------------------------|:------|:------|:----------------------------|:----------------------------|:----------------------------|:------|:----------------------------|:----------------------------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|


### Serialization Diagram
![](docs/serial-diagram.png "Diagram representing the serial block division concept.")



## Performance Block (PB) Representation
As a group project decision, the values stored in the PB are formatted in a way that we can
easily turn one row (one frame) into a **Multi Hot Encoded Performance (MHEP) frame**, that can be
used as input vector for a model that uses Binary Cross Entropy Loss (BCE Loss) to get a rapidly convergent
*'what notes should I play?'* kind of learning. The main point of this decision is that this way we
treat the playing problem as a Classification Problem, that is easier to work on.

In that sense, the data inside the PB is represented in a way where different data types provide
different semantic meaning for a note's frame in the performance encoding:

> ### **Boolean**
>
> **False**: represent silence, the note is not being played in the frame.


> ### Float32
>
> *****value*****: represent that this note is playing in the frame with current scalar velocity *****value*****.

* ****

## Usage and Example
First of all, you must import the package and define the settings for the serializer.
```python
from EMS import serialization, deserialization

SETTINGS = {
    'RESOLUTION': 16,
    'KEYBOARD_SIZE': 88,
    'KEYBOARD_OFFSET': 21
}
```
Then, to serialize:
```python
serial = serialization.file('test_midi_files/George Benson - Breezin.mid',
                            SETTINGS,
                            save_as='serial.pkl') ## optional
```
The following is the score for the first flute measure of George Bensons - Breezin:

![](docs/breezin_flute_first_measure.png "Score for the first flute measure of George Bensons - Breezin.")
  
The serial version of this measure can be seen below, it is a Pandas DataFrame with dimensions (64, 98):

| NAME   | INSTRUMENT   |   MIDI_PROGRAM | SOUND             |   MEASURE |   BEAT |   FRAME | ORIGINAL_KS   | TS   |   TEMPO | A0    | B-0   | B0    | C1    | C#1   | D1    | E-1   | E1    | F1    | F#1   | G1    | G#1   | A1    | B-1   | B1    | C2    | C#2   | D2    | E-2   | E2    | F2    | F#2   | G2    | G#2   | A2    | B-2   | B2    | C3    | C#3   | D3    | E-3   | E3    | F3    | F#3   | G3    | G#3   | A3    | B-3   | B3    | C4    | C#4   | D4    | E-4   | E4    | F4    | F#4   | G4    | G#4   |       A4 | B-4   | B4    |       C5 |      C#5 |       D5 | E-5   |       E5 |       F5 | F#5   | G5    | G#5   |       A5 | B-5   | B5    |       C6 |      C#6 |       D6 | E-6   |       E6 |       F6 | F#6   | G6    | G#6   | A6    | B-6   | B6    | C7    | C#7   | D7    | E-7   | E7    | F7    | F#7   | G7    | G#7   | A7    | B-7   | B7    | C8    |
|:-------|:-------------|---------------:|:------------------|----------:|-------:|--------:|:--------------|:-----|--------:|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|---------:|:------|:------|---------:|---------:|---------:|:------|---------:|---------:|:------|:------|:------|---------:|:------|:------|---------:|---------:|---------:|:------|---------:|---------:|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|:------|
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      1 |       1 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0.385827 | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      1 |       2 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0.385827 | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      1 |       3 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0.385827 | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      1 |       4 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0.385827 | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      1 |       5 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0.385827 | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      1 |       6 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0.503937 | 0.385827 | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      1 |       7 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0.503937 | 0.385827 | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      1 |       8 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0.503937 | 0.385827 | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      1 |       9 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0.503937 | False | False | 0        | 0.503937 | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      1 |      10 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0.503937 | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      1 |      11 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0.503937 | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0.385827 | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      1 |      12 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0.503937 | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0.385827 | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      1 |      13 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0.385827 | 0.503937 | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      1 |      14 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0.385827 | 0.503937 | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      1 |      15 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0.503937 | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      1 |      16 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0.503937 | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      2 |       1 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0.385827 | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      2 |       2 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0.385827 | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      2 |       3 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0.385827 | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      2 |       4 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0.385827 | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      2 |       5 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0.503937 | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      2 |       6 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0.503937 | 0        | False | 0        | 0        | False | False | False | 0.503937 | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      2 |       7 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0.503937 | 0        | False | 0        | 0        | False | False | False | 0.503937 | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      2 |       8 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0.503937 | 0        | False | 0        | 0        | False | False | False | 0.503937 | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      2 |       9 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0.503937 | 0.503937 | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      2 |      10 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0.503937 | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      2 |      11 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0.503937 | 0.503937 | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      2 |      12 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0.503937 | 0.503937 | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      2 |      13 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0.503937 | False | False | 0        | 0.503937 | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      2 |      14 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0.503937 | False | False | 0        | 0.503937 | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      2 |      15 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0.503937 | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      2 |      16 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0.503937 | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      3 |       1 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0.629921 | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      3 |       2 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0.629921 | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      3 |       3 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0.629921 | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      3 |       4 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0.629921 | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      3 |       5 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0.629921 | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      3 |       6 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0.629921 | 0.629921 | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      3 |       7 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0.629921 | 0.629921 | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      3 |       8 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0.629921 | 0.629921 | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      3 |       9 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0.503937 | 0        | 0        | False | 0.629921 | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      3 |      10 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0.503937 | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      3 |      11 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0.503937 | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0.503937 | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      3 |      12 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0.503937 | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0.503937 | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      3 |      13 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0.503937 | 0.503937 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      3 |      14 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0.503937 | 0.503937 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      3 |      15 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0.503937 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      3 |      16 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0.503937 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      4 |       1 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0.503937 | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      4 |       2 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0.503937 | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      4 |       3 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0.503937 | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      4 |       4 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0.503937 | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      4 |       5 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0.503937 | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      4 |       6 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0.503937 | 0        | False | False | False | 0        | False | False | 0.503937 | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      4 |       7 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0.503937 | 0        | False | False | False | 0        | False | False | 0.503937 | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      4 |       8 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0.503937 | 0        | False | False | False | 0        | False | False | 0.503937 | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      4 |       9 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0.503937 | 0.503937 | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      4 |      10 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0.503937 | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      4 |      11 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0.503937 | 0.503937 | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      4 |      12 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0.503937 | 0.503937 | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      4 |      13 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0.503937 | 0        | 0        | False | 0.503937 | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      4 |      14 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0.503937 | 0        | 0        | False | 0.503937 | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      4 |      15 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0.503937 | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |
| Winds  | Flute        |             73 | wind.flutes.flute |         1 |      4 |      16 | C             | 4/4  |      82 | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | 0        | False | False | 0.503937 | 0        | 0        | False | 0        | 0        | False | False | False | 0        | False | False | 0        | 0        | 0        | False | 0        | 0        | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False | False |

Some Falses are being printed as 0's, but that is just a visualization problem, internally they are Falses.

Getting back to the MIDI format is simple:
```python
deserialized = deserialization.file(serial,
                                    SETTINGS,
                                    save_as='result.mid') ## optional
```




%prep
%autosetup -n EPMS-0.0.8

%build
%py3_build

%install
%py3_install
install -d -m755 %{buildroot}/%{_pkgdocdir}
if [ -d doc ]; then cp -arf doc %{buildroot}/%{_pkgdocdir}; fi
if [ -d docs ]; then cp -arf docs %{buildroot}/%{_pkgdocdir}; fi
if [ -d example ]; then cp -arf example %{buildroot}/%{_pkgdocdir}; fi
if [ -d examples ]; then cp -arf examples %{buildroot}/%{_pkgdocdir}; fi
pushd %{buildroot}
if [ -d usr/lib ]; then
	find usr/lib -type f -printf "\"/%h/%f\"\n" >> filelist.lst
fi
if [ -d usr/lib64 ]; then
	find usr/lib64 -type f -printf "\"/%h/%f\"\n" >> filelist.lst
fi
if [ -d usr/bin ]; then
	find usr/bin -type f -printf "\"/%h/%f\"\n" >> filelist.lst
fi
if [ -d usr/sbin ]; then
	find usr/sbin -type f -printf "\"/%h/%f\"\n" >> filelist.lst
fi
touch doclist.lst
if [ -d usr/share/man ]; then
	find usr/share/man -type f -printf "\"/%h/%f.gz\"\n" >> doclist.lst
fi
popd
mv %{buildroot}/filelist.lst .
mv %{buildroot}/doclist.lst .

%files -n python3-EPMS -f filelist.lst
%dir %{python3_sitelib}/*

%files help -f doclist.lst
%{_docdir}/*

%changelog
* Tue Jun 20 2023 Python_Bot <Python_Bot@openeuler.org> - 0.0.8-1
- Package Spec generated