Inicial
This commit is contained in:
1 parent
57c10131f5
commit
9da7f3347b
166 files changed
+24550
-23101
No files matched your search
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,55 @@
|
||||
import xml.etree.ElementTree as ET
|
||||
|
||||
def parse_instrument(instrumenttrack_element):
|
||||
instrument_info = {}
|
||||
|
||||
# Atributos básicos do <instrumenttrack>
|
||||
instrument_info['instrumenttrack'] = {
|
||||
'pitch': instrumenttrack_element.attrib.get('pitch', 'N/A'),
|
||||
'pan': instrumenttrack_element.attrib.get('pan', 'N/A'),
|
||||
'pitchrange': instrumenttrack_element.attrib.get('pitchrange', 'N/A'),
|
||||
'basenote': instrumenttrack_element.attrib.get('basenote', 'N/A'),
|
||||
'vol': instrumenttrack_element.attrib.get('vol', 'N/A'),
|
||||
'fxch': instrumenttrack_element.attrib.get('fxch', 'N/A'),
|
||||
'usemasterpitch': instrumenttrack_element.attrib.get('usemasterpitch', 'N/A')
|
||||
}
|
||||
|
||||
# Instrumento
|
||||
instrument = instrumenttrack_element.find('.//instrument')
|
||||
if instrument is not None:
|
||||
instrument_name = instrument.attrib.get('name', 'N/A')
|
||||
instrument_info['plugin_name'] = instrument_name
|
||||
|
||||
plugin_name = instrument_name.lower()
|
||||
plugin_element = instrument.find(f'.//{plugin_name}')
|
||||
if plugin_element is not None:
|
||||
instrument_info[plugin_name] = {
|
||||
key: value for key, value in plugin_element.attrib.items()
|
||||
}
|
||||
|
||||
# Dados de <eldata> e seus filhos
|
||||
eldata = instrumenttrack_element.find('.//eldata')
|
||||
if eldata is not None:
|
||||
instrument_info['eldata'] = {
|
||||
'fwet': eldata.attrib.get('fwet', 'N/A'),
|
||||
'ftype': eldata.attrib.get('ftype', 'N/A'),
|
||||
'fcut': eldata.attrib.get('fcut', 'N/A'),
|
||||
'fres': eldata.attrib.get('fres', 'N/A')
|
||||
}
|
||||
|
||||
for el in ['elvol', 'elcut', 'elres']:
|
||||
el_element = eldata.find(f'.//{el}')
|
||||
if el_element is not None:
|
||||
instrument_info[el] = {
|
||||
key: value for key, value in el_element.attrib.items()
|
||||
}
|
||||
|
||||
# Componentes auxiliares
|
||||
for tag in ['chordcreator', 'arpeggiator', 'midiport', 'fxchain']:
|
||||
tag_element = instrumenttrack_element.find(f'.//{tag}')
|
||||
if tag_element is not None:
|
||||
instrument_info[tag] = {
|
||||
key: value for key, value in tag_element.attrib.items()
|
||||
}
|
||||
|
||||
return instrument_info
|
||||
@@ -0,0 +1,59 @@
|
||||
import xml.etree.ElementTree as ET
|
||||
|
||||
def parse_instrument(instrumenttrack_element):
|
||||
instrument_info = {}
|
||||
|
||||
# Atributos básicos do <instrumenttrack>
|
||||
instrument_info['instrumenttrack'] = {
|
||||
'pitch': instrumenttrack_element.attrib.get('pitch', 'N/A'),
|
||||
'pan': instrumenttrack_element.attrib.get('pan', 'N/A'),
|
||||
'pitchrange': instrumenttrack_element.attrib.get('pitchrange', 'N/A'),
|
||||
'basenote': instrumenttrack_element.attrib.get('basenote', 'N/A'),
|
||||
'vol': instrumenttrack_element.attrib.get('vol', 'N/A'),
|
||||
'fxch': instrumenttrack_element.attrib.get('fxch', 'N/A'),
|
||||
'usemasterpitch': instrumenttrack_element.attrib.get('usemasterpitch', 'N/A')
|
||||
}
|
||||
|
||||
# Instrumento
|
||||
instrument = instrumenttrack_element.find('.//instrument')
|
||||
if instrument is not None:
|
||||
instrument_name = instrument.attrib.get('name', 'N/A')
|
||||
instrument_info['instrument_name'] = instrument_name
|
||||
|
||||
# Verificando e processando o plugin "bitinvader"
|
||||
if instrument_name.lower() == "bitinvader":
|
||||
bitinvader = instrument.find('.//bitinvader')
|
||||
if bitinvader is not None:
|
||||
instrument_info['bitinvader'] = {}
|
||||
|
||||
# Extraindo todos os atributos do bitinvader
|
||||
for key, value in bitinvader.attrib.items():
|
||||
instrument_info['bitinvader'][key] = value
|
||||
|
||||
# Dados de <eldata> e seus filhos
|
||||
eldata = instrumenttrack_element.find('.//eldata')
|
||||
if eldata is not None:
|
||||
instrument_info['eldata'] = {
|
||||
'fwet': eldata.attrib.get('fwet', 'N/A'),
|
||||
'ftype': eldata.attrib.get('ftype', 'N/A'),
|
||||
'fcut': eldata.attrib.get('fcut', 'N/A'),
|
||||
'fres': eldata.attrib.get('fres', 'N/A')
|
||||
}
|
||||
|
||||
# Extraindo dados dos elementos <elvol>, <elcut>, <elres>
|
||||
for el in ['elvol', 'elcut', 'elres']:
|
||||
el_element = eldata.find(f'.//{el}')
|
||||
if el_element is not None:
|
||||
instrument_info[el] = {}
|
||||
for key, value in el_element.attrib.items():
|
||||
instrument_info[el][key] = value
|
||||
|
||||
# Componentes auxiliares
|
||||
for tag in ['chordcreator', 'arpeggiator', 'midiport', 'fxchain']:
|
||||
tag_element = instrumenttrack_element.find(f'.//{tag}')
|
||||
if tag_element is not None:
|
||||
instrument_info[tag] = {}
|
||||
for key, value in tag_element.attrib.items():
|
||||
instrument_info[tag][key] = value
|
||||
|
||||
return instrument_info
|
||||
@@ -0,0 +1,76 @@
|
||||
import xml.etree.ElementTree as ET
|
||||
|
||||
def parse_instrument(instrumenttrack_element):
|
||||
instrument_info = {}
|
||||
|
||||
# Atributos básicos do <instrumenttrack>
|
||||
instrument_info['instrumenttrack'] = {
|
||||
'pitch': instrumenttrack_element.attrib.get('pitch', 'N/A'),
|
||||
'pan': instrumenttrack_element.attrib.get('pan', 'N/A'),
|
||||
'pitchrange': instrumenttrack_element.attrib.get('pitchrange', 'N/A'),
|
||||
'basenote': instrumenttrack_element.attrib.get('basenote', 'N/A'),
|
||||
'vol': instrumenttrack_element.attrib.get('vol', 'N/A'),
|
||||
'fxch': instrumenttrack_element.attrib.get('fxch', 'N/A'),
|
||||
'usemasterpitch': instrumenttrack_element.attrib.get('usemasterpitch', 'N/A')
|
||||
}
|
||||
|
||||
plugins = {}
|
||||
|
||||
# Instrumento
|
||||
instrument = instrumenttrack_element.find('.//instrument')
|
||||
if instrument is not None:
|
||||
instrument_name = instrument.attrib.get('name', 'N/A')
|
||||
instrument_info['instrument_name'] = instrument_name
|
||||
|
||||
# Verificando se há plugins e agrupando-os
|
||||
if instrument_name.lower() == "gigplayer":
|
||||
gigplayer = instrument.find('.//gigplayer')
|
||||
if gigplayer is not None:
|
||||
plugins['gigplayer'] = {
|
||||
key: value for key, value in gigplayer.attrib.items()
|
||||
}
|
||||
|
||||
if instrument_name.lower() == "papu":
|
||||
papu = instrument.find('.//papu')
|
||||
if papu is not None:
|
||||
plugins['papu'] = {
|
||||
key: value for key, value in papu.attrib.items()
|
||||
}
|
||||
|
||||
if instrument_name.lower() == "bitinvader":
|
||||
bitinvader = instrument.find('.//bitinvader')
|
||||
if bitinvader is not None:
|
||||
plugins['bitinvader'] = {
|
||||
key: value for key, value in bitinvader.attrib.items()
|
||||
}
|
||||
|
||||
# Se há plugins, adicionar na informação da track
|
||||
if plugins:
|
||||
instrument_info['plugins'] = plugins
|
||||
|
||||
# Dados de <eldata> e seus filhos
|
||||
eldata = instrumenttrack_element.find('.//eldata')
|
||||
if eldata is not None:
|
||||
instrument_info['eldata'] = {
|
||||
'fwet': eldata.attrib.get('fwet', 'N/A'),
|
||||
'ftype': eldata.attrib.get('ftype', 'N/A'),
|
||||
'fcut': eldata.attrib.get('fcut', 'N/A'),
|
||||
'fres': eldata.attrib.get('fres', 'N/A')
|
||||
}
|
||||
|
||||
for el in ['elvol', 'elcut', 'elres']:
|
||||
el_element = eldata.find(f'.//{el}')
|
||||
if el_element is not None:
|
||||
instrument_info[el] = {
|
||||
key: value for key, value in el_element.attrib.items()
|
||||
}
|
||||
|
||||
# Componentes auxiliares
|
||||
for tag in ['chordcreator', 'arpeggiator', 'midiport', 'fxchain']:
|
||||
tag_element = instrumenttrack_element.find(f'.//{tag}')
|
||||
if tag_element is not None:
|
||||
instrument_info[tag] = {
|
||||
key: value for key, value in tag_element.attrib.items()
|
||||
}
|
||||
|
||||
return instrument_info
|
||||
@@ -0,0 +1,55 @@
|
||||
import xml.etree.ElementTree as ET
|
||||
|
||||
def parse_instrument(instrumenttrack_element):
|
||||
instrument_info = {}
|
||||
|
||||
# Atributos básicos do <instrumenttrack>
|
||||
instrument_info['instrumenttrack'] = {
|
||||
'pitch': instrumenttrack_element.attrib.get('pitch', 'N/A'),
|
||||
'pan': instrumenttrack_element.attrib.get('pan', 'N/A'),
|
||||
'pitchrange': instrumenttrack_element.attrib.get('pitchrange', 'N/A'),
|
||||
'basenote': instrumenttrack_element.attrib.get('basenote', 'N/A'),
|
||||
'vol': instrumenttrack_element.attrib.get('vol', 'N/A'),
|
||||
'fxch': instrumenttrack_element.attrib.get('fxch', 'N/A'),
|
||||
'usemasterpitch': instrumenttrack_element.attrib.get('usemasterpitch', 'N/A')
|
||||
}
|
||||
|
||||
# Instrumento
|
||||
instrument = instrumenttrack_element.find('.//instrument')
|
||||
if instrument is not None:
|
||||
instrument_name = instrument.attrib.get('name', 'N/A')
|
||||
instrument_info['instrument_name'] = instrument_name
|
||||
|
||||
if instrument_name.lower() == "kicker":
|
||||
kicker = instrument.find('.//kicker') # Buscando pelo plugin "kicker"
|
||||
if kicker is not None:
|
||||
instrument_info['kicker'] = {}
|
||||
for key, value in kicker.attrib.items():
|
||||
instrument_info['kicker'][key] = value
|
||||
|
||||
# Dados de <eldata> e seus filhos
|
||||
eldata = instrumenttrack_element.find('.//eldata')
|
||||
if eldata is not None:
|
||||
instrument_info['eldata'] = {
|
||||
'fwet': eldata.attrib.get('fwet', 'N/A'),
|
||||
'ftype': eldata.attrib.get('ftype', 'N/A'),
|
||||
'fcut': eldata.attrib.get('fcut', 'N/A'),
|
||||
'fres': eldata.attrib.get('fres', 'N/A')
|
||||
}
|
||||
|
||||
for el in ['elvol', 'elcut', 'elres']:
|
||||
el_element = eldata.find(f'.//{el}')
|
||||
if el_element is not None:
|
||||
instrument_info[el] = {
|
||||
key: value for key, value in el_element.attrib.items()
|
||||
}
|
||||
|
||||
# Componentes auxiliares
|
||||
for tag in ['chordcreator', 'arpeggiator', 'midiport', 'fxchain']:
|
||||
tag_element = instrumenttrack_element.find(f'.//{tag}')
|
||||
if tag_element is not None:
|
||||
instrument_info[tag] = {
|
||||
key: value for key, value in tag_element.attrib.items()
|
||||
}
|
||||
|
||||
return instrument_info
|
||||
@@ -0,0 +1,55 @@
|
||||
import xml.etree.ElementTree as ET
|
||||
|
||||
def parse_instrument(instrumenttrack_element):
|
||||
instrument_info = {}
|
||||
|
||||
# Atributos básicos do <instrumenttrack>
|
||||
instrument_info['instrumenttrack'] = {
|
||||
'pitch': instrumenttrack_element.attrib.get('pitch', 'N/A'),
|
||||
'pan': instrumenttrack_element.attrib.get('pan', 'N/A'),
|
||||
'pitchrange': instrumenttrack_element.attrib.get('pitchrange', 'N/A'),
|
||||
'basenote': instrumenttrack_element.attrib.get('basenote', 'N/A'),
|
||||
'vol': instrumenttrack_element.attrib.get('vol', 'N/A'),
|
||||
'fxch': instrumenttrack_element.attrib.get('fxch', 'N/A'),
|
||||
'usemasterpitch': instrumenttrack_element.attrib.get('usemasterpitch', 'N/A')
|
||||
}
|
||||
|
||||
# Verifica se o instrumento é o 'lb302'
|
||||
instrument = instrumenttrack_element.find('.//instrument')
|
||||
if instrument is not None:
|
||||
instrument_name = instrument.attrib.get('name', 'N/A')
|
||||
instrument_info['instrument_name'] = instrument_name
|
||||
|
||||
if instrument_name.lower() == "lb302":
|
||||
lb302 = instrument.find('.//lb302') # Buscando pelo plugin "lb302"
|
||||
if lb302 is not None:
|
||||
instrument_info['lb302'] = {}
|
||||
for key, value in lb302.attrib.items():
|
||||
instrument_info['lb302'][key] = value
|
||||
|
||||
# Extraindo os dados do <eldata>
|
||||
eldata = instrumenttrack_element.find('.//eldata')
|
||||
if eldata is not None:
|
||||
instrument_info['eldata'] = {
|
||||
'fwet': eldata.attrib.get('fwet', 'N/A'),
|
||||
'ftype': eldata.attrib.get('ftype', 'N/A'),
|
||||
'fcut': eldata.attrib.get('fcut', 'N/A'),
|
||||
'fres': eldata.attrib.get('fres', 'N/A')
|
||||
}
|
||||
|
||||
for el in ['elvol', 'elcut', 'elres']:
|
||||
el_element = eldata.find(f'.//{el}')
|
||||
if el_element is not None:
|
||||
instrument_info[el] = {
|
||||
key: value for key, value in el_element.attrib.items()
|
||||
}
|
||||
|
||||
# Componentes auxiliares
|
||||
for tag in ['chordcreator', 'arpeggiator', 'midiport', 'fxchain']:
|
||||
tag_element = instrumenttrack_element.find(f'.//{tag}')
|
||||
if tag_element is not None:
|
||||
instrument_info[tag] = {
|
||||
key: value for key, value in tag_element.attrib.items()
|
||||
}
|
||||
|
||||
return instrument_info
|
||||
@@ -0,0 +1,55 @@
|
||||
import xml.etree.ElementTree as ET
|
||||
|
||||
def parse_instrument(instrumenttrack_element):
|
||||
instrument_info = {}
|
||||
|
||||
# Atributos básicos do <instrumenttrack>
|
||||
instrument_info['instrumenttrack'] = {
|
||||
'pitch': instrumenttrack_element.attrib.get('pitch', 'N/A'),
|
||||
'pan': instrumenttrack_element.attrib.get('pan', 'N/A'),
|
||||
'pitchrange': instrumenttrack_element.attrib.get('pitchrange', 'N/A'),
|
||||
'basenote': instrumenttrack_element.attrib.get('basenote', 'N/A'),
|
||||
'vol': instrumenttrack_element.attrib.get('vol', 'N/A'),
|
||||
'fxch': instrumenttrack_element.attrib.get('fxch', 'N/A'),
|
||||
'usemasterpitch': instrumenttrack_element.attrib.get('usemasterpitch', 'N/A')
|
||||
}
|
||||
|
||||
# Verifica se o instrumento é o 'malletsstk'
|
||||
instrument = instrumenttrack_element.find('.//instrument')
|
||||
if instrument is not None:
|
||||
instrument_name = instrument.attrib.get('name', 'N/A')
|
||||
instrument_info['instrument_name'] = instrument_name
|
||||
|
||||
if instrument_name.lower() == "malletsstk":
|
||||
malletsstk = instrument.find('.//malletsstk') # Buscando pelo plugin "malletsstk"
|
||||
if malletsstk is not None:
|
||||
instrument_info['malletsstk'] = {}
|
||||
for key, value in malletsstk.attrib.items():
|
||||
instrument_info['malletsstk'][key] = value
|
||||
|
||||
# Extraindo os dados do <eldata>
|
||||
eldata = instrumenttrack_element.find('.//eldata')
|
||||
if eldata is not None:
|
||||
instrument_info['eldata'] = {
|
||||
'fwet': eldata.attrib.get('fwet', 'N/A'),
|
||||
'ftype': eldata.attrib.get('ftype', 'N/A'),
|
||||
'fcut': eldata.attrib.get('fcut', 'N/A'),
|
||||
'fres': eldata.attrib.get('fres', 'N/A')
|
||||
}
|
||||
|
||||
for el in ['elvol', 'elcut', 'elres']:
|
||||
el_element = eldata.find(f'.//{el}')
|
||||
if el_element is not None:
|
||||
instrument_info[el] = {
|
||||
key: value for key, value in el_element.attrib.items()
|
||||
}
|
||||
|
||||
# Componentes auxiliares
|
||||
for tag in ['chordcreator', 'arpeggiator', 'midiport', 'fxchain']:
|
||||
tag_element = instrumenttrack_element.find(f'.//{tag}')
|
||||
if tag_element is not None:
|
||||
instrument_info[tag] = {
|
||||
key: value for key, value in tag_element.attrib.items()
|
||||
}
|
||||
|
||||
return instrument_info
|
||||
@@ -0,0 +1,55 @@
|
||||
import xml.etree.ElementTree as ET
|
||||
|
||||
def parse_instrument(instrumenttrack_element):
|
||||
instrument_info = {}
|
||||
|
||||
# Atributos básicos do <instrumenttrack>
|
||||
instrument_info['instrumenttrack'] = {
|
||||
'pitch': instrumenttrack_element.attrib.get('pitch', 'N/A'),
|
||||
'pan': instrumenttrack_element.attrib.get('pan', 'N/A'),
|
||||
'pitchrange': instrumenttrack_element.attrib.get('pitchrange', 'N/A'),
|
||||
'basenote': instrumenttrack_element.attrib.get('basenote', 'N/A'),
|
||||
'vol': instrumenttrack_element.attrib.get('vol', 'N/A'),
|
||||
'fxch': instrumenttrack_element.attrib.get('fxch', 'N/A'),
|
||||
'usemasterpitch': instrumenttrack_element.attrib.get('usemasterpitch', 'N/A')
|
||||
}
|
||||
|
||||
# Verifica se o instrumento é o 'monstro'
|
||||
instrument = instrumenttrack_element.find('.//instrument')
|
||||
if instrument is not None:
|
||||
instrument_name = instrument.attrib.get('name', 'N/A')
|
||||
instrument_info['instrument_name'] = instrument_name
|
||||
|
||||
if instrument_name.lower() == "monstro":
|
||||
monstro = instrument.find('.//monstro') # Buscando pelo plugin "monstro"
|
||||
if monstro is not None:
|
||||
instrument_info['monstro'] = {}
|
||||
for key, value in monstro.attrib.items():
|
||||
instrument_info['monstro'][key] = value
|
||||
|
||||
# Extraindo os dados do <eldata>
|
||||
eldata = instrumenttrack_element.find('.//eldata')
|
||||
if eldata is not None:
|
||||
instrument_info['eldata'] = {
|
||||
'fwet': eldata.attrib.get('fwet', 'N/A'),
|
||||
'ftype': eldata.attrib.get('ftype', 'N/A'),
|
||||
'fcut': eldata.attrib.get('fcut', 'N/A'),
|
||||
'fres': eldata.attrib.get('fres', 'N/A')
|
||||
}
|
||||
|
||||
for el in ['elvol', 'elcut', 'elres']:
|
||||
el_element = eldata.find(f'.//{el}')
|
||||
if el_element is not None:
|
||||
instrument_info[el] = {
|
||||
key: value for key, value in el_element.attrib.items()
|
||||
}
|
||||
|
||||
# Componentes auxiliares
|
||||
for tag in ['chordcreator', 'arpeggiator', 'midiport', 'fxchain']:
|
||||
tag_element = instrumenttrack_element.find(f'.//{tag}')
|
||||
if tag_element is not None:
|
||||
instrument_info[tag] = {
|
||||
key: value for key, value in tag_element.attrib.items()
|
||||
}
|
||||
|
||||
return instrument_info
|
||||
@@ -0,0 +1,55 @@
|
||||
import xml.etree.ElementTree as ET
|
||||
|
||||
def parse_instrument(instrumenttrack_element):
|
||||
instrument_info = {}
|
||||
|
||||
# Atributos básicos do <instrumenttrack>
|
||||
instrument_info['instrumenttrack'] = {
|
||||
'pitch': instrumenttrack_element.attrib.get('pitch', 'N/A'),
|
||||
'pan': instrumenttrack_element.attrib.get('pan', 'N/A'),
|
||||
'pitchrange': instrumenttrack_element.attrib.get('pitchrange', 'N/A'),
|
||||
'basenote': instrumenttrack_element.attrib.get('basenote', 'N/A'),
|
||||
'vol': instrumenttrack_element.attrib.get('vol', 'N/A'),
|
||||
'fxch': instrumenttrack_element.attrib.get('fxch', 'N/A'),
|
||||
'usemasterpitch': instrumenttrack_element.attrib.get('usemasterpitch', 'N/A')
|
||||
}
|
||||
|
||||
# Verifica se o instrumento é o 'nes'
|
||||
instrument = instrumenttrack_element.find('.//instrument')
|
||||
if instrument is not None:
|
||||
instrument_name = instrument.attrib.get('name', 'N/A')
|
||||
instrument_info['instrument_name'] = instrument_name
|
||||
|
||||
if instrument_name.lower() == "nes":
|
||||
nescaline = instrument.find('.//nes') # Buscando pelo plugin "nes"
|
||||
if nescaline is not None:
|
||||
instrument_info['nescaline'] = {}
|
||||
for key, value in nescaline.attrib.items():
|
||||
instrument_info['nescaline'][key] = value
|
||||
|
||||
# Extraindo os dados do <eldata>
|
||||
eldata = instrumenttrack_element.find('.//eldata')
|
||||
if eldata is not None:
|
||||
instrument_info['eldata'] = {
|
||||
'fwet': eldata.attrib.get('fwet', 'N/A'),
|
||||
'ftype': eldata.attrib.get('ftype', 'N/A'),
|
||||
'fcut': eldata.attrib.get('fcut', 'N/A'),
|
||||
'fres': eldata.attrib.get('fres', 'N/A')
|
||||
}
|
||||
|
||||
for el in ['elvol', 'elcut', 'elres']:
|
||||
el_element = eldata.find(f'.//{el}')
|
||||
if el_element is not None:
|
||||
instrument_info[el] = {
|
||||
key: value for key, value in el_element.attrib.items()
|
||||
}
|
||||
|
||||
# Componentes auxiliares
|
||||
for tag in ['chordcreator', 'arpeggiator', 'midiport', 'fxchain']:
|
||||
tag_element = instrumenttrack_element.find(f'.//{tag}')
|
||||
if tag_element is not None:
|
||||
instrument_info[tag] = {
|
||||
key: value for key, value in tag_element.attrib.items()
|
||||
}
|
||||
|
||||
return instrument_info
|
||||
@@ -0,0 +1,55 @@
|
||||
import xml.etree.ElementTree as ET
|
||||
|
||||
def parse_instrument(instrumenttrack_element):
|
||||
instrument_info = {}
|
||||
|
||||
# Atributos básicos do <instrumenttrack>
|
||||
instrument_info['instrumenttrack'] = {
|
||||
'pitch': instrumenttrack_element.attrib.get('pitch', 'N/A'),
|
||||
'pan': instrumenttrack_element.attrib.get('pan', 'N/A'),
|
||||
'pitchrange': instrumenttrack_element.attrib.get('pitchrange', 'N/A'),
|
||||
'basenote': instrumenttrack_element.attrib.get('basenote', 'N/A'),
|
||||
'vol': instrumenttrack_element.attrib.get('vol', 'N/A'),
|
||||
'fxch': instrumenttrack_element.attrib.get('fxch', 'N/A'),
|
||||
'usemasterpitch': instrumenttrack_element.attrib.get('usemasterpitch', 'N/A')
|
||||
}
|
||||
|
||||
# Verifica se o instrumento é o 'OPL2'
|
||||
instrument = instrumenttrack_element.find('.//instrument')
|
||||
if instrument is not None:
|
||||
instrument_name = instrument.attrib.get('name', 'N/A')
|
||||
instrument_info['instrument_name'] = instrument_name
|
||||
|
||||
if instrument_name.lower() == "opl2":
|
||||
opl2 = instrument.find('.//OPL2') # Buscando pelo plugin "OPL2"
|
||||
if opl2 is not None:
|
||||
instrument_info['opl2'] = {}
|
||||
for key, value in opl2.attrib.items():
|
||||
instrument_info['opl2'][key] = value
|
||||
|
||||
# Extraindo os dados do <eldata>
|
||||
eldata = instrumenttrack_element.find('.//eldata')
|
||||
if eldata is not None:
|
||||
instrument_info['eldata'] = {
|
||||
'fwet': eldata.attrib.get('fwet', 'N/A'),
|
||||
'ftype': eldata.attrib.get('ftype', 'N/A'),
|
||||
'fcut': eldata.attrib.get('fcut', 'N/A'),
|
||||
'fres': eldata.attrib.get('fres', 'N/A')
|
||||
}
|
||||
|
||||
for el in ['elvol', 'elcut', 'elres']:
|
||||
el_element = eldata.find(f'.//{el}')
|
||||
if el_element is not None:
|
||||
instrument_info[el] = {
|
||||
key: value for key, value in el_element.attrib.items()
|
||||
}
|
||||
|
||||
# Componentes auxiliares
|
||||
for tag in ['chordcreator', 'arpeggiator', 'midiport', 'fxchain']:
|
||||
tag_element = instrumenttrack_element.find(f'.//{tag}')
|
||||
if tag_element is not None:
|
||||
instrument_info[tag] = {
|
||||
key: value for key, value in tag_element.attrib.items()
|
||||
}
|
||||
|
||||
return instrument_info
|
||||
@@ -0,0 +1,55 @@
|
||||
import xml.etree.ElementTree as ET
|
||||
|
||||
def parse_instrument(instrumenttrack_element):
|
||||
instrument_info = {}
|
||||
|
||||
# Atributos básicos do <instrumenttrack>
|
||||
instrument_info['instrumenttrack'] = {
|
||||
'pitch': instrumenttrack_element.attrib.get('pitch', 'N/A'),
|
||||
'pan': instrumenttrack_element.attrib.get('pan', 'N/A'),
|
||||
'pitchrange': instrumenttrack_element.attrib.get('pitchrange', 'N/A'),
|
||||
'basenote': instrumenttrack_element.attrib.get('basenote', 'N/A'),
|
||||
'vol': instrumenttrack_element.attrib.get('vol', 'N/A'),
|
||||
'fxch': instrumenttrack_element.attrib.get('fxch', 'N/A'),
|
||||
'usemasterpitch': instrumenttrack_element.attrib.get('usemasterpitch', 'N/A')
|
||||
}
|
||||
|
||||
# Verifica se o instrumento é o 'organic'
|
||||
instrument = instrumenttrack_element.find('.//instrument')
|
||||
if instrument is not None:
|
||||
instrument_name = instrument.attrib.get('name', 'N/A')
|
||||
instrument_info['instrument_name'] = instrument_name
|
||||
|
||||
if instrument_name.lower() == "organic":
|
||||
organic = instrument.find('.//organic') # Buscando pelo plugin "organic"
|
||||
if organic is not None:
|
||||
instrument_info['organic'] = {}
|
||||
for key, value in organic.attrib.items():
|
||||
instrument_info['organic'][key] = value
|
||||
|
||||
# Extraindo os dados do <eldata>
|
||||
eldata = instrumenttrack_element.find('.//eldata')
|
||||
if eldata is not None:
|
||||
instrument_info['eldata'] = {
|
||||
'fwet': eldata.attrib.get('fwet', 'N/A'),
|
||||
'ftype': eldata.attrib.get('ftype', 'N/A'),
|
||||
'fcut': eldata.attrib.get('fcut', 'N/A'),
|
||||
'fres': eldata.attrib.get('fres', 'N/A')
|
||||
}
|
||||
|
||||
for el in ['elvol', 'elcut', 'elres']:
|
||||
el_element = eldata.find(f'.//{el}')
|
||||
if el_element is not None:
|
||||
instrument_info[el] = {
|
||||
key: value for key, value in el_element.attrib.items()
|
||||
}
|
||||
|
||||
# Componentes auxiliares
|
||||
for tag in ['chordcreator', 'arpeggiator', 'midiport', 'fxchain']:
|
||||
tag_element = instrumenttrack_element.find(f'.//{tag}')
|
||||
if tag_element is not None:
|
||||
instrument_info[tag] = {
|
||||
key: value for key, value in tag_element.attrib.items()
|
||||
}
|
||||
|
||||
return instrument_info
|
||||
@@ -0,0 +1,65 @@
|
||||
import xml.etree.ElementTree as ET
|
||||
|
||||
def parse_instrument(instrumenttrack_element):
|
||||
instrument_info = {}
|
||||
|
||||
# Atributos básicos do <instrumenttrack>
|
||||
instrument_info['instrumenttrack'] = {
|
||||
'pitch': instrumenttrack_element.attrib.get('pitch', 'N/A'),
|
||||
'pan': instrumenttrack_element.attrib.get('pan', 'N/A'),
|
||||
'pitchrange': instrumenttrack_element.attrib.get('pitchrange', 'N/A'),
|
||||
'basenote': instrumenttrack_element.attrib.get('basenote', 'N/A'),
|
||||
'vol': instrumenttrack_element.attrib.get('vol', 'N/A'),
|
||||
'fxch': instrumenttrack_element.attrib.get('fxch', 'N/A'),
|
||||
'usemasterpitch': instrumenttrack_element.attrib.get('usemasterpitch', 'N/A')
|
||||
}
|
||||
|
||||
# Instrumento
|
||||
instrument = instrumenttrack_element.find('.//instrument')
|
||||
if instrument is not None:
|
||||
instrument_name = instrument.attrib.get('name', 'N/A')
|
||||
instrument_info['instrument_name'] = instrument_name
|
||||
|
||||
# Verificar e processar o plugin "papu"
|
||||
if instrument_name.lower() == "papu":
|
||||
papu = instrument.find('.//papu')
|
||||
if papu is not None:
|
||||
instrument_info['papu'] = {
|
||||
key: value for key, value in papu.attrib.items()
|
||||
}
|
||||
|
||||
# Verificar e processar o plugin "bitinvader"
|
||||
if instrument_name.lower() == "bitinvader":
|
||||
bitinvader = instrument.find('.//bitinvader')
|
||||
if bitinvader is not None:
|
||||
instrument_info['bitinvader'] = {
|
||||
key: value for key, value in bitinvader.attrib.items()
|
||||
}
|
||||
|
||||
# Dados de <eldata> e seus filhos
|
||||
eldata = instrumenttrack_element.find('.//eldata')
|
||||
if eldata is not None:
|
||||
instrument_info['eldata'] = {
|
||||
'fwet': eldata.attrib.get('fwet', 'N/A'),
|
||||
'ftype': eldata.attrib.get('ftype', 'N/A'),
|
||||
'fcut': eldata.attrib.get('fcut', 'N/A'),
|
||||
'fres': eldata.attrib.get('fres', 'N/A')
|
||||
}
|
||||
|
||||
# Extraindo dados dos elementos <elvol>, <elcut>, <elres>
|
||||
for el in ['elvol', 'elcut', 'elres']:
|
||||
el_element = eldata.find(f'.//{el}')
|
||||
if el_element is not None:
|
||||
instrument_info[el] = {
|
||||
key: value for key, value in el_element.attrib.items()
|
||||
}
|
||||
|
||||
# Componentes auxiliares
|
||||
for tag in ['chordcreator', 'arpeggiator', 'midiport', 'fxchain']:
|
||||
tag_element = instrumenttrack_element.find(f'.//{tag}')
|
||||
if tag_element is not None:
|
||||
instrument_info[tag] = {
|
||||
key: value for key, value in tag_element.attrib.items()
|
||||
}
|
||||
|
||||
return instrument_info
|
||||
@@ -0,0 +1,55 @@
|
||||
import xml.etree.ElementTree as ET
|
||||
|
||||
def parse_instrument(instrumenttrack_element):
|
||||
instrument_info = {}
|
||||
|
||||
# Atributos básicos do <instrumenttrack>
|
||||
instrument_info['instrumenttrack'] = {
|
||||
'pitch': instrumenttrack_element.attrib.get('pitch', 'N/A'),
|
||||
'pan': instrumenttrack_element.attrib.get('pan', 'N/A'),
|
||||
'pitchrange': instrumenttrack_element.attrib.get('pitchrange', 'N/A'),
|
||||
'basenote': instrumenttrack_element.attrib.get('basenote', 'N/A'),
|
||||
'vol': instrumenttrack_element.attrib.get('vol', 'N/A'),
|
||||
'fxch': instrumenttrack_element.attrib.get('fxch', 'N/A'),
|
||||
'usemasterpitch': instrumenttrack_element.attrib.get('usemasterpitch', 'N/A')
|
||||
}
|
||||
|
||||
# Verifica se o instrumento é o 'patman'
|
||||
instrument = instrumenttrack_element.find('.//instrument')
|
||||
if instrument is not None:
|
||||
instrument_name = instrument.attrib.get('name', 'N/A')
|
||||
instrument_info['instrument_name'] = instrument_name
|
||||
|
||||
if instrument_name.lower() == "patman":
|
||||
patman = instrument.find('.//patman') # Buscando pelo plugin "patman"
|
||||
if patman is not None:
|
||||
instrument_info['patman'] = {}
|
||||
for key, value in patman.attrib.items():
|
||||
instrument_info['patman'][key] = value
|
||||
|
||||
# Extraindo os dados do <eldata>
|
||||
eldata = instrumenttrack_element.find('.//eldata')
|
||||
if eldata is not None:
|
||||
instrument_info['eldata'] = {
|
||||
'fwet': eldata.attrib.get('fwet', 'N/A'),
|
||||
'ftype': eldata.attrib.get('ftype', 'N/A'),
|
||||
'fcut': eldata.attrib.get('fcut', 'N/A'),
|
||||
'fres': eldata.attrib.get('fres', 'N/A')
|
||||
}
|
||||
|
||||
for el in ['elvol', 'elcut', 'elres']:
|
||||
el_element = eldata.find(f'.//{el}')
|
||||
if el_element is not None:
|
||||
instrument_info[el] = {
|
||||
key: value for key, value in el_element.attrib.items()
|
||||
}
|
||||
|
||||
# Componentes auxiliares
|
||||
for tag in ['chordcreator', 'arpeggiator', 'midiport', 'fxchain']:
|
||||
tag_element = instrumenttrack_element.find(f'.//{tag}')
|
||||
if tag_element is not None:
|
||||
instrument_info[tag] = {
|
||||
key: value for key, value in tag_element.attrib.items()
|
||||
}
|
||||
|
||||
return instrument_info
|
||||
@@ -0,0 +1,55 @@
|
||||
import xml.etree.ElementTree as ET
|
||||
|
||||
def parse_instrument(instrumenttrack_element):
|
||||
instrument_info = {}
|
||||
|
||||
# Atributos básicos do <instrumenttrack>
|
||||
instrument_info['instrumenttrack'] = {
|
||||
'pitch': instrumenttrack_element.attrib.get('pitch', 'N/A'),
|
||||
'pan': instrumenttrack_element.attrib.get('pan', 'N/A'),
|
||||
'pitchrange': instrumenttrack_element.attrib.get('pitchrange', 'N/A'),
|
||||
'basenote': instrumenttrack_element.attrib.get('basenote', 'N/A'),
|
||||
'vol': instrumenttrack_element.attrib.get('vol', 'N/A'),
|
||||
'fxch': instrumenttrack_element.attrib.get('fxch', 'N/A'),
|
||||
'usemasterpitch': instrumenttrack_element.attrib.get('usemasterpitch', 'N/A')
|
||||
}
|
||||
|
||||
# Verifica se o instrumento é o 'sf2player'
|
||||
instrument = instrumenttrack_element.find('.//instrument')
|
||||
if instrument is not None:
|
||||
instrument_name = instrument.attrib.get('name', 'N/A')
|
||||
instrument_info['instrument_name'] = instrument_name
|
||||
|
||||
if instrument_name.lower() == "sf2player":
|
||||
sf2player = instrument.find('.//sf2player') # Buscando pelo plugin "sf2player"
|
||||
if sf2player is not None:
|
||||
instrument_info['sf2player'] = {}
|
||||
for key, value in sf2player.attrib.items():
|
||||
instrument_info['sf2player'][key] = value
|
||||
|
||||
# Extraindo os dados do <eldata>
|
||||
eldata = instrumenttrack_element.find('.//eldata')
|
||||
if eldata is not None:
|
||||
instrument_info['eldata'] = {
|
||||
'fwet': eldata.attrib.get('fwet', 'N/A'),
|
||||
'ftype': eldata.attrib.get('ftype', 'N/A'),
|
||||
'fcut': eldata.attrib.get('fcut', 'N/A'),
|
||||
'fres': eldata.attrib.get('fres', 'N/A')
|
||||
}
|
||||
|
||||
for el in ['elvol', 'elcut', 'elres']:
|
||||
el_element = eldata.find(f'.//{el}')
|
||||
if el_element is not None:
|
||||
instrument_info[el] = {
|
||||
key: value for key, value in el_element.attrib.items()
|
||||
}
|
||||
|
||||
# Componentes auxiliares
|
||||
for tag in ['chordcreator', 'arpeggiator', 'midiport', 'fxchain']:
|
||||
tag_element = instrumenttrack_element.find(f'.//{tag}')
|
||||
if tag_element is not None:
|
||||
instrument_info[tag] = {
|
||||
key: value for key, value in tag_element.attrib.items()
|
||||
}
|
||||
|
||||
return instrument_info
|
||||
@@ -0,0 +1,55 @@
|
||||
import xml.etree.ElementTree as ET
|
||||
|
||||
def parse_instrument(instrumenttrack_element):
|
||||
instrument_info = {}
|
||||
|
||||
# Atributos básicos do <instrumenttrack>
|
||||
instrument_info['instrumenttrack'] = {
|
||||
'pitch': instrumenttrack_element.attrib.get('pitch', 'N/A'),
|
||||
'pan': instrumenttrack_element.attrib.get('pan', 'N/A'),
|
||||
'pitchrange': instrumenttrack_element.attrib.get('pitchrange', 'N/A'),
|
||||
'basenote': instrumenttrack_element.attrib.get('basenote', 'N/A'),
|
||||
'vol': instrumenttrack_element.attrib.get('vol', 'N/A'),
|
||||
'fxch': instrumenttrack_element.attrib.get('fxch', 'N/A'),
|
||||
'usemasterpitch': instrumenttrack_element.attrib.get('usemasterpitch', 'N/A')
|
||||
}
|
||||
|
||||
# Verifica se o instrumento é o 'sfxr'
|
||||
instrument = instrumenttrack_element.find('.//instrument')
|
||||
if instrument is not None:
|
||||
instrument_name = instrument.attrib.get('name', 'N/A')
|
||||
instrument_info['instrument_name'] = instrument_name
|
||||
|
||||
if instrument_name.lower() == "sfxr":
|
||||
sfxr = instrument.find('.//sfxr') # Buscando pelo plugin "sfxr"
|
||||
if sfxr is not None:
|
||||
instrument_info['sfxr'] = {}
|
||||
for key, value in sfxr.attrib.items():
|
||||
instrument_info['sfxr'][key] = value
|
||||
|
||||
# Extraindo os dados do <eldata>
|
||||
eldata = instrumenttrack_element.find('.//eldata')
|
||||
if eldata is not None:
|
||||
instrument_info['eldata'] = {
|
||||
'fwet': eldata.attrib.get('fwet', 'N/A'),
|
||||
'ftype': eldata.attrib.get('ftype', 'N/A'),
|
||||
'fcut': eldata.attrib.get('fcut', 'N/A'),
|
||||
'fres': eldata.attrib.get('fres', 'N/A')
|
||||
}
|
||||
|
||||
for el in ['elvol', 'elcut', 'elres']:
|
||||
el_element = eldata.find(f'.//{el}')
|
||||
if el_element is not None:
|
||||
instrument_info[el] = {
|
||||
key: value for key, value in el_element.attrib.items()
|
||||
}
|
||||
|
||||
# Componentes auxiliares
|
||||
for tag in ['chordcreator', 'arpeggiator', 'midiport', 'fxchain']:
|
||||
tag_element = instrumenttrack_element.find(f'.//{tag}')
|
||||
if tag_element is not None:
|
||||
instrument_info[tag] = {
|
||||
key: value for key, value in tag_element.attrib.items()
|
||||
}
|
||||
|
||||
return instrument_info
|
||||
@@ -0,0 +1,55 @@
|
||||
import xml.etree.ElementTree as ET
|
||||
|
||||
def parse_instrument(instrumenttrack_element):
|
||||
instrument_info = {}
|
||||
|
||||
# Atributos básicos do <instrumenttrack>
|
||||
instrument_info['instrumenttrack'] = {
|
||||
'pitch': instrumenttrack_element.attrib.get('pitch', 'N/A'),
|
||||
'pan': instrumenttrack_element.attrib.get('pan', 'N/A'),
|
||||
'pitchrange': instrumenttrack_element.attrib.get('pitchrange', 'N/A'),
|
||||
'basenote': instrumenttrack_element.attrib.get('basenote', 'N/A'),
|
||||
'vol': instrumenttrack_element.attrib.get('vol', 'N/A'),
|
||||
'fxch': instrumenttrack_element.attrib.get('fxch', 'N/A'),
|
||||
'usemasterpitch': instrumenttrack_element.attrib.get('usemasterpitch', 'N/A')
|
||||
}
|
||||
|
||||
# Verifica se o instrumento é o 'sid'
|
||||
instrument = instrumenttrack_element.find('.//instrument')
|
||||
if instrument is not None:
|
||||
instrument_name = instrument.attrib.get('name', 'N/A')
|
||||
instrument_info['instrument_name'] = instrument_name
|
||||
|
||||
if instrument_name.lower() == "sid":
|
||||
sid = instrument.find('.//sid') # Buscando pelo plugin "sid"
|
||||
if sid is not None:
|
||||
instrument_info['sid'] = {}
|
||||
for key, value in sid.attrib.items():
|
||||
instrument_info['sid'][key] = value
|
||||
|
||||
# Extraindo os dados do <eldata>
|
||||
eldata = instrumenttrack_element.find('.//eldata')
|
||||
if eldata is not None:
|
||||
instrument_info['eldata'] = {
|
||||
'fwet': eldata.attrib.get('fwet', 'N/A'),
|
||||
'ftype': eldata.attrib.get('ftype', 'N/A'),
|
||||
'fcut': eldata.attrib.get('fcut', 'N/A'),
|
||||
'fres': eldata.attrib.get('fres', 'N/A')
|
||||
}
|
||||
|
||||
for el in ['elvol', 'elcut', 'elres']:
|
||||
el_element = eldata.find(f'.//{el}')
|
||||
if el_element is not None:
|
||||
instrument_info[el] = {
|
||||
key: value for key, value in el_element.attrib.items()
|
||||
}
|
||||
|
||||
# Componentes auxiliares
|
||||
for tag in ['chordcreator', 'arpeggiator', 'midiport', 'fxchain']:
|
||||
tag_element = instrumenttrack_element.find(f'.//{tag}')
|
||||
if tag_element is not None:
|
||||
instrument_info[tag] = {
|
||||
key: value for key, value in tag_element.attrib.items()
|
||||
}
|
||||
|
||||
return instrument_info
|
||||
@@ -0,0 +1,56 @@
|
||||
import xml.etree.ElementTree as ET
|
||||
|
||||
def parse_instrument(instrumenttrack_element):
|
||||
instrument_info = {}
|
||||
|
||||
# Atributos básicos do <instrumenttrack>
|
||||
instrument_info['instrumenttrack'] = {
|
||||
'pitch': instrumenttrack_element.attrib.get('pitch', 'N/A'),
|
||||
'pan': instrumenttrack_element.attrib.get('pan', 'N/A'),
|
||||
'pitchrange': instrumenttrack_element.attrib.get('pitchrange', 'N/A'),
|
||||
'basenote': instrumenttrack_element.attrib.get('basenote', 'N/A'),
|
||||
'vol': instrumenttrack_element.attrib.get('vol', 'N/A'),
|
||||
'fxch': instrumenttrack_element.attrib.get('fxch', 'N/A'),
|
||||
'usemasterpitch': instrumenttrack_element.attrib.get('usemasterpitch', 'N/A')
|
||||
}
|
||||
|
||||
# Verifica se o instrumento contém o nome
|
||||
instrument = instrumenttrack_element.find('.//instrument')
|
||||
if instrument is not None:
|
||||
instrument_name = instrument.attrib.get('name', 'N/A')
|
||||
instrument_info['instrument_name'] = instrument_name
|
||||
instrument_info['tags'] = instrument_name
|
||||
|
||||
# Verifica o plugin "tripleoscillator"
|
||||
tripleoscillator = instrument.find('.//tripleoscillator')
|
||||
if tripleoscillator is not None:
|
||||
instrument_info['tripleoscillator'] = {}
|
||||
for key, value in tripleoscillator.attrib.items():
|
||||
instrument_info['tripleoscillator'][key] = value
|
||||
|
||||
# Extraindo os dados do <eldata>
|
||||
eldata = instrumenttrack_element.find('.//eldata')
|
||||
if eldata is not None:
|
||||
instrument_info['eldata'] = {
|
||||
'fwet': eldata.attrib.get('fwet', 'N/A'),
|
||||
'ftype': eldata.attrib.get('ftype', 'N/A'),
|
||||
'fcut': eldata.attrib.get('fcut', 'N/A'),
|
||||
'fres': eldata.attrib.get('fres', 'N/A')
|
||||
}
|
||||
|
||||
for el in ['elvol', 'elcut', 'elres']:
|
||||
el_element = eldata.find(f'.//{el}')
|
||||
if el_element is not None:
|
||||
instrument_info[el] = {
|
||||
key: value for key, value in el_element.attrib.items()
|
||||
}
|
||||
|
||||
# Componentes auxiliares
|
||||
for tag in ['chordcreator', 'arpeggiator', 'midiport', 'fxchain']:
|
||||
tag_element = instrumenttrack_element.find(f'.//{tag}')
|
||||
if tag_element is not None:
|
||||
instrument_info[tag] = {
|
||||
key: value for key, value in tag_element.attrib.items()
|
||||
}
|
||||
|
||||
return instrument_info
|
||||
@@ -0,0 +1,62 @@
|
||||
import xml.etree.ElementTree as ET
|
||||
|
||||
def parse_instrument(instrumenttrack_element):
|
||||
try:
|
||||
instrument_info = {}
|
||||
|
||||
# Extraindo os atributos do <instrumenttrack>
|
||||
instrument_info['instrumenttrack'] = {
|
||||
'pitch': instrumenttrack_element.attrib.get('pitch', 'N/A'),
|
||||
'pan': instrumenttrack_element.attrib.get('pan', 'N/A'),
|
||||
'pitchrange': instrumenttrack_element.attrib.get('pitchrange', 'N/A'),
|
||||
'basenote': instrumenttrack_element.attrib.get('basenote', 'N/A'),
|
||||
'vol': instrumenttrack_element.attrib.get('vol', 'N/A'),
|
||||
'fxch': instrumenttrack_element.attrib.get('fxch', 'N/A'),
|
||||
'usemasterpitch': instrumenttrack_element.attrib.get('usemasterpitch', 'N/A')
|
||||
}
|
||||
|
||||
# Extraindo o instrumento e verificando se é o plugin "vibedstrings" ou "tripleoscillator"
|
||||
instrument = instrumenttrack_element.find('.//instrument')
|
||||
if instrument is not None:
|
||||
instrument_name = instrument.attrib.get('name', 'N/A')
|
||||
instrument_info['instrument_name'] = instrument_name
|
||||
|
||||
# Verificar se é o "vibedstrings" e extrair os atributos
|
||||
if instrument_name.lower() == "vibedstrings":
|
||||
vibedstrings = instrument.find('.//vibedstrings') # Buscando pelo plugin "vibedstrings"
|
||||
if vibedstrings is not None:
|
||||
instrument_info['vibedstrings'] = {}
|
||||
for key, value in vibedstrings.attrib.items():
|
||||
instrument_info['vibedstrings'][key] = value
|
||||
|
||||
# Extraindo os dados do <eldata>
|
||||
eldata = instrumenttrack_element.find('.//eldata')
|
||||
if eldata is not None:
|
||||
instrument_info['eldata'] = {
|
||||
'fwet': eldata.attrib.get('fwet', 'N/A'),
|
||||
'ftype': eldata.attrib.get('ftype', 'N/A'),
|
||||
'fcut': eldata.attrib.get('fcut', 'N/A'),
|
||||
'fres': eldata.attrib.get('fres', 'N/A')
|
||||
}
|
||||
|
||||
# Extraindo os elementos <elvol>, <elcut>, <elres>
|
||||
for el in ['elvol', 'elcut', 'elres']:
|
||||
el_element = eldata.find('.//' + el)
|
||||
if el_element is not None:
|
||||
instrument_info[el] = {}
|
||||
for key, value in el_element.attrib.items():
|
||||
instrument_info[el][key] = value
|
||||
|
||||
# Extraindo dados do <chordcreator>, <arpeggiator>, <midiport>, <fxchain>
|
||||
for tag_name in ['chordcreator', 'arpeggiator', 'midiport', 'fxchain']:
|
||||
tag_element = instrumenttrack_element.find('.//' + tag_name)
|
||||
if tag_element is not None:
|
||||
instrument_info[tag_name] = {}
|
||||
for key, value in tag_element.attrib.items():
|
||||
instrument_info[tag_name][key] = value
|
||||
|
||||
return instrument_info
|
||||
|
||||
except ET.ParseError as e:
|
||||
print(f'Erro ao analisar o arquivo XML: {e}')
|
||||
return None
|
||||
@@ -0,0 +1,62 @@
|
||||
import xml.etree.ElementTree as ET
|
||||
|
||||
def parse_instrument(instrumenttrack_element):
|
||||
try:
|
||||
instrument_info = {}
|
||||
|
||||
# Extraindo os atributos do <instrumenttrack>
|
||||
instrument_info['instrumenttrack'] = {
|
||||
'pitch': instrumenttrack_element.attrib.get('pitch', 'N/A'),
|
||||
'pan': instrumenttrack_element.attrib.get('pan', 'N/A'),
|
||||
'pitchrange': instrumenttrack_element.attrib.get('pitchrange', 'N/A'),
|
||||
'basenote': instrumenttrack_element.attrib.get('basenote', 'N/A'),
|
||||
'vol': instrumenttrack_element.attrib.get('vol', 'N/A'),
|
||||
'fxch': instrumenttrack_element.attrib.get('fxch', 'N/A'),
|
||||
'usemasterpitch': instrumenttrack_element.attrib.get('usemasterpitch', 'N/A')
|
||||
}
|
||||
|
||||
# Buscando o nome do plugin
|
||||
instrument = instrumenttrack_element.find('.//instrument')
|
||||
if instrument is not None:
|
||||
instrument_name = instrument.attrib.get('name', 'N/A')
|
||||
instrument_info['instrument_name'] = instrument_name
|
||||
|
||||
# Caso seja o plugin "watsyn", extraímos informações específicas
|
||||
if instrument_name.lower() == "watsyn":
|
||||
watsyn = instrument.find('.//watsyn') # Buscando pelo plugin "watsyn"
|
||||
if watsyn is not None:
|
||||
instrument_info['watsyn'] = {}
|
||||
for key, value in watsyn.attrib.items():
|
||||
instrument_info['watsyn'][key] = value
|
||||
|
||||
# Extraindo os dados do <eldata>
|
||||
eldata = instrumenttrack_element.find('.//eldata')
|
||||
if eldata is not None:
|
||||
instrument_info['eldata'] = {
|
||||
'fwet': eldata.attrib.get('fwet', 'N/A'),
|
||||
'ftype': eldata.attrib.get('ftype', 'N/A'),
|
||||
'fcut': eldata.attrib.get('fcut', 'N/A'),
|
||||
'fres': eldata.attrib.get('fres', 'N/A')
|
||||
}
|
||||
|
||||
# Extraindo os elementos <elvol>, <elcut>, <elres>
|
||||
for el in ['elvol', 'elcut', 'elres']:
|
||||
el_element = eldata.find('.//' + el)
|
||||
if el_element is not None:
|
||||
instrument_info[el] = {}
|
||||
for key, value in el_element.attrib.items():
|
||||
instrument_info[el][key] = value
|
||||
|
||||
# Extraindo dados do <chordcreator>, <arpeggiator>, <midiport>, <fxchain>
|
||||
for tag_name in ['chordcreator', 'arpeggiator', 'midiport', 'fxchain']:
|
||||
tag_element = instrumenttrack_element.find('.//' + tag_name)
|
||||
if tag_element is not None:
|
||||
instrument_info[tag_name] = {}
|
||||
for key, value in tag_element.attrib.items():
|
||||
instrument_info[tag_name][key] = value
|
||||
|
||||
return instrument_info
|
||||
|
||||
except Exception as e:
|
||||
print(f'Erro ao processar o instrumento: {e}')
|
||||
return {'error': f"Erro ao processar o instrumento: {e}"}
|
||||
@@ -0,0 +1,97 @@
|
||||
import xml.etree.ElementTree as ET
|
||||
|
||||
def parse_instrument(instrumenttrack_element):
|
||||
try:
|
||||
instrument_info = {}
|
||||
|
||||
# Extraindo os atributos do <instrumenttrack>
|
||||
instrument_info['instrumenttrack'] = {
|
||||
'pitch': instrumenttrack_element.attrib.get('pitch', 'N/A'),
|
||||
'pan': instrumenttrack_element.attrib.get('pan', 'N/A'),
|
||||
'pitchrange': instrumenttrack_element.attrib.get('pitchrange', 'N/A'),
|
||||
'basenote': instrumenttrack_element.attrib.get('basenote', 'N/A'),
|
||||
'vol': instrumenttrack_element.attrib.get('vol', 'N/A'),
|
||||
'fxch': instrumenttrack_element.attrib.get('fxch', 'N/A'),
|
||||
'usemasterpitch': instrumenttrack_element.attrib.get('usemasterpitch', 'N/A')
|
||||
}
|
||||
|
||||
# Buscando o nome do plugin
|
||||
instrument = instrumenttrack_element.find('.//instrument')
|
||||
if instrument is not None:
|
||||
instrument_name = instrument.attrib.get('name', 'N/A')
|
||||
instrument_info['instrument_name'] = instrument_name
|
||||
|
||||
# Caso seja o plugin "watsyn", extraímos informações específicas
|
||||
if instrument_name.lower() == "watsyn":
|
||||
watsyn = instrument.find('.//watsyn') # Buscando pelo plugin "watsyn"
|
||||
if watsyn is not None:
|
||||
instrument_info['watsyn'] = {}
|
||||
for key, value in watsyn.attrib.items():
|
||||
instrument_info['watsyn'][key] = value
|
||||
|
||||
# Extraindo os dados do <eldata>
|
||||
eldata = instrumenttrack_element.find('.//eldata')
|
||||
if eldata is not None:
|
||||
instrument_info['eldata'] = {
|
||||
'fwet': eldata.attrib.get('fwet', 'N/A'),
|
||||
'ftype': eldata.attrib.get('ftype', 'N/A'),
|
||||
'fcut': eldata.attrib.get('fcut', 'N/A'),
|
||||
'fres': eldata.attrib.get('fres', 'N/A')
|
||||
}
|
||||
|
||||
# Extraindo os elementos <elvol>, <elcut>, <elres>
|
||||
for el in ['elvol', 'elcut', 'elres']:
|
||||
el_element = eldata.find('.//' + el)
|
||||
if el_element is not None:
|
||||
instrument_info[el] = {}
|
||||
for key, value in el_element.attrib.items():
|
||||
instrument_info[el][key] = value
|
||||
|
||||
# Extraindo dados do <chordcreator>, <arpeggiator>, <midiport>, <fxchain>
|
||||
for tag_name in ['chordcreator', 'arpeggiator', 'midiport', 'fxchain']:
|
||||
tag_element = instrumenttrack_element.find('.//' + tag_name)
|
||||
if tag_element is not None:
|
||||
instrument_info[tag_name] = {}
|
||||
for key, value in tag_element.attrib.items():
|
||||
instrument_info[tag_name][key] = value
|
||||
|
||||
# Extraindo dados do <INSTRUMENT_EFFECTS>, <SYSTEM_EFFECTS>, <INSERTION_EFFECTS>
|
||||
instrument_effects = instrumenttrack_element.findall('.//INSTRUMENT_EFFECTS/INSTRUMENT_EFFECT')
|
||||
if instrument_effects:
|
||||
instrument_info['instrument_effects'] = []
|
||||
for effect in instrument_effects:
|
||||
effect_info = {}
|
||||
for param in effect.findall('.//par'):
|
||||
effect_info[param.attrib['name']] = param.attrib['value']
|
||||
instrument_info['instrument_effects'].append(effect_info)
|
||||
|
||||
system_effects = instrumenttrack_element.findall('.//SYSTEM_EFFECTS/SYSTEM_EFFECT')
|
||||
if system_effects:
|
||||
instrument_info['system_effects'] = []
|
||||
for effect in system_effects:
|
||||
effect_info = {}
|
||||
for param in effect.findall('.//par'):
|
||||
effect_info[param.attrib['name']] = param.attrib['value']
|
||||
instrument_info['system_effects'].append(effect_info)
|
||||
|
||||
insertion_effects = instrumenttrack_element.findall('.//INSERTION_EFFECTS/INSERTION_EFFECT')
|
||||
if insertion_effects:
|
||||
instrument_info['insertion_effects'] = []
|
||||
for effect in insertion_effects:
|
||||
effect_info = {}
|
||||
for param in effect.findall('.//par'):
|
||||
effect_info[param.attrib['name']] = param.attrib['value']
|
||||
instrument_info['insertion_effects'].append(effect_info)
|
||||
|
||||
# Extraindo dados do <CONTROLLER>
|
||||
controller = instrumenttrack_element.find('.//CONTROLLER')
|
||||
if controller is not None:
|
||||
instrument_info['controller'] = {}
|
||||
for param in controller.findall('.//par'):
|
||||
instrument_info['controller'][param.attrib['name']] = param.attrib['value']
|
||||
|
||||
return instrument_info
|
||||
|
||||
except Exception as e:
|
||||
print(f'Erro ao processar o instrumento: {e}')
|
||||
return {'error': f"Erro ao processar o instrumento: {e}"}
|
||||
Reference in new issue
Block a user