JannikAhlers commited on
Commit
adebd78
·
1 Parent(s): 20890fe

clean up test data scripts

Browse files
Files changed (3) hide show
  1. .gitignore +2 -0
  2. simplify_midi.py +0 -62
  3. simplify_midi_pretty.py +0 -58
.gitignore ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ .DS_Store
2
+ .gradio/certificate.pem
simplify_midi.py DELETED
@@ -1,62 +0,0 @@
1
- import os
2
- import csv
3
- import mido
4
- from pathlib import Path
5
-
6
- CSV_FILE = "test_data/info.csv"
7
- CSV_FILE_OUT = "test_data/info_simplified.csv"
8
- base_folder = Path("test_data")
9
-
10
- filter_values = (
11
- 35, # Acoustic Bass Drum
12
- 36, # Bass Drum 1
13
- 37, # Side Stick
14
- 38, # Acoustic Snare
15
- 39, # Hand Clap
16
- 40, # Electric Snare
17
- )
18
-
19
- first_midi = None
20
- outfile = []
21
- with open(CSV_FILE) as fd:
22
- reader = csv.DictReader(fd)
23
- for i, row in enumerate(reader):
24
- filename = row["midi_filename"]
25
- print(f"{i} processing file {filename}...")
26
- mid = mido.MidiFile(base_folder/filename)
27
- out_mid = mido.MidiFile()
28
- out_track = mido.MidiTrack()
29
- out_mid.tracks.append(out_track)
30
- tpb = mid.ticks_per_beat
31
- quantization_length = 1/32 * 4 * tpb
32
-
33
- dtime = 0
34
- for track in mid.tracks:
35
- for msg in track:
36
- if msg.is_meta:
37
- out_track.append(msg.copy())
38
- dtime += msg.time
39
- elif msg.type in ("note_on", "note_off"):
40
- if msg.note in filter_values:
41
- time = msg.time + dtime
42
- time_frac = round(time/quantization_length)
43
- time_quantized = int(time_frac * quantization_length)
44
- out_track.append(msg.copy(velocity=100, time=time_quantized))
45
- dtime = 0
46
- else:
47
- dtime += msg.time
48
- elif msg.is_cc:
49
- dtime += msg.time
50
-
51
- new_filename = filename.split(".")
52
- new_filename.insert(-1, "simplified")
53
- new_filename = ".".join(new_filename)
54
- out_mid.save(base_folder/new_filename)
55
- row["simplified_midi_filename"] = new_filename
56
- outfile.append(row)
57
- with open(CSV_FILE_OUT, "w+") as fd:
58
- fieldnames = outfile[0].keys()
59
-
60
- writer = csv.DictWriter(fd, fieldnames=fieldnames)
61
- writer.writeheader()
62
- writer.writerows(outfile)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
simplify_midi_pretty.py DELETED
@@ -1,58 +0,0 @@
1
- import os
2
- import csv
3
- # import mido
4
- import pretty_midi
5
- from pathlib import Path
6
-
7
- CSV_FILE = "test_data/info.csv"
8
- CSV_FILE_OUT = "test_data/info_simplified.csv"
9
- base_folder = Path("test_data")
10
-
11
- filter_values = (
12
- 35, # Acoustic Bass Drum
13
- 36, # Bass Drum 1
14
- 37, # Side Stick
15
- 38, # Acoustic Snare
16
- 39, # Hand Clap
17
- 40, # Electric Snare
18
- )
19
-
20
- first_midi = None
21
- outfile = []
22
- with open(CSV_FILE) as fd:
23
- reader = csv.DictReader(fd)
24
- for i, row in enumerate(reader):
25
- filename = row["midi_filename"]
26
- print(f"{i} processing file {filename}...")
27
- mid = pretty_midi.PrettyMIDI(str(base_folder/filename))
28
- out_mid = pretty_midi.PrettyMIDI(resolution=32)
29
- out_track = pretty_midi.Instrument(program=0, is_drum=True)
30
- note_length = mid.estimate_tempo() / (60*32)
31
-
32
- for instr in mid.instruments:
33
- if not instr.is_drum:
34
- continue
35
- for note in instr.notes:
36
- if note.pitch in filter_values:
37
- out_track.notes.append(
38
- pretty_midi.Note(
39
- velocity=100,
40
- pitch=note.pitch,
41
- start=note.start,
42
- end=note.start + note_length,
43
- )
44
- )
45
-
46
- new_filename = filename.split(".")
47
- new_filename.insert(-1, "simplified")
48
- new_filename = ".".join(new_filename)
49
- out_mid.instruments.append(out_track)
50
- out_mid.write(str(base_folder/new_filename))
51
- row["simplified_midi_filename"] = new_filename
52
- outfile.append(row)
53
- with open(CSV_FILE_OUT, "w+") as fd:
54
- fieldnames = outfile[0].keys()
55
-
56
- writer = csv.DictWriter(fd, fieldnames=fieldnames)
57
- writer.writeheader()
58
- writer.writerows(outfile)