Skip to content

Commit

Permalink
soundation Europa + fix
Browse files Browse the repository at this point in the history
  • Loading branch information
SatyrDiamond committed Oct 18, 2023
1 parent d9330d8 commit 53ca05c
Show file tree
Hide file tree
Showing 4 changed files with 37 additions and 14 deletions.
2 changes: 1 addition & 1 deletion functions/song.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
from functions import placements

def r_getduration(projJ):
trackplacements = projJ['track_placements']
trackplacements = projJ['track_placements'] if 'track_placements' in projJ else {}
songduration = 0
for trackid in trackplacements:
islaned = False
Expand Down
3 changes: 0 additions & 3 deletions plugin_input/r_amped.py
Original file line number Diff line number Diff line change
Expand Up @@ -82,9 +82,6 @@ def encode_devices(amped_tr_devices, trackid):
europa_xml = ET.fromstring(wampreset['settings'])
europa_xml_prop = europa_xml.findall('Properties')[0]

print(wampreset['patch'])
#print(wampreset['settings'])

for xmlsub in europa_xml_prop:
if xmlsub.tag == 'Object':
object_name = xmlsub.get('name')
Expand Down
18 changes: 15 additions & 3 deletions plugin_input/r_soundation.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
from functions_tracks import tracks_r
from functions_tracks import tracks_master
from functions_plugin import soundation_values
from functions_plugin import synth_nonfree_values
import plugin_input
import struct
import json
Expand Down Expand Up @@ -103,6 +104,7 @@ def parse(self, input_file, extra_param):

cvpj_l = {}

europa_vals = synth_nonfree_values.europa_valnames()
timeSignaturesplit = sndstat_data['timeSignature'].split('/')
song.add_timesig(cvpj_l, int(timeSignaturesplit[0]), int(timeSignaturesplit[1]))
bpm = sndstat_data['bpm']
Expand Down Expand Up @@ -205,7 +207,8 @@ def parse(self, input_file, extra_param):
plugins.add_plug_data(cvpj_l, pluginid, 'interpolation', cvpj_interpolation)

else:
plugins.add_plug(cvpj_l, pluginid, 'native-soundation', instpluginname)
if instpluginname != 'com.soundation.europa':
plugins.add_plug(cvpj_l, pluginid, 'native-soundation', instpluginname)

if instpluginname == 'com.soundation.GM-2':
get_asdr(pluginid, sound_instdata)
Expand Down Expand Up @@ -247,9 +250,18 @@ def parse(self, input_file, extra_param):
plugins.add_plug_data(cvpj_l, pluginid, 'kit_name', kit_name)

elif instpluginname == 'com.soundation.europa':
for paramname in soundation_values.europa_vals():
plugins.add_plug(cvpj_l, pluginid, 'synth-nonfree', 'Europa')
for paramname in europa_vals:
eur_value_type, eur_cvpj_name = europa_vals[paramname]
value = sound_instdata["/custom_properties/"+paramname]['value']
plugins.add_plug_data(cvpj_l, pluginid, paramname, value)
#print(paramname, eur_value_type, value)
if eur_value_type == 'number':
plugins.add_plug_param(cvpj_l, pluginid, eur_cvpj_name, float(value), 'float', paramname)
else:
if paramname in ['Curve1','Curve2','Curve3','Curve4','Curve']:
value = value.split(',')
value = [int(x) for x in value] if value != [''] else []
plugins.add_plug_data(cvpj_l, pluginid, eur_cvpj_name, value)

elif instpluginname == 'com.soundation.spc':
for paramname in soundation_values.spc_vals():
Expand Down
28 changes: 21 additions & 7 deletions plugin_output/soundation.py
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
from functions import song
from functions_compat import trackfx_to_numdata
from functions_plugin import soundation_values
from functions_plugin import synth_nonfree_values
from functions_tracks import auto_nopl
from functions_tracks import tracks_r

Expand Down Expand Up @@ -211,6 +212,9 @@ def getsupportedplugins(self): return []
def getfileextension(self): return 'sng'
def parse(self, convproj_json, output_file):
global cvpj_l
global europa_vals
europa_vals = synth_nonfree_values.europa_valnames()

cvpj_l = json.loads(convproj_json)
bpm = params.get(cvpj_l, [], 'bpm', 120)[0]

Expand Down Expand Up @@ -352,7 +356,23 @@ def parse(self, convproj_json, output_file):
plugtype = plugins.get_plug_type(cvpj_l, pluginid)
a_predelay, a_attack, a_hold, a_decay, a_sustain, a_release, a_amount = plugins.get_asdr_env(cvpj_l, pluginid, 'vol')

if plugtype[0] == 'native-soundation':
if plugtype == ['synth-nonfree', 'Europa']:
inst_supported = True
sng_instparams['identifier'] = 'com.soundation.europa'
for paramname in europa_vals:
eur_value_type, cvpj_val_name = europa_vals[paramname]

if eur_value_type == 'number':
eur_value_value = plugins.get_plug_param(cvpj_l, pluginid, cvpj_val_name, 0)[0]
else:
eur_value_value = plugins.get_plug_dataval(cvpj_l, pluginid, cvpj_val_name, 0)
if paramname in ['Curve1','Curve2','Curve3','Curve4','Curve']:
eur_value_value = ','.join([str(x).zfill(2) for x in eur_value_value])

add_sndinstparam(sng_instparams, "/custom_properties/"+paramname, eur_value_value, True)
add_sndinstparam(sng_instparams, "/soundation/sample", None, True)

elif plugtype[0] == 'native-soundation':
inst_supported = True
sng_instparams['identifier'] = plugtype[1]
if plugtype[1] == 'com.soundation.GM-2':
Expand Down Expand Up @@ -405,12 +425,6 @@ def parse(self, convproj_json, output_file):
for dataname in ['cuts','envelopes']:
sng_instparams[dataname] = plugins.get_plug_dataval(cvpj_l, pluginid, dataname, '')

elif plugtype[1] == 'com.soundation.europa':
for paramname in soundation_values.europa_vals():
value = plugins.get_plug_dataval(cvpj_l, pluginid, paramname, '')
add_sndinstparam(sng_instparams, "/custom_properties/"+paramname, value, True)
add_sndinstparam(sng_instparams, "/soundation/sample", None, True)

elif plugtype[1] in ['com.soundation.va_synth','com.soundation.fm_synth','com.soundation.the_wub_machine','com.soundation.mono']:
if plugtype[1] == 'com.soundation.va_synth': snd_params = ["aatt", "adec", "arel", "asus", "fatt", "fdec", "fdyn", "feg", "ffreq", "frel", "fres", "fsus", "glide_bend", "glide_mode", "glide_rate", "lfolpf", "lfoosc", "lforate", "octave", "osc_2_fine", "osc_2_mix", "osc_2_noise", "osc_2_octave", "tune"]
elif plugtype[1] == 'com.soundation.fm_synth': snd_params = ['p'+str(x) for x in range(137)]
Expand Down

0 comments on commit 53ca05c

Please sign in to comment.