mirror of https://github.com/dcoredump/dexed.git
Added options to dx7sysex2lv2: "-b" (for adding bank-name to voice-name) and -n (for adding voice-number to voice-name). Smaller fixes.pull/1/head
parent
9700333fbe
commit
9978e4ab0a
@ -0,0 +1,99 @@ |
||||
#!/usr/bin/perl |
||||
# |
||||
# dx7lv2sounds2preset - create a presets.ttl and add this to manifest.ttl for |
||||
# Dexed.lv2 - LV2 plugin |
||||
# |
||||
# This generator builds the presets-ttl and a suitable manifest.ttl |
||||
# |
||||
# (c) by H. Wirtz <dcoredump@googlemail.com> |
||||
# |
||||
# This program is free software; you can redistribute it and/or modify |
||||
# it under the terms of the GNU General Public License as published by |
||||
# the Free Software Foundation; either version 3 of the License, or |
||||
# (at your option) any later version. |
||||
# |
||||
# This program is distributed in the hope that it will be useful, |
||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of |
||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
||||
# GNU General Public License for more details. |
||||
# |
||||
# You should have received a copy of the GNU General Public License |
||||
# along with this program; if not, write to the Free Software Foundation, |
||||
# Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
||||
# |
||||
|
||||
open(MANIFEST,">manifest.ttl")||die("Cannot open manifest.ttl for writing: $!\n"); |
||||
print MANIFEST "\@prefix lv2: <http://lv2plug.in/ns/lv2core#> .\n"; |
||||
print MANIFEST "\@prefix pset: <http://lv2plug.in/ns/ext/presets#> .\n"; |
||||
print MANIFEST "\@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .\n"; |
||||
print MANIFEST "\@prefix ui: <http://lv2plug.in/ns/extensions/ui#> .\n"; |
||||
print MANIFEST "\@prefix mdap: <http://moddevices.com/plugins/mda/presets#> .\n"; |
||||
print MANIFEST "\@prefix pset: <http://lv2plug.in/ns/ext/presets#> .\n"; |
||||
print MANIFEST "\@prefix doap: <http://usefulinc.com/ns/doap#> .\n"; |
||||
print MANIFEST "\@prefix foaf: <http://xmlns.com/foaf/0.1/> .\n"; |
||||
print MANIFEST "\n"; |
||||
print MANIFEST "<https://github.com/dcoredump/dexed.lv2>\n"; |
||||
print MANIFEST " a lv2:Plugin, doap:Project, lv2:SynthPlugin ;\n"; |
||||
print MANIFEST " rdfs:seeAlso <Dexed.ttl> ;\n"; |
||||
print MANIFEST " rdfs:seeAlso <modgui.ttl> .\n"; |
||||
print MANIFEST "\n"; |
||||
|
||||
open(PRESETS,">presets.ttl")||die("Cannot open presets.ttl for writing: $!\n"); |
||||
print PRESETS "\@prefix lv2: <http://lv2plug.in/ns/lv2core#> .\n"; |
||||
print PRESETS "\@prefix pset: <http://lv2plug.in/ns/ext/presets#> .\n"; |
||||
print PRESETS "\@prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .\n"; |
||||
print PRESETS "\n"; |
||||
|
||||
while($voice=shift(@ARGV)) |
||||
{ |
||||
insert_data($voice); |
||||
} |
||||
|
||||
close(PRESETS); |
||||
close(MANIFEST); |
||||
|
||||
sub insert_data |
||||
{ |
||||
my($voice)=@_; |
||||
|
||||
open(M_VOICE,"<".$voice."/manifest.ttl")||die("Cannot open ".$voice."/manifest.ttl: $!\n"); |
||||
while($l=<M_VOICE>) |
||||
{ |
||||
if($l=~/^\s*rdfs:label \"(.+)\"/) |
||||
{ |
||||
$voice_name=$1 |
||||
} |
||||
elsif($l=~/\s*rdfs:seeAlso <(.+)>/) |
||||
{ |
||||
$file=$1; |
||||
} |
||||
} |
||||
close(M_VOICE); |
||||
|
||||
if($voice_name eq "" || $file eq "") |
||||
{ |
||||
print "Voice data for ".$voice."/manifest.ttl is not consistent\n"; |
||||
print "voice: [$voice_name] file: [$file]\n"; |
||||
return; |
||||
} |
||||
|
||||
print MANIFEST "<https://github.com/dcoredump/dexed.lv2#".$voice_name.">\n"; |
||||
print MANIFEST " a pset:Preset ;\n"; |
||||
print MANIFEST " rdfs:label \"".$voice_name."\"\n"; |
||||
print MANIFEST " lv2:appliesTo <https://github.com/dcoredump/dexed.lv2> ;\n"; |
||||
print MANIFEST " rdfs:seeAlso <presets.ttl> .\n"; |
||||
print MANIFEST "\n"; |
||||
|
||||
print PRESETS "<https://github.com/dcoredump/dexed.lv2#".$voice_name.">\n"; |
||||
|
||||
open(VOICE,"<".$voice."/".$file)||die("Cannot open ".$voice."/".$file.": $!"); |
||||
while($l=<VOICE>) |
||||
{ |
||||
next if($l=~/^\s*$/); |
||||
next if($l=~/^[^ ]/); |
||||
print PRESETS $l; |
||||
} |
||||
close(VOICE); |
||||
|
||||
print PRESETS "\n"; |
||||
} |
Loading…
Reference in new issue