Add Files

This commit is contained in:
emanuel2001just 2024-01-13 00:04:41 +01:00
parent 7fc1e4ca2c
commit 78e9cc1d1b
15 changed files with 1374 additions and 0 deletions

3
.gitmodules vendored Normal file
View File

@ -0,0 +1,3 @@
[submodule "OffiTracker"]
path = OffiTracker
url = https://git.muellers-software.org/Minki/OffiTracker

1
OffiTracker Submodule

@ -0,0 +1 @@
Subproject commit fb3665eb8cfaff83b4a69dd58527cfb364e7258e

918
PyOffiMaker.py Normal file
View File

@ -0,0 +1,918 @@
#!/usr/bin/env python
from turtle import width
from webbrowser import BackgroundBrowser
import PySimpleGUI as sg
import csv,re
import math
import OffiTracker.offitracker as oftr
import pandas as pd
frequencyTable = []
frequencyTable.append(["C0","16.35"])
frequencyTable.append(["C#0","17.32"])
frequencyTable.append(["D0","18.35"])
frequencyTable.append(["D#0","19.45"])
frequencyTable.append(["E0","20.60"])
frequencyTable.append(["F0","21.83"])
frequencyTable.append(["F#0","23.12"])
frequencyTable.append(["G0","24.50"])
frequencyTable.append(["G#0","25.96"])
frequencyTable.append(["A0","27.50"])
frequencyTable.append(["A#0","29.14"])
frequencyTable.append(["B0","30.87"])
frequencyTable.append(["C1","32.70"])
frequencyTable.append(["C#1","34.65"])
frequencyTable.append(["D1","36.71"])
frequencyTable.append(["D#1","38.89"])
frequencyTable.append(["E1","41.20"])
frequencyTable.append(["F1","43.65"])
frequencyTable.append(["F#1","46.25"])
frequencyTable.append(["G1","49.00"])
frequencyTable.append(["G#1","51.91"])
frequencyTable.append(["A1","55.00"])
frequencyTable.append(["A#1","58.27"])
frequencyTable.append(["B1","61.74"])
frequencyTable.append(["C2","65.41"])
frequencyTable.append(["C#2","69.30"])
frequencyTable.append(["D2","73.42"])
frequencyTable.append(["D#2","77.78"])
frequencyTable.append(["E2","82.41"])
frequencyTable.append(["F2","87.31"])
frequencyTable.append(["F#2","92.50"])
frequencyTable.append(["G2","98.00"])
frequencyTable.append(["G#2","103.83"])
frequencyTable.append(["A2","110.00"])
frequencyTable.append(["A#2","116.54"])
frequencyTable.append(["B2","123.47"])
frequencyTable.append(["C3","130.81"])
frequencyTable.append(["C#3","138.59"])
frequencyTable.append(["D3","146.83"])
frequencyTable.append(["D#3","155.56"])
frequencyTable.append(["E3","164.81"])
frequencyTable.append(["F3","174.61"])
frequencyTable.append(["F#3","185.00"])
frequencyTable.append(["G3","196.00"])
frequencyTable.append(["G#3","207.65"])
frequencyTable.append(["A3","220.00"])
frequencyTable.append(["A#3","233.08"])
frequencyTable.append(["B3","246.94"])
frequencyTable.append(["C4","261.63"])
frequencyTable.append(["C#4","277.18"])
frequencyTable.append(["D4","293.66"])
frequencyTable.append(["D#4","311.13"])
frequencyTable.append(["E4","329.63"])
frequencyTable.append(["F4","349.23"])
frequencyTable.append(["F#4","369.99"])
frequencyTable.append(["G4","392.00"])
frequencyTable.append(["G#4","415.30"])
frequencyTable.append(["A4","440.00"])
frequencyTable.append(["A#4","466.16"])
frequencyTable.append(["B4","493.88"])
frequencyTable.append(["C5","523.25"])
frequencyTable.append(["C#5","554.37"])
frequencyTable.append(["D5","587.33"])
frequencyTable.append(["D#5","622.25"])
frequencyTable.append(["E5","659.25"])
frequencyTable.append(["F5","698.46"])
frequencyTable.append(["F#5","739.99"])
frequencyTable.append(["G5","783.99"])
frequencyTable.append(["G#5","830.61"])
frequencyTable.append(["A5","880.00"])
frequencyTable.append(["A#5","932.33"])
frequencyTable.append(["B5","987.77"])
frequencyTable.append(["C6","1046.50"])
frequencyTable.append(["C#6","1108.73"])
frequencyTable.append(["D6","1174.66"])
frequencyTable.append(["D#6","1244.51"])
frequencyTable.append(["E6","1318.51"])
frequencyTable.append(["F6","1396.91"])
frequencyTable.append(["F#6","1479.98"])
frequencyTable.append(["G6","1567.98"])
frequencyTable.append(["G#6","1661.22"])
frequencyTable.append(["A6","1760.00"])
frequencyTable.append(["A#6","1864.66"])
frequencyTable.append(["B6","1975.53"])
frequencyTable.append(["C7","2093.00"])
frequencyTable.append(["C#7","2217.46"])
frequencyTable.append(["D7","2349.32"])
frequencyTable.append(["D#7","2489.02"])
frequencyTable.append(["E7","2637.02"])
frequencyTable.append(["F7","2793.83"])
frequencyTable.append(["F#7","2959.96"])
frequencyTable.append(["G7","3135.96"])
frequencyTable.append(["G#7","3322.44"])
frequencyTable.append(["A7","3520.00"])
frequencyTable.append(["A#7","3729.31"])
frequencyTable.append(["B7","3951.07"])
frequencyTable.append(["C8","4186.01"])
frequencyTable.append(["C#8","4434.92"])
frequencyTable.append(["D8","4698.63"])
frequencyTable.append(["D#8","4978.03"])
frequencyTable.append(["E8","5274.04"])
frequencyTable.append(["F8","5587.65"])
frequencyTable.append(["F#8","5919.91"])
frequencyTable.append(["G8","6271.93"])
frequencyTable.append(["G#8","6644.88"])
frequencyTable.append(["A8","7040.00"])
frequencyTable.append(["A#8","7458.62"])
frequencyTable.append(["B8","7902.13"])
global currentTable
currentTable = 1
global emptyrow
emptyrow = ["C0", "0"]
sg.theme('Dark Red')
def openFile(window = None):
filename = sg.popup_get_file('filename to open', no_window=True, file_types=(("CSV Files","*.csv"),))
data = []
header_list = []
print(filename)
if filename is not None and filename != "":
pandaData = pd.read_csv(filename)
newData1 = pandaData.loc[:,["Frequency1","Effect1"]]
newData2 = pandaData.loc[:,["Frequency2","Effect2"]]
newData3 = pandaData.loc[:,["Frequency3","Effect3"]]
newData4 = pandaData.loc[:,["Noise","Duration"]]
reader = []
reader1 = []
reader2 = []
reader3 = []
reader4 = []
readers = []
df1 = pd.DataFrame(newData1).fillna(0)
df2 = pd.DataFrame(newData2).fillna(0)
df3 = pd.DataFrame(newData3).fillna(0)
df4 = pd.DataFrame(newData4).fillna(0)
listF1 = df1['Frequency1'].values.tolist()
listF2 = df2['Frequency2'].values.tolist()
listF3 = df3['Frequency3'].values.tolist()
listE1 = df1['Effect1'].values.tolist()
listE2 = df2['Effect2'].values.tolist()
listE3 = df3['Effect3'].values.tolist()
listN = df4['Noise'].values.tolist()
listD = df4['Duration'].values.tolist()
for entry, data in enumerate(listF1):
reader1.append([listF1[entry],listE1[entry]])
reader2.append([listF2[entry],listE2[entry]])
reader3.append([listF3[entry],listE3[entry]])
reader4.append([listN[entry],listD[entry]])
data1 = list(reader1)
data2 = list(reader2)
data3 = list(reader3)
data4 = list(reader4)
for index1, row in enumerate(data1):
# or cell == row[3] or cell == row[5] or cell == row[6] or cell == row[7]
for index, cell in enumerate(row):
if cell == row[1]:
pass
else:
if cell == "" or cell =='' or cell == "nan":
cell = 0
for note in frequencyTable:
if str(math.ceil(float(note[1]))) == str( cell) or str(math.floor(float(note[1]))) == str( cell):
#print(str(math.ceil(float(note[1]))) + " : " + str( cell))
cell = note[0]
row[index] =cell
data1[index1] = row
# read everything else into a list of rows
for index1, row in enumerate(data2):
# or cell == row[3] or cell == row[5] or cell == row[6] or cell == row[7]
for index, cell in enumerate(row):
if cell == row[1]:
pass
else:
if cell == "" or cell =='' or cell == "nan":
cell = 0
for note in frequencyTable:
if str(math.ceil(float(note[1]))) == str( cell) or str(math.floor(float(note[1]))) == str( cell):
#print(str(math.ceil(float(note[1]))) + " : " + str( cell))
cell = note[0]
row[index] =cell
data2[index1] = row
for index1, row in enumerate(data3):
# or cell == row[3] or cell == row[5] or cell == row[6] or cell == row[7]
for index, cell in enumerate(row):
if cell == row[1]:
pass
else:
if cell == "" or cell =='' or cell == "nan":
cell = 0
for note in frequencyTable:
if str(math.ceil(float(note[1]))) == str( cell) or str(math.floor(float(note[1]))) == str( cell):
#print(str(math.ceil(float(note[1]))) + " : " + str( cell))
cell = note[0]
row[index] =cell
data3[index1] = row
for index1, row in enumerate(data4):
# or cell == row[3] or cell == row[5] or cell == row[6] or cell == row[7]
for index, cell in enumerate(row):
if cell == "" or cell =='' or cell == "nan":
cell = 0
row[index] =cell
data4[index1] = row
readers.append(data1)
readers.append(data2)
readers.append(data3)
readers.append(data4)
#print(readers)
return readers
def make_table(val,uid,num_rows, num_cols):
data = [[j for j in range(num_cols)] for i in range(num_rows)]
data[0] = ["0" for _ in range(num_cols)]
for i in range(0, num_rows):
if uid == 4:
emptyrow = ["0","100"]
else:
emptyrow = ["C4","50"]
data[i] = emptyrow
val.append(data[i])
return data
def playThread(window):
oftr.stop_signal = False
oftr.play_csv_file("./temp.csv")
def save_csv(name,data):
with open(name, 'w', newline='', encoding='utf-8') as file:
# Create a CSV writer object
csv_writer = csv.DictWriter(file,quoting=csv.QUOTE_NONE,dialect="unix",fieldnames=header_list)
csv_writer.writeheader()
if isinstance(data, list):
for row in data:
for index, cell in enumerate(row):
if cell == "" or cell == "nan":
cell = 0
row[index] =(cell)
for note in frequencyTable:
if cell == note[0]:
cell = note[1]
row[index] =float(cell)
csv_writer.writerow({'Frequency1': row[0], 'Effect1': row[1], 'Frequency2': row[2], 'Effect2': row[3], 'Frequency3': row[4], 'Effect3': row[5], 'Noise': row[6], 'Duration': row[7]})
# Write multiple rows of data
else:
for row in data.values.tolist():
for index, cell in enumerate(row):
if cell == "" or cell == "nan":
cell = 0
row[index] =(cell)
for note in frequencyTable:
if cell == note[0]:
cell = note[1]
row[index] =float(cell)
csv_writer.writerow({'Frequency1': row[0], 'Effect1': row[1], 'Frequency2': row[2], 'Effect2': row[3], 'Frequency3': row[4], 'Effect3': row[5], 'Noise': row[6], 'Duration': row[7]})
# Write multiple rows of data
new_lines = re.compile('\n{2,9}')
with open(name) as f:
contents = f.read()
contents = re.sub(new_lines, '\n\n\n', contents.strip())
with open(name, 'w') as f:
f.write(contents)
def initButtons(window,state = True):
window["-SAVEEDITNEXT-"].update(disabled=state)
window["-NR-"].update(disabled=state)
window["-RR-"].update(disabled=state)
window["o1-"].update(disabled=state)
window["o2-"].update(disabled=state)
window["o3-"].update(disabled=state)
window["o1+"].update(disabled=state)
window["o2+"].update(disabled=state)
window["o3+"].update(disabled=state)
window["n1-"].update(disabled=state)
window["n2-"].update(disabled=state)
window["n3-"].update(disabled=state)
window["n1+"].update(disabled=state)
window["n2+"].update(disabled=state)
window["n3+"].update(disabled=state)
window["n"].update(disabled=state)
window["d"].update(disabled=state)
window["f1"].update(disabled=state)
window["e1"].update(disabled=state)
window["f2"].update(disabled=state)
window["e2"].update(disabled=state)
window["f3"].update(disabled=state)
window["e3"].update(disabled=state)
def changeButtonset1(window,state = False):
window["o1-"].update(disabled=state)
window["o1+"].update(disabled=state)
window["n1-"].update(disabled=state)
window["n1+"].update(disabled=state)
window["f1"].update(disabled=state)
window["e1"].update(disabled=state)
def changeButtonset2(window,state = False):
window["o2-"].update(disabled=state)
window["o2+"].update(disabled=state)
window["n2-"].update(disabled=state)
window["n2+"].update(disabled=state)
window["f2"].update(disabled=state)
window["e2"].update(disabled=state)
def changeButtonset3(window,state = False):
window["o3-"].update(disabled=state)
window["o3+"].update(disabled=state)
window["n3-"].update(disabled=state)
window["n3+"].update(disabled=state)
window["f3"].update(disabled=state)
window["e3"].update(disabled=state)
def changeButtonset4(window,state = False):
window["d"].update(disabled=state)
window["n"].update(disabled=state)
def main():
global canInit
canInit = True
global lastRow
lastRow = 0
global cur_row
cur_row = 0
global cur_col
cur_col = 0
global edit
global data_values
data_values = []
data_values1 = []
data_values2 = []
data_values3 = []
data_values4 = []
edit = False
data = make_table(data_values,0, num_rows=1, num_cols=2)
data1 = make_table(data_values1,1, num_rows=1, num_cols=2)
data2 = make_table(data_values2,2, num_rows=1, num_cols=2)
data3 = make_table(data_values3,3, num_rows=1, num_cols=2)
data4 = make_table(data_values4,4, num_rows=1, num_cols=2)
global header_list
header_list = ["Frequency1", "Effect1", "Frequency2", "Effect2", "Frequency3","Effect3", "Noise", "Duration"]
headers1 = [header_list[0],header_list[1]]
headers2 = [header_list[2],header_list[3]]
headers3 = [header_list[4],header_list[5]]
headers4 = [header_list[6],header_list[7]]
filename = "template.csv"
currentTable = 1
global BackgroundData
BackgroundData = []
for i in range(0, 1000):
BackgroundData.append([])
tab1_layout = [[sg.Table(values=data, headings=header_list, max_col_width=25,
auto_size_columns=True,
#display_row_numbers=True,
justification='right',
num_rows=20,
#alternating_row_color=sg.theme_button_color()[1],
key='-TABLE-',
selected_row_colors='red on yellow',
enable_events=True,
# select_mode=sg.TABLE_SELECT_MODE_BROWSE,
select_mode=sg.TABLE_SELECT_MODE_BROWSE,
expand_x=True,
expand_y=True,
visible=False,
#enable_click_events=True, # Comment out to not enable header and other clicks
),
sg.Table(values=data1, headings=headers1, max_col_width=25,
auto_size_columns=True,
display_row_numbers=True,
justification='right',
num_rows=20,
#alternating_row_color=sg.theme_button_color()[1],
key='-TABLE1-',
selected_row_colors='red on yellow',
enable_events=True,
# select_mode=sg.TABLE_SELECT_MODE_BROWSE,
select_mode=sg.TABLE_SELECT_MODE_BROWSE,
expand_x=True,
expand_y=True,
#enable_click_events=True, # Comment out to not enable header and other clicks
),
sg.Table(values=data2, headings=headers2, max_col_width=25,
auto_size_columns=True,
display_row_numbers=True,
justification='right',
num_rows=20,
#alternating_row_color=sg.theme_button_color()[1],
key='-TABLE2-',
selected_row_colors='red on yellow',
enable_events=True,
# select_mode=sg.TABLE_SELECT_MODE_BROWSE,
select_mode=sg.TABLE_SELECT_MODE_BROWSE,
expand_x=True,
expand_y=True,
#enable_click_events=True, # Comment out to not enable header and other clicks
),
sg.Table(values=data3, headings=headers3, max_col_width=25,
auto_size_columns=True,
display_row_numbers=True,
justification='right',
num_rows=20,
#alternating_row_color=sg.theme_button_color()[1],
key='-TABLE3-',
selected_row_colors='red on yellow',
enable_events=True,
# select_mode=sg.TABLE_SELECT_MODE_BROWSE,
select_mode=sg.TABLE_SELECT_MODE_BROWSE,
expand_x=True,
expand_y=True,
#enable_click_events=True, # Comment out to not enable header and other clicks
),
sg.Table(values=data4, headings=headers4, max_col_width=25,
auto_size_columns=True,
display_row_numbers=True,
justification='right',
num_rows=20,
#alternating_row_color=sg.theme_button_color()[1],
key='-TABLE4-',
selected_row_colors='red on yellow',
enable_events=True,
# select_mode=sg.TABLE_SELECT_MODE_BROWSE,
select_mode=sg.TABLE_SELECT_MODE_BROWSE,
expand_x=True,
expand_y=True,
#enable_click_events=True, # Comment out to not enable header and other clicks
)],
[sg.Text("Current Row: " + str(cur_row),key="-counter-"),sg.Text("Current Col: None",key="-countercol-")],
[sg.Text('Note 1', size =(15, 1)),sg.Button("O-",key="o1-",size=(2,1)),sg.Button("N-",key="n1-",size=(2,1)), sg.InputText(size =(3, 1),key="f1",default_text="C0"),sg.Button("N+",key="n1+",size=(2,1)),sg.Button("O+",key="o1+",size=(2,1)),sg.Text('Effect 1', size =(15, 1)), sg.InputText(size =(3, 1),key="e1",default_text="50")],
[sg.Text('Note 2', size =(15, 1)),sg.Button("O-",key="o2-",size=(2,1)), sg.Button("N-",key="n2-",size=(2,1)),sg.InputText(size =(3, 1),key="f2",default_text="C0"),sg.Button("N+",key="n2+",size=(2,1)),sg.Button("O+",key="o2+",size=(2,1)),sg.Text('Effect 2', size =(15, 1)), sg.InputText(size =(3, 1),key="e2",default_text="50")],
[sg.Text('Note 3', size =(15, 1)),sg.Button("O-",key="o3-",size=(2,1)),sg.Button("N-",key="n3-",size=(2,1)), sg.InputText(size =(3, 1),key="f3",default_text="C0"),sg.Button("N+",key="n3+",size=(2,1)),sg.Button("O+",key="o3+",size=(2,1)),sg.Text('Effect 3', size =(15, 1)), sg.InputText(size =(3, 1),key="e3",default_text="50")],
[sg.Text('Noise', size =(15, 1)), sg.InputText(size =(3, 1),key="n",default_text="0"),sg.Text('Duration', size =(15, 1)), sg.InputText(size =(3, 1),key="d",default_text="100")],
[sg.Button("Save Row",key="-SAVE-"),sg.Button("Save Row & Edit next",key="-SAVEEDITNEXT-"),sg.Checkbox("New Line on end?",key="nl")],
[sg.Button("Create new Row at last Position",key="-NR-",visible=False),sg.Button("Remove selected Row",key="-RR-",visible=False)],
[sg.Button("New File",key="-NF-"),sg.InputText(size =(16, 1),key="-sfname-",enable_events=False,default_text="unnamed.csv"),sg.Button("Save File",key="-SaF-"),sg.Button("Load File",key="-LF-"),sg.Button("Play File",key="-PF-"),sg.Button("Stop File",key="-StF-")]
]
tab2_layout = [[sg.Text('Tab 2')]]
tab3_layout = [[sg.Text('Tab 3')]]
tab4_layout = [[sg.Text('Tab 3')]]
# The TabgGroup layout - it must contain only Tabs
tab_group_layout = [[sg.Tab('Edit', tab1_layout, key='-TAB1-'),
sg.Tab('Samples', tab2_layout, key='-TAB2-'),
sg.Tab('Settings', tab3_layout, key='-TAB3-')]]
# The window layout - defines the entire window
layout = [[sg.TabGroup(tab_group_layout,
enable_events=True,
key='-TABGROUP-')]]
window = sg.Window('OffiMAKER - OffiTracker Editor', layout, grab_anywhere=False,size=(1020, 640))
event, values = window.read()
window.bind("<Alt_L><q>", "ALT-q")
initButtons(window,True)
row_colors = [(0, "yellow","dark red")]
window["-TABLE1-"].update(row_colors=row_colors)
window["-TABLE2-"].update(row_colors=row_colors)
window["-TABLE3-"].update(row_colors=row_colors)
window["-TABLE4-"].update(row_colors=row_colors)
BackgroundData[cur_row] = [window["-TABLE1-"].get()[cur_row],window["-TABLE2-"].get()[cur_row],window["-TABLE3-"].get()[cur_row],window["-TABLE4-"].get()[cur_row]]
def OctavePlus(window,field):
if window[field].get() == "":
window[field].update("C0")
for index, entry in enumerate(frequencyTable):
if window[field].get() == entry[0] and index+12 < len(frequencyTable):
window[field].update(frequencyTable[index+12][0])
return
elif window[field].get() == entry[1] and index+12 < len(frequencyTable):
window[field].update(frequencyTable[index+12][1])
return
def OctaveMinus(window,field):
if window[field].get() == "":
window[field].update("C0")
for index, entry in enumerate(frequencyTable):
if window[field].get() == entry[0] and index-12 >= 0:
window[field].update(frequencyTable[index-12][0])
return
elif window[field].get() == entry[1] and index-12 >= 0:
window[field].update(frequencyTable[index-12][1])
return
def NotePlus(window,field):
if window[field].get() == "":
window[field].update("C0")
for index, entry in enumerate(frequencyTable):
if window[field].get() == entry[0] and index+1 < len(frequencyTable):
window[field].update(frequencyTable[index+1][0])
return
elif window[field].get() == entry[1] and index+1 < len(frequencyTable):
window[field].update(frequencyTable[index+1][1])
return
def NoteMinus(window,field):
if window[field].get() == "":
window[field].update("C0")
for index, entry in enumerate(frequencyTable):
if window[field].get() == entry[0] and index-1 >= 0:
window[field].update(frequencyTable[index-1][0])
return
elif window[field].get() == entry[1] and index-1 >= 0:
window[field].update(frequencyTable[index-1][1])
return
while True:
event, values = window.read()
#sg.popup_non_blocking(event, values)
print(event,values)
if event == sg.WIN_CLOSED: # always, always give a way out!
break
elif event == '-TABGROUP-':
pass
elif event == '-TAB1-':
pass
elif event == 'nl':
pass
elif event == 'o1-':
OctaveMinus(window,"f1")
elif event == 'o2-':
OctaveMinus(window,"f2")
elif event == 'o3-':
OctaveMinus(window,"f3")
elif event == 'n1-':
NoteMinus(window,"f1")
elif event == 'n2-':
NoteMinus(window,"f2")
elif event == 'n3-':
NoteMinus(window,"f3")
elif event == 'o1+':
OctavePlus(window,"f1")
elif event == 'o2+':
OctavePlus(window,"f2")
elif event == 'o3+':
OctavePlus(window,"f3")
elif event == 'n1+':
NotePlus(window,"f1")
elif event == 'n2+':
NotePlus(window,"f2")
elif event == 'n3+':
NotePlus(window,"f3")
elif event == "-NF-":
ch = sg.popup_yes_no("Create new File and discard current changes?", title="New File?")
if ch == "Yes":
window["-TABLE1-"].update(make_table(data_values1,1, num_rows=1, num_cols=2))
window["-TABLE2-"].update(make_table(data_values2,2, num_rows=1, num_cols=2))
window["-TABLE3-"].update(make_table(data_values3,3, num_rows=1, num_cols=2))
window["-TABLE4-"].update(make_table(data_values4,4, num_rows=1, num_cols=2))
else:
pass
elif event == "-StF-":
oftr.stop_signal = True
elif event == "-SaF-":
ch = sg.popup_yes_no("Do you want to Save the File?", title="Save File?")
if ch == "Yes":
df1 = pd.DataFrame(window["-TABLE1-"].get(),columns=headers1)
df2 = pd.DataFrame(window["-TABLE2-"].get(),columns=headers2)
df3 = pd.DataFrame(window["-TABLE3-"].get(),columns=headers3)
df4 = pd.DataFrame(window["-TABLE4-"].get(),columns=headers4)
tosave = df1.join(df2).join(df3).join(df4)
print(tosave)
if window["-sfname-"].get() == "unnamed.csv":
ch2 = sg.popup_yes_no("Default Filename will be used. This could lead to data loss. Are you sure to save?", title="Default Filename will be used.")
if ch2 == "Yes":
save_csv(window["-sfname-"].get(),tosave)
else:
save_csv(window["-sfname-"].get(),tosave)
else:
pass
elif event == "-LF-":
#data_values = []
#openFile(window)
returned = openFile(window)
#print(returned)
if returned is not None:
for i in returned[0]:
data_values1.append(["", ""])
data_values2.append(["", ""])
data_values3.append(["", ""])
data_values4.append(["", ""])
for i in returned:
print("i:" + str(i))
print("\n\n")
BackgroundData[cur_row] = [i[0],i[1],i[3],i[4]]
window["-TABLE1-"].update(returned[0])
window["-TABLE2-"].update(returned[1])
window["-TABLE3-"].update(returned[2])
window["-TABLE4-"].update(returned[3])
elif event == "-PF-":
df1 = pd.DataFrame(window["-TABLE1-"].get(),columns=headers1)
df2 = pd.DataFrame(window["-TABLE2-"].get(),columns=headers2)
df3 = pd.DataFrame(window["-TABLE3-"].get(),columns=headers3)
df4 = pd.DataFrame(window["-TABLE4-"].get(),columns=headers4)
tosave = df1.join(df2).join(df3).join(df4)
save_csv("temp.csv",tosave)
window.start_thread(lambda: playThread(window), ('-THREAD-', '-THEAD ENDED-'))
elif event == '-THREAD-' or event == '-THEAD ENDED-':
pass
elif event == '-NR-':
# newData = window["-TABLE-"].get()
# newData.append(["C0", "50", "C0", "50", "C0", "50", "0","100"])
# data_values.append(["", "", "", "", "","", "", ""])
# window["-TABLE-"].update(newData)
pass
elif event == '-RR-':
try:
if cur_row != 0:
newData = window["-TABLE-"].get()
del newData[cur_row]
del data_values[cur_row]
window["-TABLE-"].update(newData)
else:
print("Dont remove last Row")
except Exception as e:
print (e)
elif event == '-TABLE1-':
try:
#if lastRow != 0:
# row_colors = [(lastRow, "yellow","dark red")]
# window["-TABLE"+ str(currentTable) + "-"].update(row_colors=row_colors)
if canInit == True:
initButtons(window,False)
canInit = False
print(values[event])
data_selected = [data_values1[row] for row in values[event]]
row = values[event]
if row:
changeButtonset1(window,False)
changeButtonset2(window,True)
changeButtonset3(window,True)
changeButtonset4(window,True)
lastRow = row
print(f'Selected row is {row}')
print(data_selected)
cur_row = row[0]
currentTable = 1
window["-counter-"].update("Current Row: " + str(cur_row))
window["-countercol-"].update("Current Col: Note/Frequency 1")
# window['-TABLE1-'].update(select_rows=(row))
window['-TABLE2-'].update(select_rows=())
window['-TABLE3-'].update(select_rows=())
window['-TABLE4-'].update(select_rows=())
print(f'Selected data is {BackgroundData[cur_row]}')
window["f1"].update(BackgroundData[cur_row][0][0])
window["e1"].update(BackgroundData[cur_row][0][1])
except Exception as e:
print (e)
elif event == '-TABLE2-':
try:
#if lastRow != 0:
# row_colors = [(lastRow, "yellow","dark red")]
# window["-TABLE"+ str(currentTable) + "-"].update(row_colors=row_colors)
if canInit == True:
initButtons(window,False)
canInit = False
print(values[event])
data_selected = [data_values2[row] for row in values[event]]
row = values[event]
print(row)
if row:
changeButtonset1(window,True)
changeButtonset2(window,False)
changeButtonset3(window,True)
changeButtonset4(window,True)
lastRow = row
print(f'Selected row is {row}')
print(data_selected)
cur_row = row[0]
currentTable = 2
window["-counter-"].update("Current Row: " + str(cur_row))
window["-countercol-"].update("Current Col: Note/Frequency 2")
window['-TABLE1-'].update(select_rows=())
# window['-TABLE2-'].update(select_rows=(row))
window['-TABLE3-'].update(select_rows=())
window['-TABLE4-'].update(select_rows=())
window["f2"].update(BackgroundData[cur_row][1][0])
window["e2"].update(BackgroundData[cur_row][1][1])
except Exception as e:
print (e)
elif event == '-TABLE3-':
try:
#if lastRow != 0:
# row_colors = [(lastRow, "yellow","dark red")]
# window["-TABLE"+ str(currentTable) + "-"].update(row_colors=row_colors)
if canInit == True:
initButtons(window,False)
canInit = False
print(values[event])
data_selected = [data_values3[row] for row in values[event]]
row = values[event]
print(row)
if row:
changeButtonset1(window,True)
changeButtonset2(window,True)
changeButtonset3(window,False)
changeButtonset4(window,True)
lastRow = row
print(f'Selected row is {row}')
print(data_selected)
cur_row = row[0]
currentTable = 3
window["-counter-"].update("Current Row: " + str(cur_row))
window["-countercol-"].update("Current Col: Note/Frequency 3")
window['-TABLE1-'].update(select_rows=())
window['-TABLE2-'].update(select_rows=())
# window['-TABLE3-'].update(select_rows=(row))
window['-TABLE4-'].update(select_rows=())
window["f3"].update(BackgroundData[cur_row][2][0])
window["e3"].update(BackgroundData[cur_row][2][1])
except Exception as e:
print (e)
elif event == '-TABLE4-':
try:
#if lastRow != 0:
#row_colors = [(lastRow, "yellow","dark red")]
#window["-TABLE"+ str(currentTable) + "-"].update(row_colors=row_colors)
if canInit == True:
initButtons(window,False)
canInit = False
print(values[event])
data_selected = [data_values4[row] for row in values[event]]
row = values[event]
print(row)
if row:
changeButtonset1(window,True)
changeButtonset2(window,True)
changeButtonset3(window,True)
changeButtonset4(window,False)
lastRow = row
print(f'Selected row is {row}')
print(data_selected)
cur_row = row[0]
currentTable = 4
window["-counter-"].update("Current Row: " + str(cur_row))
window["-countercol-"].update("Current Col: Noise/Duration")
window['-TABLE1-'].update(select_rows=())
window['-TABLE2-'].update(select_rows=())
window['-TABLE3-'].update(select_rows=())
# window['-TABLE4-'].update(select_rows=(row))
window["n"].update(BackgroundData[cur_row][3][0])
window["d"].update(BackgroundData[cur_row][3][1])
except Exception as e:
print (e)
elif event == '-TABLE-':
# print(values[event])
# data_selected = [data_values[row] for row in values[event]]
# row = values[event]
# print(row)
# if row:
# print(f'Selected row is {row}')
# print(data_selected)
# cur_row = row[0]
# window["-counter-"].update("Current Row: " + str(cur_row))
# window["f1"].update(data_selected[0][0])
# window["e1"].update(data_selected[0][1])
# window["f2"].update(data_selected[0][2])
# window["e2"].update(data_selected[0][3])
# window["f3"].update(data_selected[0][4])
# window["e3"].update(data_selected[0][5])
# window["n"].update(data_selected[0][6])
# window["d"].update(data_selected[0][7])
pass
elif event == '-SAVE-':
try:
if cur_row >= 0 and currentTable < 4:
newData = window["-TABLE"+ str(currentTable) + "-"].get()
#print(window["f1"].get())
newData[cur_row][0] = str(window["f"+ str(currentTable)].get())
newData[cur_row][1] = str(window["e"+ str(currentTable)].get())
print(newData)
window["-TABLE"+ str(currentTable) + "-"].update(newData)
#row_colors = [(cur_row+1, sg.theme_button_color()[1])]
#row_colors2 = [(cur_row, "yellow","dark red")]
#window["-TABLE"+ str(currentTable) + "-"].update(row_colors=row_colors)
#window["-TABLE"+ str(currentTable) + "-"].update(row_colors=row_colors2)
elif cur_row >= 0 and currentTable == 4:
newData = window["-TABLE"+ str(currentTable) + "-"].get()
#print(window["f1"].get())
newData[cur_row][0] = str(window["n"].get())
newData[cur_row][1] = str(window["d"].get())
window["-TABLE"+ str(currentTable) + "-"].update(newData)
#row_colors = [(cur_row+1, sg.theme_button_color()[1])]
#row_colors2 = [(cur_row, "yellow","dark red")]
#window["-TABLE"+ str(currentTable) + "-"].update(row_colors=row_colors)
#window["-TABLE"+ str(currentTable) + "-"].update(row_colors=row_colors2)
BackgroundData[cur_row] = [window["-TABLE1-"].get()[cur_row],window["-TABLE2-"].get()[cur_row],window["-TABLE3-"].get()[cur_row],window["-TABLE4-"].get()[cur_row]]
except Exception as e:
print(e)
#print(str(cur_row+1) + " : " + str(len(window["-TABLE-"].get())))
elif event == '-SAVEEDITNEXT-' or event == "ALT-q":
try:
if cur_row >= 0 and currentTable < 4:
newData = window["-TABLE"+ str(currentTable) + "-"].get()
#print(window["f1"].get())
newData[cur_row][0] = str(window["f"+ str(currentTable)].get())
newData[cur_row][1] = str(window["e"+ str(currentTable)].get())
window["-TABLE"+ str(currentTable) + "-"].update(newData)
row_colors = [(cur_row+1, sg.theme_button_color()[1])]
#row_colors2 = [(cur_row, "yellow","dark red")]
window["-TABLE"+ str(currentTable) + "-"].update(row_colors=row_colors)
#window["-TABLE"+ str(currentTable) + "-"].update(row_colors=row_colors2)
elif cur_row >= 0 and currentTable == 4:
newData = window["-TABLE"+ str(currentTable) + "-"].get()
#print(window["f1"].get())
newData[cur_row][0] = str(window["n"].get())
newData[cur_row][1] = str(window["d"].get())
window["-TABLE"+ str(currentTable) + "-"].update(newData)
row_colors = [(cur_row+1, sg.theme_button_color()[1])]
#row_colors2 = [(cur_row, "yellow","dark red")]
window["-TABLE"+ str(currentTable) + "-"].update(row_colors=row_colors)
#window["-TABLE"+ str(currentTable) + "-"].update(row_colors=row_colors2)
BackgroundData[cur_row] = [window["-TABLE1-"].get()[cur_row],window["-TABLE2-"].get()[cur_row],window["-TABLE3-"].get()[cur_row],window["-TABLE4-"].get()[cur_row]]
except Exception as e:
print(e)
#print(str(cur_row+1) + " : " + str(len(window["-TABLE-"].get())))
print(window["nl"].get())
if window["nl"].get() == True:
if cur_row+1 == len(window["-TABLE1-"].get()):
print("Made new Row")
newData1 = window["-TABLE1-"].get()
newData1.append(["", ""])
data_values1.append(["", ""])
window["-TABLE1-"].update(newData1)
newData2 = window["-TABLE2-"].get()
newData2.append(["", ""])
data_values2.append(["", ""])
window["-TABLE2-"].update(newData2)
newData3 = window["-TABLE3-"].get()
newData3.append(["", ""])
data_values3.append(["", ""])
window["-TABLE3-"].update(newData3)
newData4 = window["-TABLE4-"].get()
newData4.append(["", "100"])
data_values4.append(["", ""])
window["-TABLE4-"].update(newData4)
cur_row += 1
#window["-TABLE"+ str(currentTable) + "-"].update(select_rows=(cur_row))
row_colors = [(cur_row, sg.theme_button_color()[1])]
window["-TABLE"+ str(currentTable) + "-"].update(row_colors=row_colors)
BackgroundData[cur_row] = [window["-TABLE1-"].get()[cur_row],window["-TABLE2-"].get()[cur_row],window["-TABLE3-"].get()[cur_row],window["-TABLE4-"].get()[cur_row]]
window.close()
main()

383
demo1.csv Normal file
View File

@ -0,0 +1,383 @@
Frequency1,Effect1,Frequency2,Effect2,Frequency3,Effect3,Noise,Duration
293.66,60,146.83,30,0.0,0.0,0.0,165
293.66,51,73.42,30,0.0,0.0,0.0,165
293.66,60,146.83,30,0.0,0.0,0.0,165
293.66,47,73.42,30,0.0,0.0,0.0,165
329.63,60,146.83,30,0.0,0.0,0.0,165
329.63,60,73.42,30,0.0,0.0,0.0,165
349.23,60,146.83,30,0.0,0.0,0.0,165
349.23,56,73.42,30,0.0,0.0,0.0,165
233.08,49,116.54,30,0.0,0.0,0.0,165
233.08,47,58.27,30,0.0,0.0,0.0,165
261.63,60,116.54,30,0.0,0.0,0.0,165
293.66,49,58.27,30,0.0,0.0,0.0,165
293.66,48,116.54,30,0.0,0.0,0.0,165
293.66,49,58.27,30,0.0,0.0,0.0,165
329.63,55,116.54,30,0.0,0.0,0.0,165
329.63,42,58.27,30,0.0,0.0,0.0,165
349.23,51,174.61,30,0.0,0.0,0.0,165
349.23,59,87.31,30,0.0,0.0,0.0,165
349.23,58,174.61,30,0.0,0.0,0.0,165
349.23,59,87.31,30,0.0,0.0,0.0,165
440.0,40,174.61,30,0.0,0.0,0.0,165
440.0,57,87.31,30,0.0,0.0,0.0,165
349.23,55,174.61,30,0.0,0.0,0.0,165
349.23,60,87.31,30,0.0,0.0,0.0,165
392.0,44,130.81,30,0.0,0.0,0.0,165
392.0,57,65.41,30,0.0,0.0,0.0,165
349.23,51,130.81,30,0.0,0.0,0.0,165
329.63,55,65.41,30,0.0,0.0,0.0,165
329.63,58,130.81,30,0.0,0.0,0.0,165
329.63,60,65.41,30,0.0,0.0,0.0,165
349.23,58,130.81,30,0.0,0.0,0.0,165
349.23,43,65.41,30,0.0,0.0,0.0,165
293.66,56,146.83,30,0.0,0.0,0.0,165
293.66,52,73.42,30,0.0,0.0,0.0,165
293.66,60,146.83,30,0.0,0.0,0.0,165
293.66,55,73.42,30,0.0,0.0,0.0,165
329.63,60,146.83,30,0.0,0.0,0.0,165
329.63,60,73.42,30,0.0,0.0,0.0,165
349.23,54,146.83,30,0.0,0.0,0.0,165
349.23,60,73.42,30,0.0,0.0,0.0,165
392.0,60,116.54,30,0.0,0.0,0.0,165
392.0,55,58.27,30,0.0,0.0,0.0,165
349.23,46,116.54,30,0.0,0.0,0.0,165
329.63,60,58.27,30,0.0,0.0,0.0,165
329.63,50,116.54,30,0.0,0.0,0.0,165
329.63,55,58.27,30,0.0,0.0,0.0,165
392.0,43,116.54,30,0.0,0.0,0.0,165
392.0,52,58.27,30,0.0,0.0,0.0,165
349.23,50,87.31,30,0.0,0.0,0.0,165
349.23,42,43.65,30,0.0,0.0,0.0,165
349.23,48,87.31,30,0.0,0.0,0.0,165
349.23,56,43.65,30,0.0,0.0,0.0,165
440.0,51,87.31,30,0.0,0.0,0.0,165
440.0,60,43.65,30,0.0,0.0,0.0,165
349.23,41,87.31,30,0.0,0.0,0.0,165
349.23,57,43.65,30,0.0,0.0,0.0,165
392.0,43,130.81,30,0.0,0.0,0.0,165
392.0,48,65.41,30,0.0,0.0,0.0,165
349.23,41,130.81,30,0.0,0.0,0.0,165
392.0,40,65.41,30,0.0,0.0,0.0,165
392.0,54,130.81,30,0.0,0.0,0.0,165
392.0,59,65.41,30,0.0,0.0,0.0,165
440.0,60,130.81,30,0.0,0.0,0.0,165
440.0,58,65.41,30,0.0,0.0,0.0,165
293.66,45,146.83,30,0.0,0.0,0.0,165
293.66,54,73.42,30,0.0,0.0,0.0,165
293.66,60,146.83,30,0.0,0.0,0.0,165
293.66,55,73.42,30,0.0,0.0,0.0,165
329.63,60,146.83,30,0.0,0.0,0.0,165
329.63,45,73.42,30,0.0,0.0,0.0,165
349.23,60,146.83,30,0.0,0.0,0.0,165
349.23,53,73.42,30,0.0,0.0,0.0,165
233.08,41,116.54,30,0.0,0.0,0.0,165
233.08,60,58.27,30,0.0,0.0,0.0,165
261.63,60,116.54,30,0.0,0.0,0.0,165
293.66,57,58.27,30,0.0,0.0,0.0,165
293.66,49,116.54,30,0.0,0.0,0.0,165
293.66,53,58.27,30,0.0,0.0,0.0,165
329.63,60,116.54,30,0.0,0.0,0.0,165
329.63,40,58.27,30,0.0,0.0,0.0,165
349.23,46,174.61,30,0.0,0.0,0.0,165
349.23,42,87.31,30,0.0,0.0,0.0,165
349.23,60,174.61,30,0.0,0.0,0.0,165
349.23,59,87.31,30,0.0,0.0,0.0,165
440.0,60,174.61,30,0.0,0.0,0.0,165
440.0,50,87.31,30,0.0,0.0,0.0,165
349.23,53,174.61,30,0.0,0.0,0.0,165
349.23,60,87.31,30,0.0,0.0,0.0,165
392.0,52,130.81,30,0.0,0.0,0.0,165
392.0,49,65.41,30,0.0,0.0,0.0,165
349.23,60,130.81,30,0.0,0.0,0.0,165
329.63,60,65.41,30,0.0,0.0,0.0,165
329.63,47,130.81,30,0.0,0.0,0.0,165
329.63,60,65.41,30,0.0,0.0,0.0,165
349.23,45,130.81,30,0.0,0.0,0.0,165
349.23,55,65.41,30,0.0,0.0,0.0,165
293.66,42,146.83,30,0.0,0.0,0.0,165
293.66,45,73.42,30,0.0,0.0,0.0,165
293.66,60,146.83,30,0.0,0.0,0.0,165
293.66,60,73.42,30,0.0,0.0,0.0,165
329.63,52,146.83,30,0.0,0.0,0.0,165
329.63,59,73.42,30,0.0,0.0,0.0,165
349.23,43,146.83,30,0.0,0.0,0.0,165
349.23,60,73.42,30,0.0,0.0,0.0,165
392.0,60,116.54,30,0.0,0.0,0.0,165
392.0,60,58.27,30,0.0,0.0,0.0,165
349.23,60,116.54,30,0.0,0.0,0.0,165
329.63,60,58.27,30,0.0,0.0,0.0,165
329.63,60,116.54,30,0.0,0.0,0.0,165
329.63,60,58.27,30,0.0,0.0,0.0,165
392.0,45,116.54,30,0.0,0.0,0.0,165
392.0,43,58.27,30,0.0,0.0,0.0,165
349.23,42,87.31,30,0.0,0.0,0.0,165
349.23,41,43.65,30,0.0,0.0,0.0,165
349.23,60,87.31,30,0.0,0.0,0.0,165
349.23,60,43.65,30,0.0,0.0,0.0,165
440.0,51,87.31,30,0.0,0.0,0.0,165
440.0,53,43.65,30,0.0,0.0,0.0,165
349.23,45,87.31,30,0.0,0.0,0.0,165
349.23,42,43.65,30,0.0,0.0,0.0,165
392.0,60,130.81,30,0.0,0.0,0.0,165
392.0,40,65.41,30,0.0,0.0,0.0,165
349.23,60,130.81,30,0.0,0.0,0.0,165
392.0,46,65.41,30,0.0,0.0,0.0,165
392.0,60,130.81,30,0.0,0.0,0.0,165
392.0,53,65.41,30,0.0,0.0,0.0,165
392.0,41,130.81,30,0.0,0.0,0.0,165
392.0,46,65.41,30,0.0,0.0,0.0,165
587.33,58,146.83,30,0.0,0.0,0.0,165
587.33,51,73.42,30,0.0,0.0,0.0,165
587.33,48,146.83,30,0.0,0.0,0.0,165
587.33,55,73.42,30,0.0,0.0,0.0,165
659.25,60,146.83,30,0.0,0.0,0.0,165
659.25,60,73.42,30,0.0,0.0,0.0,165
698.46,49,146.83,30,0.0,0.0,0.0,165
698.46,57,73.42,30,0.0,0.0,0.0,165
1046.5,48,116.54,30,0.0,0.0,0.0,165
1046.5,45,58.27,30,0.0,0.0,0.0,165
1046.5,52,116.54,30,0.0,0.0,0.0,165
1046.5,54,58.27,30,0.0,0.0,0.0,165
783.99,60,116.54,30,0.0,0.0,0.0,165
783.99,51,58.27,30,0.0,0.0,0.0,165
783.99,60,116.54,30,0.0,0.0,0.0,165
783.99,60,58.27,30,0.0,0.0,0.0,165
698.46,42,174.61,30,0.0,0.0,0.0,165
698.46,43,87.31,30,0.0,0.0,0.0,165
783.99,42,174.61,30,0.0,0.0,0.0,165
783.99,51,87.31,30,0.0,0.0,0.0,165
880.0,47,174.61,30,0.0,0.0,0.0,165
880.0,60,87.31,30,0.0,0.0,0.0,165
783.99,60,174.61,30,0.0,0.0,0.0,165
698.46,52,87.31,30,0.0,0.0,0.0,165
783.99,60,130.81,30,0.0,0.0,0.0,165
783.99,59,65.41,30,0.0,0.0,0.0,165
698.46,60,130.81,30,0.0,0.0,0.0,165
659.25,60,65.41,30,0.0,0.0,0.0,165
659.25,49,130.81,30,0.0,0.0,0.0,165
659.25,60,65.41,30,0.0,0.0,0.0,165
523.25,40,130.81,30,0.0,0.0,0.0,165
523.25,60,65.41,30,0.0,0.0,0.0,165
587.33,48,146.83,30,0.0,0.0,0.0,165
587.33,44,73.42,30,0.0,0.0,0.0,165
587.33,43,146.83,30,0.0,0.0,0.0,165
587.33,48,73.42,30,0.0,0.0,0.0,165
659.25,54,146.83,30,0.0,0.0,0.0,165
659.25,56,73.42,30,0.0,0.0,0.0,165
698.46,48,146.83,30,0.0,0.0,0.0,165
698.46,57,73.42,30,0.0,0.0,0.0,165
587.33,43,116.54,30,0.0,0.0,0.0,165
587.33,43,58.27,30,0.0,0.0,0.0,165
587.33,60,116.54,30,0.0,0.0,0.0,165
587.33,42,58.27,30,0.0,0.0,0.0,165
523.25,60,116.54,30,0.0,0.0,0.0,165
523.25,60,58.27,30,0.0,0.0,0.0,165
523.25,48,116.54,30,0.0,0.0,0.0,165
523.25,58,58.27,30,0.0,0.0,0.0,165
880.0,60,87.31,30,0.0,0.0,0.0,165
880.0,49,43.65,30,0.0,0.0,0.0,165
783.99,47,87.31,30,0.0,0.0,0.0,165
783.99,55,43.65,30,0.0,0.0,0.0,165
698.46,55,87.31,30,0.0,0.0,0.0,165
698.46,45,43.65,30,0.0,0.0,0.0,165
659.25,42,87.31,30,0.0,0.0,0.0,165
698.46,60,43.65,30,0.0,0.0,0.0,165
783.99,60,130.81,30,0.0,0.0,0.0,165
783.99,49,65.41,30,0.0,0.0,0.0,165
698.46,58,130.81,30,0.0,0.0,0.0,165
659.25,40,65.41,30,0.0,0.0,0.0,165
659.25,53,130.81,30,0.0,0.0,0.0,165
659.25,49,65.41,30,0.0,0.0,0.0,165
698.46,58,130.81,30,0.0,0.0,0.0,165
698.46,50,65.41,30,0.0,0.0,0.0,165
587.33,42,146.83,30,0.0,0.0,0.0,165
587.33,60,73.42,30,0.0,0.0,0.0,165
587.33,43,146.83,30,0.0,0.0,0.0,165
587.33,55,73.42,30,0.0,0.0,0.0,165
659.25,41,146.83,30,0.0,0.0,0.0,165
659.25,60,73.42,30,0.0,0.0,0.0,165
698.46,55,146.83,30,0.0,0.0,0.0,165
698.46,60,73.42,30,0.0,0.0,0.0,165
1046.5,43,116.54,30,0.0,0.0,0.0,165
1046.5,41,58.27,30,0.0,0.0,0.0,165
1046.5,58,116.54,30,0.0,0.0,0.0,165
1046.5,56,58.27,30,0.0,0.0,0.0,165
783.99,45,116.54,30,0.0,0.0,0.0,165
783.99,51,58.27,30,0.0,0.0,0.0,165
783.99,42,116.54,30,0.0,0.0,0.0,165
783.99,55,58.27,30,0.0,0.0,0.0,165
698.46,58,174.61,30,0.0,0.0,0.0,165
698.46,43,87.31,30,0.0,0.0,0.0,165
783.99,43,174.61,30,0.0,0.0,0.0,165
783.99,60,87.31,30,0.0,0.0,0.0,165
880.0,60,174.61,30,0.0,0.0,0.0,165
880.0,60,87.31,30,0.0,0.0,0.0,165
783.99,59,174.61,30,0.0,0.0,0.0,165
698.46,60,87.31,30,0.0,0.0,0.0,165
783.99,60,130.81,30,0.0,0.0,0.0,165
783.99,60,65.41,30,0.0,0.0,0.0,165
698.46,60,130.81,30,0.0,0.0,0.0,165
659.25,60,65.41,30,0.0,0.0,0.0,165
659.25,40,130.81,30,0.0,0.0,0.0,165
659.25,58,65.41,30,0.0,0.0,0.0,165
523.25,60,130.81,30,0.0,0.0,0.0,165
523.25,53,65.41,30,0.0,0.0,0.0,165
587.33,55,146.83,30,0.0,0.0,0.0,165
587.33,60,73.42,30,0.0,0.0,0.0,165
587.33,60,146.83,30,0.0,0.0,0.0,165
587.33,48,73.42,30,0.0,0.0,0.0,165
659.25,46,146.83,30,0.0,0.0,0.0,165
659.25,52,73.42,30,0.0,0.0,0.0,165
698.46,60,146.83,30,0.0,0.0,0.0,165
698.46,60,73.42,30,0.0,0.0,0.0,165
587.33,57,116.54,30,0.0,0.0,0.0,165
587.33,48,58.27,30,0.0,0.0,0.0,165
587.33,60,116.54,30,0.0,0.0,0.0,165
587.33,60,58.27,30,0.0,0.0,0.0,165
523.25,60,116.54,30,0.0,0.0,0.0,165
523.25,40,58.27,30,0.0,0.0,0.0,165
523.25,46,116.54,30,0.0,0.0,0.0,165
523.25,51,58.27,30,0.0,0.0,0.0,165
880.0,60,87.31,30,0.0,0.0,0.0,165
880.0,53,43.65,30,0.0,0.0,0.0,165
783.99,54,87.31,30,0.0,0.0,0.0,165
783.99,60,43.65,30,0.0,0.0,0.0,165
698.46,45,87.31,30,0.0,0.0,0.0,165
698.46,43,43.65,30,0.0,0.0,0.0,165
659.25,50,87.31,30,0.0,0.0,0.0,165
698.46,60,43.65,30,0.0,0.0,0.0,165
783.99,53,130.81,30,0.0,0.0,0.0,165
783.99,60,65.41,30,0.0,0.0,0.0,165
698.46,60,130.81,30,0.0,0.0,0.0,165
659.25,53,65.41,30,0.0,0.0,0.0,165
659.25,47,130.81,30,0.0,0.0,0.0,165
659.25,50,65.41,30,0.0,0.0,0.0,165
659.25,60,130.81,30,0.0,0.0,0.0,165
659.25,60,65.41,30,0.0,0.0,0.0,165
587.33,60,146.83,30,0.0,0.0,0.0,165
587.33,60,73.42,30,0.0,0.0,0.0,165
587.33,60,146.83,30,0.0,0.0,0.0,165
587.33,48,73.42,30,0.0,0.0,0.0,165
698.46,60,146.83,30,0.0,0.0,0.0,165
698.46,60,73.42,30,0.0,0.0,0.0,165
783.99,56,146.83,30,0.0,0.0,0.0,165
783.99,52,73.42,30,0.0,0.0,0.0,165
880.0,60,116.54,30,0.0,0.0,0.0,165
880.0,60,58.27,30,0.0,0.0,0.0,165
698.46,47,116.54,30,0.0,0.0,0.0,165
698.46,52,58.27,30,0.0,0.0,0.0,165
698.46,45,116.54,30,0.0,0.0,0.0,165
698.46,60,58.27,30,0.0,0.0,0.0,165
783.99,44,116.54,30,0.0,0.0,0.0,165
698.46,60,58.27,30,0.0,0.0,0.0,165
659.25,44,174.61,30,0.0,0.0,0.0,165
659.25,44,87.31,30,0.0,0.0,0.0,165
698.46,58,174.61,30,0.0,0.0,0.0,165
783.99,52,87.31,30,0.0,0.0,0.0,165
783.99,41,174.61,30,0.0,0.0,0.0,165
659.25,58,87.31,30,0.0,0.0,0.0,165
659.25,44,174.61,30,0.0,0.0,0.0,165
659.25,60,87.31,30,0.0,0.0,0.0,165
783.99,60,130.81,30,0.0,0.0,0.0,165
783.99,59,65.41,30,0.0,0.0,0.0,165
698.46,49,130.81,30,0.0,0.0,0.0,165
659.25,49,65.41,30,0.0,0.0,0.0,165
659.25,60,130.81,30,0.0,0.0,0.0,165
659.25,60,65.41,30,0.0,0.0,0.0,165
523.25,60,130.81,30,0.0,0.0,0.0,165
523.25,60,65.41,30,0.0,0.0,0.0,165
587.33,55,146.83,30,0.0,0.0,0.0,165
587.33,45,73.42,30,0.0,0.0,0.0,165
587.33,55,146.83,30,0.0,0.0,0.0,165
587.33,59,73.42,30,0.0,0.0,0.0,165
698.46,59,146.83,30,0.0,0.0,0.0,165
698.46,60,73.42,30,0.0,0.0,0.0,165
783.99,56,146.83,30,0.0,0.0,0.0,165
783.99,60,73.42,30,0.0,0.0,0.0,165
880.0,60,116.54,30,0.0,0.0,0.0,165
880.0,43,58.27,30,0.0,0.0,0.0,165
698.46,48,116.54,30,0.0,0.0,0.0,165
880.0,48,58.27,30,0.0,0.0,0.0,165
880.0,60,116.54,30,0.0,0.0,0.0,165
880.0,60,58.27,30,0.0,0.0,0.0,165
932.33,60,116.54,30,0.0,0.0,0.0,165
880.0,60,58.27,30,0.0,0.0,0.0,165
1046.5,59,87.31,30,0.0,0.0,0.0,165
1046.5,56,43.65,30,0.0,0.0,0.0,165
698.46,57,87.31,30,0.0,0.0,0.0,165
783.99,46,43.65,30,0.0,0.0,0.0,165
783.99,50,87.31,30,0.0,0.0,0.0,165
659.25,60,43.65,30,0.0,0.0,0.0,165
659.25,41,87.31,30,0.0,0.0,0.0,165
659.25,53,43.65,30,0.0,0.0,0.0,165
783.99,60,130.81,30,0.0,0.0,0.0,165
783.99,54,65.41,30,0.0,0.0,0.0,165
698.46,55,130.81,30,0.0,0.0,0.0,165
659.25,41,65.41,30,0.0,0.0,0.0,165
659.25,42,130.81,30,0.0,0.0,0.0,165
659.25,48,65.41,30,0.0,0.0,0.0,165
698.46,41,130.81,30,0.0,0.0,0.0,165
698.46,51,65.41,30,0.0,0.0,0.0,165
587.33,41,146.83,30,0.0,0.0,0.0,165
587.33,60,73.42,30,0.0,0.0,0.0,165
587.33,58,146.83,30,0.0,0.0,0.0,165
587.33,40,73.42,30,0.0,0.0,0.0,165
698.46,51,146.83,30,0.0,0.0,0.0,165
698.46,60,73.42,30,0.0,0.0,0.0,165
783.99,57,146.83,30,0.0,0.0,0.0,165
783.99,49,73.42,30,0.0,0.0,0.0,165
880.0,60,116.54,30,0.0,0.0,0.0,165
880.0,55,58.27,30,0.0,0.0,0.0,165
698.46,60,116.54,30,0.0,0.0,0.0,165
698.46,44,58.27,30,0.0,0.0,0.0,165
698.46,60,116.54,30,0.0,0.0,0.0,165
698.46,40,58.27,30,0.0,0.0,0.0,165
783.99,50,116.54,30,0.0,0.0,0.0,165
698.46,44,58.27,30,0.0,0.0,0.0,165
659.25,51,174.61,30,0.0,0.0,0.0,165
659.25,48,87.31,30,0.0,0.0,0.0,165
698.46,40,174.61,30,0.0,0.0,0.0,165
783.99,60,87.31,30,0.0,0.0,0.0,165
0,60,174.61,30,0.0,0.0,0.0,165
659.25,60,87.31,30,0.0,0.0,0.0,165
0,60,174.61,30,0.0,0.0,0.0,165
783.99,60,87.31,30,0.0,0.0,0.0,165
783.99,60,130.81,30,0.0,0.0,0.0,165
698.46,51,65.41,30,0.0,0.0,0.0,165
659.25,47,130.81,30,0.0,0.0,0.0,165
659.25,60,65.41,30,0.0,0.0,0.0,165
659.25,53,130.81,30,0.0,0.0,0.0,165
523.25,46,65.41,30,0.0,0.0,0.0,165
523.25,60,130.81,30,0.0,0.0,0.0,165
587.33,56,65.41,30,0.0,0.0,0.0,165
587.33,43,146.83,30,0.0,0.0,0.0,165
587.33,53,73.42,30,0.0,0.0,0.0,165
587.33,42,146.83,30,0.0,0.0,0.0,165
698.46,48,73.42,30,0.0,0.0,0.0,165
698.46,54,146.83,30,0.0,0.0,0.0,165
783.99,60,73.42,30,0.0,0.0,0.0,165
783.99,60,146.83,30,0.0,0.0,0.0,165
880.0,42,73.42,30,0.0,0.0,0.0,165
880.0,44,116.54,30,0.0,0.0,0.0,165
698.46,57,58.27,30,0.0,0.0,0.0,165
880.0,60,116.54,30,0.0,0.0,0.0,165
880.0,60,58.27,30,0.0,0.0,0.0,165
880.0,60,116.54,30,0.0,0.0,0.0,165
932.33,53,58.27,30,0.0,0.0,0.0,165
880.0,59,116.54,30,0.0,0.0,0.0,165
1046.5,42,58.27,30,0.0,0.0,0.0,165
1046.5,48,87.31,30,0.0,0.0,0.0,165
698.46,43,43.65,30,0.0,0.0,0.0,165
783.99,45,87.31,30,0.0,0.0,0.0,165
0,60,43.65,30,0.0,0.0,0.0,165
659.25,60,87.31,30,0.0,0.0,0.0,165
0,44,43.65,30,0.0,0.0,0.0,165
783.99,54,87.31,30,0.0,0.0,0.0,165
783.99,43,43.65,30,0.0,0.0,0.0,165
698.46,48,130.81,30,0.0,0.0,0.0,165
659.25,60,65.41,30,0.0,0.0,0.0,165
659.25,43,130.81,30,0.0,0.0,0.0,165
659.25,60,65.41,30,0.0,0.0,0.0,165
659.25,42,130.81,30,0.0,0.0,0.0,165
659.25,43,65.41,30,0.0,0.0,0.0,165
1 Frequency1 Effect1 Frequency2 Effect2 Frequency3 Effect3 Noise Duration
2 293.66 60 146.83 30 0.0 0.0 0.0 165
3 293.66 51 73.42 30 0.0 0.0 0.0 165
4 293.66 60 146.83 30 0.0 0.0 0.0 165
5 293.66 47 73.42 30 0.0 0.0 0.0 165
6 329.63 60 146.83 30 0.0 0.0 0.0 165
7 329.63 60 73.42 30 0.0 0.0 0.0 165
8 349.23 60 146.83 30 0.0 0.0 0.0 165
9 349.23 56 73.42 30 0.0 0.0 0.0 165
10 233.08 49 116.54 30 0.0 0.0 0.0 165
11 233.08 47 58.27 30 0.0 0.0 0.0 165
12 261.63 60 116.54 30 0.0 0.0 0.0 165
13 293.66 49 58.27 30 0.0 0.0 0.0 165
14 293.66 48 116.54 30 0.0 0.0 0.0 165
15 293.66 49 58.27 30 0.0 0.0 0.0 165
16 329.63 55 116.54 30 0.0 0.0 0.0 165
17 329.63 42 58.27 30 0.0 0.0 0.0 165
18 349.23 51 174.61 30 0.0 0.0 0.0 165
19 349.23 59 87.31 30 0.0 0.0 0.0 165
20 349.23 58 174.61 30 0.0 0.0 0.0 165
21 349.23 59 87.31 30 0.0 0.0 0.0 165
22 440.0 40 174.61 30 0.0 0.0 0.0 165
23 440.0 57 87.31 30 0.0 0.0 0.0 165
24 349.23 55 174.61 30 0.0 0.0 0.0 165
25 349.23 60 87.31 30 0.0 0.0 0.0 165
26 392.0 44 130.81 30 0.0 0.0 0.0 165
27 392.0 57 65.41 30 0.0 0.0 0.0 165
28 349.23 51 130.81 30 0.0 0.0 0.0 165
29 329.63 55 65.41 30 0.0 0.0 0.0 165
30 329.63 58 130.81 30 0.0 0.0 0.0 165
31 329.63 60 65.41 30 0.0 0.0 0.0 165
32 349.23 58 130.81 30 0.0 0.0 0.0 165
33 349.23 43 65.41 30 0.0 0.0 0.0 165
34 293.66 56 146.83 30 0.0 0.0 0.0 165
35 293.66 52 73.42 30 0.0 0.0 0.0 165
36 293.66 60 146.83 30 0.0 0.0 0.0 165
37 293.66 55 73.42 30 0.0 0.0 0.0 165
38 329.63 60 146.83 30 0.0 0.0 0.0 165
39 329.63 60 73.42 30 0.0 0.0 0.0 165
40 349.23 54 146.83 30 0.0 0.0 0.0 165
41 349.23 60 73.42 30 0.0 0.0 0.0 165
42 392.0 60 116.54 30 0.0 0.0 0.0 165
43 392.0 55 58.27 30 0.0 0.0 0.0 165
44 349.23 46 116.54 30 0.0 0.0 0.0 165
45 329.63 60 58.27 30 0.0 0.0 0.0 165
46 329.63 50 116.54 30 0.0 0.0 0.0 165
47 329.63 55 58.27 30 0.0 0.0 0.0 165
48 392.0 43 116.54 30 0.0 0.0 0.0 165
49 392.0 52 58.27 30 0.0 0.0 0.0 165
50 349.23 50 87.31 30 0.0 0.0 0.0 165
51 349.23 42 43.65 30 0.0 0.0 0.0 165
52 349.23 48 87.31 30 0.0 0.0 0.0 165
53 349.23 56 43.65 30 0.0 0.0 0.0 165
54 440.0 51 87.31 30 0.0 0.0 0.0 165
55 440.0 60 43.65 30 0.0 0.0 0.0 165
56 349.23 41 87.31 30 0.0 0.0 0.0 165
57 349.23 57 43.65 30 0.0 0.0 0.0 165
58 392.0 43 130.81 30 0.0 0.0 0.0 165
59 392.0 48 65.41 30 0.0 0.0 0.0 165
60 349.23 41 130.81 30 0.0 0.0 0.0 165
61 392.0 40 65.41 30 0.0 0.0 0.0 165
62 392.0 54 130.81 30 0.0 0.0 0.0 165
63 392.0 59 65.41 30 0.0 0.0 0.0 165
64 440.0 60 130.81 30 0.0 0.0 0.0 165
65 440.0 58 65.41 30 0.0 0.0 0.0 165
66 293.66 45 146.83 30 0.0 0.0 0.0 165
67 293.66 54 73.42 30 0.0 0.0 0.0 165
68 293.66 60 146.83 30 0.0 0.0 0.0 165
69 293.66 55 73.42 30 0.0 0.0 0.0 165
70 329.63 60 146.83 30 0.0 0.0 0.0 165
71 329.63 45 73.42 30 0.0 0.0 0.0 165
72 349.23 60 146.83 30 0.0 0.0 0.0 165
73 349.23 53 73.42 30 0.0 0.0 0.0 165
74 233.08 41 116.54 30 0.0 0.0 0.0 165
75 233.08 60 58.27 30 0.0 0.0 0.0 165
76 261.63 60 116.54 30 0.0 0.0 0.0 165
77 293.66 57 58.27 30 0.0 0.0 0.0 165
78 293.66 49 116.54 30 0.0 0.0 0.0 165
79 293.66 53 58.27 30 0.0 0.0 0.0 165
80 329.63 60 116.54 30 0.0 0.0 0.0 165
81 329.63 40 58.27 30 0.0 0.0 0.0 165
82 349.23 46 174.61 30 0.0 0.0 0.0 165
83 349.23 42 87.31 30 0.0 0.0 0.0 165
84 349.23 60 174.61 30 0.0 0.0 0.0 165
85 349.23 59 87.31 30 0.0 0.0 0.0 165
86 440.0 60 174.61 30 0.0 0.0 0.0 165
87 440.0 50 87.31 30 0.0 0.0 0.0 165
88 349.23 53 174.61 30 0.0 0.0 0.0 165
89 349.23 60 87.31 30 0.0 0.0 0.0 165
90 392.0 52 130.81 30 0.0 0.0 0.0 165
91 392.0 49 65.41 30 0.0 0.0 0.0 165
92 349.23 60 130.81 30 0.0 0.0 0.0 165
93 329.63 60 65.41 30 0.0 0.0 0.0 165
94 329.63 47 130.81 30 0.0 0.0 0.0 165
95 329.63 60 65.41 30 0.0 0.0 0.0 165
96 349.23 45 130.81 30 0.0 0.0 0.0 165
97 349.23 55 65.41 30 0.0 0.0 0.0 165
98 293.66 42 146.83 30 0.0 0.0 0.0 165
99 293.66 45 73.42 30 0.0 0.0 0.0 165
100 293.66 60 146.83 30 0.0 0.0 0.0 165
101 293.66 60 73.42 30 0.0 0.0 0.0 165
102 329.63 52 146.83 30 0.0 0.0 0.0 165
103 329.63 59 73.42 30 0.0 0.0 0.0 165
104 349.23 43 146.83 30 0.0 0.0 0.0 165
105 349.23 60 73.42 30 0.0 0.0 0.0 165
106 392.0 60 116.54 30 0.0 0.0 0.0 165
107 392.0 60 58.27 30 0.0 0.0 0.0 165
108 349.23 60 116.54 30 0.0 0.0 0.0 165
109 329.63 60 58.27 30 0.0 0.0 0.0 165
110 329.63 60 116.54 30 0.0 0.0 0.0 165
111 329.63 60 58.27 30 0.0 0.0 0.0 165
112 392.0 45 116.54 30 0.0 0.0 0.0 165
113 392.0 43 58.27 30 0.0 0.0 0.0 165
114 349.23 42 87.31 30 0.0 0.0 0.0 165
115 349.23 41 43.65 30 0.0 0.0 0.0 165
116 349.23 60 87.31 30 0.0 0.0 0.0 165
117 349.23 60 43.65 30 0.0 0.0 0.0 165
118 440.0 51 87.31 30 0.0 0.0 0.0 165
119 440.0 53 43.65 30 0.0 0.0 0.0 165
120 349.23 45 87.31 30 0.0 0.0 0.0 165
121 349.23 42 43.65 30 0.0 0.0 0.0 165
122 392.0 60 130.81 30 0.0 0.0 0.0 165
123 392.0 40 65.41 30 0.0 0.0 0.0 165
124 349.23 60 130.81 30 0.0 0.0 0.0 165
125 392.0 46 65.41 30 0.0 0.0 0.0 165
126 392.0 60 130.81 30 0.0 0.0 0.0 165
127 392.0 53 65.41 30 0.0 0.0 0.0 165
128 392.0 41 130.81 30 0.0 0.0 0.0 165
129 392.0 46 65.41 30 0.0 0.0 0.0 165
130 587.33 58 146.83 30 0.0 0.0 0.0 165
131 587.33 51 73.42 30 0.0 0.0 0.0 165
132 587.33 48 146.83 30 0.0 0.0 0.0 165
133 587.33 55 73.42 30 0.0 0.0 0.0 165
134 659.25 60 146.83 30 0.0 0.0 0.0 165
135 659.25 60 73.42 30 0.0 0.0 0.0 165
136 698.46 49 146.83 30 0.0 0.0 0.0 165
137 698.46 57 73.42 30 0.0 0.0 0.0 165
138 1046.5 48 116.54 30 0.0 0.0 0.0 165
139 1046.5 45 58.27 30 0.0 0.0 0.0 165
140 1046.5 52 116.54 30 0.0 0.0 0.0 165
141 1046.5 54 58.27 30 0.0 0.0 0.0 165
142 783.99 60 116.54 30 0.0 0.0 0.0 165
143 783.99 51 58.27 30 0.0 0.0 0.0 165
144 783.99 60 116.54 30 0.0 0.0 0.0 165
145 783.99 60 58.27 30 0.0 0.0 0.0 165
146 698.46 42 174.61 30 0.0 0.0 0.0 165
147 698.46 43 87.31 30 0.0 0.0 0.0 165
148 783.99 42 174.61 30 0.0 0.0 0.0 165
149 783.99 51 87.31 30 0.0 0.0 0.0 165
150 880.0 47 174.61 30 0.0 0.0 0.0 165
151 880.0 60 87.31 30 0.0 0.0 0.0 165
152 783.99 60 174.61 30 0.0 0.0 0.0 165
153 698.46 52 87.31 30 0.0 0.0 0.0 165
154 783.99 60 130.81 30 0.0 0.0 0.0 165
155 783.99 59 65.41 30 0.0 0.0 0.0 165
156 698.46 60 130.81 30 0.0 0.0 0.0 165
157 659.25 60 65.41 30 0.0 0.0 0.0 165
158 659.25 49 130.81 30 0.0 0.0 0.0 165
159 659.25 60 65.41 30 0.0 0.0 0.0 165
160 523.25 40 130.81 30 0.0 0.0 0.0 165
161 523.25 60 65.41 30 0.0 0.0 0.0 165
162 587.33 48 146.83 30 0.0 0.0 0.0 165
163 587.33 44 73.42 30 0.0 0.0 0.0 165
164 587.33 43 146.83 30 0.0 0.0 0.0 165
165 587.33 48 73.42 30 0.0 0.0 0.0 165
166 659.25 54 146.83 30 0.0 0.0 0.0 165
167 659.25 56 73.42 30 0.0 0.0 0.0 165
168 698.46 48 146.83 30 0.0 0.0 0.0 165
169 698.46 57 73.42 30 0.0 0.0 0.0 165
170 587.33 43 116.54 30 0.0 0.0 0.0 165
171 587.33 43 58.27 30 0.0 0.0 0.0 165
172 587.33 60 116.54 30 0.0 0.0 0.0 165
173 587.33 42 58.27 30 0.0 0.0 0.0 165
174 523.25 60 116.54 30 0.0 0.0 0.0 165
175 523.25 60 58.27 30 0.0 0.0 0.0 165
176 523.25 48 116.54 30 0.0 0.0 0.0 165
177 523.25 58 58.27 30 0.0 0.0 0.0 165
178 880.0 60 87.31 30 0.0 0.0 0.0 165
179 880.0 49 43.65 30 0.0 0.0 0.0 165
180 783.99 47 87.31 30 0.0 0.0 0.0 165
181 783.99 55 43.65 30 0.0 0.0 0.0 165
182 698.46 55 87.31 30 0.0 0.0 0.0 165
183 698.46 45 43.65 30 0.0 0.0 0.0 165
184 659.25 42 87.31 30 0.0 0.0 0.0 165
185 698.46 60 43.65 30 0.0 0.0 0.0 165
186 783.99 60 130.81 30 0.0 0.0 0.0 165
187 783.99 49 65.41 30 0.0 0.0 0.0 165
188 698.46 58 130.81 30 0.0 0.0 0.0 165
189 659.25 40 65.41 30 0.0 0.0 0.0 165
190 659.25 53 130.81 30 0.0 0.0 0.0 165
191 659.25 49 65.41 30 0.0 0.0 0.0 165
192 698.46 58 130.81 30 0.0 0.0 0.0 165
193 698.46 50 65.41 30 0.0 0.0 0.0 165
194 587.33 42 146.83 30 0.0 0.0 0.0 165
195 587.33 60 73.42 30 0.0 0.0 0.0 165
196 587.33 43 146.83 30 0.0 0.0 0.0 165
197 587.33 55 73.42 30 0.0 0.0 0.0 165
198 659.25 41 146.83 30 0.0 0.0 0.0 165
199 659.25 60 73.42 30 0.0 0.0 0.0 165
200 698.46 55 146.83 30 0.0 0.0 0.0 165
201 698.46 60 73.42 30 0.0 0.0 0.0 165
202 1046.5 43 116.54 30 0.0 0.0 0.0 165
203 1046.5 41 58.27 30 0.0 0.0 0.0 165
204 1046.5 58 116.54 30 0.0 0.0 0.0 165
205 1046.5 56 58.27 30 0.0 0.0 0.0 165
206 783.99 45 116.54 30 0.0 0.0 0.0 165
207 783.99 51 58.27 30 0.0 0.0 0.0 165
208 783.99 42 116.54 30 0.0 0.0 0.0 165
209 783.99 55 58.27 30 0.0 0.0 0.0 165
210 698.46 58 174.61 30 0.0 0.0 0.0 165
211 698.46 43 87.31 30 0.0 0.0 0.0 165
212 783.99 43 174.61 30 0.0 0.0 0.0 165
213 783.99 60 87.31 30 0.0 0.0 0.0 165
214 880.0 60 174.61 30 0.0 0.0 0.0 165
215 880.0 60 87.31 30 0.0 0.0 0.0 165
216 783.99 59 174.61 30 0.0 0.0 0.0 165
217 698.46 60 87.31 30 0.0 0.0 0.0 165
218 783.99 60 130.81 30 0.0 0.0 0.0 165
219 783.99 60 65.41 30 0.0 0.0 0.0 165
220 698.46 60 130.81 30 0.0 0.0 0.0 165
221 659.25 60 65.41 30 0.0 0.0 0.0 165
222 659.25 40 130.81 30 0.0 0.0 0.0 165
223 659.25 58 65.41 30 0.0 0.0 0.0 165
224 523.25 60 130.81 30 0.0 0.0 0.0 165
225 523.25 53 65.41 30 0.0 0.0 0.0 165
226 587.33 55 146.83 30 0.0 0.0 0.0 165
227 587.33 60 73.42 30 0.0 0.0 0.0 165
228 587.33 60 146.83 30 0.0 0.0 0.0 165
229 587.33 48 73.42 30 0.0 0.0 0.0 165
230 659.25 46 146.83 30 0.0 0.0 0.0 165
231 659.25 52 73.42 30 0.0 0.0 0.0 165
232 698.46 60 146.83 30 0.0 0.0 0.0 165
233 698.46 60 73.42 30 0.0 0.0 0.0 165
234 587.33 57 116.54 30 0.0 0.0 0.0 165
235 587.33 48 58.27 30 0.0 0.0 0.0 165
236 587.33 60 116.54 30 0.0 0.0 0.0 165
237 587.33 60 58.27 30 0.0 0.0 0.0 165
238 523.25 60 116.54 30 0.0 0.0 0.0 165
239 523.25 40 58.27 30 0.0 0.0 0.0 165
240 523.25 46 116.54 30 0.0 0.0 0.0 165
241 523.25 51 58.27 30 0.0 0.0 0.0 165
242 880.0 60 87.31 30 0.0 0.0 0.0 165
243 880.0 53 43.65 30 0.0 0.0 0.0 165
244 783.99 54 87.31 30 0.0 0.0 0.0 165
245 783.99 60 43.65 30 0.0 0.0 0.0 165
246 698.46 45 87.31 30 0.0 0.0 0.0 165
247 698.46 43 43.65 30 0.0 0.0 0.0 165
248 659.25 50 87.31 30 0.0 0.0 0.0 165
249 698.46 60 43.65 30 0.0 0.0 0.0 165
250 783.99 53 130.81 30 0.0 0.0 0.0 165
251 783.99 60 65.41 30 0.0 0.0 0.0 165
252 698.46 60 130.81 30 0.0 0.0 0.0 165
253 659.25 53 65.41 30 0.0 0.0 0.0 165
254 659.25 47 130.81 30 0.0 0.0 0.0 165
255 659.25 50 65.41 30 0.0 0.0 0.0 165
256 659.25 60 130.81 30 0.0 0.0 0.0 165
257 659.25 60 65.41 30 0.0 0.0 0.0 165
258 587.33 60 146.83 30 0.0 0.0 0.0 165
259 587.33 60 73.42 30 0.0 0.0 0.0 165
260 587.33 60 146.83 30 0.0 0.0 0.0 165
261 587.33 48 73.42 30 0.0 0.0 0.0 165
262 698.46 60 146.83 30 0.0 0.0 0.0 165
263 698.46 60 73.42 30 0.0 0.0 0.0 165
264 783.99 56 146.83 30 0.0 0.0 0.0 165
265 783.99 52 73.42 30 0.0 0.0 0.0 165
266 880.0 60 116.54 30 0.0 0.0 0.0 165
267 880.0 60 58.27 30 0.0 0.0 0.0 165
268 698.46 47 116.54 30 0.0 0.0 0.0 165
269 698.46 52 58.27 30 0.0 0.0 0.0 165
270 698.46 45 116.54 30 0.0 0.0 0.0 165
271 698.46 60 58.27 30 0.0 0.0 0.0 165
272 783.99 44 116.54 30 0.0 0.0 0.0 165
273 698.46 60 58.27 30 0.0 0.0 0.0 165
274 659.25 44 174.61 30 0.0 0.0 0.0 165
275 659.25 44 87.31 30 0.0 0.0 0.0 165
276 698.46 58 174.61 30 0.0 0.0 0.0 165
277 783.99 52 87.31 30 0.0 0.0 0.0 165
278 783.99 41 174.61 30 0.0 0.0 0.0 165
279 659.25 58 87.31 30 0.0 0.0 0.0 165
280 659.25 44 174.61 30 0.0 0.0 0.0 165
281 659.25 60 87.31 30 0.0 0.0 0.0 165
282 783.99 60 130.81 30 0.0 0.0 0.0 165
283 783.99 59 65.41 30 0.0 0.0 0.0 165
284 698.46 49 130.81 30 0.0 0.0 0.0 165
285 659.25 49 65.41 30 0.0 0.0 0.0 165
286 659.25 60 130.81 30 0.0 0.0 0.0 165
287 659.25 60 65.41 30 0.0 0.0 0.0 165
288 523.25 60 130.81 30 0.0 0.0 0.0 165
289 523.25 60 65.41 30 0.0 0.0 0.0 165
290 587.33 55 146.83 30 0.0 0.0 0.0 165
291 587.33 45 73.42 30 0.0 0.0 0.0 165
292 587.33 55 146.83 30 0.0 0.0 0.0 165
293 587.33 59 73.42 30 0.0 0.0 0.0 165
294 698.46 59 146.83 30 0.0 0.0 0.0 165
295 698.46 60 73.42 30 0.0 0.0 0.0 165
296 783.99 56 146.83 30 0.0 0.0 0.0 165
297 783.99 60 73.42 30 0.0 0.0 0.0 165
298 880.0 60 116.54 30 0.0 0.0 0.0 165
299 880.0 43 58.27 30 0.0 0.0 0.0 165
300 698.46 48 116.54 30 0.0 0.0 0.0 165
301 880.0 48 58.27 30 0.0 0.0 0.0 165
302 880.0 60 116.54 30 0.0 0.0 0.0 165
303 880.0 60 58.27 30 0.0 0.0 0.0 165
304 932.33 60 116.54 30 0.0 0.0 0.0 165
305 880.0 60 58.27 30 0.0 0.0 0.0 165
306 1046.5 59 87.31 30 0.0 0.0 0.0 165
307 1046.5 56 43.65 30 0.0 0.0 0.0 165
308 698.46 57 87.31 30 0.0 0.0 0.0 165
309 783.99 46 43.65 30 0.0 0.0 0.0 165
310 783.99 50 87.31 30 0.0 0.0 0.0 165
311 659.25 60 43.65 30 0.0 0.0 0.0 165
312 659.25 41 87.31 30 0.0 0.0 0.0 165
313 659.25 53 43.65 30 0.0 0.0 0.0 165
314 783.99 60 130.81 30 0.0 0.0 0.0 165
315 783.99 54 65.41 30 0.0 0.0 0.0 165
316 698.46 55 130.81 30 0.0 0.0 0.0 165
317 659.25 41 65.41 30 0.0 0.0 0.0 165
318 659.25 42 130.81 30 0.0 0.0 0.0 165
319 659.25 48 65.41 30 0.0 0.0 0.0 165
320 698.46 41 130.81 30 0.0 0.0 0.0 165
321 698.46 51 65.41 30 0.0 0.0 0.0 165
322 587.33 41 146.83 30 0.0 0.0 0.0 165
323 587.33 60 73.42 30 0.0 0.0 0.0 165
324 587.33 58 146.83 30 0.0 0.0 0.0 165
325 587.33 40 73.42 30 0.0 0.0 0.0 165
326 698.46 51 146.83 30 0.0 0.0 0.0 165
327 698.46 60 73.42 30 0.0 0.0 0.0 165
328 783.99 57 146.83 30 0.0 0.0 0.0 165
329 783.99 49 73.42 30 0.0 0.0 0.0 165
330 880.0 60 116.54 30 0.0 0.0 0.0 165
331 880.0 55 58.27 30 0.0 0.0 0.0 165
332 698.46 60 116.54 30 0.0 0.0 0.0 165
333 698.46 44 58.27 30 0.0 0.0 0.0 165
334 698.46 60 116.54 30 0.0 0.0 0.0 165
335 698.46 40 58.27 30 0.0 0.0 0.0 165
336 783.99 50 116.54 30 0.0 0.0 0.0 165
337 698.46 44 58.27 30 0.0 0.0 0.0 165
338 659.25 51 174.61 30 0.0 0.0 0.0 165
339 659.25 48 87.31 30 0.0 0.0 0.0 165
340 698.46 40 174.61 30 0.0 0.0 0.0 165
341 783.99 60 87.31 30 0.0 0.0 0.0 165
342 0 60 174.61 30 0.0 0.0 0.0 165
343 659.25 60 87.31 30 0.0 0.0 0.0 165
344 0 60 174.61 30 0.0 0.0 0.0 165
345 783.99 60 87.31 30 0.0 0.0 0.0 165
346 783.99 60 130.81 30 0.0 0.0 0.0 165
347 698.46 51 65.41 30 0.0 0.0 0.0 165
348 659.25 47 130.81 30 0.0 0.0 0.0 165
349 659.25 60 65.41 30 0.0 0.0 0.0 165
350 659.25 53 130.81 30 0.0 0.0 0.0 165
351 523.25 46 65.41 30 0.0 0.0 0.0 165
352 523.25 60 130.81 30 0.0 0.0 0.0 165
353 587.33 56 65.41 30 0.0 0.0 0.0 165
354 587.33 43 146.83 30 0.0 0.0 0.0 165
355 587.33 53 73.42 30 0.0 0.0 0.0 165
356 587.33 42 146.83 30 0.0 0.0 0.0 165
357 698.46 48 73.42 30 0.0 0.0 0.0 165
358 698.46 54 146.83 30 0.0 0.0 0.0 165
359 783.99 60 73.42 30 0.0 0.0 0.0 165
360 783.99 60 146.83 30 0.0 0.0 0.0 165
361 880.0 42 73.42 30 0.0 0.0 0.0 165
362 880.0 44 116.54 30 0.0 0.0 0.0 165
363 698.46 57 58.27 30 0.0 0.0 0.0 165
364 880.0 60 116.54 30 0.0 0.0 0.0 165
365 880.0 60 58.27 30 0.0 0.0 0.0 165
366 880.0 60 116.54 30 0.0 0.0 0.0 165
367 932.33 53 58.27 30 0.0 0.0 0.0 165
368 880.0 59 116.54 30 0.0 0.0 0.0 165
369 1046.5 42 58.27 30 0.0 0.0 0.0 165
370 1046.5 48 87.31 30 0.0 0.0 0.0 165
371 698.46 43 43.65 30 0.0 0.0 0.0 165
372 783.99 45 87.31 30 0.0 0.0 0.0 165
373 0 60 43.65 30 0.0 0.0 0.0 165
374 659.25 60 87.31 30 0.0 0.0 0.0 165
375 0 44 43.65 30 0.0 0.0 0.0 165
376 783.99 54 87.31 30 0.0 0.0 0.0 165
377 783.99 43 43.65 30 0.0 0.0 0.0 165
378 698.46 48 130.81 30 0.0 0.0 0.0 165
379 659.25 60 65.41 30 0.0 0.0 0.0 165
380 659.25 43 130.81 30 0.0 0.0 0.0 165
381 659.25 60 65.41 30 0.0 0.0 0.0 165
382 659.25 42 130.81 30 0.0 0.0 0.0 165
383 659.25 43 65.41 30 0.0 0.0 0.0 165

1
drums/drum1.txt Normal file

File diff suppressed because one or more lines are too long

BIN
drums/drum1.wav Normal file

Binary file not shown.

1
drums/drum2.txt Normal file

File diff suppressed because one or more lines are too long

BIN
drums/drum2.wav Normal file

Binary file not shown.

1
drums/drum3.txt Normal file
View File

@ -0,0 +1 @@
[0.0, 1.9921875, 0.0, 1.9921875, 0.0, 1.9921875, 1.9921875, 0.0, 1.9921875, 0.0, 1.9921875, 1.9921875, 0.0, 1.9921875, 0.0, 1.9921875, 1.9921875, 0.0, 1.9921875, 0.0, 1.9921875, 0.0, 1.9921875, 0.0, 0.0, 1.9921875, 0.0, 1.9921875, 0.0, 1.9921875, 0.0, 1.9921875, 0.0, 1.9921875, 0.0, 1.9921875, 0.0, 1.9921875, 0.0, 0.0, 0.0, 1.9921875, 0.0, 1.9921875, 0.0, 1.9921875, 0.0, 0.0, 0.0, 0.0, 1.9921875, 0.0, 1.9921875, 0.0, 1.9921875, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.9921875, 0.0, 1.9921875, 0.0, 1.9921875, 0.0, 0.0, 1.9921875, 1.4296875, 1.421875, 1.421875, 1.421875, 1.421875, 1.4375, 0.9921875, 0.9921875, 0.9921875, 0.9921875, 0.984375, 0.984375, 0.984375, 0.984375, 0.9765625, 0.9765625, 0.9765625, 0.96875, 0.96875, 0.96875, 0.9609375, 0.9609375, 0.9609375, 0.9609375, 0.9609375, 0.9609375, 0.9609375, 0.9609375, 0.9609375, 0.9609375, 0.9609375, 0.9609375, 0.953125, 0.953125, 0.9453125, 0.9453125, 0.9453125, 0.9375, 0.9375, 0.9375, 0.9296875, 0.921875, 0.921875, 0.921875, 0.90625, 0.90625, 0.90625, 0.8984375, 0.8984375, 0.8984375, 0.8984375, 0.8984375, 0.8984375, 0.8984375, 0.8984375, 0.8984375, 0.8984375, 0.8984375, 0.8984375, 0.8984375, 0.8984375, 0.8984375, 0.8984375, 0.8984375, 0.890625, 0.890625, 0.8828125, 0.8828125, 0.875, 0.875, 0.8671875, 0.8671875, 0.859375, 0.859375, 0.859375, 0.859375, 0.859375, 0.859375, 0.8515625, 0.8515625, 0.8515625, 0.8515625, 0.8515625, 0.8515625, 0.8515625, 0.8515625, 0.84375, 0.84375, 0.8359375, 0.828125, 0.8203125, 0.8203125, 0.8125, 0.8125, 0.8046875, 0.796875, 0.796875, 0.7890625, 0.78125, 0.7734375, 0.765625, 0.75, 0.7421875, 0.734375, 0.7265625, 0.71875, 0.7109375, 0.6953125, 0.6875, 0.671875, 0.6640625, 0.65625, 0.640625, 0.6328125, 0.6171875, 0.609375, 0.59375, 0.578125, 0.5625, 0.546875, 0.5390625, 0.53125, 0.5078125, 0.4921875, 0.484375, 0.4765625, 0.46875, 0.453125, 0.4375, 0.421875, 0.40625, 0.390625, 0.3828125, 0.375, 0.3671875, 0.3515625, 0.34375, 0.328125, 0.3203125, 0.3125, 0.296875, 0.2890625, 0.2734375, 0.265625, 0.25, 0.2421875, 0.2265625, 0.21875, 0.203125, 0.1953125, 0.1875, 0.171875, 0.1640625, 0.1484375, 0.140625, 0.1328125, 0.125, 0.1015625, 0.0859375, 0.078125, 0.078125, 0.0703125, 0.0546875, 0.046875, 0.03125, 0.015625, 0.015625, 0.0078125, 1.9921875, 0.0, 1.9921875, 0.0, 0.0, 1.9921875, 0.0, 1.9921875, 0.0, 1.9921875, 0.0, 1.9921875, 0.0, 1.9921875, 0.0, 1.9921875, 0.0, 1.9921875, 0.0, 1.9921875, 1.9921875, 0.0, 1.9921875, 0.0, 1.9921875, 0.0, 0.0, 0.0, 1.9921875, 0.0, 1.9921875, 0.0, 1.9921875, 0.0, 0.0, 1.9921875, 0.0, 0.0, 1.9921875, 0.0, 1.9921875, 0.0, 0.0, 1.9921875, 0.0, 0.0, 1.9921875, 0.0, 1.9921875, 0.0, 1.9921875, 0.0, 1.9921875, 0.0, 1.9921875, 0.0, 0.0, 1.9921875, 0.0, 1.9921875, 0.0, 1.9921875, 0.0, 1.9921875, 0.0, 1.9921875, 0.0, 1.9921875, 0.0, 0.0, 0.0, 1.9921875, 0.0, 1.9921875, 0.0, 1.9921875, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.9921875, 0.0, 1.9921875, 0.0, 1.9921875, 0.0, 0.0, 1.9921875, 0.0, 1.9921875, 0.0, 1.9921875, 0.0, 1.9921875, 0.0, 1.9921875, 0.0, 0.0, 1.9921875, 0.0, 0.0, 1.9921875, 0.0, 0.0, 1.9921875, 0.0, 1.9921875, 0.0, 0.0, 1.9921875, 0.0, 1.9921875, 0.0, 1.9921875, 0.0, 1.9921875, 0.0, 0.0, 1.9921875, 0.0, 0.0, 1.9921875, 0.0, 1.9921875, 0.0, 1.9921875, 0.0, 0.0, 0.0, 1.9921875, 0.0, 1.9921875, 0.0, 1.9921875, 0.0, 0.0, 1.9921875, 0.0, 1.9921875, 0.0, 1.9921875, 0.0, 1.9921875, 0.0, 1.9921875, 0.0, 1.9921875, 0.0, 1.9921875, 0.0, 0.0, 1.9921875, 0.0, 0.0, 1.9921875, 0.0, 1.9921875, 0.0, 1.9921875, 0.0, 1.9921875, 0.0, 0.0, 0.0, 0.0, 1.9921875, 0.0, 1.9921875, 0.0, 0.0, 1.9921875, 0.0, 1.9921875, 0.0, 0.0, 1.9921875, 0.0, 0.0, 1.9921875, 0.0, 0.0, 1.9921875, 0.0, 1.9921875, 0.0, 1.9921875, 0.0, 0.0, 1.9921875, 0.0, 1.9921875, 0.0, 0.0, 1.9921875, 0.0, 1.9921875, 0.0, 0.0, 1.9921875]

BIN
drums/drum3.wav Normal file

Binary file not shown.

1
drums/drum4.txt Normal file

File diff suppressed because one or more lines are too long

BIN
drums/drum4.wav Normal file

Binary file not shown.

1
drums/drum5.txt Normal file

File diff suppressed because one or more lines are too long

BIN
drums/drum5.wav Normal file

Binary file not shown.

64
drums/wav2drumtxt.py Normal file
View File

@ -0,0 +1,64 @@
import os
import wave
import numpy as np
def save_noise_data(file_path, noise_data):
try:
with open(file_path, 'w') as file:
file.write(str(noise_data.tolist()))
print(f"Noise data saved to {file_path}")
except Exception as e:
print(f"Error saving noise data to {file_path}: {e}")
def extract_noise_data(file_path, duration_ms=100, sample_rate=44100):
try:
with wave.open(file_path, 'rb') as wav_file:
num_channels = wav_file.getnchannels()
sample_width = wav_file.getsampwidth()
frame_rate = wav_file.getframerate()
total_frames = wav_file.getnframes()
if num_channels > 1:
print("Input file must be mono (single channel).")
return
# Adjust for 8-bit audio
if sample_width == 1:
dtype = np.uint8
elif sample_width == 2:
dtype = np.int16
else:
print("Unsupported sample width.")
return
# Use the minimum of specified duration and actual duration of the file
duration_secs = min(duration_ms / 1000.0, total_frames / frame_rate)
num_frames = int(duration_secs * frame_rate)
signal = np.frombuffer(wav_file.readframes(num_frames), dtype=dtype)
# Normalize the signal for 8-bit audio
if sample_width == 1:
signal = (signal - 128) / 128.0
return signal
except Exception as e:
print(f"Error: {e}")
return None
def main():
directory_path = input("Enter the path to the directory containing WAV files (press Enter for current directory): ").strip() or '.'
duration_ms = float(input("Enter the maximum duration in milliseconds: "))
for file_name in os.listdir(directory_path):
if file_name.endswith(".wav"):
input_wave_file = os.path.join(directory_path, file_name)
output_noise_data = extract_noise_data(input_wave_file, duration_ms)
if output_noise_data is not None:
output_file_name = os.path.splitext(file_name)[0] + ".txt"
save_noise_data(output_file_name, output_noise_data)
if __name__ == "__main__":
main()