Skip to content

Commit

Permalink
Make lv2_presets.py python 3.0 compatible
Browse files Browse the repository at this point in the history
  • Loading branch information
nickdowell committed Jun 23, 2017
1 parent 0712e20 commit 11fa926
Show file tree
Hide file tree
Showing 21 changed files with 140,434 additions and 140,430 deletions.
14,294 changes: 7,147 additions & 7,147 deletions data/amsynth.lv2/BriansBank01.amSynth.bank.ttl

Large diffs are not rendered by default.

14,288 changes: 7,144 additions & 7,144 deletions data/amsynth.lv2/BriansBank02.amSynth.bank.ttl

Large diffs are not rendered by default.

14,286 changes: 7,143 additions & 7,143 deletions data/amsynth.lv2/BriansBank03.amSynth.bank.ttl

Large diffs are not rendered by default.

14,294 changes: 7,147 additions & 7,147 deletions data/amsynth.lv2/BriansBank04.amSynth.bank.ttl

Large diffs are not rendered by default.

14,054 changes: 7,027 additions & 7,027 deletions data/amsynth.lv2/BriansBank05.amSynth.bank.ttl

Large diffs are not rendered by default.

14,194 changes: 7,097 additions & 7,097 deletions data/amsynth.lv2/BriansBank06.amSynth.bank.ttl

Large diffs are not rendered by default.

14,168 changes: 7,084 additions & 7,084 deletions data/amsynth.lv2/BriansBank07.amSynth.bank.ttl

Large diffs are not rendered by default.

14,048 changes: 7,024 additions & 7,024 deletions data/amsynth.lv2/BriansBank08.amSynth.bank.ttl

Large diffs are not rendered by default.

14,348 changes: 7,174 additions & 7,174 deletions data/amsynth.lv2/BriansBank09.amSynth.bank.ttl

Large diffs are not rendered by default.

14,774 changes: 7,387 additions & 7,387 deletions data/amsynth.lv2/BriansBank10.amSynth.bank.ttl

Large diffs are not rendered by default.

14,576 changes: 7,288 additions & 7,288 deletions data/amsynth.lv2/BriansBank11.amSynth.bank.ttl

Large diffs are not rendered by default.

14,610 changes: 7,305 additions & 7,305 deletions data/amsynth.lv2/BriansBank12.amSynth.bank.ttl

Large diffs are not rendered by default.

14,556 changes: 7,278 additions & 7,278 deletions data/amsynth.lv2/BriansBank13.amSynth.bank.ttl

Large diffs are not rendered by default.

14,558 changes: 7,279 additions & 7,279 deletions data/amsynth.lv2/BriansBank14.amSynth.bank.ttl

Large diffs are not rendered by default.

14,484 changes: 7,242 additions & 7,242 deletions data/amsynth.lv2/BriansBank15.amSynth.bank.ttl

Large diffs are not rendered by default.

14,554 changes: 7,277 additions & 7,277 deletions data/amsynth.lv2/BriansBank16.amSynth.bank.ttl

Large diffs are not rendered by default.

14,358 changes: 7,179 additions & 7,179 deletions data/amsynth.lv2/BriansBank17.amSynth.bank.ttl

Large diffs are not rendered by default.

16,639 changes: 8,320 additions & 8,319 deletions data/amsynth.lv2/BriansBank18.amSynth.bank.ttl

Large diffs are not rendered by default.

16,836 changes: 8,418 additions & 8,418 deletions data/amsynth.lv2/BriansBank19.amSynth.bank.ttl

Large diffs are not rendered by default.

2,904 changes: 1,452 additions & 1,452 deletions data/amsynth.lv2/amsynth_factory.bank.ttl

Large diffs are not rendered by default.

41 changes: 22 additions & 19 deletions utils/lv2_presets.py
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
# Converts an amsynth preset bank file to an LV2 presets ttl manifest. # Converts an amsynth preset bank file to an LV2 presets ttl manifest.
# #


from __future__ import print_function

import os, re, sys import os, re, sys


pluginURI = 'http://code.google.com/p/amsynth/amsynth' pluginURI = 'http://code.google.com/p/amsynth/amsynth'
Expand All @@ -26,50 +28,51 @@
def amsynth_bank_read(filepath): def amsynth_bank_read(filepath):
presets = [] presets = []
currentPreset = {} currentPreset = {}
with open(filepath, 'rb') as file: with open(filepath, 'r') as file:
for line in file: for line in file:
line = line.strip() line = line.strip()
if line.startswith('<preset> <name> '): if line.startswith('<preset> <name> '):
if len(currentPreset): if len(currentPreset):
presets.append(currentPreset) presets.append(currentPreset)
currentPreset = { 'name': line[16:], 'parameters':{} } currentPreset = { 'name': line[16:], 'parameters':[] }
if line.startswith('<parameter>'): if line.startswith('<parameter>'):
tokens = re.split(r'\s', line.strip()) tokens = re.split(r'\s', line.strip())
if len(tokens) == 3 and tokens[0] == '<parameter>': if len(tokens) == 3 and tokens[0] == '<parameter>':
currentPreset['parameters'][tokens[1]] = tokens[2] currentPreset['parameters'].append((tokens[1], tokens[2]))
presets.append(currentPreset) presets.append(currentPreset)
currentPreset = {} currentPreset = {}
return presets return presets


def lv2_bank_write(filepath, bank_name, presets): def lv2_bank_write(filepath, bank_name, presets):
with open(filepath, 'w') as file: with open(filepath, 'w') as file:
print >> file, lv2_file_header print(lv2_file_header, file=file)


bank_uri = 'http://code.google.com/p/amsynth/amsynth#' + bank_name bank_uri = 'http://code.google.com/p/amsynth/amsynth#' + bank_name
print '''<%s> print('''<%s>
a pset:Bank ; a pset:Bank ;
rdfs:label "%s" . rdfs:label "%s" .
''' % (bank_uri, bank_name) ''' % (bank_uri, bank_name))


for i, preset in enumerate(presets): for i, preset in enumerate(presets):
preset_uri = bank_name + '_%03d_' % i + re.sub(r'\s', '_', preset['name']) preset_uri = bank_name + '_%03d_' % i + re.sub(r'\s', '_', preset['name'])
label = '%s: %03d: %s' % (bank_name, i, preset['name']) label = '%s: %03d: %s' % (bank_name, i, preset['name'])
# When banks are more widely supported, we should switch to this: # When banks are more widely supported, we should switch to this:
#label = '%03d: %s' % (i, preset['name']) #label = '%03d: %s' % (i, preset['name'])
print lv2_preset_header.format(preset_uri=preset_uri, label=label) print(lv2_preset_header.format(preset_uri=preset_uri, label=label))
print ' rdfs:seeAlso <{}> .'.format(os.path.basename(filepath)) print(' rdfs:seeAlso <{}> .'.format(os.path.basename(filepath)))
print '' print('')
print >> file, lv2_preset_header.format(preset_uri=preset_uri, label=label) print(lv2_preset_header.format(preset_uri=preset_uri, label=label), file=file)
print >> file, ' pset:bank <%s> ;' % bank_uri print(' pset:bank <%s> ;' % bank_uri, file=file)
print >> file, ' lv2:port [' print(' lv2:port [', file=file)
for key, value in preset['parameters'].items(): for paramTuple in preset['parameters']:
print >> file, ' lv2:symbol "%s" ;' % key (key, value) = paramTuple
print >> file, ' pset:value %f' % float(value) print(' lv2:symbol "%s" ;' % key, file=file)
if key == preset['parameters'].keys()[-1]: print(' pset:value %f' % float(value), file=file)
print >> file, ' ] .' if paramTuple == preset['parameters'][-1]:
print(' ] .', file=file)
else: else:
print >> file, ' ] , [' print(' ] , [', file=file)
print >> file, '' print('', file=file)


def main(argv=sys.argv): def main(argv=sys.argv):
for filename in sorted(os.listdir('data/banks')): for filename in sorted(os.listdir('data/banks')):
Expand Down

0 comments on commit 11fa926

Please sign in to comment.