This commit is contained in:
SatyrDiamond 2023-11-20 08:09:43 -05:00
parent e620607f1e
commit 10d5330f69
4 changed files with 66 additions and 34 deletions

View File

@ -467,7 +467,7 @@ def get_datadef(pluginname):
out = [
["I",True,"type","Type"],
["I",True,"freq","Frequency"],
["I",True,"lowpass","Q"],
["I",True,"q","Q"],
["I",True,"gain","Gain"],
["I",True,"center","Center"],
]

View File

@ -98,6 +98,8 @@ def encode_devices(amped_tr_devices, trackid, amped_autodata):
europa_xml = ET.fromstring(wampreset['settings'])
europa_xml_prop = europa_xml.findall('Properties')[0]
europa_params = {}
for xmlsub in europa_xml_prop:
if xmlsub.tag == 'Object':
object_name = xmlsub.get('name')
@ -106,14 +108,19 @@ def encode_devices(amped_tr_devices, trackid, amped_autodata):
value_name = objsub.get('property')
value_type = objsub.get('type')
value_value = float(objsub.text) if value_type == 'number' else objsub.text
europa_params[value_name] = [value_type, value_value]
if value_type == 'number':
device_plugindata.param_add_dset(value_name, value_value, dataset_synth_nonfree, 'plugin', 'europa')
else:
if value_name in ['Curve1','Curve2','Curve3','Curve4','Curve']:
value_value = list(bytes.fromhex(value_value))
paramlist = dataset_synth_nonfree.params_list('plugin', 'europa')
for paramname in paramlist:
dset_paramdata = dataset_synth_nonfree.params_i_get('plugin', 'europa', paramname)
if dset_paramdata[5] in europa_params:
s_paramdata = europa_params[dset_paramdata[5]]
device_plugindata.dataval_add(value_name, value_value)
if s_paramdata[0] == 'number':
device_plugindata.param_add_dset(paramname, s_paramdata[1], dataset_synth_nonfree, 'plugin', 'europa')
else:
if value_name in ['Curve1','Curve2','Curve3','Curve4','Curve']: value_value = list(bytes.fromhex(value_value))
device_plugindata.dataval_add(paramname, s_paramdata[1])
if 'encodedSampleData' in wampreset:
europa_sampledata = wampreset['encodedSampleData']

View File

@ -350,6 +350,15 @@ class input_soundation(plugin_input.base):
master_gain = (master_gain-0.5)*40
fx_plugindata.param_add('gain_out', master_gain, 'float', 'Out Gain')
elif fxpluginname == 'com.soundation.filter':
filterfx_cutoff = 20 * 1000**get_paramval(sound_chan_effect, 'cutoff')[0]
filterfx_resonance = get_paramval(sound_chan_effect, 'resonance')[0]
filterfx_mode = get_paramval(sound_chan_effect, 'mode')[0]
fx_plugindata = plugins.cvpj_plugin('deftype', 'universal', 'eq-bands')
eq_bandtype = 'low_pass' if filterfx_mode == 0 else 'high_pass'
band_res = eq_calc_q(eq_bandtype, filterfx_resonance)
fx_plugindata.eqband_add(1, 20*(1000**filterfx_cutoff), 0, eq_bandtype, band_res, None)
else:
fx_plugindata = plugins.cvpj_plugin('deftype', 'native-soundation', fxpluginname)
fx_plugindata.fxdata_add(fxenabled, 1)

View File

@ -345,43 +345,59 @@ class plugconv(plugin_plugconv.base):
elif flpluginname == 'fruity reeverb':
print("[plug-conv] FL Studio to VST2: Fruity Reeverb > Dragonfly Hall Reverb:",pluginid)
data_dragonfly = plugin_dragonfly_reverb.dragonfly_hall_data()
flr_lowcut = getparam('lowcut')
flr_highcut = getparam('highcut')
flr_predelay = getparam('predelay')
flr_room_size = getparam('room_size')
flr_diffusion = getparam('diffusion')/65536
flr_lowcut = xtramath.between_from_one(20, 3000, flr_lowcut/65536) if flr_lowcut != 0 else 0
flr_highcut = xtramath.between_from_one(500, 22050, flr_highcut/65536)
flr_room_size = xtramath.between_from_one(1, 100, flr_room_size/65536)
data_dragonfly.set_param('low_cut', xtramath.clamp(flr_lowcut, 0, 200))
flr_highcut = getparam('highcut')
flr_highcut = xtramath.between_from_one(500, 22050, flr_highcut/65536)
data_dragonfly.set_param('high_cut', xtramath.clamp(flr_highcut, 0, 16000))
data_dragonfly.set_param('delay', xtramath.clamp(flr_predelay, 0, 100))
flr_room_size = getparam('room_size')
flr_room_size = xtramath.between_from_one(1, 100, flr_room_size/65536)
data_dragonfly.set_param('delay', xtramath.clamp(getparam('predelay'), 0, 100))
data_dragonfly.set_param('size', int(xtramath.clamp(flr_room_size, 10, 60)))
data_dragonfly.set_param('diffuse', flr_diffusion*100)
flr_color = getparam('color')
flr_decay = getparam('decay')
flr_hidamping = getparam('hidamping')
flr_dry = getparam('dry')/65536
flr_reverb = getparam('reverb')/65536
flr_decay = xtramath.between_from_one(0.1, 20, flr_decay/65536)
flr_hidamping = xtramath.between_from_one(500, 22050, flr_hidamping/65536)
data_dragonfly.set_param('diffuse', (getparam('diffusion')/65536)*100)
flr_decay = xtramath.between_from_one(0.1, 20, getparam('decay')/65536)
data_dragonfly.set_param('decay', xtramath.clamp(flr_decay, 0.1, 10))
flr_hidamping = xtramath.between_from_one(500, 22050, getparam('hidamping')/65536)
data_dragonfly.set_param('high_xo', xtramath.clamp(flr_hidamping, 0, 16000))
data_dragonfly.set_param('dry_level', flr_dry*100)
data_dragonfly.set_param('late_level', flr_reverb*100)
data_dragonfly.set_param('dry_level', (getparam('dry')/65536)*100)
data_dragonfly.set_param('late_level', (getparam('reverb')/65536)*100)
data_dragonfly.to_cvpj_vst2(cvpj_plugindata)
elif flpluginname == 'fruity reeverb 2':
print("[plug-conv] FL Studio to VST2: Fruity Reeverb 2 > Dragonfly Hall Reverb:",pluginid)
data_dragonfly = plugin_dragonfly_reverb.dragonfly_hall_data()
data_dragonfly.set_param('low_cut', xtramath.clamp(getparam('lowcut'), 0, 200))
data_dragonfly.set_param('high_cut', xtramath.clamp(getparam('highcut')*100, 0, 16000))
data_dragonfly.set_param('delay', xtramath.clamp((getparam('predelay')/384)*1000, 0, 100))
data_dragonfly.set_param('size', int(xtramath.clamp(getparam('room_size'), 10, 60)))
data_dragonfly.set_param('diffuse', getparam('diffusion'))
data_dragonfly.set_param('decay', xtramath.clamp(getparam('decay')/10, 0.1, 10))
data_dragonfly.set_param('high_xo', xtramath.clamp(getparam('hidamping')*100, 0, 16000))
data_dragonfly.set_param('low_mult', xtramath.clamp(getparam('bass')/100, 0.5, 2.5))
data_dragonfly.set_param('high_mult', 0.7)
data_dragonfly.set_param('dry_level', xtramath.clamp((getparam('dry')/128)*100, 0, 100))
#data_dragonfly.set_param('early_level', xtramath.clamp((getparam('er')/128)*100, 0, 100))
data_dragonfly.set_param('late_level', xtramath.clamp((getparam('wet')/128)*100, 0, 100))
data_dragonfly.to_cvpj_vst2(cvpj_plugindata)
elif flpluginname == 'fruity phase inverter':
print("[plug-conv] FL Studio to VST2: Fruity Phase Inverter > Airwindows Flipity:",pluginid)
stateval = int((getparam('state')/1024)*3)
flipstate = 0
if stateval == 1: flipstate = 1
if stateval == 2: flipstate = 2
plugin_vst2.replace_data(cvpj_plugindata, 'name', 'any', 'Flipity', 'chunk', struct.pack('<f', (flipstate/8)+0.01), 0)
#elif flpluginname == 'fruity free filter':
# fff_type = getparam('type')
# fff_freq = getparam('freq')
# fff_q = getparam('q')
# fff_gain = getparam('gain')
# fff_center = getparam('center')/512
# print(fff_type, fff_freq, fff_q, fff_gain, fff_center)
# exit()
#elif flpluginname == 'fruity compressor':
# print('[plug-conv] FL Studio to VST2: Fruity Compressor > Compressor:',pluginid)