kopia lustrzana https://gitlab.com/zeograd/rnsutils
Add more SFZ operand support
rodzic
d4a66bbf79
commit
6a1590bc9e
|
@ -69,6 +69,10 @@ class RenoiseModulationSet(ObjectifiedElement):
|
|||
|
||||
|
||||
class RenoiseInstrument(object):
|
||||
FILTER_NONE = 0
|
||||
FILTER_CLEAN_HP = 5
|
||||
FILTER_CLEAN_LP = 1
|
||||
|
||||
def __init__(self, filename=None, template_filename="empty-31.xrni"):
|
||||
self.root = None
|
||||
self.sample_data = None
|
||||
|
|
|
@ -41,6 +41,8 @@ def search_case_insensitive_path(path):
|
|||
existing_head = search_case_insensitive_path(head)
|
||||
if existing_head is None:
|
||||
return None
|
||||
if existing_head == '':
|
||||
existing_head = '.'
|
||||
|
||||
tail = tail.lower()
|
||||
for sub in os.listdir(existing_head):
|
||||
|
@ -78,8 +80,8 @@ class SfzToXrni(object):
|
|||
|
||||
# sample tuning
|
||||
renoise_sample.Transpose = sf2_bag.tuning or default_sample.Transpose
|
||||
renoise_sample.FineTune = (sf2_bag.fine_tuning and (int(128 * sf2_bag.fine_tuning) / 100.)) or (
|
||||
sf2_bag.sample and int(128 * (sf2_bag.sample.pitch_correction) / 100.)) or default_sample.FineTune
|
||||
renoise_sample.Finetune = (sf2_bag.fine_tuning and (int(128 * sf2_bag.fine_tuning) / 100.)) or (
|
||||
sf2_bag.sample and int(128 * (sf2_bag.sample.pitch_correction) / 100.)) or default_sample.Finetune
|
||||
|
||||
# volume envelope
|
||||
renoise_modulation_set.Devices.SampleAhdsrModulationDevice.Attack.Value = self.to_renoise_time(
|
||||
|
@ -122,6 +124,7 @@ class SfzToXrni(object):
|
|||
renoise_global_modulation_set.Devices.SampleAhdsrModulationDevice.Decay.Value = 0
|
||||
renoise_global_modulation_set.Devices.SampleAhdsrModulationDevice.Sustain.Value = 1
|
||||
renoise_global_modulation_set.Devices.SampleAhdsrModulationDevice.Release.Value = 0
|
||||
renoise_global_modulation_set.FilterType = RenoiseInstrument.FILTER_NONE
|
||||
|
||||
renoise_global_sample.LoopRelease = True
|
||||
renoise_global_sample.LoopMode = "Off"
|
||||
|
@ -130,7 +133,7 @@ class SfzToXrni(object):
|
|||
|
||||
renoise_global_sample.Panning = 0.5
|
||||
renoise_global_sample.Transpose = 0
|
||||
renoise_global_sample.FineTune = 0
|
||||
renoise_global_sample.Finetune = 0
|
||||
|
||||
renoise_global_sample.Mapping.BaseNote = 60
|
||||
renoise_global_sample.Mapping.NoteStart, renoise_global_sample.Mapping.NoteEnd = (0, 119)
|
||||
|
@ -229,6 +232,7 @@ class SfzToXrni(object):
|
|||
value = section_content[key]
|
||||
if key == 'sample':
|
||||
renoise_sample.FileName = re.sub(r'\\+', r'/', value)
|
||||
# renoise_sample.Name = os.path.basename(value)
|
||||
elif key == 'lokey':
|
||||
renoise_sample.Mapping.NoteStart = sfz_note_to_midi_key(value)
|
||||
elif key == 'hikey':
|
||||
|
@ -242,6 +246,18 @@ class SfzToXrni(object):
|
|||
elif key == 'ampeg_release':
|
||||
renoise_modulation_set.Devices.SampleAhdsrModulationDevice.Release.Value = second_to_renoise_time(
|
||||
float(value))
|
||||
elif key == 'ampeg_attack':
|
||||
renoise_modulation_set.Devices.SampleAhdsrModulationDevice.Attack.Value = second_to_renoise_time(
|
||||
float(value))
|
||||
elif key == 'tune':
|
||||
renoise_sample.Finetune = int(128 * float(value) / 100.)
|
||||
elif key == 'fil_type':
|
||||
if value.lower().startswith('lp'):
|
||||
renoise_modulation_set.FilterType = RenoiseInstrument.FILTER_CLEAN_LP
|
||||
elif value.lower().startswith('hp'):
|
||||
renoise_modulation_set.FilterType = RenoiseInstrument.FILTER_CLEAN_HP
|
||||
else:
|
||||
renoise_modulation_set.FilterType = RenoiseInstrument.FILTER_NONE
|
||||
else:
|
||||
unused_keys.append(key)
|
||||
|
||||
|
|
Ładowanie…
Reference in New Issue