This commit is contained in:
JotaChina committed 2025-05-03 18:38:19 -03:00
1 parent 57c10131f5
commit 9da7f3347b
166 files changed
+24550 -23101

No files matched your search

@@ -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
+59
View File
@@ -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
+76
View File
@@ -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
+55
View File
@@ -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
+55
View File
@@ -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
+55
View File
@@ -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
+55
View File
@@ -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
+55
View File
@@ -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
+55
View File
@@ -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
+55
View File
@@ -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
+65
View File
@@ -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
+55
View File
@@ -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
+55
View File
@@ -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
+55
View File
@@ -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
+55
View File
@@ -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
+62
View File
@@ -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
+62
View File
@@ -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}"}
+97
View File
@@ -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}"}