From 9abc55547d99e998208b9c2e05b75f1d6f883ed7 Mon Sep 17 00:00:00 2001 From: kevin Date: Sat, 30 Mar 2024 18:02:58 -0400 Subject: [PATCH] gutim_full/scriabin : Initial commmit perset --- .../cfg/gutim_full/scriabin/csv_to_score.py | 174 ++++++++++++++++++ .../scriabin_etude_op42_7_f_minor.mid | Bin 0 -> 5277 bytes ...riabin_etude_op65_1_allegro fantastico.mid | Bin 0 -> 12527 bytes .../scriabin_etude_op8_2_f_sh_minor.mid | Bin 0 -> 6540 bytes .../scriabin/scriabin_etude_op8_3_b_minor.mid | Bin 0 -> 14778 bytes .../scriabin_etude_op8_9_g_sh_minor.mid | Bin 0 -> 24807 bytes 6 files changed, 174 insertions(+) create mode 100644 src/cwtest/cfg/gutim_full/scriabin/csv_to_score.py create mode 100644 src/cwtest/cfg/gutim_full/scriabin/scriabin_etude_op42_7_f_minor.mid create mode 100644 src/cwtest/cfg/gutim_full/scriabin/scriabin_etude_op65_1_allegro fantastico.mid create mode 100644 src/cwtest/cfg/gutim_full/scriabin/scriabin_etude_op8_2_f_sh_minor.mid create mode 100644 src/cwtest/cfg/gutim_full/scriabin/scriabin_etude_op8_3_b_minor.mid create mode 100644 src/cwtest/cfg/gutim_full/scriabin/scriabin_etude_op8_9_g_sh_minor.mid diff --git a/src/cwtest/cfg/gutim_full/scriabin/csv_to_score.py b/src/cwtest/cfg/gutim_full/scriabin/csv_to_score.py new file mode 100644 index 0000000..bde70e4 --- /dev/null +++ b/src/cwtest/cfg/gutim_full/scriabin/csv_to_score.py @@ -0,0 +1,174 @@ +import csv,json,os + +def parse_score( score_fn ): + + scoreL = [] + with open(score_fn) as f: + rdr = csv.DictReader(f) + + for r in rdr: + scoreL.append(dict(r)) + + return scoreL + + +def invert_velocity( d1 ): + + tbl = [ 1,1,2,2,3,5,8,10,13,16,20,24,28,33,38,43,49,55,62,68,72,85,94,103,112] + + if d1 == 0: + return 0 + + d1 = max(1,int(d1/6)) + + for i,v in enumerate(tbl): + + if d1 <= v: + return i + + return len(tbl)-1 + + +def parse_scriabin( ifn ): + + ped_off = { 'dtick':0, 'sec':0, 'type':'ped', 'd0':64, 'd1':0 } + + noteL = [ ped_off ] + + with open(ifn,"r") as f: + rdr = csv.DictReader(f) + + for r in rdr: + if r['type'].strip() in [ 'non','nof' ]: + x = { 'dtick': int(r['dtick']), + 'sec': float(r['amicro']) / 1000000.0, + 'type': r['type'], + 'd0': int(r['D0']), + 'd1': invert_velocity(int(r['D1'])) } + + noteL.append(x) + + return noteL + + +def insert_scriabin( scoreL, noteL, insert_loc, insert_after_fl ): + + status_map = { 'non':144, 'nof':144, 'ped':176 } + outL = [] + + fieldL = list(scoreL[0].keys()) + offs_sec = 0 + oloc = None + insert_fl = True + + for s in scoreL: + + if len(s['loc'])>0 and int(s['loc']) == insert_loc and insert_fl: + + insert_fl = False + + print( f"LOC: {insert_loc} oloc:{oloc}" ) + + if insert_after_fl: + s['sec'] = float(s['sec']) + offs_sec + outL.append(s) + + offs_sec = float(s['sec']) + dur_sec = 0 + for n in noteL: + d = { f:None for f in fieldL } + dur_sec = max(dur_sec,n['sec']) + d['sec'] = offs_sec + n['sec'] + d['opcode'] = n['type'] + d['status'] = status_map[n['type'].strip()] + d['d0'] = n['d0'] + d['d1'] = n['d1'] + d['tick'] = n['dtick'] + outL.append(d) + offs_sec = dur_sec + + if not insert_after_fl: + s['sec'] = float(s['sec']) + offs_sec + outL.append(s) + + else: + s['sec'] = float(s['sec']) + offs_sec + outL.append(s) + + + if s['oloc']: + oloc = s['oloc'] + + + return outL + +def write_meta_cfg( o_cfg_fn, name, beg_loc, end_loc ): + + cfg = { "player_name": name, + "take_label": f"{name}_0_0", + "session_number": 0, + "take_number": 0, + "beg_loc": beg_loc, + "end_loc": end_loc, + "skip_score_follow_fl": False } + + with open(o_cfg_fn,"w") as f: + json.dump(cfg,f) + + + + +def write_output( out_dir, out_fn, outL, beg_loc, end_loc, fieldnamesL ): + + odir = os.path.join(out_dir,out_fn,out_fn) + os.makedirs( odir, exist_ok=True ) + + o_csv_fn = os.path.join(odir,out_fn+".csv") + o_cfg_fn = os.path.join(odir,"meta.cfg") + + write_meta_cfg(o_cfg_fn,out_fn,beg_loc,end_loc) + + with open(o_csv_fn,"w") as f: + wtr = csv.DictWriter(f,fieldnames=fieldnamesL) + + wtr.writeheader() + + for r in outL: + wtr.writerow(r) + + + +if __name__ == "__main__": + score_fn = "/home/kevin/src/cwtest/src/cwtest/cfg/gutim_full/data/score/20231028/temp.csv" + + out_fn = "/home/kevin/src/cwtest/src/cwtest/cfg/gutim_full/data/score/20231028/temp_with_scriabin.csv" + + out_dir = "/home/kevin/src/cwtest/src/cwtest/cfg/gutim_full/data" + + fileL = [ + #{ "ifn":"scriabin_etude_op8_3_b_minor.csv", "insert_loc": 2234, "after_fl":True, "ofn":"scriabin_8_3", "beg_loc":775, "end_loc":776 }, + ## { "ifn":"scriabin_etude_op8_2_f_sh_minor.csv", "insert_loc": 4084, "after_fl":True, "ofn":"scriabin_8_2", "beg_loc":4084, "end_loc":4085 }, + #{ "ifn":"scriabin_etude_op8_2_f_sh_minor.csv", "insert_loc": 4390, "after_fl":True, "ofn":"scriabin_8_2", "beg_loc":1659, "end_loc":1660 }, + #{ "ifn":"scriabin_etude_op8_9_g_sh_minor.csv", "insert_loc": 8450, "after_fl":False, "ofn":"scriabin_8_9", "beg_loc":3832, "end_loc":3833 }, + #{ "ifn":"scriabin_etude_op65_1_allegro fantastico.csv", "insert_loc":10619, "after_fl":False, "ofn":"scriabin_65_1", "beg_loc":4989, "end_loc":4990 }, + { "ifn":"scriabin_etude_op42_7_f_minor.csv", "insert_loc":12436, "after_fl":False, "ofn":"scriabin_42_7", "beg_loc":6044, "end_loc":6045 } + + ] + + + scoreL = parse_score(score_fn) + + fieldnamesL = list(scoreL[0].keys()) + + + + for f in fileL: + + outL = [] + + noteL = parse_scriabin(f['ifn']) + + outL = insert_scriabin(scoreL, noteL, f['insert_loc'], f['after_fl'] ) + + write_output( out_dir, f['ofn'], outL, f['beg_loc'], f['end_loc'], fieldnamesL ) + diff --git a/src/cwtest/cfg/gutim_full/scriabin/scriabin_etude_op42_7_f_minor.mid b/src/cwtest/cfg/gutim_full/scriabin/scriabin_etude_op42_7_f_minor.mid new file mode 100644 index 0000000000000000000000000000000000000000..f8e41b6ea3320d805646e3df658809658f4c0985 GIT binary patch literal 5277 zcmd5=-%lGy5FSX)g4vVSSB;;dl0|fDnP^y4pq11( z0mvztBWCIo_ceYBN)~8GB$GMrJIOJgO*|DPF~T$?C2`*?Ig6&86g8hkLrGIA@GQF; z>Y6si{A_Ev{W(PI)DVwsI7&lRQx4JRE>84~UHDc9H>x;d4g+%72q^hMkbVr18Bi74 z0qB6T*T&KWeD;7`H7paYsuB2+t!Bj4jGz(OYDQemh^rYPIjv?ThDMxn9>?-A`kz8d zF?g}Wa^vw0XD@&Nad@x2NaDO4%QAVO2Y?w~0|M^KE&kUEGtDu!xoJ1C}j%tswlYZ$#X;yX{|?I&EdKtf%T z5~z>Yw+b z1p0QzkBBERj5N1Jc}KaoDVfN0q2|gOPB6nRYt@CaOX|f4_gw14l1qkl%cM%#+ZfMc zF4#%L+`Zb~y_h0{;Juno>@EEX;!?#cE)-n4y0KZdU8-i@O#{GHtz_5t_Z3PRqTd_cSP4${au=fj^ zDu{JSIre5FEB=-*Od+=aH{j$!_3=C;qKDIgLQo+{{RnV?&oKKgyLrdH%WgG$ zuZF@r%ks*>?X$|s0<0)!#g2>0S+sM58;;?xDQE4|)oH%r82*NGHvWlkIG2m(qVb!( zOoV2p1*vALL{7-Y^`JX$_ zFaDRwH1=EFuv+Wr{in6HO4}FBQs-$+RGOu3*Q=D8!uP74sI;5SS|#+_txUW1=UVwd zl$y0}x74b3+M?_E?N%)e+p8kzw1bXU3)`K{#e;gD$t;P|aM;5izfO{Z7#{Tp;#L2+ zC-DDS68BEU;m6;?mNFT6xN?#l9={k2`iC!$R|S4X&iSfvvm4pV?cZt(Jc{s32clC8 z_RCGLTNh#7>k92PYvKnlthe_=5!5=qhk3%ZVCwu@r{ZD8_Pe#NXzK|++I7Q@R|%U3 zl$yF%_QG2Aa-nHV#6Wz9DM*H={g-FMlhX$Saoisa3*u-vd{Ghy%a?Lgqqd1My%DX)Xs^yFmN8>}4--;%`s05e`?asU7T literal 0 HcmV?d00001 diff --git a/src/cwtest/cfg/gutim_full/scriabin/scriabin_etude_op65_1_allegro fantastico.mid b/src/cwtest/cfg/gutim_full/scriabin/scriabin_etude_op65_1_allegro fantastico.mid new file mode 100644 index 0000000000000000000000000000000000000000..0bb77979e5c90361546097935510fc77f55fe88b GIT binary patch literal 12527 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 Axc~qF literal 0 HcmV?d00001 diff --git a/src/cwtest/cfg/gutim_full/scriabin/scriabin_etude_op8_2_f_sh_minor.mid b/src/cwtest/cfg/gutim_full/scriabin/scriabin_etude_op8_2_f_sh_minor.mid new file mode 100644 index 0000000000000000000000000000000000000000..51e811321cbd800e6fce957886ddb4ef2bec714c GIT binary patch literal 6540 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 literal 0 HcmV?d00001 diff --git a/src/cwtest/cfg/gutim_full/scriabin/scriabin_etude_op8_3_b_minor.mid b/src/cwtest/cfg/gutim_full/scriabin/scriabin_etude_op8_3_b_minor.mid new file mode 100644 index 0000000000000000000000000000000000000000..9e7a1b683c128715fbc3a75648f5cd00c9314d2c GIT binary patch literal 14778 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 literal 0 HcmV?d00001 diff --git a/src/cwtest/cfg/gutim_full/scriabin/scriabin_etude_op8_9_g_sh_minor.mid b/src/cwtest/cfg/gutim_full/scriabin/scriabin_etude_op8_9_g_sh_minor.mid new file mode 100644 index 0000000000000000000000000000000000000000..f7bc11b43866f3742b8521d962ca1faeb51791a7 GIT binary patch literal 24807 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 literal 0 HcmV?d00001