commit c73c14fa2e9f7814d17e1521a043fbc407e4750b
parent 09bc6aea0db1c61a4764ffc576ee2561e4489dc9
Author: CarlSouthall <c-southall@live.co.uk>
Date: Tue, 17 Oct 2017 17:30:34 +0100
txt to tab
Diffstat:
3 files changed, 34 insertions(+), 13 deletions(-)
diff --git a/ADTLib/__init__.py b/ADTLib/__init__.py
@@ -21,13 +21,11 @@ def ADT(filenames,text='yes',tab='yes',save_dir=None):
for j in range(len(AFs)):
Peaks.append(utils.meanPPmm(AFs[j][:,0],PP[j,0],PP[j,1],PP[j,2]))
sorted_p=utils.sort_ascending(Peaks)
- if save_dir!=None:
- os.chdir(save_dir)
if text=='yes':
- utils.print_to_file(sorted_p,k)
+ utils.print_to_file(sorted_p,k,save_dir)
if tab=='yes':
- utils.tab_create([Peaks[2],Peaks[1],Peaks[0]],k)
+ utils.tab_create([Peaks[2],Peaks[1],Peaks[0]],k,save_dir)
Onsets.append({'Kick':Peaks[0],'Snare':Peaks[1],'Hihat':Peaks[2]})
return Onsets
diff --git a/ADTLib/utils/__init__.py b/ADTLib/utils/__init__.py
@@ -57,14 +57,14 @@ def load_pp_param(save_path):
-def tab_create(Onsets,Filename_):
+def tab_create(Onsets,Filename_,save_dir_):
quantisation_per_beat=4
bars_per_line=4
notation=['x','o','o']
pre_trackname=Filename_.split('/')
TrackName=pre_trackname[len(pre_trackname)-1].split('.')[0]+' Drum Tab'
-
- subprocess.call(["DBNDownBeatTracker","single","-o","DB.txt",Filename_])
+ wav=Filename_.split('.')[0]+'.wav'
+ subprocess.call(["DBNDownBeatTracker","single","-o","DB.txt",wav])
DBFile=open("DB.txt")
DBFile=DBFile.read().split('\n')
@@ -147,9 +147,12 @@ def tab_create(Onsets,Filename_):
for i in range(len(lines)):
lines_new.append([])
for j in range(len(lines[i])):
- lines_new[i].append(''.join(lines[i][j]))
-
-
+ lines_new[i].append(''.join(lines[i][j]))
+
+ os.remove("DB.txt")
+ if save_dir_!=None:
+ current_dir=os.getcwd()
+ os.chdir(save_dir_)
pdf = FPDF(format='A4')
pdf.add_page()
pdf.set_font("Courier", size=12)
@@ -161,12 +164,27 @@ def tab_create(Onsets,Filename_):
pdf.cell(0,3,txt=lines_new[i][j],ln=1,align="C")
pdf.cell(0,5,txt='',ln=1,align="C")
pdf.output(pre_trackname[len(pre_trackname)-1].split('.')[0]+'_drumtab.pdf')
+ if save_dir_!=None:
+ os.chdir(current_dir)
- os.remove("DB.txt")
else:
print('Error: No beat detected')
+def tab_from_text(filename,save_dir):
+ y=open(filename)
+ lines=y.readlines()
+ Peaks=[[],[],[]]
+ ins=['KD','SD','HH']
+ for i in range(len(lines)):
+ lines[i]=lines[i].strip().split(' \t ')
+ for j in range(len(ins)):
+ if lines[i][1]==ins[j]:
+ Peaks[j]=np.append(Peaks[j],float(lines[i][0]))
+
+
+ tab_create([Peaks[2],Peaks[1],Peaks[0]],filename,save_dir)
+
def sort_ascending(x):
in_re=[]
out_re_final=[]
@@ -180,11 +198,16 @@ def sort_ascending(x):
out_re_final=np.squeeze(np.array(out_re_final))
return out_re_final
-def print_to_file(onsets,Filename):
+def print_to_file(onsets,Filename,save_dir_):
+ if save_dir_!=None:
+ current_dir=os.getcwd()
+ os.chdir(save_dir_)
pre_trackname=Filename.split('/')
f = open(pre_trackname[len(pre_trackname)-1].split('.')[0]+'.ADT.txt', "w")
for item,item2 in onsets:
f.write("%.4f \t %s \n" % (float(item), item2))
+ if save_dir_!=None:
+ os.chdir(current_dir)
f.close()
diff --git a/setup.py b/setup.py
@@ -8,7 +8,7 @@ scripts = glob.glob('bin/*')
setup(
name = 'ADTLib',
packages=find_packages(exclude=[]),
- version = '2.0.1',
+ version = '2.0.2',
description = 'Automated Drum Trancription Library',
author = 'Carl Southall',
author_email = 'carl.southall@bcu.ac.uk',