diff --git a/export/tubemonster.svg b/export/tubemonster.svg
new file mode 100644
index 0000000..e2759d3
--- /dev/null
+++ b/export/tubemonster.svg
@@ -0,0 +1,47 @@
+
+
diff --git a/res/tubemonster.svg b/res/tubemonster.svg
new file mode 100644
index 0000000..13ea333
--- /dev/null
+++ b/res/tubemonster.svg
@@ -0,0 +1,45 @@
+
+
diff --git a/util/make_sapphire_svg.py b/util/make_sapphire_svg.py
index aa2ecfe..bc4ef34 100755
--- a/util/make_sapphire_svg.py
+++ b/util/make_sapphire_svg.py
@@ -1652,7 +1652,7 @@ def TubeUnitPortArtwork() -> Element:
return group
-def TubeUnitMainPanel() -> Tuple[Panel, Element]:
+def TubeUnitMainPanel(title:str) -> Tuple[Panel, Element]:
panel = Panel(TUBE_UNIT_PANEL_WIDTH)
defs = Element('defs')
@@ -1686,18 +1686,18 @@ def TubeUnitMainPanel() -> Tuple[Panel, Element]:
with Font(SAPPHIRE_FONT_FILENAME) as font:
pl.append(SapphireInsignia(panel, font))
- pl.append(ModelNamePath(panel, font, 'tube unit'))
+ pl.append(ModelNamePath(panel, font, title))
panel.append(pl)
return (panel, pl)
-def GenerateTubeUnitMainPanel(cdict:Dict[str, ControlLayer]) -> int:
- panel, pl = TubeUnitMainPanel()
+def GenerateTubeUnitMainPanel(cdict:Dict[str, ControlLayer], title:str, symbol:str) -> int:
+ panel, pl = TubeUnitMainPanel(title)
pl.append(TubeUnitPortArtwork())
return (
PlaceTubeUnitControls(cdict, pl, Target.VcvRack) or
- Save(panel, '../res/tubeunit.svg')
+ Save(panel, '../res/{}.svg'.format(symbol))
)
@@ -1808,25 +1808,31 @@ def GenerateTubeUnitVentLayer(name:str) -> int:
return Save(panel, '../res/tubeunit_{}.svg'.format(name.lower()))
-def GenerateTubeUnitExportPanel(cdict:Dict[str, ControlLayer]) -> int:
+def GenerateTubeUnitExportPanel(cdict:Dict[str, ControlLayer], title:str, symbol:str) -> int:
# Combine the control layer with the label layer for external applications to render the panel.
- panel, pl = TubeUnitMainPanel()
+ panel, pl = TubeUnitMainPanel(title)
pl.append(TubeUnitLabelGroupLite())
return (
PlaceTubeUnitControls(cdict, pl, Target.Lite) or
- Save(panel, '../export/tubeunit.svg')
+ Save(panel, '../export/{}.svg'.format(symbol))
)
-def GenerateTubeUnit(cdict:Dict[str, ControlLayer]) -> int:
- return (
- GenerateTubeUnitMainPanel(cdict) or
- GenerateTubeUnitExportPanel(cdict) or
- GenerateTubeUnitAudioPathLayer() or
- GenerateTubeUnitLabelLayer() or
- GenerateTubeUnitVentLayer('VENT') or
- GenerateTubeUnitVentLayer('SEAL')
- )
+def GenerateTubeUnit(cdict:Dict[str, ControlLayer], title:str, symbol:str) -> int:
+ if (
+ GenerateTubeUnitMainPanel(cdict, title, symbol) or
+ GenerateTubeUnitExportPanel(cdict, title, symbol)
+ ): return 1
+
+ if title == 'tube unit':
+ if (
+ GenerateTubeUnitAudioPathLayer() or
+ GenerateTubeUnitLabelLayer() or
+ GenerateTubeUnitVentLayer('VENT') or
+ GenerateTubeUnitVentLayer('SEAL')
+ ): return 1
+
+ return 0
if __name__ == '__main__':
cdict:Dict[str, ControlLayer] = {}
@@ -1860,7 +1866,8 @@ def GenerateTubeUnit(cdict:Dict[str, ControlLayer]) -> int:
GeneratePopPanel(cdict) or
GenerateElastikaPanel(cdict, Target.VcvRack) or
GenerateElastikaPanel(cdict, Target.Lite) or
- GenerateTubeUnit(cdict) or
+ GenerateTubeUnit(cdict, 'tube unit', 'tubeunit') or
+ GenerateTubeUnit(cdict, 'tube monster', 'tubemonster') or
SaveControls(cdict) or
Print('SUCCESS')
)