Browse Source

Start Claudia-Launcher database cleanup

tags/v0.9.0
falkTX 13 years ago
parent
commit
08c5d34f89
6 changed files with 582 additions and 228 deletions
  1. +18
    -2
      c++/carla-bridge/Makefile
  2. +14
    -1
      doc/TODO
  3. +270
    -0
      resources/ui/claudia_launcher.ui
  4. +1
    -0
      src/claudia.py
  5. +186
    -172
      src/claudia_database.py
  6. +93
    -53
      src/claudia_launcher.py

+ 18
- 2
c++/carla-bridge/Makefile View File

@@ -10,8 +10,8 @@ include ../Makefile.mk

BUILD_CXX_FLAGS += -DBUILD_BRIDGE
BUILD_CXX_FLAGS += -I. -I../carla-includes -I../carla-utils
BUILD_CXX_FLAGS += $(shell pkg-config --cflags liblo QtCore)
LINK_FLAGS += $(shell pkg-config --libs liblo QtCore)
BUILD_CXX_FLAGS += $(shell pkg-config --cflags liblo QtCore QtXml)
LINK_FLAGS += $(shell pkg-config --libs liblo QtCore QtXml)

ifeq ($(CARLA_PLUGIN_SUPPORT),true)
BUILD_CXX_FLAGS += -DWANT_LADSPA -DWANT_DSSI -DWANT_LV2 -DWANT_VST
@@ -231,6 +231,10 @@ OBJS_POSIX32 = carla_bridge_plugin__posix32.o \
carla_bridge_client__posix32.o carla_bridge_osc__posix32.o \
carla_bridge_toolkit__posix32.o

# carla
OBJS_POSIX32 += \
../carla/Shared__posix32.o

# carla-engine
OBJS_POSIX32 += \
../carla-engine/carla_engine__posix32.o \
@@ -265,6 +269,10 @@ OBJS_POSIX64 = carla_bridge_plugin__posix64.o \
carla_bridge_client__posix64.o carla_bridge_osc__posix64.o \
carla_bridge_toolkit__posix64.o

# carla
OBJS_POSIX64 += \
../carla/Shared__posix64.o

# carla-engine
OBJS_POSIX64 += \
../carla-engine/carla_engine__posix64.o \
@@ -299,6 +307,10 @@ OBJS_WIN32 = carla_bridge_plugin__win32.o \
carla_bridge_client__win32.o carla_bridge_osc__win32.o \
carla_bridge_toolkit__win32.o

# carla
OBJS_WIN32 += \
../carla/Shared__win32.o

# carla-engine
OBJS_WIN32 += \
../carla-engine/carla_engine__win32.o \
@@ -333,6 +345,10 @@ OBJS_WIN64 = carla_bridge_plugin__win64.o \
carla_bridge_client__win64.o carla_bridge_osc__win64.o \
carla_bridge_toolkit__win64.o

# carla
OBJS_WIN64 += \
../carla/Shared__win64.o

# carla-engine
OBJS_WIN64 += \
../carla-engine/carla_engine__win64.o \


+ 14
- 1
doc/TODO View File

@@ -9,19 +9,32 @@ Artwork:
GUI:
- Check shortcut consistency

All:
- Only use QSettings in function scope, not always opened (makes config invalid if a crash happens)

-------------------
- APPS -

Cadence:
- add freq info to systray tooltip
- add freq Hz change
- set plugin path before DBus starts
- add desktop decriptions

Claudia:
- Cleanup DB
- Handle sample-rate changes in JACK (made possible by switch-master)
- rename canvas client should rename app name

Claudia-Launcher:
- Cleanup DB
- Add vmpk-jack
- Very small horizontal UI, need first fix
- Auto-close option

-------------------
- MODULES -

PatchCanvas:
- Cleanup C++
- Implement export to Catarina file
- Implement auto-arrange

+ 270
- 0
resources/ui/claudia_launcher.ui View File

@@ -1327,6 +1327,276 @@
</item>
</layout>
</widget>
<widget class="QWidget" name="plugin">
<attribute name="title">
<string>Plugin</string>
</attribute>
<layout class="QVBoxLayout" name="verticalLayout_22">
<item>
<widget class="QLabel" name="label_43">
<property name="maximumSize">
<size>
<width>16777215</width>
<height>16</height>
</size>
</property>
<property name="text">
<string>Audio Plugins, loaded via Carla</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item>
<widget class="Line" name="line_15">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<widget class="QSplitter" name="splitter_Plugin">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<widget class="QTableWidget" name="listPlugin">
<property name="contextMenuPolicy">
<enum>Qt::CustomContextMenu</enum>
</property>
<property name="editTriggers">
<set>QAbstractItemView::NoEditTriggers</set>
</property>
<property name="alternatingRowColors">
<bool>true</bool>
</property>
<property name="selectionMode">
<enum>QAbstractItemView::SingleSelection</enum>
</property>
<property name="selectionBehavior">
<enum>QAbstractItemView::SelectRows</enum>
</property>
<property name="sortingEnabled">
<bool>true</bool>
</property>
<attribute name="horizontalHeaderStretchLastSection">
<bool>true</bool>
</attribute>
<attribute name="verticalHeaderVisible">
<bool>false</bool>
</attribute>
<attribute name="verticalHeaderDefaultSectionSize">
<number>22</number>
</attribute>
<column>
<property name="text">
<string/>
</property>
</column>
<column>
<property name="text">
<string>Name</string>
</property>
</column>
<column>
<property name="text">
<string>Spec</string>
</property>
</column>
<column>
<property name="text">
<string>Type</string>
</property>
</column>
<column>
<property name="text">
<string>Release Model</string>
</property>
</column>
</widget>
<widget class="QFrame" name="frame_Plugin">
<property name="minimumSize">
<size>
<width>200</width>
<height>0</height>
</size>
</property>
<property name="frameShape">
<enum>QFrame::StyledPanel</enum>
</property>
<property name="frameShadow">
<enum>QFrame::Raised</enum>
</property>
<layout class="QVBoxLayout" name="verticalLayout_12">
<item>
<widget class="QLabel" name="ico_app_plugin">
<property name="minimumSize">
<size>
<width>0</width>
<height>48</height>
</size>
</property>
<property name="maximumSize">
<size>
<width>16777215</width>
<height>48</height>
</size>
</property>
<property name="text">
<string>ICO</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_name_plugin">
<property name="text">
<string>Plugin Name</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
<item>
<widget class="Line" name="line_12">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<widget class="QGroupBox" name="group_features_plugin">
<property name="title">
<string>Features</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
<layout class="QGridLayout" name="gridLayout_11">
<item row="3" column="0">
<widget class="QLabel" name="label_25">
<property name="text">
<string>Stereo:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QLabel" name="ico_stereo_plugin">
<property name="text">
<string>ico</string>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QLabel" name="label_42">
<property name="text">
<string>MIDI Input:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QLabel" name="ico_midi_input_plugin">
<property name="text">
<string>ico</string>
</property>
</widget>
</item>
<item row="5" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>Has Factory Presets:</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item row="5" column="1">
<widget class="QLabel" name="ico_presets_plugin">
<property name="text">
<string>ico</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QGroupBox" name="group_help_plugin">
<property name="title">
<string>Help</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
<layout class="QVBoxLayout" name="verticalLayout_21">
<item>
<widget class="QLabel" name="url_documentation_plugin">
<property name="text">
<string>Documentation</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
<property name="openExternalLinks">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="url_website_plugin">
<property name="text">
<string>WebSite</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
<property name="openExternalLinks">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_no_help_plugin">
<property name="text">
<string>(Nothing available)</string>
</property>
<property name="alignment">
<set>Qt::AlignCenter</set>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<spacer name="verticalSpacer_8">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="effect">
<attribute name="title">
<string>Effect</string>


+ 1
- 0
src/claudia.py View File

@@ -500,6 +500,7 @@ class ClaudiaLauncherW(QDialog):
self.settings = QSettings("Cadence", "Claudia-Launcher")
self.launcher.setCallbackApp(self, self.settings, True)
self.loadSettings()
self.setWindowTitle("Claudia Launcher")

self.m_appBus = appBus
self.m_proj_folder = proj_folder


+ 186
- 172
src/claudia_database.py View File

@@ -15,56 +15,64 @@ LEVEL_NSM = "NSM"
TEMPLATE_YES = "Yes"
TEMPLATE_NO = "No"

USING_KXSTUDIO = True

# -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
# DAW

# (L, D, L, V, VST-Mode, T, M, MIDI-Mode) -> ( LADSPA, DSSI, LV2, VST, VST-Mode, Transport, MIDI, MIDI-Mode)

# TODO - remove level support
# ardour
# FIXME - broken upstream
# ardour3 JS

# TODO - remove level support for kxstudio check
# jacker
# qsampler

list_DAW = [
# Package AppName Type Binary Icon Template? Level Rel.-Model (L, D, L, V, VST-Mode, T, M, MIDI-Mode) (doc-file, website)
( "ardour", "Ardour 2.8", "DAW", "ardour2", "ardour", TEMPLATE_YES, LEVEL_1, "OpenSource", (1, 0, 1, 0, "", 1, 0, "ALSA"), ("file:///usr/share/kxstudio/docs/ardour.pdf", "http://www.ardour.org/") ),
( "ardour3", "Ardour 3.0", "DAW", "ardour3", "ardour", TEMPLATE_YES, LEVEL_JS, "OpenSource", (1, 0, 1, 1, "Native", 1, 1, "JACK"), ("file:///usr/share/kxstudio/docs/ardour.pdf", "http://www.ardour.org/") ),
[ "ardour", "Ardour 2.8", "DAW", "ardour2", "ardour", TEMPLATE_YES, LEVEL_0, "OpenSource", (1, 0, 1, 0, "", 1, 0, "ALSA"), ("file:///usr/share/kxstudio/docs/ardour.pdf", "http://www.ardour.org/") ],
[ "ardour3", "Ardour 3.0", "DAW", "ardour3", "ardour", TEMPLATE_YES, LEVEL_0, "OpenSource", (1, 0, 1, 1, "Native", 1, 1, "JACK"), ("file:///usr/share/kxstudio/docs/ardour.pdf", "http://www.ardour.org/") ],

( "composite", "Composite", "Drum Sequencer", "composite-gui", "composite32x32", TEMPLATE_YES, LEVEL_0, "OpenSource", (1, 0, 0, 0, "", 1, 1, "JACK"), ("file:///usr/share/composite/data/doc/manual.html", "http://gabe.is-a-geek.org/composite/") ),
[ "composite", "Composite", "Drum Sequencer", "composite-gui", "composite32x32", TEMPLATE_YES, LEVEL_0, "OpenSource", (1, 0, 0, 0, "", 1, 1, "JACK"), ("file:///usr/share/composite/data/doc/manual.html", "http://gabe.is-a-geek.org/composite/") ],

( "energyxt2", "EnergyXT2", "DAW", "energyxt2", "energyxt2", TEMPLATE_NO, LEVEL_0, "Demo", (0, 0, 0, 1, "Native", 0, 1, "JACK"), ("file:///usr/share/kxstudio/docs/EnergyXT_Manual_EN.pdf", "http://www.energy-xt.com/") ),
[ "energyxt2", "EnergyXT2", "DAW", "energyxt2", "energyxt2", TEMPLATE_NO, LEVEL_0, "Demo", (0, 0, 0, 1, "Native", 0, 1, "JACK"), ("file:///usr/share/kxstudio/docs/EnergyXT_Manual_EN.pdf", "http://www.energy-xt.com/") ],

( "hydrogen", "Hydrogen", "Drum Sequencer", "hydrogen -d jack", "h2-icon", TEMPLATE_YES, LEVEL_JS, "OpenSource", (1, 0, 0, 0, "", 1, 1, "ALSA | JACK"), ("file:///usr/share/hydrogen/data/doc/manual_en.html.upstream", "http://www.hydrogen-music.org/") ),
( "hydrogen-svn", "Hydrogen (SVN)", "Drum Sequencer", "hydrogen -d jack", "h2-icon", TEMPLATE_YES, LEVEL_JS, "OpenSource", (1, 0, 0, 0, "", 1, 1, "ALSA | JACK"), ("file:///usr/share/hydrogen/data/doc/manual_en.html.upstream", "http://www.hydrogen-music.org/") ),
[ "hydrogen", "Hydrogen", "Drum Sequencer", "hydrogen -d jack", "h2-icon", TEMPLATE_YES, LEVEL_JS, "OpenSource", (1, 0, 0, 0, "", 1, 1, "ALSA | JACK"), ("file:///usr/share/hydrogen/data/doc/manual_en.html.upstream", "http://www.hydrogen-music.org/") ],
[ "hydrogen-git", "Hydrogen (GIT)", "Drum Sequencer", "hydrogen -d jack", "h2-icon", TEMPLATE_YES, LEVEL_JS, "OpenSource", (1, 0, 0, 0, "", 1, 1, "ALSA | JACK"), ("file:///usr/share/hydrogen/data/doc/manual_en.html.upstream", "http://www.hydrogen-music.org/") ],
[ "hydrogen-svn", "Hydrogen (SVN)", "Drum Sequencer", "hydrogen -d jack", "h2-icon", TEMPLATE_YES, LEVEL_JS, "OpenSource", (1, 0, 0, 0, "", 1, 1, "ALSA | JACK"), ("file:///usr/share/hydrogen/data/doc/manual_en.html.upstream", "http://www.hydrogen-music.org/") ],

( "jacker", "Jacker", "MIDI Sequencer", "jacker", "jacker", TEMPLATE_YES, LEVEL_1, "OpenSource", (0, 0, 0, 0, "", 1, 1, "JACK"), ("", "https://bitbucket.org/paniq/jacker/wiki/Home") ),
[ "jacker", "Jacker", "MIDI Sequencer", "jacker", "jacker", TEMPLATE_YES, LEVEL_1, "OpenSource", (0, 0, 0, 0, "", 1, 1, "JACK"), ("", "https://bitbucket.org/paniq/jacker/wiki/Home") ],

( "lmms", "LMMS", "DAW", "lmms", "lmms", TEMPLATE_YES, LEVEL_0, "OpenSource", (1, 0, 0, 1, "Windows", 0, 1, "ALSA"), ("file:///usr/share/kxstudio/docs/LMMS_UserManual_0.4.12.1.pdf", "http://lmms.sourceforge.net/") ),
[ "lmms", "LMMS", "DAW", "lmms", "lmms", TEMPLATE_YES, LEVEL_0, "OpenSource", (1, 0, 0, 1, "Windows", 0, 1, "ALSA"), ("file:///usr/share/kxstudio/docs/LMMS_UserManual_0.4.12.1.pdf", "http://lmms.sourceforge.net/") ],

( "muse", "MusE", "DAW", "muse", "muse", TEMPLATE_YES, LEVEL_0, "OpenSource", (1, 1, 0, 0, "", 1, 1, "ALSA + JACK"), ("file:///usr/share/doc/muse/html/window_ref.html", "http://www.muse-sequencer.org/") ),
[ "muse", "MusE", "DAW", "muse", "muse", TEMPLATE_YES, LEVEL_0, "OpenSource", (1, 1, 0, 0, "", 1, 1, "ALSA + JACK"), ("file:///usr/share/doc/muse/html/window_ref.html", "http://www.muse-sequencer.org/") ],

( "musescore", "MuseScore", "MIDI Composer", "mscore", "mscore", TEMPLATE_NO, LEVEL_0, "OpenSource", (0, 0, 0, 0, "", 0, 1, "ALSA | JACK"), ("file:///usr/share/kxstudio/docs/MuseScore-en.pdf", "http://www.musescore.org/") ),
[ "musescore", "MuseScore", "MIDI Composer", "mscore", "mscore", TEMPLATE_NO, LEVEL_0, "OpenSource", (0, 0, 0, 0, "", 0, 1, "ALSA | JACK"), ("file:///usr/share/kxstudio/docs/MuseScore-en.pdf", "http://www.musescore.org/") ],

( "non-daw", "Non-DAW", "DAW", "non-daw", "non-daw", TEMPLATE_YES, LEVEL_NSM, "OpenSource", (0, 0, 0, 0, "", 1, 0, "CV"), ("file:///usr/share/doc/non-daw/MANUAL.html", "http://non-daw.tuxfamily.org/") ),
( "non-sequencer", "Non-Sequencer", "MIDI Sequencer", "non-sequencer", "non-sequencer", TEMPLATE_YES, LEVEL_NSM, "OpenSource", (0, 0, 0, 0, "", 1, 1, "JACK"), ("file:///usr/share/doc/non-sequencer/MANUAL.html", "http://non-sequencer.tuxfamily.org/") ),
[ "non-daw", "Non-DAW", "DAW", "non-daw", "non-daw", TEMPLATE_YES, LEVEL_NSM, "OpenSource", (0, 0, 0, 0, "", 1, 0, "CV"), ("file:///usr/share/doc/non-daw/MANUAL.html", "http://non-daw.tuxfamily.org/") ],
[ "non-sequencer", "Non-Sequencer", "MIDI Sequencer", "non-sequencer", "non-sequencer", TEMPLATE_YES, LEVEL_NSM, "OpenSource", (0, 0, 0, 0, "", 1, 1, "JACK"), ("file:///usr/share/doc/non-sequencer/MANUAL.html", "http://non-sequencer.tuxfamily.org/") ],

( "qtractor", "Qtractor", "DAW", "qtractor", "qtractor", TEMPLATE_YES, LEVEL_1, "OpenSource", (1, 1, 1, 1, "Native", 1, 1, "ALSA"), ("file:///usr/share/kxstudio/docs/qtractor-0.5.x-user-manual.pdf", "http://qtractor.sourceforge.net/") ),
( "qtractor-svn", "Qtractor (SVN)", "DAW", "qtractor", "qtractor", TEMPLATE_YES, LEVEL_1, "OpenSource", (1, 1, 1, 1, "Native", 1, 1, "ALSA"), ("file:///usr/share/kxstudio/docs/qtractor-0.5.x-user-manual.pdf", "http://qtractor.sourceforge.net/") ),
[ "qtractor", "Qtractor", "DAW", "qtractor", "qtractor", TEMPLATE_YES, LEVEL_1, "OpenSource", (1, 1, 1, 1, "Native", 1, 1, "ALSA"), ("file:///usr/share/kxstudio/docs/qtractor-0.5.x-user-manual.pdf", "http://qtractor.sourceforge.net/") ],
[ "qtractor-svn", "Qtractor (SVN)", "DAW", "qtractor", "qtractor", TEMPLATE_YES, LEVEL_1, "OpenSource", (1, 1, 1, 1, "Native", 1, 1, "ALSA"), ("file:///usr/share/kxstudio/docs/qtractor-0.5.x-user-manual.pdf", "http://qtractor.sourceforge.net/") ],

( "reaper", "REAPER", "DAW", "reaper", "reaper", TEMPLATE_NO, LEVEL_0, "Demo", (0, 0, 0, 1, "Windows", 1, 1, "ALSA"), ("file:///usr/share/kxstudio/docs/ReaperUserGuide426C.pdf", "http://www.reaper.fm/") ),
( "reaper:i386", "REAPER", "DAW", "reaper", "reaper", TEMPLATE_NO, LEVEL_0, "Demo", (0, 0, 0, 1, "Windows", 1, 1, "ALSA"), ("file:///usr/share/kxstudio/docs/ReaperUserGuide426C.pdf", "http://www.reaper.fm/") ),
[ "reaper", "REAPER", "DAW", "reaper", "reaper", TEMPLATE_NO, LEVEL_0, "Demo", (0, 0, 0, 1, "Windows", 1, 1, "ALSA"), ("file:///usr/share/kxstudio/docs/ReaperUserGuide426C.pdf", "http://www.reaper.fm/") ],
[ "reaper:i386", "REAPER", "DAW", "reaper", "reaper", TEMPLATE_NO, LEVEL_0, "Demo", (0, 0, 0, 1, "Windows", 1, 1, "ALSA"), ("file:///usr/share/kxstudio/docs/ReaperUserGuide426C.pdf", "http://www.reaper.fm/") ],

( "renoise", "Renoise", "Tracker", "renoise", "renoise", TEMPLATE_YES, LEVEL_0, "ShareWare", (1, 1, 0, 1, "Native", 1, 1, "ALSA"), ("file:///usr/share/kxstudio/docs/Renoise User Manual.pdf", "http://www.renoise.com/") ),
[ "renoise", "Renoise", "Tracker", "renoise", "renoise", TEMPLATE_YES, LEVEL_0, "ShareWare", (1, 1, 0, 1, "Native", 1, 1, "ALSA"), ("file:///usr/share/kxstudio/docs/Renoise User Manual.pdf", "http://www.renoise.com/") ],

( "rosegarden", "Rosegarden", "MIDI Sequencer", "rosegarden", "rosegarden", TEMPLATE_YES, LEVEL_1, "OpenSource", (1, 1, 0, 0, "", 1, 1, "ALSA"), ("", "http://www.rosegardenmusic.com/") ),
[ "rosegarden", "Rosegarden", "MIDI Sequencer", "rosegarden", "rosegarden", TEMPLATE_YES, LEVEL_1, "OpenSource", (1, 1, 0, 0, "", 1, 1, "ALSA"), ("", "http://www.rosegardenmusic.com/") ],

( "seq24", "Seq24", "MIDI Sequencer", "seq24", "seq24", TEMPLATE_YES, LEVEL_1, "OpenSource", (0, 0, 0, 0, "", 1, 1, "ALSA"), ("file:///usr/share/kxstudio/docs/SEQ24", "http://www.filter24.org/seq24/") ),
[ "seq24", "Seq24", "MIDI Sequencer", "seq24", "seq24", TEMPLATE_YES, LEVEL_1, "OpenSource", (0, 0, 0, 0, "", 1, 1, "ALSA"), ("file:///usr/share/kxstudio/docs/SEQ24", "http://www.filter24.org/seq24/") ],

( "traverso", "Traverso", "DAW", "traverso", "traverso", TEMPLATE_NO, LEVEL_0, "OpenSource", (1, 0, 1, 0, "", 1, 0, ""), ("file:///usr/share/kxstudio/docs/traverso-manual-0.49.0.pdf", "http://traverso-daw.org/") ),
[ "traverso", "Traverso", "DAW", "traverso", "traverso", TEMPLATE_NO, LEVEL_0, "OpenSource", (1, 0, 1, 0, "", 1, 0, ""), ("file:///usr/share/kxstudio/docs/traverso-manual-0.49.0.pdf", "http://traverso-daw.org/") ],
]

iDAW_Package, iDAW_AppName, iDAW_Type, iDAW_Binary, iDAW_Icon, iDAW_Template, iDAW_Level, iDAW_RelModel, iDAW_Features, iDAW_Docs = range(0, len(list_DAW[0]))

if USING_KXSTUDIO:
list_DAW[0][iDAW_Level] = LEVEL_1

# -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
# Host

@@ -72,20 +80,20 @@ iDAW_Package, iDAW_AppName, iDAW_Type, iDAW_Binary, iDAW_Icon, iDAW_Template, iD

list_Host = [
# Package AppName Ins? FX? Binary Icon Template? Level Rel.-Model (I, L, D, L, V, VST-Mode, MIDI-Mode) (doc-file, website)
( "calf-plugins", "Calf Jack Host", "Yes", "Yes", "calfjackhost", "calf", TEMPLATE_NO, LEVEL_0, "OpenSource", (1, 0, 0, 0, 0, "", "JACK"), ("", "http://calf.sourceforge.net/") ),
( "calf-plugins-git", "Calf Jack Host (GIT)", "Yes", "Yes", "calfjackhost", "calf", TEMPLATE_YES, LEVEL_1, "OpenSource", (1, 0, 0, 0, 0, "", "JACK"), ("file:///usr/share/doc/calf/Calf.html", "http://calf.sourceforge.net/") ),
[ "calf-plugins", "Calf Jack Host", "Yes", "Yes", "calfjackhost", "calf", TEMPLATE_NO, LEVEL_0, "OpenSource", (1, 0, 0, 0, 0, "", "JACK"), ("", "http://calf.sourceforge.net/") ],
[ "calf-plugins-git", "Calf Jack Host (GIT)", "Yes", "Yes", "calfjackhost", "calf", TEMPLATE_YES, LEVEL_1, "OpenSource", (1, 0, 0, 0, 0, "", "JACK"), ("file:///usr/share/doc/calf/Calf.html", "http://calf.sourceforge.net/") ],

( "carla", "Carla", "Yes", "Yes", "carla", "carla", TEMPLATE_YES, LEVEL_1, "OpenSource", (1, 1, 1, 1, 1, "Native", "JACK"), ("", "http://kxstudio.sourceforge.net/KXStudio:Applications:Carla") ),
[ "carla", "Carla", "Yes", "Yes", "carla", "carla", TEMPLATE_YES, LEVEL_1, "OpenSource", (1, 1, 1, 1, 1, "Native", "JACK"), ("", "http://kxstudio.sourceforge.net/KXStudio:Applications:Carla") ],

( "festige", "FeSTige", "Yes", "Yes", "festige", "festige", TEMPLATE_NO, LEVEL_1, "OpenSource", (0, 0, 0, 0, 1, "Windows", "ALSA | JACK"), ("", "http://festige.sourceforge.net/") ),
[ "festige", "FeSTige", "Yes", "Yes", "festige", "festige", TEMPLATE_NO, LEVEL_1, "OpenSource", (0, 0, 0, 0, 1, "Windows", "ALSA | JACK"), ("", "http://festige.sourceforge.net/") ],

( "ingen", "Ingen", "Yes", "Yes", "ingen -eg", "ingen", TEMPLATE_NO, LEVEL_JS, "OpenSource", (1, 0, 0, 1, 0, "", "JACK"), ("", "http://drobilla.net/blog/software/ingen/") ),
( "ingen-svn", "Ingen (SVN)", "Yes", "Yes", "ingen-svn -eg", "ingen", TEMPLATE_NO, LEVEL_JS, "OpenSource", (1, 0, 0, 1, 0, "", "JACK"), ("", "http://drobilla.net/blog/software/ingen/") ),
[ "ingen", "Ingen", "Yes", "Yes", "ingen -eg", "ingen", TEMPLATE_NO, LEVEL_JS, "OpenSource", (1, 0, 0, 1, 0, "", "JACK"), ("", "http://drobilla.net/blog/software/ingen/") ],
[ "ingen-svn", "Ingen (SVN)", "Yes", "Yes", "ingen-svn -eg", "ingen", TEMPLATE_NO, LEVEL_JS, "OpenSource", (1, 0, 0, 1, 0, "", "JACK"), ("", "http://drobilla.net/blog/software/ingen/") ],

( "jack-rack", "Jack Rack", "No", "Yes", "jack-rack", "jack-rack", TEMPLATE_YES, LEVEL_0, "OpenSource", (0, 1, 0, 0, 0, "", "ALSA"), ("", "http://jack-rack.sourceforge.net/") ),
[ "jack-rack", "Jack Rack", "No", "Yes", "jack-rack", "jack-rack", TEMPLATE_YES, LEVEL_0, "OpenSource", (0, 1, 0, 0, 0, "", "ALSA"), ("", "http://jack-rack.sourceforge.net/") ],

( "zynjacku", "LV2 Rack", "No", "Yes", "lv2rack", "zynjacku", TEMPLATE_NO, LEVEL_0, "OpenSource", (0, 0, 0, 1, 0, "", "JACK"), ("", "http://home.gna.org/zynjacku/") ),
( "zynjacku", "ZynJackU", "Yes", "No", "zynjacku", "zynjacku", TEMPLATE_NO, LEVEL_0, "OpenSource", (0, 0, 0, 1, 0, "", "JACK"), ("", "http://home.gna.org/zynjacku/") ),
[ "zynjacku", "LV2 Rack", "No", "Yes", "lv2rack", "zynjacku", TEMPLATE_NO, LEVEL_0, "OpenSource", (0, 0, 0, 1, 0, "", "JACK"), ("", "http://home.gna.org/zynjacku/") ],
[ "zynjacku", "ZynJackU", "Yes", "No", "zynjacku", "zynjacku", TEMPLATE_NO, LEVEL_0, "OpenSource", (0, 0, 0, 1, 0, "", "JACK"), ("", "http://home.gna.org/zynjacku/") ],
]

iHost_Package, iHost_AppName, iHost_Ins, iHost_FX, iHost_Binary, iHost_Icon, iHost_Template, iHost_Level, iHost_RelModel, iHost_Features, iDAW_Docs = range(0, len(list_Host[0]))
@@ -97,38 +105,38 @@ iHost_Package, iHost_AppName, iHost_Ins, iHost_FX, iHost_Binary, iHost_Icon, iHo

list_Instrument = [
# Package AppName Type Binary Icon Template? Level Rel.-Model (F, I, MIDI-Mode) (doc-file, website)
( "aeolus", "Aeolus", "Synth", "aeolus", generic_audio_icon, TEMPLATE_NO, LEVEL_0, "OpenSource", (0, 0, "ALSA | JACK"), ("", "http://www.kokkinizita.net/linuxaudio/aeolus/index.html") ),
[ "aeolus", "Aeolus", "Synth", "aeolus", generic_audio_icon, TEMPLATE_NO, LEVEL_0, "OpenSource", (0, 0, "ALSA | JACK"), ("", "http://www.kokkinizita.net/linuxaudio/aeolus/index.html") ],

( "amsynth", "Amsynth", "Synth", "amsynth", "amsynth", TEMPLATE_NO, LEVEL_0, "OpenSource", (1, 0, "ALSA"), ("", "") ),
[ "amsynth", "Amsynth", "Synth", "amsynth", "amsynth", TEMPLATE_NO, LEVEL_0, "OpenSource", (1, 0, "ALSA"), ("", "") ],

( "azr3-jack", "AZR3", "Synth", "azr3", "azr3", TEMPLATE_NO, LEVEL_0, "OpenSource", (0, 0, "JACK"), ("", "http://ll-plugins.nongnu.org/azr3/") ),
[ "azr3-jack", "AZR3", "Synth", "azr3", "azr3", TEMPLATE_NO, LEVEL_0, "OpenSource", (0, 0, "JACK"), ("", "http://ll-plugins.nongnu.org/azr3/") ],

( "distrho-plugin-ports", "Vex", "Synth", "vex", generic_audio_icon, TEMPLATE_NO, LEVEL_0, "OpenSource", (1, 1, "ALSA"), ("", "") ),
( "highlife", "HighLife", "Sampler", "highlife", generic_audio_icon, TEMPLATE_NO, LEVEL_0, "OpenSource", (1, 1, "ALSA"), ("", "http://www.discodsp.com/highlife/") ),
( "juced-plugins", "DrumSynth", "Synth", "drumsynth", "juced_plugins", TEMPLATE_NO, LEVEL_0, "OpenSource", (1, 1, "ALSA"), ("", "") ),
( "tal-plugins", "TAL NoiseMaker", "Synth", "TAL-NoiseMaker", "tal_plugins", TEMPLATE_NO, LEVEL_0, "OpenSource", (1, 1, "ALSA"), ("", "http://kunz.corrupt.ch/products/tal-noisemaker") ),
( "wolpertinger", "Wolpertinger", "Synth", "Wolpertinger", "wolpertinger", TEMPLATE_NO, LEVEL_0, "OpenSource", (1, 0, "ALSA"), ("", "http://tumbetoene.tuxfamily.org") ),
[ "distrho-plugin-ports", "Vex", "Synth", "vex", generic_audio_icon, TEMPLATE_NO, LEVEL_0, "OpenSource", (1, 1, "ALSA"), ("", "") ],
[ "highlife", "HighLife", "Sampler", "highlife", generic_audio_icon, TEMPLATE_NO, LEVEL_0, "OpenSource", (1, 1, "ALSA"), ("", "http://www.discodsp.com/highlife/") ],
[ "juced-plugins", "DrumSynth", "Synth", "drumsynth", "juced_plugins", TEMPLATE_NO, LEVEL_0, "OpenSource", (1, 1, "ALSA"), ("", "") ],
[ "tal-plugins", "TAL NoiseMaker", "Synth", "TAL-NoiseMaker", "tal_plugins", TEMPLATE_NO, LEVEL_0, "OpenSource", (1, 1, "ALSA"), ("", "http://kunz.corrupt.ch/products/tal-noisemaker") ],
[ "wolpertinger", "Wolpertinger", "Synth", "Wolpertinger", "wolpertinger", TEMPLATE_NO, LEVEL_0, "OpenSource", (1, 0, "ALSA"), ("", "http://tumbetoene.tuxfamily.org") ],

( "foo-yc20", "Foo YC20", "Synth", "foo-yc20", "foo-yc20", TEMPLATE_NO, LEVEL_0, "OpenSource", (0, 0, "JACK"), ("", "http://code.google.com/p/foo-yc20/") ),
[ "foo-yc20", "Foo YC20", "Synth", "foo-yc20", "foo-yc20", TEMPLATE_NO, LEVEL_0, "OpenSource", (0, 0, "JACK"), ("", "http://code.google.com/p/foo-yc20/") ],

( "jsampler", "JSampler Fantasia", "Sampler", "jsampler-bin", "jsampler", TEMPLATE_NO, LEVEL_0, "OpenSource", (0, 0, "ALSA + JACK"), ("file:///usr/share/kxstudio/docs/jsampler/jsampler.html", "http://www.linuxsampler.org/") ),
[ "jsampler", "JSampler Fantasia", "Sampler", "jsampler-bin", "jsampler", TEMPLATE_NO, LEVEL_0, "OpenSource", (0, 0, "ALSA + JACK"), ("file:///usr/share/kxstudio/docs/jsampler/jsampler.html", "http://www.linuxsampler.org/") ],

( "loomer-plugins", "Aspect", "Synth", "Aspect", "loomer", TEMPLATE_NO, LEVEL_0, "Demo", (1, 1, "ALSA"), ("file:///usr/share/doc/loomer-plugins/Aspect Manual.pdf.gz", "http://www.loomer.co.uk/aspect.htm") ),
( "loomer-plugins", "Sequent", "Synth", "Sequent", "loomer", TEMPLATE_NO, LEVEL_0, "Demo", (1, 1, "ALSA"), ("file:///usr/share/doc/loomer-plugins/Sequent Manual.pdf.gz", "http://www.loomer.co.uk/sequent.htm") ),
( "loomer-plugins", "String", "Synth", "String", "loomer", TEMPLATE_NO, LEVEL_0, "Demo", (1, 1, "ALSA"), ("file:///usr/share/doc/loomer-plugins/String Manual.pdf.gz", "http://www.loomer.co.uk/string.htm") ),
[ "loomer-plugins", "Aspect", "Synth", "Aspect", "loomer", TEMPLATE_NO, LEVEL_0, "Demo", (1, 1, "ALSA"), ("file:///usr/share/doc/loomer-plugins/Aspect Manual.pdf.gz", "http://www.loomer.co.uk/aspect.htm") ],
[ "loomer-plugins", "Sequent", "Synth", "Sequent", "loomer", TEMPLATE_NO, LEVEL_0, "Demo", (1, 1, "ALSA"), ("file:///usr/share/doc/loomer-plugins/Sequent Manual.pdf.gz", "http://www.loomer.co.uk/sequent.htm") ],
[ "loomer-plugins", "String", "Synth", "String", "loomer", TEMPLATE_NO, LEVEL_0, "Demo", (1, 1, "ALSA"), ("file:///usr/share/doc/loomer-plugins/String Manual.pdf.gz", "http://www.loomer.co.uk/string.htm") ],

( "phasex", "Phasex", "Synth", "phasex", "phasex", TEMPLATE_NO, LEVEL_0, "OpenSource", (1, 1, "ALSA"), ("file:///usr/share/phasex/help/parameters.help", "") ),
[ "phasex", "Phasex", "Synth", "phasex", "phasex", TEMPLATE_NO, LEVEL_0, "OpenSource", (1, 1, "ALSA"), ("file:///usr/share/phasex/help/parameters.help", "") ],

( "pianoteq", "Pianoteq", "Synth", "Pianoteq", "pianoteq", TEMPLATE_NO, LEVEL_0, "Demo", (1, 0, "ALSA + JACK"), ("file:///usr/local/bin/Documentation/pianoteq-english.pdf", "http://www.pianoteq.com/pianoteq3_standard") ),
( "pianoteq-stage", "Pianoteq Stage", "Synth", "Pianoteq-STAGE", "pianoteq", TEMPLATE_NO, LEVEL_0, "Demo", (1, 0, "ALSA + JACK"), ("file:///usr/local/bin/Documentation/pianoteq-english.pdf", "http://www.pianoteq.com/pianoteq3_play") ),
[ "pianoteq", "Pianoteq", "Synth", "Pianoteq", "pianoteq", TEMPLATE_NO, LEVEL_0, "Demo", (1, 0, "ALSA + JACK"), ("file:///usr/local/bin/Documentation/pianoteq-english.pdf", "http://www.pianoteq.com/pianoteq3_standard") ],
[ "pianoteq-stage", "Pianoteq Stage", "Synth", "Pianoteq-STAGE", "pianoteq", TEMPLATE_NO, LEVEL_0, "Demo", (1, 0, "ALSA + JACK"), ("file:///usr/local/bin/Documentation/pianoteq-english.pdf", "http://www.pianoteq.com/pianoteq3_play") ],

( "qsampler", "Qsampler", "Sampler", "qsampler", "qsampler", TEMPLATE_NO, LEVEL_0, "OpenSource", (0, 0, "ALSA + JACK"), ("", "http://qsampler.sourceforge.net/") ),
[ "qsampler", "Qsampler", "Sampler", "qsampler", "qsampler", TEMPLATE_NO, LEVEL_0, "OpenSource", (0, 0, "ALSA + JACK"), ("", "http://qsampler.sourceforge.net/") ],

( "qsynth", "Qsynth", "SoundFont Player", "qsynth -a jack -m jack", "qsynth", TEMPLATE_NO, LEVEL_0, "OpenSource", (1, 0, "ALSA | JACK"), ("", "http://qsynth.sourceforge.net/") ),
[ "qsynth", "Qsynth", "SoundFont Player", "qsynth -a jack -m jack", "qsynth", TEMPLATE_NO, LEVEL_0, "OpenSource", (1, 0, "ALSA | JACK"), ("", "http://qsynth.sourceforge.net/") ],

( "yoshimi", "Yoshimi", "Synth", "yoshimi -j -J", "yoshimi", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 0, "ALSA | JACK"), ("", "http://yoshimi.sourceforge.net/") ),
[ "yoshimi", "Yoshimi", "Synth", "yoshimi -j -J", "yoshimi", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 0, "ALSA | JACK"), ("", "http://yoshimi.sourceforge.net/") ],

( "zynaddsubfx", "ZynAddSubFX", "Synth", "zynaddsubfx", "zynaddsubfx", TEMPLATE_NO, LEVEL_0, "OpenSource", (1, 0, "ALSA + JACK"), ("", "http://zynaddsubfx.sourceforge.net/") ),
[ "zynaddsubfx", "ZynAddSubFX", "Synth", "zynaddsubfx", "zynaddsubfx", TEMPLATE_NO, LEVEL_0, "OpenSource", (1, 0, "ALSA + JACK"), ("", "http://zynaddsubfx.sourceforge.net/") ],
]

iInstrument_Package, iInstrument_AppName, iInstrument_Type, iInstrument_Binary, iInstrument_Icon, iInstrument_Template, iInstrument_Level, iInstrument_RelModel, iInstrument_Features, iInstrument_Docs = range(0, len(list_Instrument[0]))
@@ -140,52 +148,58 @@ iInstrument_Package, iInstrument_AppName, iInstrument_Type, iInstrument_Binary,

list_Bristol = [
# Package AppName Type Short-name Icon Template? Level Rel.-Model (F, I, MIDI-Mode) (doc-file, website)
( "bristol", "Moog Voyager", "Synth", "explorer", "bristol_explorer", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/explorer.html") ),
( "bristol", "Moog Mini", "Synth", "mini", "bristol_mini", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/mini.html") ),
( "bristol", "Sequential Circuits Prophet-52", "Synth", "prophet52", "bristol_prophet52", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/prophet52.html") ),
( "bristol", "Moog/Realistic MG-1", "Synth", "realistic", "bristol_realistic", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/realistic.html") ),
( "bristol", "Memory Moog", "Synth", "memoryMoog", "bristol_memoryMoog", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/memorymoog.html") ),
( "bristol", "Baumann BME-700", "Synth", "BME700", "bristol_BME700", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/bme700.shtml") ),
#( "bristol", "Synthi Aks", "Synth", "aks", "bristol_aks", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/aks.html") ),
( "bristol", "Moog Voyager Blue Ice", "Synth", "voyager", "bristol_voyager", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/voyager.html") ),
( "bristol", "Moog Sonic-6", "Synth", "sonic6", "bristol_sonic6", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/sonic6.html") ),
( "bristol", "Hammond B3", "Synth", "hammondB3", "bristol_hammondB3", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/hammond.html") ),
( "bristol", "Sequential Circuits Prophet-5", "Synth", "prophet", "bristol_prophet", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/prophet5.html") ),
( "bristol", "Sequential Circuits Prophet-10", "Synth", "prophet10", "bristol_prophet10", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/prophet10.html") ),
( "bristol", "Sequential Circuits Pro-1", "Synth", "pro1", "bristol_pro1", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/pro1.html") ),
( "bristol", "Fender Rhodes Stage-73", "Synth", "rhodes", "bristol_rhodes", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/rhodes.html") ),
( "bristol", "Rhodes Bass Piano", "Synth", "rhodesbass", "bristol_rhodesbass", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/rhodes.html") ),
( "bristol", "Crumar Roadrunner", "Synth", "roadrunner", "bristol_roadrunner", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/roadrunner.html") ),
( "bristol", "Crumar Bit-1", "Synth", "bitone", "bristol_bitone", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/bitone.html") ),
( "bristol", "Crumar Stratus", "Synth", "stratus", "bristol_stratus", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/stratus.html") ),
( "bristol", "Crumar Trilogy", "Synth", "trilogy", "bristol_trilogy", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/trilogy.html") ),
( "bristol", "Oberheim OB-X", "Synth", "obx", "bristol_obx", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/obx.html") ),
( "bristol", "Oberheim OB-Xa", "Synth", "obxa", "bristol_obxa", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/obxa.html") ),
( "bristol", "ARP Axxe", "Synth", "axxe", "bristol_axxe", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/axxe.html") ),
( "bristol", "ARP Odyssey", "Synth", "odyssey", "bristol_odyssey", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/odyssey.html") ),
( "bristol", "ARP 2600", "Synth", "arp2600", "bristol_arp2600", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/arp2600.html") ),
( "bristol", "ARP Solina Strings", "Synth", "solina", "bristol_solina", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/solina.html") ),
( "bristol", "Korg Poly-800", "Synth", "poly800", "bristol_poly800", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/poly800.shtml") ),
( "bristol", "Korg Mono/Poly", "Synth", "monopoly", "bristol_monopoly", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/mono.html") ),
( "bristol", "Korg Polysix", "Synth", "poly", "bristol_poly", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/poly.html") ),
( "bristol", "Korg MS-20 (*)", "Synth", "ms20", "bristol_ms20", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/ms20.html") ),
( "bristol", "VOX Continental", "Synth", "vox", "bristol_vox", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/vox.html") ),
( "bristol", "VOX Continental 300", "Synth", "voxM2", "bristol_voxM2", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/vox300.html") ),
( "bristol", "Roland Juno-6", "Synth", "juno", "bristol_juno", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/juno.html") ),
( "bristol", "Roland Jupiter 8", "Synth", "jupiter8", "bristol_jupiter8", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/jupiter8.html") ),
#( "bristol", "Bristol BassMaker", "Synth", "bassmaker", "bristol_bassmaker", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "") ),
( "bristol", "Yamaha DX", "Synth", "dx", "bristol_dx", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/dx.html") ),
#( "bristol", "Yamaha CS-80", "Synth", "cs80", "bristol_cs80", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/cs80.html") ),
( "bristol", "Bristol SID Softsynth", "Synth", "sidney", "bristol_sidney", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/sidney.shtml") ),
#( "bristol", "Commodore-64 SID polysynth", "Synth", "melbourne", "bristol_sidney", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "") ), #FIXME - needs icon
#( "bristol", "Bristol Granular Synthesiser", "Synth", "granular", "bristol_granular", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "") ),
#( "bristol", "Bristol Realtime Mixer", "Synth", "mixer", "bristol_mixer", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/mixer.html") ),
[ "bristol", "Moog Voyager", "Synth", "explorer", "bristol_explorer", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/explorer.html") ],
[ "bristol", "Moog Mini", "Synth", "mini", "bristol_mini", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/mini.html") ],
[ "bristol", "Sequential Circuits Prophet-52", "Synth", "prophet52", "bristol_prophet52", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/prophet52.html") ],
[ "bristol", "Moog/Realistic MG-1", "Synth", "realistic", "bristol_realistic", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/realistic.html") ],
[ "bristol", "Memory Moog", "Synth", "memoryMoog", "bristol_memoryMoog", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/memorymoog.html") ],
[ "bristol", "Baumann BME-700", "Synth", "BME700", "bristol_BME700", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/bme700.shtml") ],
#[ "bristol", "Synthi Aks", "Synth", "aks", "bristol_aks", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/aks.html") ],
[ "bristol", "Moog Voyager Blue Ice", "Synth", "voyager", "bristol_voyager", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/voyager.html") ],
[ "bristol", "Moog Sonic-6", "Synth", "sonic6", "bristol_sonic6", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/sonic6.html") ],
[ "bristol", "Hammond B3", "Synth", "hammondB3", "bristol_hammondB3", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/hammond.html") ],
[ "bristol", "Sequential Circuits Prophet-5", "Synth", "prophet", "bristol_prophet", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/prophet5.html") ],
[ "bristol", "Sequential Circuits Prophet-10", "Synth", "prophet10", "bristol_prophet10", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/prophet10.html") ],
[ "bristol", "Sequential Circuits Pro-1", "Synth", "pro1", "bristol_pro1", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/pro1.html") ],
[ "bristol", "Fender Rhodes Stage-73", "Synth", "rhodes", "bristol_rhodes", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/rhodes.html") ],
[ "bristol", "Rhodes Bass Piano", "Synth", "rhodesbass", "bristol_rhodesbass", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/rhodes.html") ],
[ "bristol", "Crumar Roadrunner", "Synth", "roadrunner", "bristol_roadrunner", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/roadrunner.html") ],
[ "bristol", "Crumar Bit-1", "Synth", "bitone", "bristol_bitone", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/bitone.html") ],
[ "bristol", "Crumar Stratus", "Synth", "stratus", "bristol_stratus", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/stratus.html") ],
[ "bristol", "Crumar Trilogy", "Synth", "trilogy", "bristol_trilogy", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/trilogy.html") ],
[ "bristol", "Oberheim OB-X", "Synth", "obx", "bristol_obx", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/obx.html") ],
[ "bristol", "Oberheim OB-Xa", "Synth", "obxa", "bristol_obxa", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/obxa.html") ],
[ "bristol", "ARP Axxe", "Synth", "axxe", "bristol_axxe", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/axxe.html") ],
[ "bristol", "ARP Odyssey", "Synth", "odyssey", "bristol_odyssey", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/odyssey.html") ],
[ "bristol", "ARP 2600", "Synth", "arp2600", "bristol_arp2600", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/arp2600.html") ],
[ "bristol", "ARP Solina Strings", "Synth", "solina", "bristol_solina", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/solina.html") ],
[ "bristol", "Korg Poly-800", "Synth", "poly800", "bristol_poly800", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/poly800.shtml") ],
[ "bristol", "Korg Mono/Poly", "Synth", "monopoly", "bristol_monopoly", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/mono.html") ],
[ "bristol", "Korg Polysix", "Synth", "poly", "bristol_poly", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/poly.html") ],
[ "bristol", "Korg MS-20 (*)", "Synth", "ms20", "bristol_ms20", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/ms20.html") ],
[ "bristol", "VOX Continental", "Synth", "vox", "bristol_vox", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/vox.html") ],
[ "bristol", "VOX Continental 300", "Synth", "voxM2", "bristol_voxM2", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/vox300.html") ],
[ "bristol", "Roland Juno-6", "Synth", "juno", "bristol_juno", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/juno.html") ],
[ "bristol", "Roland Jupiter 8", "Synth", "jupiter8", "bristol_jupiter8", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/jupiter8.html") ],
#[ "bristol", "Bristol BassMaker", "Synth", "bassmaker", "bristol_bassmaker", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "") ],
[ "bristol", "Yamaha DX", "Synth", "dx", "bristol_dx", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/dx.html") ],
#[ "bristol", "Yamaha CS-80", "Synth", "cs80", "bristol_cs80", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/cs80.html") ],
[ "bristol", "Bristol SID Softsynth", "Synth", "sidney", "bristol_sidney", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/sidney.shtml") ],
#[ "bristol", "Commodore-64 SID polysynth", "Synth", "melbourne", "bristol_sidney", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "") ], #FIXME - needs icon
#[ "bristol", "Bristol Granular Synthesiser", "Synth", "granular", "bristol_granular", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "") ],
#[ "bristol", "Bristol Realtime Mixer", "Synth", "mixer", "bristol_mixer", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sourceforge.net/mixer.html") ],
]

iBristol_Package, iBristol_AppName, iBristol_Type, iBristol_ShortName, iBristol_Icon, iBristol_Template, iBristol_Level, iBristol_RelModel, iBristol_Features, iBristol_Docs = range(0, len(list_Bristol[0]))

# -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
# Plugin, TODO

list_Plugin = [
]

# -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
# Effect

@@ -193,60 +207,60 @@ iBristol_Package, iBristol_AppName, iBristol_Type, iBristol_ShortName, iBristol_

list_Effect = [
# Package AppName Type Binary Icon Template? Level Rel.-Model (S, MIDI-Mode) (doc, website)
( "ambdec", "AmbDec", "Ambisonic Decoder", "ambdec", generic_audio_icon, TEMPLATE_NO, LEVEL_0, "OpenSource", (1, "---"), ("", "") ),
[ "ambdec", "AmbDec", "Ambisonic Decoder", "ambdec", generic_audio_icon, TEMPLATE_NO, LEVEL_0, "OpenSource", (1, "---"), ("", "") ],

( "arctican-plugins", "The Function", "Delay", "TheFunction", "arctican_plugins", TEMPLATE_NO, LEVEL_0, "OpenSource", (1, "ALSA"), ("", "http://arcticanaudio.webs.com/effects/thepilgrim.htm") ),
( "arctican-plugins", "The Pilgrim", "Filter", "ThePilgrim", "arctican_plugins", TEMPLATE_NO, LEVEL_0, "OpenSource", (1, "ALSA"), ("", "http://arcticanaudio.webs.com/effects/thefunction.htm") ),
[ "arctican-plugins", "The Function", "Delay", "TheFunction", "arctican_plugins", TEMPLATE_NO, LEVEL_0, "OpenSource", (1, "ALSA"), ("", "http://arcticanaudio.webs.com/effects/thepilgrim.htm") ],
[ "arctican-plugins", "The Pilgrim", "Filter", "ThePilgrim", "arctican_plugins", TEMPLATE_NO, LEVEL_0, "OpenSource", (1, "ALSA"), ("", "http://arcticanaudio.webs.com/effects/thefunction.htm") ],

( "distrho-plugins", "3 BandEQ", "EQ", "3BandEQ", "distrho_plugins", TEMPLATE_NO, LEVEL_0, "OpenSource", (1, "ALSA"), ("", "") ),
( "distrho-plugins", "Ping Pong Pan", "Pan", "PingPongPan", "distrho_plugins", TEMPLATE_NO, LEVEL_0, "OpenSource", (1, "ALSA"), ("", "") ),
[ "distrho-plugins", "3 BandEQ", "EQ", "3BandEQ", "distrho_plugins", TEMPLATE_NO, LEVEL_0, "OpenSource", (1, "ALSA"), ("", "") ],
[ "distrho-plugins", "Ping Pong Pan", "Pan", "PingPongPan", "distrho_plugins", TEMPLATE_NO, LEVEL_0, "OpenSource", (1, "ALSA"), ("", "") ],

( "distrho-plugin-ports", "Argotlunar", "Granularor", "argotlunar", generic_audio_icon, TEMPLATE_NO, LEVEL_0, "OpenSource", (1, "ALSA"), ("", "http://argotlunar.info/") ),
( "distrho-plugin-ports", "BitMangler", "Misc", "bitmangler", generic_audio_icon, TEMPLATE_NO, LEVEL_0, "OpenSource", (1, "ALSA"), ("", "") ),
( "distrho-plugin-ports", "Juce Pitcher", "Pitch-Shifter", "juce_pitcher", generic_audio_icon, TEMPLATE_NO, LEVEL_0, "OpenSource", (1, "ALSA"), ("", "") ),
( "distrho-plugin-ports", "sDelay", "Delay", "sDelay", generic_audio_icon, TEMPLATE_NO, LEVEL_0, "OpenSource", (1, "ALSA"), ("", "") ),
[ "distrho-plugin-ports", "Argotlunar", "Granularor", "argotlunar", generic_audio_icon, TEMPLATE_NO, LEVEL_0, "OpenSource", (1, "ALSA"), ("", "http://argotlunar.info/") ],
[ "distrho-plugin-ports", "BitMangler", "Misc", "bitmangler", generic_audio_icon, TEMPLATE_NO, LEVEL_0, "OpenSource", (1, "ALSA"), ("", "") ],
[ "distrho-plugin-ports", "Juce Pitcher", "Pitch-Shifter", "juce_pitcher", generic_audio_icon, TEMPLATE_NO, LEVEL_0, "OpenSource", (1, "ALSA"), ("", "") ],
[ "distrho-plugin-ports", "sDelay", "Delay", "sDelay", generic_audio_icon, TEMPLATE_NO, LEVEL_0, "OpenSource", (1, "ALSA"), ("", "") ],

( "drowaudio-plugins", "dRowAudio Distortion", "Distortion", "drowaudio-distortion", generic_audio_icon, TEMPLATE_NO, LEVEL_0, "OpenSource", (1, "ALSA"), ("", "") ),
( "drowaudio-plugins", "dRowAudio Distortion-Shaper", "Distortion", "drowaudio-distortionshaper", generic_audio_icon, TEMPLATE_NO, LEVEL_0, "OpenSource", (1, "ALSA"), ("", "") ),
( "drowaudio-plugins", "dRowAudio Flanger", "Flanger", "drowaudio-flanger", generic_audio_icon, TEMPLATE_NO, LEVEL_0, "OpenSource", (1, "ALSA"), ("", "") ),
( "drowaudio-plugins", "dRowAudio Reverb", "Reverb", "drowaudio-reverb", generic_audio_icon, TEMPLATE_NO, LEVEL_0, "OpenSource", (1, "ALSA"), ("", "") ),
( "drowaudio-plugins", "dRowAudio Tremolo", "Tremolo", "drowaudio-tremolo", generic_audio_icon, TEMPLATE_NO, LEVEL_0, "OpenSource", (1, "ALSA"), ("", "") ),
[ "drowaudio-plugins", "dRowAudio Distortion", "Distortion", "drowaudio-distortion", generic_audio_icon, TEMPLATE_NO, LEVEL_0, "OpenSource", (1, "ALSA"), ("", "") ],
[ "drowaudio-plugins", "dRowAudio Distortion-Shaper", "Distortion", "drowaudio-distortionshaper", generic_audio_icon, TEMPLATE_NO, LEVEL_0, "OpenSource", (1, "ALSA"), ("", "") ],
[ "drowaudio-plugins", "dRowAudio Flanger", "Flanger", "drowaudio-flanger", generic_audio_icon, TEMPLATE_NO, LEVEL_0, "OpenSource", (1, "ALSA"), ("", "") ],
[ "drowaudio-plugins", "dRowAudio Reverb", "Reverb", "drowaudio-reverb", generic_audio_icon, TEMPLATE_NO, LEVEL_0, "OpenSource", (1, "ALSA"), ("", "") ],
[ "drowaudio-plugins", "dRowAudio Tremolo", "Tremolo", "drowaudio-tremolo", generic_audio_icon, TEMPLATE_NO, LEVEL_0, "OpenSource", (1, "ALSA"), ("", "") ],

( "guitarix", "Guitarix", "Guitar FX", "guitarix", "gx_head", TEMPLATE_NO, LEVEL_0, "OpenSource", (0, "JACK"), ("", "http://guitarix.sourceforge.net/") ),
[ "guitarix", "Guitarix", "Guitar FX", "guitarix", "gx_head", TEMPLATE_NO, LEVEL_0, "OpenSource", (0, "JACK"), ("", "http://guitarix.sourceforge.net/") ],

( "hybridreverb2", "HybridReverb2", "Reverb", "HybridReverb2", generic_audio_icon, TEMPLATE_NO, LEVEL_0, "OpenSource", (1, "ALSA"), ("", "http://www2.ika.rub.de/HybridReverb2/") ),
[ "hybridreverb2", "HybridReverb2", "Reverb", "HybridReverb2", generic_audio_icon, TEMPLATE_NO, LEVEL_0, "OpenSource", (1, "ALSA"), ("", "http://www2.ika.rub.de/HybridReverb2/") ],

( "jamin", "Jamin", "Mastering", "jamin", "jamin", TEMPLATE_NO, LEVEL_0, "OpenSource", (1, "---"), ("", "http://jamin.sourceforge.net/") ),
[ "jamin", "Jamin", "Mastering", "jamin", "jamin", TEMPLATE_NO, LEVEL_0, "OpenSource", (1, "---"), ("", "http://jamin.sourceforge.net/") ],

( "juced-plugins", "EQinox", "EQ", "eqinox", "juced_plugins", TEMPLATE_NO, LEVEL_0, "OpenSource", (1, "ALSA"), ("", "") ),
[ "juced-plugins", "EQinox", "EQ", "eqinox", "juced_plugins", TEMPLATE_NO, LEVEL_0, "OpenSource", (1, "ALSA"), ("", "") ],

( "linuxdsp-plugins", "linuxDSP Channel Equaliser", "EQ", "ch-eq2b-x86-64 || ch-eq2b-i686", "linuxdsp", TEMPLATE_NO, LEVEL_0, "Demo", (1, "---"), ("file:///usr/share/doc/linuxdsp-plugins/CH-EQ2B/manual.pdf.gz", "http://www.linuxdsp.co.uk/download/lv2/download_ch_eqb/index.html") ),
( "linuxdsp-plugins", "linuxDSP Multiband Compressor", "Compressor", "mbc2b-x86-64 || mbc2b-i686", "linuxdsp", TEMPLATE_NO, LEVEL_0, "Demo", (1, "---"), ("file:///usr/share/doc/linuxdsp-plugins/MBC2B/manual.pdf.gz", "http://www.linuxdsp.co.uk/download/lv2/download_mbc2/index.html") ),
( "linuxdsp-plugins", "linuxDSP Graphical Equalizer", "EQ", "mkii-graph-eq2-x86-64 || mkii-graph-eq2-i686", "linuxdsp", TEMPLATE_NO, LEVEL_0, "Demo", (1, "---"), ("file:///usr/share/doc/linuxdsp-plugins/MKII-GRAPH-EQ/manual.pdf.gz", "http://www.linuxdsp.co.uk/download/lv2/download_mkii_graph_eq/index.html") ),
( "linuxdsp-plugins", "linuxDSP Vintage Program EQ", "EQ", "peq-2a-x86-64 || peq-2a-i686", "linuxdsp", TEMPLATE_NO, LEVEL_0, "Demo", (1, "---"), ("file:///usr/share/doc/linuxdsp-plugins/PEQ-2A/manual.pdf.gz", "http://www.linuxdsp.co.uk/download/lv2/download_sr_2b/index.html") ),
( "linuxdsp-plugins", "linuxDSP Reverb", "Reverb", "sr2b-x86-64 || sr2b-i686", "linuxdsp", TEMPLATE_NO, LEVEL_0, "Demo", (1, "---"), ("file:///usr/share/doc/linuxdsp-plugins/SR2B/manual.pdf.gz", "http://www.linuxdsp.co.uk/download/lv2/download_sr_2b/index.html") ),
( "linuxdsp-plugins", "linuxDSP Vintage Compressor", "Compressor", "vc2b-x86-64 || vc2b-i686", "linuxdsp", TEMPLATE_NO, LEVEL_0, "Demo", (1, "---"), ("file:///usr/share/doc/linuxdsp-plugins/VC2B/manual.pdf.gz", "http://www.linuxdsp.co.uk/download/lv2/download_vc2b/index.html") ),
[ "linuxdsp-plugins", "linuxDSP Channel Equaliser", "EQ", "ch-eq2b-x86-64 || ch-eq2b-i686", "linuxdsp", TEMPLATE_NO, LEVEL_0, "Demo", (1, "---"), ("file:///usr/share/doc/linuxdsp-plugins/CH-EQ2B/manual.pdf.gz", "http://www.linuxdsp.co.uk/download/lv2/download_ch_eqb/index.html") ],
[ "linuxdsp-plugins", "linuxDSP Multiband Compressor", "Compressor", "mbc2b-x86-64 || mbc2b-i686", "linuxdsp", TEMPLATE_NO, LEVEL_0, "Demo", (1, "---"), ("file:///usr/share/doc/linuxdsp-plugins/MBC2B/manual.pdf.gz", "http://www.linuxdsp.co.uk/download/lv2/download_mbc2/index.html") ],
[ "linuxdsp-plugins", "linuxDSP Graphical Equalizer", "EQ", "mkii-graph-eq2-x86-64 || mkii-graph-eq2-i686", "linuxdsp", TEMPLATE_NO, LEVEL_0, "Demo", (1, "---"), ("file:///usr/share/doc/linuxdsp-plugins/MKII-GRAPH-EQ/manual.pdf.gz", "http://www.linuxdsp.co.uk/download/lv2/download_mkii_graph_eq/index.html") ],
[ "linuxdsp-plugins", "linuxDSP Vintage Program EQ", "EQ", "peq-2a-x86-64 || peq-2a-i686", "linuxdsp", TEMPLATE_NO, LEVEL_0, "Demo", (1, "---"), ("file:///usr/share/doc/linuxdsp-plugins/PEQ-2A/manual.pdf.gz", "http://www.linuxdsp.co.uk/download/lv2/download_sr_2b/index.html") ],
[ "linuxdsp-plugins", "linuxDSP Reverb", "Reverb", "sr2b-x86-64 || sr2b-i686", "linuxdsp", TEMPLATE_NO, LEVEL_0, "Demo", (1, "---"), ("file:///usr/share/doc/linuxdsp-plugins/SR2B/manual.pdf.gz", "http://www.linuxdsp.co.uk/download/lv2/download_sr_2b/index.html") ],
[ "linuxdsp-plugins", "linuxDSP Vintage Compressor", "Compressor", "vc2b-x86-64 || vc2b-i686", "linuxdsp", TEMPLATE_NO, LEVEL_0, "Demo", (1, "---"), ("file:///usr/share/doc/linuxdsp-plugins/VC2B/manual.pdf.gz", "http://www.linuxdsp.co.uk/download/lv2/download_vc2b/index.html") ],

( "linuxdsp-plugins", "linuxDSP Guitar Chorus", "Chorus", "cr1-x86-64 || cr1-i686", "linuxdsp", TEMPLATE_NO, LEVEL_0, "Demo", (0, "---"), ("file:///usr/share/doc/linuxdsp-plugins/CR1/manual.pdf.gz", "http://www.linuxdsp.co.uk/download/lv2/download_guitar_fx/index.html") ),
( "linuxdsp-plugins", "linuxDSP Guitar Distortion", "Distortion", "dt1-x86-64 || dt1-i686", "linuxdsp", TEMPLATE_NO, LEVEL_0, "Demo", (0, "---"), ("file:///usr/share/doc/linuxdsp-plugins/DT1/dt1_manual.pdf.gz", "http://www.linuxdsp.co.uk/download/lv2/download_guitar_fx/index.html") ),
( "linuxdsp-plugins", "linuxDSP Guitar Phaser", "Phaser", "ph1-x86-64 || ph1-i686", "linuxdsp", TEMPLATE_NO, LEVEL_0, "Demo", (0, "---"), ("file:///usr/share/doc/linuxdsp-plugins/PH1/ph1_manual.pdf.gz", "http://www.linuxdsp.co.uk/download/lv2/download_guitar_fx/index.html") ),
( "linuxdsp-plugins", "linuxDSP Guitar WAH", "Distortion", "wah1-x86-64 || wah1-i686", "linuxdsp", TEMPLATE_NO, LEVEL_0, "Demo", (0, "---"), ("file:///usr/share/doc/linuxdsp-plugins/WAH1/wah1_manual.pdf.gz", "http://www.linuxdsp.co.uk/download/lv2/download_guitar_fx/index.html") ),
( "linuxdsp-plugins", "linuxDSP Valve Overdrive", "Amplifier", "odv2_x86-64 || odv2_i686", "linuxdsp", TEMPLATE_NO, LEVEL_0, "FreeWare", (1, "---"), ("file:///usr/share/doc/linuxdsp-plugins/ODV2/manual.pdf.gz", "http://www.linuxdsp.co.uk/download/jack/download_odv2_jack/index.html") ),
[ "linuxdsp-plugins", "linuxDSP Guitar Chorus", "Chorus", "cr1-x86-64 || cr1-i686", "linuxdsp", TEMPLATE_NO, LEVEL_0, "Demo", (0, "---"), ("file:///usr/share/doc/linuxdsp-plugins/CR1/manual.pdf.gz", "http://www.linuxdsp.co.uk/download/lv2/download_guitar_fx/index.html") ],
[ "linuxdsp-plugins", "linuxDSP Guitar Distortion", "Distortion", "dt1-x86-64 || dt1-i686", "linuxdsp", TEMPLATE_NO, LEVEL_0, "Demo", (0, "---"), ("file:///usr/share/doc/linuxdsp-plugins/DT1/dt1_manual.pdf.gz", "http://www.linuxdsp.co.uk/download/lv2/download_guitar_fx/index.html") ],
[ "linuxdsp-plugins", "linuxDSP Guitar Phaser", "Phaser", "ph1-x86-64 || ph1-i686", "linuxdsp", TEMPLATE_NO, LEVEL_0, "Demo", (0, "---"), ("file:///usr/share/doc/linuxdsp-plugins/PH1/ph1_manual.pdf.gz", "http://www.linuxdsp.co.uk/download/lv2/download_guitar_fx/index.html") ],
[ "linuxdsp-plugins", "linuxDSP Guitar WAH", "Distortion", "wah1-x86-64 || wah1-i686", "linuxdsp", TEMPLATE_NO, LEVEL_0, "Demo", (0, "---"), ("file:///usr/share/doc/linuxdsp-plugins/WAH1/wah1_manual.pdf.gz", "http://www.linuxdsp.co.uk/download/lv2/download_guitar_fx/index.html") ],
[ "linuxdsp-plugins", "linuxDSP Valve Overdrive", "Amplifier", "odv2_x86-64 || odv2_i686", "linuxdsp", TEMPLATE_NO, LEVEL_0, "FreeWare", (1, "---"), ("file:///usr/share/doc/linuxdsp-plugins/ODV2/manual.pdf.gz", "http://www.linuxdsp.co.uk/download/jack/download_odv2_jack/index.html") ],

( "loomer-plugins", "Manifold", "Enhancer", "Manifold", "loomer", TEMPLATE_NO, LEVEL_0, "Demo", (1, "ALSA"), ("file:///usr/share/doc/loomer-plugins/Manifold Manual.pdf.gz", "http://www.loomer.co.uk/manifold.htm") ),
( "loomer-plugins", "Resound", "Delay", "Resound", "loomer", TEMPLATE_NO, LEVEL_0, "Demo", (1, "ALSA"), ("file:///usr/share/doc/loomer-plugins/Resound Manual.pdf.gz", "http://www.loomer.co.uk/resound.htm") ),
( "loomer-plugins", "Shift2", "Pitch-Shifter/Delay", "Shift2", "loomer", TEMPLATE_NO, LEVEL_0, "Demo", (1, "ALSA"), ("file:///usr/share/doc/loomer-plugins/Shift2 Manual.pdf.gz", "http://www.loomer.co.uk/shift2.htm") ),
( "loomer-plugins", "String (FX)", "Bundle", "String_FX", "loomer", TEMPLATE_NO, LEVEL_0, "Demo", (1, "ALSA"), ("file:///usr/share/doc/loomer-plugins/String Manual.pdf.gz", "http://www.loomer.co.uk/string.htm") ),
[ "loomer-plugins", "Manifold", "Enhancer", "Manifold", "loomer", TEMPLATE_NO, LEVEL_0, "Demo", (1, "ALSA"), ("file:///usr/share/doc/loomer-plugins/Manifold Manual.pdf.gz", "http://www.loomer.co.uk/manifold.htm") ],
[ "loomer-plugins", "Resound", "Delay", "Resound", "loomer", TEMPLATE_NO, LEVEL_0, "Demo", (1, "ALSA"), ("file:///usr/share/doc/loomer-plugins/Resound Manual.pdf.gz", "http://www.loomer.co.uk/resound.htm") ],
[ "loomer-plugins", "Shift2", "Pitch-Shifter/Delay", "Shift2", "loomer", TEMPLATE_NO, LEVEL_0, "Demo", (1, "ALSA"), ("file:///usr/share/doc/loomer-plugins/Shift2 Manual.pdf.gz", "http://www.loomer.co.uk/shift2.htm") ],
[ "loomer-plugins", "String (FX)", "Bundle", "String_FX", "loomer", TEMPLATE_NO, LEVEL_0, "Demo", (1, "ALSA"), ("file:///usr/share/doc/loomer-plugins/String Manual.pdf.gz", "http://www.loomer.co.uk/string.htm") ],

( "rakarrack", "Rakarrack", "Guitar FX", "rakarrack", "rakarrack", TEMPLATE_NO, LEVEL_0, "OpenSource", (1, "ALSA + JACK"), ("file:///usr/share/doc/rakarrack/html/help.html", "http://rakarrack.sourceforge.net") ),
[ "rakarrack", "Rakarrack", "Guitar FX", "rakarrack", "rakarrack", TEMPLATE_NO, LEVEL_0, "OpenSource", (1, "ALSA + JACK"), ("file:///usr/share/doc/rakarrack/html/help.html", "http://rakarrack.sourceforge.net") ],

( "tal-plugins", "TAL Dub 3", "Delay", "TAL-Dub-3", "tal_plugins", TEMPLATE_NO, LEVEL_0, "OpenSource", (1, "ALSA"), ("", "http://kunz.corrupt.ch/products/tal-noisemaker") ),
( "tal-plugins", "TAL Filter", "Filter", "TAL-Filter", "tal_plugins", TEMPLATE_NO, LEVEL_0, "OpenSource", (1, "ALSA"), ("", "http://kunz.corrupt.ch/products/tal-filter") ),
( "tal-plugins", "TAL Filter 2", "Filter", "TAL-Filter-2", "tal_plugins", TEMPLATE_NO, LEVEL_0, "OpenSource", (1, "ALSA"), ("", "http://kunz.corrupt.ch/products/tal-filter") ),
( "tal-plugins", "TAL Reverb", "Reverb", "TAL-Reverb", "tal_plugins", TEMPLATE_NO, LEVEL_0, "OpenSource", (1, "ALSA"), ("", "http://kunz.corrupt.ch/products/tal-reverb") ),
( "tal-plugins", "TAL Reverb 2", "Reverb", "TAL-Reverb-2", "tal_plugins", TEMPLATE_NO, LEVEL_0, "OpenSource", (1, "ALSA"), ("", "http://kunz.corrupt.ch/products/tal-reverb") ),
( "tal-plugins", "TAL Reverb 3", "Reverb", "TAL-Reverb-3", "tal_plugins", TEMPLATE_NO, LEVEL_0, "OpenSource", (1, "ALSA"), ("", "http://kunz.corrupt.ch/products/tal-reverb") ),
( "tal-plugins", "TAL Vocoder 2", "Vocoder", "TAL-Vocoder-2", "tal_plugins", TEMPLATE_NO, LEVEL_0, "OpenSource", (1, "ALSA"), ("", "http://kunz.corrupt.ch/products/tal-vocoder") ),
[ "tal-plugins", "TAL Dub 3", "Delay", "TAL-Dub-3", "tal_plugins", TEMPLATE_NO, LEVEL_0, "OpenSource", (1, "ALSA"), ("", "http://kunz.corrupt.ch/products/tal-noisemaker") ],
[ "tal-plugins", "TAL Filter", "Filter", "TAL-Filter", "tal_plugins", TEMPLATE_NO, LEVEL_0, "OpenSource", (1, "ALSA"), ("", "http://kunz.corrupt.ch/products/tal-filter") ],
[ "tal-plugins", "TAL Filter 2", "Filter", "TAL-Filter-2", "tal_plugins", TEMPLATE_NO, LEVEL_0, "OpenSource", (1, "ALSA"), ("", "http://kunz.corrupt.ch/products/tal-filter") ],
[ "tal-plugins", "TAL Reverb", "Reverb", "TAL-Reverb", "tal_plugins", TEMPLATE_NO, LEVEL_0, "OpenSource", (1, "ALSA"), ("", "http://kunz.corrupt.ch/products/tal-reverb") ],
[ "tal-plugins", "TAL Reverb 2", "Reverb", "TAL-Reverb-2", "tal_plugins", TEMPLATE_NO, LEVEL_0, "OpenSource", (1, "ALSA"), ("", "http://kunz.corrupt.ch/products/tal-reverb") ],
[ "tal-plugins", "TAL Reverb 3", "Reverb", "TAL-Reverb-3", "tal_plugins", TEMPLATE_NO, LEVEL_0, "OpenSource", (1, "ALSA"), ("", "http://kunz.corrupt.ch/products/tal-reverb") ],
[ "tal-plugins", "TAL Vocoder 2", "Vocoder", "TAL-Vocoder-2", "tal_plugins", TEMPLATE_NO, LEVEL_0, "OpenSource", (1, "ALSA"), ("", "http://kunz.corrupt.ch/products/tal-vocoder") ],
]

iEffect_Package, iEffect_AppName, iEffect_Type, iEffect_Binary, iEffect_Icon, iEffect_Template, iEffect_Level, iEffect_RelModel, iEffect_Features, iEffect_Docs = range(0, len(list_Effect[0]))
@@ -258,68 +272,68 @@ iEffect_Package, iEffect_AppName, iEffect_Type, iEffect_Binary, iEffect_Icon, iE

list_Tool = [
# Package AppName Type Binary Icon Template? Level Rel.-Model (MIDI-Mode, T) (doc, website)
( "arpage", "Arpage", "MIDI Arpeggiator", "arpage", "arpage", TEMPLATE_NO, LEVEL_0, "OpenSource", ("JACK", 1), ("", "") ),
( "arpage", "Zonage", "MIDI Mapper", "zonage", "zonage", TEMPLATE_NO, LEVEL_0, "OpenSource", ("JACK", 0), ("", "") ),
[ "arpage", "Arpage", "MIDI Arpeggiator", "arpage", "arpage", TEMPLATE_NO, LEVEL_0, "OpenSource", ("JACK", 1), ("", "") ],
[ "arpage", "Zonage", "MIDI Mapper", "zonage", "zonage", TEMPLATE_NO, LEVEL_0, "OpenSource", ("JACK", 0), ("", "") ],

( "audacity", "Audacity", "Audio Editor", "audacity", "audacity", TEMPLATE_NO, LEVEL_0, "OpenSource", ("---", 0), ("", "http://audacity.sourceforge.net/") ),
[ "audacity", "Audacity", "Audio Editor", "audacity", "audacity", TEMPLATE_NO, LEVEL_0, "OpenSource", ("---", 0), ("", "http://audacity.sourceforge.net/") ],

( "cadence", "Cadence", "Multi-Feature", "cadence", "cadence", TEMPLATE_NO, LEVEL_0, "OpenSource", ("---", 0), ("", "") ),
( "cadence-tools", "Cadence XY-Controller", "XY Controller", "cadence-xycontroller", generic_audio_icon, TEMPLATE_NO, LEVEL_0, "OpenSource", ("JACK", 0), ("", "") ),
( "catia", "Catia", "Patch Bay", "catia", "catia", TEMPLATE_NO, LEVEL_0, "OpenSource", ("JACK", 1), ("", "") ),
( "claudia", "Claudia", "Session Handler", "claudia", "claudia", TEMPLATE_NO, LEVEL_0, "OpenSource", ("JACK", 1), ("", "") ),
( "carla-control", "Carla OSC Control", "OSC Control", "carla-control", "carla-control", TEMPLATE_NO, LEVEL_0, "OpenSource", ("JACK", 1), ("", "") ),
[ "cadence", "Cadence", "Multi-Feature", "cadence", "cadence", TEMPLATE_NO, LEVEL_0, "OpenSource", ("---", 0), ("", "") ],
[ "cadence-tools", "Cadence XY-Controller", "XY Controller", "cadence-xycontroller", generic_audio_icon, TEMPLATE_NO, LEVEL_0, "OpenSource", ("JACK", 0), ("", "") ],
[ "catia", "Catia", "Patch Bay", "catia", "catia", TEMPLATE_NO, LEVEL_0, "OpenSource", ("JACK", 1), ("", "") ],
[ "claudia", "Claudia", "Session Handler", "claudia", "claudia", TEMPLATE_NO, LEVEL_0, "OpenSource", ("JACK", 1), ("", "") ],
[ "carla-control", "Carla OSC Control", "OSC Control", "carla-control", "carla-control", TEMPLATE_NO, LEVEL_0, "OpenSource", ("JACK", 1), ("", "") ],

( "drumstick-tools", "Drumstick Virtual Piano", "Virtual Keyboard", "drumstick-vpiano", "drumstick", TEMPLATE_NO, LEVEL_0, "OpenSource", ("ALSA", 0), ("", "http://drumstick.sourceforge.net/") ),
[ "drumstick-tools", "Drumstick Virtual Piano", "Virtual Keyboard", "drumstick-vpiano", "drumstick", TEMPLATE_NO, LEVEL_0, "OpenSource", ("ALSA", 0), ("", "http://drumstick.sourceforge.net/") ],

( "fmit", "Music Instrument Tuner", "Instrument Tuner", "fmit", generic_audio_icon, TEMPLATE_NO, LEVEL_0, "OpenSource", ("---", 0), ("", "") ),
[ "fmit", "Music Instrument Tuner", "Instrument Tuner", "fmit", generic_audio_icon, TEMPLATE_NO, LEVEL_0, "OpenSource", ("---", 0), ("", "") ],

( "gigedit", "Gigedit", "Instrument Editor", "gigedit", generic_audio_icon, TEMPLATE_NO, LEVEL_0, "OpenSource", ("---", 0), ("/usr/share/doc/gigedit/gigedit_quickstart.html", "") ),
[ "gigedit", "Gigedit", "Instrument Editor", "gigedit", generic_audio_icon, TEMPLATE_NO, LEVEL_0, "OpenSource", ("---", 0), ("/usr/share/doc/gigedit/gigedit_quickstart.html", "") ],

( "gjacktransport", "GJackClock", "Transport Tool", "gjackclock", "gjackclock", TEMPLATE_NO, LEVEL_0, "OpenSource", ("---", 1), ("", "") ),
( "gjacktransport", "GJackTransport", "Transport Tool", "gjacktransport", "gjacktransport", TEMPLATE_NO, LEVEL_0, "OpenSource", ("---", 1), ("", "") ),
[ "gjacktransport", "GJackClock", "Transport Tool", "gjackclock", "gjackclock", TEMPLATE_NO, LEVEL_0, "OpenSource", ("---", 1), ("", "") ],
[ "gjacktransport", "GJackTransport", "Transport Tool", "gjacktransport", "gjacktransport", TEMPLATE_NO, LEVEL_0, "OpenSource", ("---", 1), ("", "") ],

( "gladish", "LADI Session Handler", "Session Handler", "gladish", "gladish", TEMPLATE_NO, LEVEL_0, "OpenSource", ("JACK", 0), ("", "http://www.ladish.org") ),
[ "gladish", "LADI Session Handler", "Session Handler", "gladish", "gladish", TEMPLATE_NO, LEVEL_0, "OpenSource", ("JACK", 0), ("", "http://www.ladish.org") ],

( "gninjam", "Gtk NINJAM client", "Music Collaboration", "gninjam", generic_audio_icon, TEMPLATE_NO, LEVEL_0, "OpenSource", ("---", 1), ("", "") ),
[ "gninjam", "Gtk NINJAM client", "Music Collaboration", "gninjam", generic_audio_icon, TEMPLATE_NO, LEVEL_0, "OpenSource", ("---", 1), ("", "") ],

( "jack-keyboard", "Jack Keyboard", "Virtual Keyboard", "jack-keyboard", "jack-keyboard", TEMPLATE_NO, LEVEL_0, "OpenSource", ("JACK", 0), ("file:///usr/share/kxstudio/docs/jack-keyboard/manual.html", "http://jack-keyboard.sourceforge.net/") ),
[ "jack-keyboard", "Jack Keyboard", "Virtual Keyboard", "jack-keyboard", "jack-keyboard", TEMPLATE_NO, LEVEL_0, "OpenSource", ("JACK", 0), ("file:///usr/share/kxstudio/docs/jack-keyboard/manual.html", "http://jack-keyboard.sourceforge.net/") ],

( "jack-mixer", "Jack Mixer", "Mixer", "jack_mixer", "jack_mixer", TEMPLATE_NO, LEVEL_1, "OpenSource", ("JACK", 0), ("", "http://home.gna.org/jackmixer/") ),
[ "jack-mixer", "Jack Mixer", "Mixer", "jack_mixer", "jack_mixer", TEMPLATE_NO, LEVEL_1, "OpenSource", ("JACK", 0), ("", "http://home.gna.org/jackmixer/") ],

( "kmetronome", "KMetronome", "Metronome", "kmetronome", "kmetronome", TEMPLATE_NO, LEVEL_0, "OpenSource", ("ALSA", 0), ("", "http://kmetronome.sourceforge.net/kmetronome.shtml") ),
( "kmidimon", "KMidimon", "Monitor", "kmidimon", "kmidimon", TEMPLATE_NO, LEVEL_0, "OpenSource", ("ALSA", 0), ("", "http://kmidimon.sourceforge.net/") ),
[ "kmetronome", "KMetronome", "Metronome", "kmetronome", "kmetronome", TEMPLATE_NO, LEVEL_0, "OpenSource", ("ALSA", 0), ("", "http://kmetronome.sourceforge.net/kmetronome.shtml") ],
[ "kmidimon", "KMidimon", "Monitor", "kmidimon", "kmidimon", TEMPLATE_NO, LEVEL_0, "OpenSource", ("ALSA", 0), ("", "http://kmidimon.sourceforge.net/") ],

( "laditools", "LADI Log", "Log Viewer", "ladilog", "ladilog", TEMPLATE_NO, LEVEL_0, "OpenSource", ("---", 0), ("", "") ),
( "laditools", "LADI Tray", "Session Handler", "laditray", "laditray", TEMPLATE_NO, LEVEL_0, "OpenSource", ("---", 0), ("", "") ),
[ "laditools", "LADI Log", "Log Viewer", "ladilog", "ladilog", TEMPLATE_NO, LEVEL_0, "OpenSource", ("---", 0), ("", "") ],
[ "laditools", "LADI Tray", "Session Handler", "laditray", "laditray", TEMPLATE_NO, LEVEL_0, "OpenSource", ("---", 0), ("", "") ],

( "linuxdsp-plugins", "linuxDSP JACK Patch Bay", "Patch Bay", "jp1_x86-64 || jp1_i686", "linuxdsp", TEMPLATE_NO, LEVEL_0, "FreeWare", ("JACK", 0), ("file:///usr/share/doc/linuxdsp-plugins/JP1/manual.pdf.gz", "http://www.linuxdsp.co.uk/download/jack/download_jp1_jack/index.html") ),
[ "linuxdsp-plugins", "linuxDSP JACK Patch Bay", "Patch Bay", "jp1_x86-64 || jp1_i686", "linuxdsp", TEMPLATE_NO, LEVEL_0, "FreeWare", ("JACK", 0), ("file:///usr/share/doc/linuxdsp-plugins/JP1/manual.pdf.gz", "http://www.linuxdsp.co.uk/download/jack/download_jp1_jack/index.html") ],

( "lives", "LiVES", "VJ / Video Editor", "lives", "lives", TEMPLATE_NO, LEVEL_0, "OpenSource", ("---", 1), ("", "http://lives.sourceforge.net/") ),
[ "lives", "LiVES", "VJ / Video Editor", "lives", "lives", TEMPLATE_NO, LEVEL_0, "OpenSource", ("---", 1), ("", "http://lives.sourceforge.net/") ],

( "mhwaveedit", "MhWaveEdit", "Audio Editor", "mhwaveedit", "mhwaveedit", TEMPLATE_NO, LEVEL_0, "OpenSource", ("---", 0), ("", "http://gna.org/projects/mhwaveedit/") ),
[ "mhwaveedit", "MhWaveEdit", "Audio Editor", "mhwaveedit", "mhwaveedit", TEMPLATE_NO, LEVEL_0, "OpenSource", ("---", 0), ("", "http://gna.org/projects/mhwaveedit/") ],

( "mixxx", "Mixxx", "DJ", "mixxx", "mixxx", TEMPLATE_NO, LEVEL_0, "OpenSource", ("ALSA", 0), ("file:///usr/share/kxstudio/docs/Mixxx-Manual.pdf", "http://mixxx.sourceforge.net/") ),
[ "mixxx", "Mixxx", "DJ", "mixxx", "mixxx", TEMPLATE_NO, LEVEL_0, "OpenSource", ("ALSA", 0), ("file:///usr/share/kxstudio/docs/Mixxx-Manual.pdf", "http://mixxx.sourceforge.net/") ],

( "non-mixer", "Non-Mixer", "Mixer", "non-mixer", "non-mixer", TEMPLATE_NO, LEVEL_0, "OpenSource", ("CV", 0), ("file:///usr/share/doc/non-mixer/MANUAL.html", "http://non-daw.tuxfamily.org/") ),
[ "non-mixer", "Non-Mixer", "Mixer", "non-mixer", "non-mixer", TEMPLATE_NO, LEVEL_0, "OpenSource", ("CV", 0), ("file:///usr/share/doc/non-mixer/MANUAL.html", "http://non-daw.tuxfamily.org/") ],

( "openmovieeditor", "OpenMovieEditor", "Video Editor", "openmovieeditor", "openmovieeditor", TEMPLATE_NO, LEVEL_0, "OpenSource", ("---", 1), ("file:///usr/share/kxstudio/docs/openmovieeditor/tutorial.html", "http://www.openmovieeditor.org/") ),
[ "openmovieeditor", "OpenMovieEditor", "Video Editor", "openmovieeditor", "openmovieeditor", TEMPLATE_NO, LEVEL_0, "OpenSource", ("---", 1), ("file:///usr/share/kxstudio/docs/openmovieeditor/tutorial.html", "http://www.openmovieeditor.org/") ],

( "patchage", "Patchage", "Patch Bay", "patchage", "patchage", TEMPLATE_NO, LEVEL_0, "OpenSource", ("ALSA + JACK", 0), ("", "http://drobilla.net/blog/software/patchage/") ),
( "patchage", "Patchage (ALSA Only)", "Patch Bay", "patchage -J", "patchage", TEMPLATE_NO, LEVEL_0, "OpenSource", ("ALSA", 0), ("", "http://drobilla.net/blog/software/patchage/") ),
( "patchage-svn", "Patchage (SVN)", "Patch Bay", "patchage-svn", "patchage", TEMPLATE_NO, LEVEL_0, "OpenSource", ("ALSA + JACK", 0), ("", "http://drobilla.net/blog/software/patchage/") ),
( "patchage-svn", "Patchage (SVN, ALSA Only)", "Patch Bay", "patchage-svn -J", "patchage", TEMPLATE_NO, LEVEL_0, "OpenSource", ("ALSA + JACK", 0), ("", "http://drobilla.net/blog/software/patchage/") ),
[ "patchage", "Patchage", "Patch Bay", "patchage", "patchage", TEMPLATE_NO, LEVEL_0, "OpenSource", ("ALSA + JACK", 0), ("", "http://drobilla.net/blog/software/patchage/") ],
[ "patchage", "Patchage (ALSA Only)", "Patch Bay", "patchage -J", "patchage", TEMPLATE_NO, LEVEL_0, "OpenSource", ("ALSA", 0), ("", "http://drobilla.net/blog/software/patchage/") ],
[ "patchage-svn", "Patchage (SVN)", "Patch Bay", "patchage-svn", "patchage", TEMPLATE_NO, LEVEL_0, "OpenSource", ("ALSA + JACK", 0), ("", "http://drobilla.net/blog/software/patchage/") ],
[ "patchage-svn", "Patchage (SVN, ALSA Only)", "Patch Bay", "patchage-svn -J", "patchage", TEMPLATE_NO, LEVEL_0, "OpenSource", ("ALSA + JACK", 0), ("", "http://drobilla.net/blog/software/patchage/") ],

( "qjackctl", "QJackControl", "Jack Control", "qjackctl", "qjackctl", TEMPLATE_NO, LEVEL_0, "OpenSource", ("ALSA + JACK", 1), ("", "") ),
[ "qjackctl", "QJackControl", "Jack Control", "qjackctl", "qjackctl", TEMPLATE_NO, LEVEL_0, "OpenSource", ("ALSA + JACK", 1), ("", "") ],

( "qamix", "QAMix", "Mixer", "qamix", "qamix", TEMPLATE_NO, LEVEL_0, "OpenSource", ("ALSA", 0), ("", "") ),
( "qarecord", "QARecord", "Recorder", "qarecord --jack", "qarecord_48", TEMPLATE_NO, LEVEL_0, "OpenSource", ("ALSA", 0), ("", "") ),
( "qmidiarp", "QMidiArp", "MIDI Arpeggiator", "qmidiarp", generic_midi_icon, TEMPLATE_NO, LEVEL_0, "OpenSource", ("ALSA", 0), ("", "") ),
[ "qamix", "QAMix", "Mixer", "qamix", "qamix", TEMPLATE_NO, LEVEL_0, "OpenSource", ("ALSA", 0), ("", "") ],
[ "qarecord", "QARecord", "Recorder", "qarecord --jack", "qarecord_48", TEMPLATE_NO, LEVEL_0, "OpenSource", ("ALSA", 0), ("", "") ],
[ "qmidiarp", "QMidiArp", "MIDI Arpeggiator", "qmidiarp", generic_midi_icon, TEMPLATE_NO, LEVEL_0, "OpenSource", ("ALSA", 0), ("", "") ],

( "timemachine", "TimeMachine", "Recorder", "timemachine", "timemachine", TEMPLATE_NO, LEVEL_0, "OpenSource", ("---", 0), ("", "http://plugin.org.uk/timemachine/") ),
[ "timemachine", "TimeMachine", "Recorder", "timemachine", "timemachine", TEMPLATE_NO, LEVEL_0, "OpenSource", ("---", 0), ("", "http://plugin.org.uk/timemachine/") ],

( "vmpk", "Virtual MIDI Piano Keyboard", "Virtual Keyboard", "vmpk", "vmpk", TEMPLATE_NO, LEVEL_0, "OpenSource", ("ALSA", 0), ("file:///usr/share/vmpk/help.html", "http://vmpk.sourceforge.net/") ),
[ "vmpk", "Virtual MIDI Piano Keyboard", "Virtual Keyboard", "vmpk", "vmpk", TEMPLATE_NO, LEVEL_0, "OpenSource", ("ALSA", 0), ("file:///usr/share/vmpk/help.html", "http://vmpk.sourceforge.net/") ],

( "xjadeo", "XJadeo", "Video Player", "qjadeo", "qjadeo", TEMPLATE_NO, LEVEL_0, "OpenSource", ("---", 1), ("", "http://xjadeo.sourceforge.net/") ),
[ "xjadeo", "XJadeo", "Video Player", "qjadeo", "qjadeo", TEMPLATE_NO, LEVEL_0, "OpenSource", ("---", 1), ("", "http://xjadeo.sourceforge.net/") ],
]

iTool_Package, iTool_AppName, iTool_Type, iTool_Binary, iTool_Icon, iTool_Template, iTool_Level, iTool_RelModel, iTool_Features, iTool_Docs = range(0, len(list_Tool[0]))


+ 93
- 53
src/claudia_launcher.py View File

@@ -16,12 +16,13 @@ from shared import *
SHOW_ALL = False

# Tab Indexes
TAB_INDEX_DAW = 0
TAB_INDEX_HOST = 1
TAB_INDEX_INSTRUMENT = 2
TAB_INDEX_BRISTOL = 3
TAB_INDEX_EFFECT = 4
TAB_INDEX_TOOL = 5
iTabDAW = 0
iTabHost = 1
iTabInstrument = 2
iTabBristol = 3
iTabPlugin = 4
iTabEffect = 5
iTabTool = 6

EXTRA_ICON_PATHS = [
"/usr/share/icons",
@@ -35,9 +36,9 @@ class XIcon(object):
object.__init__(self)

def addIconPath(self, path):
icon_paths = QIcon.themeSearchPaths()
icon_paths.append(path)
QIcon.setThemeSearchPaths(icon_paths)
iconPaths = QIcon.themeSearchPaths()
iconPaths.append(path)
QIcon.setThemeSearchPaths(iconPaths)

def getIcon(self, name):
if os.path.exists(name):
@@ -81,6 +82,8 @@ class ClaudiaLauncher(QWidget, ui_claudia_launcher.Ui_ClaudiaLauncherW):
self.listInstrument.setColumnWidth(2, 125)
self.listBristol.setColumnWidth(0, 22)
self.listBristol.setColumnWidth(1, 100)
self.listPlugin.setColumnWidth(0, 22)
# TODO, more
self.listEffect.setColumnWidth(0, 22)
self.listEffect.setColumnWidth(1, 225)
self.listEffect.setColumnWidth(2, 125)
@@ -97,23 +100,26 @@ class ClaudiaLauncher(QWidget, ui_claudia_launcher.Ui_ClaudiaLauncherW):
self.m_lastThemeName = QIcon.themeName()

# Copy our icons, so we can then set the fallback icon theme as the current theme
if not os.path.exists("/tmp/.claudia-icons"):
os.mkdir("/tmp/.claudia-icons")
iconPath = os.path.join(TMP, ".claudia-icons")

if not os.path.exists(iconPath):
os.mkdir(iconPath)

if os.path.exists(os.path.join(sys.path[0], "..", "icons")):
os.system("cp -r '%s' /tmp/.claudia-icons/" % os.path.join(sys.path[0], "..", "icons", "claudia-hicolor"))
os.system("cp -r '%s' '%s'" % (os.path.join(sys.path[0], "..", "icons", "claudia-hicolor"), iconPath))
elif os.path.exists(os.path.join(sys.path[0], "..", "data", "icons")):
os.system("cp -r '%s' /tmp/.claudia-icons/" % os.path.join(sys.path[0], "..", "data", "icons", "claudia-hicolor"))
os.system("cp -r '%s' '%s'" % (os.path.join(sys.path[0], "..", "data", "icons", "claudia-hicolor"), iconPath))

os.system("sed -i 's/X-CURRENT-THEME-X/%s/' /tmp/.claudia-icons/claudia-hicolor/index.theme" % self.m_lastThemeName)
os.system("sed -i 's/X-CURRENT-THEME-X/%s/' '%s'" % (self.m_lastThemeName, os.path.join(iconPath, "claudia-hicolor", "index.theme")))

self.ClaudiaIcons.addIconPath("/tmp/.claudia-icons")
self.ClaudiaIcons.addIconPath(iconPath)
QIcon.setThemeName("claudia-hicolor")

self.clearInfo_DAW()
self.clearInfo_Host()
self.clearInfo_Intrument()
self.clearInfo_Bristol()
self.clearInfo_Plugin()
self.clearInfo_Effect()
self.clearInfo_Tool()

@@ -125,30 +131,34 @@ class ClaudiaLauncher(QWidget, ui_claudia_launcher.Ui_ClaudiaLauncherW):
self.connect(self.listHost, SIGNAL("currentCellChanged(int, int, int, int)"), SLOT("slot_checkSelectedHost(int)"))
self.connect(self.listInstrument, SIGNAL("currentCellChanged(int, int, int, int)"), SLOT("slot_checkSelectedInstrument(int)"))
self.connect(self.listBristol, SIGNAL("currentCellChanged(int, int, int, int)"), SLOT("slot_checkSelectedBristol(int)"))
self.connect(self.listPlugin, SIGNAL("currentCellChanged(int, int, int, int)"), SLOT("slot_checkSelectedPlugin(int)"))
self.connect(self.listEffect, SIGNAL("currentCellChanged(int, int, int, int)"), SLOT("slot_checkSelectedEffect(int)"))
self.connect(self.listTool, SIGNAL("currentCellChanged(int, int, int, int)"), SLOT("slot_checkSelectedTool(int)"))
self.connect(self.listDAW, SIGNAL("cellDoubleClicked(int, int)"), SLOT("slot_doubleClickedListDAW(int)"))
self.connect(self.listHost, SIGNAL("cellDoubleClicked(int, int)"), SLOT("slot_doubleClickedListHost(int)"))
self.connect(self.listInstrument, SIGNAL("cellDoubleClicked(int, int)"), SLOT("slot_doubleClickedListInstrument(int)"))
self.connect(self.listBristol, SIGNAL("cellDoubleClicked(int, int)"), SLOT("slot_doubleClickedListBristol(int)"))
self.connect(self.listPlugin, SIGNAL("cellDoubleClicked(int, int)"), SLOT("slot_doubleClickedListPlugin(int)"))
self.connect(self.listEffect, SIGNAL("cellDoubleClicked(int, int)"), SLOT("slot_doubleClickedListEffect(int)"))
self.connect(self.listTool, SIGNAL("cellDoubleClicked(int, int)"), SLOT("slot_doubleClickedListTool(int)"))

def getSelectedApp(self):
tab_index = self.tabWidget.currentIndex()
column_name = 2 if (tab_index == TAB_INDEX_BRISTOL) else 1
column_name = 2 if (tab_index == iTabBristol) else 1

if tab_index == TAB_INDEX_DAW:
if tab_index == iTabDAW:
listSel = self.listDAW
elif tab_index == TAB_INDEX_HOST:
elif tab_index == iTabHost:
listSel = self.listHost
elif tab_index == TAB_INDEX_INSTRUMENT:
elif tab_index == iTabInstrument:
listSel = self.listInstrument
elif tab_index == TAB_INDEX_BRISTOL:
elif tab_index == iTabBristol:
listSel = self.listBristol
elif tab_index == TAB_INDEX_EFFECT:
elif tab_index == iTabPlugin:
listSel = self.listPlugin
elif tab_index == iTabEffect:
listSel = self.listEffect
elif tab_index == TAB_INDEX_TOOL:
elif tab_index == iTabTool:
listSel = self.listTool
else:
return ""
@@ -172,6 +182,11 @@ class ClaudiaLauncher(QWidget, ui_claudia_launcher.Ui_ClaudiaLauncherW):
if appname == AppName:
return "startBristol -audio jack -midi jack -%s" % ShortName

# TODO - plugin
#for Package, AppName, Type, Binary, Icon, Save, Level, License, Features, Docs in database.list_Effect:
#if appname == AppName:
#return Binary

for Package, AppName, Type, Binary, Icon, Save, Level, License, Features, Docs in database.list_Effect:
if appname == AppName:
return Binary
@@ -192,6 +207,7 @@ class ClaudiaLauncher(QWidget, ui_claudia_launcher.Ui_ClaudiaLauncherW):
def addAppToLADISH(self, app=None):
if not app:
app = self.getSelectedApp()

binary = self.getBinaryFromAppName(app)

if binary.startswith("startBristol"):
@@ -209,7 +225,7 @@ class ClaudiaLauncher(QWidget, ui_claudia_launcher.Ui_ClaudiaLauncherW):
#elif app == "EnergyXT2":
#self.createAppTemplate("energyxt2", app, binary)

elif app in ("Hydrogen", "Hydrogen (SVN)"):
elif app in ("Hydrogen", "Hydrogen (GIT)", "Hydrogen (SVN)"):
self.createAppTemplate("hydrogen", app, binary)

elif app == "Jacker":
@@ -242,7 +258,7 @@ class ClaudiaLauncher(QWidget, ui_claudia_launcher.Ui_ClaudiaLauncherW):
elif app == "Seq24":
self.createAppTemplate("seq24", app, binary)

elif app == "Calf Jack Host (GIT)":
elif app == "Calf Jack Host":
self.createAppTemplate("calfjackhost", app, binary)

elif app == "Carla":
@@ -317,14 +333,15 @@ class ClaudiaLauncher(QWidget, ui_claudia_launcher.Ui_ClaudiaLauncherW):

tmplte_cmd = binary
tmplte_cmd += " '%s'" % (os.path.basename(tmplte_folder) if self.callback_isLadishRoom() else tmplte_folder)
tmplte_lvl = "1"

if database.USING_KXSTUDIO:
tmplte_lvl = "1"

elif app == "ardour3":
tmplte_folder = os.path.join(proj_folder, "Ardour3_%i" % rand_check)
tmplte_file = os.path.join(tmplte_folder, "Ardour3_%i.ardour" % rand_check)
os.mkdir(tmplte_folder)

# Create template
os.system("cp '%s' '%s'" % (os.path.join(tmplte_dir, "Ardour3", "Ardour3.ardour"), tmplte_file))
os.system("cp '%s' '%s'" % (os.path.join(tmplte_dir, "Ardour3", "instant.xml"), tmplte_folder))
os.mkdir(os.path.join(tmplte_folder, "analysis"))
@@ -341,13 +358,13 @@ class ClaudiaLauncher(QWidget, ui_claudia_launcher.Ui_ClaudiaLauncherW):
tmplte_cmd = binary
tmplte_cmd += " '%s'" % (os.path.basename(tmplte_folder) if self.callback_isLadishRoom() else tmplte_folder)

if self.callback_isLadishRoom():
tmplte_lvl = "jacksession"
# FIXME - broken upstream
#if self.callback_isLadishRoom():
#tmplte_lvl = "jacksession"

elif app == "composite":
tmplte_file = os.path.join(proj_folder, "Composite_%i.h2song" % rand_check)

# Create template
os.system("cp '%s' '%s'" % (os.path.join(tmplte_dir, "Composite.h2song"), tmplte_file))

tmplte_cmd = binary
@@ -356,7 +373,6 @@ class ClaudiaLauncher(QWidget, ui_claudia_launcher.Ui_ClaudiaLauncherW):
elif app == "hydrogen":
tmplte_file = os.path.join(proj_folder, "Hydrogen_%i.h2song" % rand_check)

# Create template
os.system("cp '%s' '%s'" % (os.path.join(tmplte_dir, "Hydrogen.h2song"), tmplte_file))

tmplte_cmd = binary
@@ -370,7 +386,6 @@ class ClaudiaLauncher(QWidget, ui_claudia_launcher.Ui_ClaudiaLauncherW):
elif app == "jacker":
tmplte_file = os.path.join(proj_folder, "Jacker_%i.jsong" % rand_check)

# Create template
os.system("cp '%s' '%s'" % (os.path.join(tmplte_dir, "Jacker.jsong"), tmplte_file))

tmplte_cmd = binary
@@ -383,7 +398,6 @@ class ClaudiaLauncher(QWidget, ui_claudia_launcher.Ui_ClaudiaLauncherW):
elif app == "lmms":
tmplte_file = os.path.join(proj_folder, "LMMS_%i.mmp" % rand_check)

# Create template
os.system("cp '%s' '%s'" % (os.path.join(tmplte_dir, "LMMS.mmp"), tmplte_file))

tmplte_cmd = binary
@@ -395,7 +409,6 @@ class ClaudiaLauncher(QWidget, ui_claudia_launcher.Ui_ClaudiaLauncherW):
elif app == "muse":
tmplte_file = os.path.join(proj_folder, "MusE_%i.med" % rand_check)

# Create template
os.system("cp '%s' '%s'" % (os.path.join(tmplte_dir, "MusE.med"), tmplte_file))

tmplte_cmd = binary
@@ -405,7 +418,6 @@ class ClaudiaLauncher(QWidget, ui_claudia_launcher.Ui_ClaudiaLauncherW):
tmplte_folder = os.path.join(proj_folder, "Non-DAW_%i" % rand_check)
os.mkdir(tmplte_folder)

# Create template
os.system("cp '%s' '%s'" % (os.path.join(tmplte_dir, "Non-DAW", "history"), tmplte_folder))
os.system("cp '%s' '%s'" % (os.path.join(tmplte_dir, "Non-DAW", "info"), tmplte_folder))
os.mkdir(os.path.join(tmplte_folder, "sources"))
@@ -419,7 +431,6 @@ class ClaudiaLauncher(QWidget, ui_claudia_launcher.Ui_ClaudiaLauncherW):
elif app == "non-sequencer":
tmplte_file_r = os.path.join(proj_folder, "Non-Sequencer_%i.non" % rand_check)

# Create template
os.system("cp '%s' '%s'" % (os.path.join(tmplte_dir, "Non-Sequencer.non"), tmplte_file_r))

tmplte_cmd = binary
@@ -428,7 +439,6 @@ class ClaudiaLauncher(QWidget, ui_claudia_launcher.Ui_ClaudiaLauncherW):
elif app == "qtractor":
tmplte_file = os.path.join(proj_folder, "Qtractor_%i.qtr" % rand_check)

# Create template
os.system("cp '%s' '%s'" % (os.path.join(tmplte_dir, "Qtractor.qtr"), tmplte_file))

tmplte_cmd = binary
@@ -443,7 +453,6 @@ class ClaudiaLauncher(QWidget, ui_claudia_launcher.Ui_ClaudiaLauncherW):
tmplte_file_r = os.path.join(proj_folder, "Renoise_%i.xrns" % rand_check)
tmplte_folder = os.path.join(proj_folder, "tmp_renoise_%i" % rand_check)

# Create template
os.mkdir(tmplte_folder)
os.system("cp '%s' '%s'" % (os.path.join(tmplte_dir, "Renoise.xml"), tmplte_folder))
os.system('sed -i "s/X_BPM_X-CLAUDIA-X_BPM_X/%s/" "%s"' % (proj_bpm, os.path.join(tmplte_folder, "Renoise.xml")))
@@ -456,7 +465,6 @@ class ClaudiaLauncher(QWidget, ui_claudia_launcher.Ui_ClaudiaLauncherW):
elif app == "rosegarden":
tmplte_file = os.path.join(proj_folder, "Rosegarden_%i.rg" % rand_check)

# Create template
os.system("cp '%s' '%s'" % (os.path.join(tmplte_dir, "Rosegarden.rg"), tmplte_file))

tmplte_cmd = binary
@@ -466,7 +474,6 @@ class ClaudiaLauncher(QWidget, ui_claudia_launcher.Ui_ClaudiaLauncherW):
elif app == "seq24":
tmplte_file_r = os.path.join(proj_folder, "Seq24_%i.midi" % rand_check)

# Create template
os.system("cp '%s' '%s'" % (os.path.join(tmplte_dir, "Seq24.midi"), tmplte_file_r))

tmplte_cmd = binary
@@ -476,7 +483,6 @@ class ClaudiaLauncher(QWidget, ui_claudia_launcher.Ui_ClaudiaLauncherW):
elif app == "calfjackhost":
tmplte_file = os.path.join(proj_folder, "CalfJackHost_%i" % rand_check)

# Create template
os.system("cp '%s' '%s'" % (os.path.join(tmplte_dir, "CalfJackHost"), tmplte_file))

tmplte_cmd = binary
@@ -486,7 +492,6 @@ class ClaudiaLauncher(QWidget, ui_claudia_launcher.Ui_ClaudiaLauncherW):
elif app == "carla":
tmplte_file = os.path.join(proj_folder, "Carla_%i.carxp" % rand_check)

# Create template
os.system("cp '%s' '%s'" % (os.path.join(tmplte_dir, "Carla.carxp"), tmplte_file))

tmplte_cmd = binary
@@ -496,7 +501,6 @@ class ClaudiaLauncher(QWidget, ui_claudia_launcher.Ui_ClaudiaLauncherW):
elif app == "jack-rack":
tmplte_file = os.path.join(proj_folder, "Jack-Rack_%i.xml" % rand_check)

# Create template
os.system("cp '%s' '%s'" % (os.path.join(tmplte_dir, "Jack-Rack.xml"), tmplte_file))

tmplte_cmd = binary
@@ -505,7 +509,6 @@ class ClaudiaLauncher(QWidget, ui_claudia_launcher.Ui_ClaudiaLauncherW):
elif app == "qsampler":
tmplte_file = os.path.join(proj_folder, "Qsampler_%i.lscp" % rand_check)

# Create template
os.system("cp '%s' '%s'" % (os.path.join(tmplte_dir, "Qsampler.lscp"), tmplte_file))

tmplte_cmd = binary
@@ -515,7 +518,6 @@ class ClaudiaLauncher(QWidget, ui_claudia_launcher.Ui_ClaudiaLauncherW):
elif app == "jack-mixer":
tmplte_file = os.path.join(proj_folder, "Jack-Mixer_%i.xml" % rand_check)

# Create template
os.system("cp '%s' '%s'" % (os.path.join(tmplte_dir, "Jack-Mixer.xml"), tmplte_file))

tmplte_cmd = binary
@@ -527,7 +529,7 @@ class ClaudiaLauncher(QWidget, ui_claudia_launcher.Ui_ClaudiaLauncherW):
else:
print("ClaudiaLauncher::createAppTemplate(%s) - Failed to parse app name" % app)

if tmplte_file != None:
if tmplte_file is not None:
os.system('sed -i "s/X_SR_X-CLAUDIA-X_SR_X/%s/" "%s"' % (proj_srate, tmplte_file))
os.system('sed -i "s/X_BPM_X-CLAUDIA-X_BPM_X/%s/" "%s"' % (proj_bpm, tmplte_file))
os.system('sed -i "s/X_FOLDER_X-CLAUDIA-X_FOLDER_X/%s/" "%s"' % (proj_folder.replace("/", "\/").replace("$", "\$"), tmplte_file))
@@ -599,6 +601,15 @@ class ClaudiaLauncher(QWidget, ui_claudia_launcher.Ui_ClaudiaLauncherW):
self.frame_Bristol.setEnabled(False)
self.showDoc_Bristol("", "")

def clearInfo_Plugin(self):
self.ico_app_plugin.setPixmap(self.getIcon("start-here").pixmap(48, 48))
self.label_name_plugin.setText("Plugin Name")
self.ico_stereo_plugin.setPixmap(self.getIconForYesNo(False).pixmap(16, 16))
self.ico_midi_input_plugin.setPixmap(self.getIconForYesNo(False).pixmap(16, 16))
self.ico_presets_plugin.setPixmap(self.getIconForYesNo(False).pixmap(16, 16))
self.frame_Plugin.setEnabled(False)
self.showDoc_Plugin("", "")

def clearInfo_Effect(self):
self.ico_app_effect.setPixmap(self.getIcon("start-here").pixmap(48, 48))
self.label_name_effect.setText("App Name")
@@ -648,6 +659,14 @@ class ClaudiaLauncher(QWidget, ui_claudia_launcher.Ui_ClaudiaLauncherW):
if doc: self.setDocUrl(self.url_documentation_bristol, doc)
if web: self.setWebUrl(self.url_website_bristol, web)

def showDoc_Plugin(self, doc, web):
self.url_documentation_plugin.setVisible(bool(doc))
self.url_website_plugin.setVisible(bool(web))
self.label_no_help_plugin.setVisible(not(doc or web))

if doc: self.setDocUrl(self.url_documentation_plugin, doc)
if web: self.setWebUrl(self.url_website_plugin, web)

def showDoc_Effect(self, doc, web):
self.url_documentation_effect.setVisible(bool(doc))
self.url_website_effect.setVisible(bool(web))
@@ -675,6 +694,7 @@ class ClaudiaLauncher(QWidget, ui_claudia_launcher.Ui_ClaudiaLauncherW):
self.listHost.clearContents()
self.listInstrument.clearContents()
self.listBristol.clearContents()
self.listPlugin.clearContents()
self.listEffect.clearContents()
self.listTool.clearContents()
for x in range(self.listDAW.rowCount()):
@@ -685,6 +705,8 @@ class ClaudiaLauncher(QWidget, ui_claudia_launcher.Ui_ClaudiaLauncherW):
self.listInstrument.removeRow(0)
for x in range(self.listBristol.rowCount()):
self.listBristol.removeRow(0)
for x in range(self.listPlugin.rowCount()):
self.listPlugin.removeRow(0)
for x in range(self.listEffect.rowCount()):
self.listEffect.removeRow(0)
for x in range(self.listTool.rowCount()):
@@ -713,7 +735,10 @@ class ClaudiaLauncher(QWidget, ui_claudia_launcher.Ui_ClaudiaLauncherW):
pkglist.append(package.strip())

if not "bristol" in pkglist:
self.tabWidget.setTabEnabled(TAB_INDEX_BRISTOL, False)
self.tabWidget.setTabEnabled(iTabBristol, False)

if not ("carla-bridge-linux32" in pkglist or "carla-bridge-linux64" in pkglist):
self.tabWidget.setTabEnabled(iTabPlugin, False)

last_pos = 0
for Package, AppName, Type, Binary, Icon, Save, Level, License, Features, Docs in database.list_DAW:
@@ -831,6 +856,7 @@ class ClaudiaLauncher(QWidget, ui_claudia_launcher.Ui_ClaudiaLauncherW):
self.listHost.setCurrentCell(-1, -1)
self.listInstrument.setCurrentCell(-1, -1)
self.listBristol.setCurrentCell(-1, -1)
self.listPlugin.setCurrentCell(-1, -1)
self.listEffect.setCurrentCell(-1, -1)
self.listTool.setCurrentCell(-1, -1)

@@ -838,22 +864,25 @@ class ClaudiaLauncher(QWidget, ui_claudia_launcher.Ui_ClaudiaLauncherW):
self.listHost.sortByColumn(1, Qt.AscendingOrder)
self.listInstrument.sortByColumn(1, Qt.AscendingOrder)
self.listBristol.sortByColumn(2, Qt.AscendingOrder)
self.listPlugin.sortByColumn(1, Qt.AscendingOrder)
self.listEffect.sortByColumn(1, Qt.AscendingOrder)
self.listTool.sortByColumn(1, Qt.AscendingOrder)

@pyqtSlot(int)
def slot_checkSelectedTab(self, tab_index):
if tab_index == TAB_INDEX_DAW:
if tab_index == iTabDAW:
test_selected = (len(self.listDAW.selectedItems()) > 0)
elif tab_index == TAB_INDEX_HOST:
elif tab_index == iTabHost:
test_selected = (len(self.listHost.selectedItems()) > 0)
elif tab_index == TAB_INDEX_INSTRUMENT:
elif tab_index == iTabInstrument:
test_selected = (len(self.listInstrument.selectedItems()) > 0)
elif tab_index == TAB_INDEX_BRISTOL:
elif tab_index == iTabBristol:
test_selected = (len(self.listBristol.selectedItems()) > 0)
elif tab_index == TAB_INDEX_EFFECT:
elif tab_index == iTabPlugin:
test_selected = (len(self.listPlugin.selectedItems()) > 0)
elif tab_index == iTabEffect:
test_selected = (len(self.listEffect.selectedItems()) > 0)
elif tab_index == TAB_INDEX_TOOL:
elif tab_index == iTabTool:
test_selected = (len(self.listTool.selectedItems()) > 0)
else:
test_selected = False
@@ -1103,6 +1132,14 @@ class ClaudiaLauncher(QWidget, ui_claudia_launcher.Ui_ClaudiaLauncherW):
else:
self.startApp(app)

@pyqtSlot(int)
def slot_doubleClickedListPlugin(self, row):
app = self.listPlugin.item(row, 1).text()
if self.m_ladish_only:
self.addAppToLADISH(app)
else:
self.startApp(app)

@pyqtSlot(int)
def slot_doubleClickedListEffect(self, row):
app = self.listEffect.item(row, 1).text()
@@ -1125,17 +1162,19 @@ class ClaudiaLauncher(QWidget, ui_claudia_launcher.Ui_ClaudiaLauncherW):
self.settings().setValue("SplitterHost", self.splitter_Host.saveState())
self.settings().setValue("SplitterInstrument", self.splitter_Instrument.saveState())
self.settings().setValue("SplitterBristol", self.splitter_Bristol.saveState())
self.settings().setValue("SplitterPlugin", self.splitter_Plugin.saveState())
self.settings().setValue("SplitterEffect", self.splitter_Effect.saveState())
self.settings().setValue("SplitterTool", self.splitter_Tool.saveState())

QIcon.setThemeName(self.m_lastThemeName)

def loadSettings(self):
if self.settings() and self.settings().contains("SplitterDAW"):
if self.settings() and self.settings().contains("SplitterPlugin"):
self.splitter_DAW.restoreState(self.settings().value("SplitterDAW", ""))
self.splitter_Host.restoreState(self.settings().value("SplitterHost", ""))
self.splitter_Instrument.restoreState(self.settings().value("SplitterInstrument", ""))
self.splitter_Bristol.restoreState(self.settings().value("SplitterBristol", ""))
self.splitter_Plugin.restoreState(self.settings().value("SplitterPlugin", ""))
self.splitter_Effect.restoreState(self.settings().value("SplitterEffect", ""))
self.splitter_Tool.restoreState(self.settings().value("SplitterTool", ""))
else: # First-Run?
@@ -1143,6 +1182,7 @@ class ClaudiaLauncher(QWidget, ui_claudia_launcher.Ui_ClaudiaLauncherW):
self.splitter_Host.setSizes([500, 200])
self.splitter_Instrument.setSizes([500, 200])
self.splitter_Bristol.setSizes([500, 200])
self.splitter_Plugin.setSizes([500, 200])
self.splitter_Effect.setSizes([500, 200])
self.splitter_Tool.setSizes([500, 200])



Loading…
Cancel
Save