From ccf08808c9aefce82dbc43aa1e95befadc519ff1 Mon Sep 17 00:00:00 2001 From: falkTX Date: Sat, 11 Jul 2015 17:39:29 +0200 Subject: [PATCH] Rework claudia-launcher a little, now using carla api for plugins --- data/icons/claudia-hicolor/16x16/apps/lv2.png | Bin 0 -> 580 bytes data/icons/claudia-hicolor/48x48/apps/lv2.png | Bin 0 -> 1872 bytes resources/ui/claudia_launcher.ui | 127 +++-- src/claudia_database.py | 349 ++++++------- src/claudia_launcher.py | 471 +++++++----------- 5 files changed, 389 insertions(+), 558 deletions(-) create mode 100644 data/icons/claudia-hicolor/16x16/apps/lv2.png create mode 100644 data/icons/claudia-hicolor/48x48/apps/lv2.png diff --git a/data/icons/claudia-hicolor/16x16/apps/lv2.png b/data/icons/claudia-hicolor/16x16/apps/lv2.png new file mode 100644 index 0000000000000000000000000000000000000000..4e8faee0a8a5d301c726147d51f6efcc3033aa97 GIT binary patch literal 580 zcmV-K0=xZ*P)~J!1G<$` z7oBr$|Fr0NAA=ycsf{ryrBv7dqz6F|Ro2>=wU$Dmz}-{|Yc1(?n#FgEL?RKawM3&) zaw{v`dvKrWnTJeHO=7LZ7!y}oYea@MZlgud`VOhllW*nkW{F zXsyu=pi-;iJ0B6DUa#|Vc9tXkN7_k9}td& zDQ%Sa{%suq=iKia%jNPbU9DDcXsstcz5lSiAvch}91sA$@2}QswW+QDOZ)=W4V^}H S$xsUb0000$=`J-xjY@>Ut`b`kF3;sFYI9KlKq}F%f-B7ebV}70}+^4qex+ z@6l)!ZEbB1OiN1(s;a6S&pJChasK@I+a|Dg?_O-%zHRma1A#yQeSLjsd$tWXZrs4& z;2=gvM&~MG1&WG_E|!&*ai&M3QMOws6w1Q1wzje&Vnr(LO7Uxl4zXLjOusO4f#b=9 z&Evdv>sH=TTg$OToTG^t--<`M>u?t@S+c}6hNfv9QV0PlWtKBDh#ACWc_ya2yBo21 z3`7J)1jPh@lOLs}rLHke-?VuXD(_is#Z^qWFfxMS;bA=Spsf9>vuloEgWb2nO^ z{yq-2AHdYqG!zpWni^5Fspbv~FcUXs$gKlr7o1py<|mqSCSO!kgoefjt7F6jMGD7` z9)pw;e;XP?pr;4z``fXv^~Y9`b&d6|@pJ%iTf}4}WA4XH?20?ye;lDu2xW`P4J_lK ztq;NH^WpmS>sk2PowfMHRy@nYBUWv-c0#;lqg zRXIA4OePTsyyd_OO`@@>(G~B1v?;4&=Im!t?a5{fd->93cM6#u$fA(d-gE#4=cL8! zM~_-mFb8aC@@L`7%geF7c866c5g`_hp)b&zg>Cua5AfZmzXxJMJefe>TfMFY==Lwp z^M-;Vn%((~4!GI-@4b(SiK|%p#k);ON7Yx>Va=D;;Nr&@E!;Qv?1rbf$Pss7U;vRw z#EM-~Qi8VUpF`s#{xp4<@p8u>@sE!$W{oeUoMRC)XDLOl4gf&l%{Oh>bocgTEWA2@ zy+f82DFoi=v3_5*x)Pm7UPHaV!HRRF>oETC`;Jc`qc&|f3&~Z0rfKMTqh}UtP_N$K z0FTE5UDt8<(xs?=V8d)&B7{OAynFf#q?EXST@_yH?7*tZRZvWb$K%-lt6$^bZw??= zjsSA2kYa*nCbN}8>=xqG>kfbJ%kX3s-!L0 zcN{9EP_be;4!-mvN)|4FV!~8t3I|@;kFk+aEMKu405CN*g_-G@%%gs{_)OpAnPf7`o$0Ku6NZAx9EqQ4b5<=u`>52XzlF6il zdfRqx$G!J`8LRH8bV%*BYgaKgGKvikZp69`>p`p>>SUK%VuFyuqNA?svlPnN0b{WA zY%zoscyMz~);&`|0AS2aPh++=UR=k&Fn?>L~jrPP_c43 zP7VwL?2OFzRspzj>56Nfjy1r{R*TGqXhtaZ7USpbFIe<|ECL~h|b&ELj5{cofC zfoeygD=Swzq!R$%2@XI?iC~}~!9agrcYs_wu{3F+X_|8<&QKLHNI*`1d~^HB3*2epP#81Q zGykgsl<@g{LlqSj>)n8JRqlq#2Y57M(3Dc2 z5YfL>~E(P(0PeEdWx6nYAPvZklFxOlDC>-~k->%Gt8 z@hto_G`NlZS1*f+NF|fW$w(w}G!ls%G+y==tY8HzSiuT5zwJN6J%Em;+Vo=p0000< KMNUMnLSTYn*M(RB literal 0 HcmV?d00001 diff --git a/resources/ui/claudia_launcher.ui b/resources/ui/claudia_launcher.ui index 4d9399f..6187550 100644 --- a/resources/ui/claudia_launcher.ui +++ b/resources/ui/claudia_launcher.ui @@ -7,7 +7,7 @@ 0 0 928 - 469 + 518 @@ -100,11 +100,6 @@ Template? - - - Release Model - - @@ -481,11 +476,6 @@ Template? - - - Release Model - - @@ -844,11 +834,6 @@ Template? - - - Release Model - - @@ -1379,6 +1364,9 @@ true + + 3 + true @@ -1388,11 +1376,6 @@ 22 - - - - - Name @@ -1400,17 +1383,12 @@ - Spec - - - - - Type + Author - Release Model + Category @@ -1470,33 +1448,53 @@ - Features + Information Qt::AlignCenter - + + + + # + + + + - Stereo: + Audio Inputs: Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - + + - ico + Audio Outputs: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - + - MIDI Input: + MIDI Inputs: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + MIDI Outputs: Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter @@ -1504,26 +1502,57 @@ - + - ico + # - - + + - Has Factory Presets: + # + + + + + + + # + + + + + + + Parameter Inputs: Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter - - + + - ico + Parameter Outputs: + + + Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter + + + + + + + # + + + + + + + # @@ -1678,11 +1707,6 @@ Template? - - - Release Model - - @@ -1948,11 +1972,6 @@ Template? - - - Release Model - - diff --git a/src/claudia_database.py b/src/claudia_database.py index f2de42d..c9d9b3f 100644 --- a/src/claudia_database.py +++ b/src/claudia_database.py @@ -1,9 +1,6 @@ #!/usr/bin/env python3 # -*- coding: utf-8 -*- -# TODO -# - add lv2 plugins - # Package database generic_audio_icon = "audio-x-generic" @@ -23,44 +20,44 @@ USING_KXSTUDIO = False # ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- # DAW -# (L, D, L, V, VST-Mode, T, M, MIDI-Mode) -> ( LADSPA, DSSI, LV2, VST, VST-Mode, Transport, MIDI, MIDI-Mode) +# (L, D, L, V, VST-Mode, T, M, MIDI-Mode) -> (LADSPA, DSSI, LV2, VST, VST-Mode, Transport, MIDI, MIDI-Mode) 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_0, "OpenSource", (1, 0, 1, 0, "", 1, 0, "ALSA"), ("file:///usr/share/kxstudio/docs/ardour.pdf", "http://www.ardour.org/") ], - [ "ardour3", "Ardour 3", "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/") ], - [ "ardour4", "Ardour 4", "DAW", "ardour4", "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/") ], + # Package AppName Type Binary Icon Template? Level (L, D, L, V, VST-Mode, T, M, MIDI-Mode) (doc-file, website) + [ "ardour", "Ardour 2.8", "DAW", "ardour2", "ardour", TEMPLATE_YES, LEVEL_0, (1, 0, 1, 0, "", 1, 0, "ALSA"), ("file:///usr/share/kxstudio/docs/ardour.pdf", "http://www.ardour.org/") ], + [ "ardour3", "Ardour 3", "DAW", "ardour3", "ardour", TEMPLATE_YES, LEVEL_JS, (1, 0, 1, 1, "Native", 1, 1, "JACK"), ("file:///usr/share/kxstudio/docs/ardour.pdf", "http://www.ardour.org/") ], + [ "ardour4", "Ardour 4", "DAW", "ardour4", "ardour", TEMPLATE_YES, LEVEL_JS, (1, 0, 1, 1, "Native", 1, 1, "JACK"), ("file:///usr/share/kxstudio/docs/ardour.pdf", "http://www.ardour.org/") ], - [ "ariamaestosa", "Aria Maestosa", "MIDI Sequencer", "Aria", "aria", TEMPLATE_NO, LEVEL_0, "OpenSource", (0, 0, 0, 0, "", 0, 1, "ALSA | JACK"), ("", "http://ariamaestosa.sf.net/") ], + [ "ariamaestosa", "Aria Maestosa", "MIDI Sequencer", "Aria", "aria", TEMPLATE_NO, LEVEL_0, (0, 0, 0, 0, "", 0, 1, "ALSA | JACK"), ("", "http://ariamaestosa.sf.net/") ], - [ "giada", "Giada", "Audio Looper", "giada", generic_audio_icon, TEMPLATE_YES, LEVEL_0, "OpenSource", (0, 0, 0, 1, "Native", 0, 0, ""), ("", "http://www.monocasual.com/giada/") ], + [ "giada", "Giada", "Audio Looper", "giada", generic_audio_icon, TEMPLATE_YES, LEVEL_0, (0, 0, 0, 1, "Native", 0, 0, ""), ("", "http://www.monocasual.com/giada/") ], - [ "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/") ], + [ "hydrogen", "Hydrogen", "Drum Sequencer", "hydrogen -d jack", "h2-icon", TEMPLATE_YES, LEVEL_JS, (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, (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, (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_0, "OpenSource", (0, 0, 0, 0, "", 1, 1, "JACK"), ("", "https://bitbucket.org/paniq/jacker/wiki/Home") ], + [ "jacker", "Jacker", "MIDI Sequencer", "jacker", "jacker", TEMPLATE_YES, LEVEL_0, (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.sf.net/") ], + [ "lmms", "LMMS", "DAW", "lmms", "lmms", TEMPLATE_YES, LEVEL_0, (1, 0, 0, 1, "Windows", 0, 1, "ALSA"), ("file:///usr/share/kxstudio/docs/LMMS_UserManual_0.4.12.1.pdf", "http://lmms.sf.net/") ], - [ "muse", "MusE", "DAW", "muse", "muse", TEMPLATE_YES, LEVEL_0, "OpenSource", (1, 1, 0, 1, "Native", 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, (1, 1, 0, 1, "Native", 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, (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 + OSC"), ("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, (0, 0, 0, 0, "", 1, 0, "CV + OSC"), ("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, (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.sf.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.sf.net/") ], + [ "qtractor", "Qtractor", "DAW", "qtractor", "qtractor", TEMPLATE_YES, LEVEL_1, (1, 1, 1, 1, "Native", 1, 1, "ALSA"), ("file:///usr/share/kxstudio/docs/qtractor-0.5.x-user-manual.pdf", "http://qtractor.sf.net/") ], + [ "qtractor-svn", "Qtractor (SVN)", "DAW", "qtractor", "qtractor", TEMPLATE_YES, LEVEL_1, (1, 1, 1, 1, "Native", 1, 1, "ALSA"), ("file:///usr/share/kxstudio/docs/qtractor-0.5.x-user-manual.pdf", "http://qtractor.sf.net/") ], - [ "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, (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, (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, (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])) +iDAW_Package, iDAW_AppName, iDAW_Type, iDAW_Binary, iDAW_Icon, iDAW_Template, iDAW_Level, iDAW_Features, iDAW_Docs = range(0, len(list_DAW[0])) if USING_KXSTUDIO: # Jacker @@ -72,22 +69,22 @@ if USING_KXSTUDIO: # (I, L, D, L, V, VST-Mode, MIDI-Mode) -> (Internal, LADSPA, DSSI, LV2, VST, VST-Mode, MIDI-Mode) 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_1, "OpenSource", (1, 0, 0, 0, 0, "", "JACK"), ("file:///usr/share/doc/calf/index.html", "http://calf.sf.net/") ], - [ "calf-plugins-git", "Calf Jack Host (GIT)", "Yes", "Yes", "calfjackhost", "calf", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 0, 0, 0, 0, "", "JACK"), ("file:///usr/share/doc/calf/index.html", "http://calf.sf.net/") ], + # Package AppName Ins? FX? Binary Icon Template? Level (I, L, D, L, V, VST-Mode, MIDI-Mode) (doc-file, website) + [ "calf-plugins", "Calf Jack Host", "Yes", "Yes", "calfjackhost", "calf", TEMPLATE_NO, LEVEL_1, (1, 0, 0, 0, 0, "", "JACK"), ("file:///usr/share/doc/calf/index.html", "http://calf.sf.net/") ], + [ "calf-plugins-git", "Calf Jack Host (GIT)", "Yes", "Yes", "calfjackhost", "calf", TEMPLATE_NO, LEVEL_1, (1, 0, 0, 0, 0, "", "JACK"), ("file:///usr/share/doc/calf/index.html", "http://calf.sf.net/") ], - [ "carla", "Carla", "Yes", "Yes", "carla", "carla", TEMPLATE_YES, LEVEL_1, "OpenSource", (1, 1, 1, 1, 1, "Both", "ALSA | JACK"), ("", "http://kxstudio.sf.net/Applications:Carla") ], - [ "carla-git", "Carla (GIT)", "Yes", "Yes", "carla", "carla", TEMPLATE_YES, LEVEL_NSM, "OpenSource", (1, 1, 1, 1, 1, "Both", "ALSA | JACK"), ("", "http://kxstudio.sf.net/Applications:Carla") ], + [ "carla", "Carla", "Yes", "Yes", "carla", "carla", TEMPLATE_YES, LEVEL_1, (1, 1, 1, 1, 1, "Both", "ALSA | JACK"), ("", "http://kxstudio.sf.net/Applications:Carla") ], + [ "carla-git", "Carla (GIT)", "Yes", "Yes", "carla", "carla", TEMPLATE_YES, LEVEL_NSM, (1, 1, 1, 1, 1, "Both", "ALSA | JACK"), ("", "http://kxstudio.sf.net/Applications:Carla") ], - [ "festige", "FeSTige", "Yes", "Yes", "festige", "festige", TEMPLATE_NO, LEVEL_1, "OpenSource", (0, 0, 0, 0, 1, "Windows", "ALSA | JACK"), ("", "http://festige.sf.net/") ], + [ "festige", "FeSTige", "Yes", "Yes", "festige", "festige", TEMPLATE_NO, LEVEL_1, (0, 0, 0, 0, 1, "Windows", "ALSA | JACK"), ("", "http://festige.sf.net/") ], - [ "ingen", "Ingen", "Yes", "Yes", "ingen -eg", "ingen", TEMPLATE_NO, LEVEL_0, "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_0, "OpenSource", (1, 0, 0, 1, 0, "", "JACK"), ("", "http://drobilla.net/blog/software/ingen/") ], + [ "ingen", "Ingen", "Yes", "Yes", "ingen -eg", "ingen", TEMPLATE_NO, LEVEL_0, (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_0, (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.sf.net/") ], + [ "jack-rack", "Jack Rack", "No", "Yes", "jack-rack", "jack-rack", TEMPLATE_YES, LEVEL_0, (0, 1, 0, 0, 0, "", "ALSA"), ("", "http://jack-rack.sf.net/") ], ] -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])) +iHost_Package, iHost_AppName, iHost_Ins, iHost_FX, iHost_Binary, iHost_Icon, iHost_Template, iHost_Level, iHost_Features, iDAW_Docs = range(0, len(list_Host[0])) # ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- # Instrument @@ -95,34 +92,34 @@ iHost_Package, iHost_AppName, iHost_Ins, iHost_FX, iHost_Binary, iHost_Icon, iHo # (F, I, MIDI-Mode) -> (Built-in FX, Audio Input, MIDI-Mode) list_Instrument = [ - # Package AppName Type Binary Icon Template? Level Rel.-Model (F, I, MIDI-Mode) (doc-file, website) - [ "aeolus", "Aeolus", "Synth", "aeolus -J", generic_audio_icon, TEMPLATE_NO, LEVEL_0, "OpenSource", (0, 0, "ALSA | JACK"), ("", "http://www.kokkinizita.net/linuxaudio/aeolus/index.html") ], + # Package AppName Type Binary Icon Template? Level (F, I, MIDI-Mode) (doc-file, website) + [ "aeolus", "Aeolus", "Synth", "aeolus -J", generic_audio_icon, TEMPLATE_NO, LEVEL_0, (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 + JACK"), ("", "") ], + [ "amsynth", "amSynth", "Synth", "amsynth", "amsynth", TEMPLATE_NO, LEVEL_0, (1, 0, "ALSA + JACK"), ("", "") ], - [ "azr3-jack", "AZR3", "Synth", "azr3", "azr3", TEMPLATE_NO, LEVEL_0, "OpenSource", (1, 0, "JACK"), ("", "http://ll-plugins.nongnu.org/azr3/") ], + [ "azr3-jack", "AZR3", "Synth", "azr3", "azr3", TEMPLATE_NO, LEVEL_0, (1, 0, "JACK"), ("", "http://ll-plugins.nongnu.org/azr3/") ], - [ "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, (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, (0, 0, "ALSA + JACK"), ("file:///usr/share/kxstudio/docs/jsampler/jsampler.html", "http://www.linuxsampler.org/") ], - [ "petri-foo", "Petri-Foo", "Sampler", "petri-foo", "petri-foo", TEMPLATE_NO, LEVEL_NSM, "OpenSource", (0, 0, "ALSA + JACK"), ("", "http://petri-foo.sf.net/") ], + [ "petri-foo", "Petri-Foo", "Sampler", "petri-foo", "petri-foo", TEMPLATE_NO, LEVEL_NSM, (0, 0, "ALSA + JACK"), ("", "http://petri-foo.sf.net/") ], - [ "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, (1, 1, "ALSA"), ("file:///usr/share/phasex/help/parameters.help", "") ], - [ "qsampler", "Qsampler", "Sampler", "qsampler", "qsampler", TEMPLATE_NO, LEVEL_1, "OpenSource", (0, 0, "ALSA + JACK"), ("", "http://qsampler.sf.net/") ], + [ "qsampler", "Qsampler", "Sampler", "qsampler", "qsampler", TEMPLATE_NO, LEVEL_1, (0, 0, "ALSA + JACK"), ("", "http://qsampler.sf.net/") ], - [ "qsynth", "Qsynth", "SoundFont Player", "qsynth -a jack -m jack", "qsynth", TEMPLATE_NO, LEVEL_0, "OpenSource", (1, 0, "ALSA | JACK"), ("", "http://qsynth.sf.net/") ], + [ "qsynth", "Qsynth", "SoundFont Player", "qsynth -a jack -m jack", "qsynth", TEMPLATE_NO, LEVEL_0, (1, 0, "ALSA | JACK"), ("", "http://qsynth.sf.net/") ], - [ "setbfree", "setBfree", "Synth", "setBfree-start", "setBfree", TEMPLATE_NO, LEVEL_0, "OpenSource", (1, 0, "JACK"), ("", "http://setbfree.org/") ], + [ "setbfree", "setBfree", "Synth", "setBfree-start", "setBfree", TEMPLATE_NO, LEVEL_0, (1, 0, "JACK"), ("", "http://setbfree.org/") ], - [ "yoshimi", "Yoshimi", "Synth", "yoshimi -j -J", "yoshimi", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 0, "ALSA | JACK"), ("", "http://yoshimi.sf.net/") ], + [ "yoshimi", "Yoshimi", "Synth", "yoshimi -j -J", "yoshimi", TEMPLATE_NO, LEVEL_1, (1, 0, "ALSA | JACK"), ("", "http://yoshimi.sf.net/") ], - [ "zynaddsubfx", "ZynAddSubFX", "Synth", "zynaddsubfx", "zynaddsubfx", TEMPLATE_NO, LEVEL_NSM, "OpenSource", (1, 0, "ALSA + JACK"), ("", "http://zynaddsubfx.sf.net/") ], - [ "zynaddsubfx-git", "ZynAddSubFX (GIT)", "Synth", "zynaddsubfx", "zynaddsubfx", TEMPLATE_NO, LEVEL_NSM, "OpenSource", (1, 0, "ALSA + JACK"), ("", "http://zynaddsubfx.sf.net/") ], + [ "zynaddsubfx", "ZynAddSubFX", "Synth", "zynaddsubfx", "zynaddsubfx", TEMPLATE_NO, LEVEL_NSM, (1, 0, "ALSA + JACK"), ("", "http://zynaddsubfx.sf.net/") ], + [ "zynaddsubfx-git", "ZynAddSubFX (GIT)", "Synth", "zynaddsubfx", "zynaddsubfx", TEMPLATE_NO, LEVEL_NSM, (1, 0, "ALSA + JACK"), ("", "http://zynaddsubfx.sf.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])) +iInstrument_Package, iInstrument_AppName, iInstrument_Type, iInstrument_Binary, iInstrument_Icon, iInstrument_Template, iInstrument_Level, iInstrument_Features, iInstrument_Docs = range(0, len(list_Instrument[0])) # ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- # Bristol @@ -130,116 +127,52 @@ iInstrument_Package, iInstrument_AppName, iInstrument_Type, iInstrument_Binary, # Need name: bit99, bit100 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.sf.net/explorer.html") ], - [ "bristol", "Moog Mini", "Synth", "mini", "bristol_mini", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/mini.html") ], - [ "bristol", "Sequential Circuits Prophet-52", "Synth", "prophet52", "bristol_prophet52", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/prophet52.html") ], - - [ "bristol", "Moog/Realistic MG-1", "Synth", "realistic", "bristol_realistic", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/realistic.html") ], - [ "bristol", "Memory Moog", "Synth", "memoryMoog", "bristol_memoryMoog", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/memorymoog.html") ], - [ "bristol", "Baumann BME-700", "Synth", "BME700", "bristol_BME700", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/bme700.shtml") ], - #[ "bristol", "Synthi Aks", "Synth", "aks", "bristol_aks", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/aks.html") ], - - [ "bristol", "Moog Voyager Blue Ice", "Synth", "voyager", "bristol_voyager", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/voyager.html") ], - [ "bristol", "Moog Sonic-6", "Synth", "sonic6", "bristol_sonic6", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/sonic6.html") ], - [ "bristol", "Hammond B3", "Synth", "hammondB3", "bristol_hammondB3", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/hammond.html") ], - [ "bristol", "Sequential Circuits Prophet-5", "Synth", "prophet", "bristol_prophet", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/prophet5.html") ], - [ "bristol", "Sequential Circuits Prophet-10", "Synth", "prophet10", "bristol_prophet10", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/prophet10.html") ], - [ "bristol", "Sequential Circuits Pro-1", "Synth", "pro1", "bristol_pro1", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/pro1.html") ], - [ "bristol", "Fender Rhodes Stage-73", "Synth", "rhodes", "bristol_rhodes", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/rhodes.html") ], - [ "bristol", "Rhodes Bass Piano", "Synth", "rhodesbass", "bristol_rhodesbass", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/rhodes.html") ], - [ "bristol", "Crumar Roadrunner", "Synth", "roadrunner", "bristol_roadrunner", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/roadrunner.html") ], - [ "bristol", "Crumar Bit-1", "Synth", "bitone", "bristol_bitone", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/bitone.html") ], - [ "bristol", "Crumar Stratus", "Synth", "stratus", "bristol_stratus", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/stratus.html") ], - [ "bristol", "Crumar Trilogy", "Synth", "trilogy", "bristol_trilogy", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/trilogy.html") ], - [ "bristol", "Oberheim OB-X", "Synth", "obx", "bristol_obx", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/obx.html") ], - [ "bristol", "Oberheim OB-Xa", "Synth", "obxa", "bristol_obxa", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/obxa.html") ], - [ "bristol", "ARP Axxe", "Synth", "axxe", "bristol_axxe", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/axxe.html") ], - [ "bristol", "ARP Odyssey", "Synth", "odyssey", "bristol_odyssey", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/odyssey.html") ], - [ "bristol", "ARP 2600", "Synth", "arp2600", "bristol_arp2600", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/arp2600.html") ], - [ "bristol", "ARP Solina Strings", "Synth", "solina", "bristol_solina", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/solina.html") ], - [ "bristol", "Korg Poly-800", "Synth", "poly800", "bristol_poly800", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/poly800.shtml") ], - [ "bristol", "Korg Mono/Poly", "Synth", "monopoly", "bristol_monopoly", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/mono.html") ], - [ "bristol", "Korg Polysix", "Synth", "poly", "bristol_poly", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/poly.html") ], - [ "bristol", "Korg MS-20 (*)", "Synth", "ms20", "bristol_ms20", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/ms20.html") ], - [ "bristol", "VOX Continental", "Synth", "vox", "bristol_vox", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/vox.html") ], - [ "bristol", "VOX Continental 300", "Synth", "voxM2", "bristol_voxM2", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/vox300.html") ], - [ "bristol", "Roland Juno-6", "Synth", "juno", "bristol_juno", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/juno.html") ], - [ "bristol", "Roland Jupiter 8", "Synth", "jupiter8", "bristol_jupiter8", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.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.sf.net/dx.html") ], - #[ "bristol", "Yamaha CS-80", "Synth", "cs80", "bristol_cs80", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/cs80.html") ], - [ "bristol", "Bristol SID Softsynth", "Synth", "sidney", "bristol_sidney", TEMPLATE_NO, LEVEL_1, "OpenSource", (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.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.sf.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 - -# (S, M, P) -> (Stereo, MIDI-In, factory Presets) - -list_Plugin = [ - # Package PluginName Spec Type Filename Label/URI Icon Rel.-Model (S, M, P) (doc, website) - - # DSSI - [ "amsynth", "amSynth DSSI", "DSSI", "Synth", "/usr/lib/dssi/amsynth_dssi.so", "amsynth", "amsynth", "OpenSource", (1, 1, 1), ("", "") ], - - [ "dssi-example-plugins", "Less Trivial synth", "DSSI", "Synth", "/usr/lib/dssi/less_trivial_synth.so", "LTS", generic_audio_icon, "OpenSource", (0, 1, 0), ("", "") ], - [ "dssi-example-plugins", "Simple Mono Sampler", "DSSI", "Sampler", "/usr/lib/dssi/trivial_sampler.so", "mono_sampler", generic_audio_icon, "OpenSource", (0, 1, 0), ("", "") ], - [ "dssi-example-plugins", "Simple Stereo Sampler", "DSSI", "Sampler", "/usr/lib/dssi/trivial_sampler.so", "stereo_sampler", generic_audio_icon, "OpenSource", (1, 1, 0), ("", "") ], - - [ "fluidsynth-dssi", "FluidSynth DSSI", "DSSI", "Sampler", "/usr/lib/dssi/fluidsynth-dssi.so", "FluidSynth-DSSI", generic_audio_icon, "OpenSource", (1, 1, 0), ("", "") ], - - [ "hexter", "Hexter DX7 emulation", "DSSI", "Synth", "/usr/lib/dssi/hexter.so", "hexter", generic_audio_icon, "OpenSource", (0, 1, 1), ("", "") ], - - [ "holap", "Horgand", "DSSI", "Synth", "/usr/lib/dssi/horgand.so", "horgand", generic_audio_icon, "OpenSource", (1, 1, 1), ("", "") ], - - [ "ls16", "LinuxSampler 16Ch Rack", "DSSI", "Sampler", "/usr/lib/dssi/ls16.so", "ls16", generic_audio_icon, "OpenSource", (1, 1, 0), ("", "") ], - - [ "ll-scope", "Oscilloscope", "DSSI", "Util", "/usr/lib/dssi/ll-scope.so", "ll-scope", "/usr/lib/dssi/ll-scope/icon.png", "OpenSource", (1, 0, 0), ("", "") ], - [ "nekobee", "Nekobee DSSI", "DSSI", "Synth", "/usr/lib/dssi/nekobee.so", "nekobee", generic_audio_icon, "OpenSource", (0, 1, 1), ("", "") ], - [ "sineshaper", "Sineshaper", "DSSI", "Synth", "/usr/lib/dssi/sineshaper.so", "ll-sineshaper", "sineshaper32x32", "OpenSource", (0, 1, 1), ("", "") ], - - [ "whysynth", "WhySynth", "DSSI", "Synth", "/usr/lib/dssi/whysynth.so", "WhySynth", generic_audio_icon, "OpenSource", (1, 1, 1), ("", "") ], - [ "wsynth-dssi", "Wsynth DSSI", "DSSI", "Synth", "/usr/lib/dssi/wsynth-dssi.so", "Wsynth", generic_audio_icon, "OpenSource", (0, 1, 1), ("", "") ], - [ "xsynth-dssi", "Xsynth DSSI", "DSSI", "Synth", "/usr/lib/dssi/xsynth-dssi.so", "Xsynth", generic_audio_icon, "OpenSource", (0, 1, 1), ("", "") ], - - # LV2 - [ "calf-plugins", "Calf Compressor", "LV2", "Compressor", "/usr/lib/lv2/calf.lv2/", "http://calf.sf.net/plugins/Compressor", "calf", "OpenSource", (1, 0, 0), ("file:///usr/share/doc/calf/Compressor.html", "http://calf.sf.net/") ], - - # VST - [ "arctican-plugins-vst", "The Function [VST]", "VST", "Delay", "/usr/lib/vst/TheFunction.so", "The Function", "arctican_plugins", "OpenSource", (1, 0, 1), ("", "http://arcticanaudio.com/plugins/") ], - [ "arctican-plugins-vst", "The Pilgrim [VST]", "VST", "Filter", "/usr/lib/vst/ThePilgrim.so", "The Pilgrim", "arctican_plugins", "OpenSource", (1, 1, 0), ("", "http://arcticanaudio.com/plugins/") ], - - [ "distrho-plugins-vst", "3 Band EQ [VST]", "VST", "EQ", "/usr/lib/vst/3BandEQ.so", "3BandEQ", "distrho_plugins", "OpenSource", (1, 0, 0), ("", "") ], - [ "distrho-plugins-vst", "3 Band Splitter [VST]", "VST", "EQ", "/usr/lib/vst/3BandSplitter.so", "3BandSplitter", "distrho_plugins", "OpenSource", (0, 0, 0), ("", "") ], - [ "distrho-plugins-vst", "Ping Pong Pan [VST]", "VST", "Pan", "/usr/lib/vst/PingPongPan.so", "Ping Pong Pan", "distrho_plugins", "OpenSource", (1, 0, 0), ("", "") ], - - [ "distrho-plugin-ports-vst", "Vex [VST]", "VST", "Synth", "/usr/lib/vst/vex.so", "Vex", generic_audio_icon, "OpenSource", (1, 1, 1), ("", "") ], - - [ "drowaudio-plugins-vst", "dRowAudio Distortion-Shaper [VST]", "VST", "Distortion", "/usr/lib/vst/drowaudio-distortionshaper.so", "dRowAudio DistortionShaper", generic_audio_icon, "OpenSource", (1, 0, 0), ("", "") ], - [ "drowaudio-plugins-vst", "dRowAudio Distortion [VST]", "VST", "Distortion", "/usr/lib/vst/drowaudio-distortion.so", "dRowAudio Distortion", generic_audio_icon, "OpenSource", (1, 0, 0), ("", "") ], - [ "drowaudio-plugins-vst", "dRowAudio Flanger [VST]", "VST", "Flanger", "/usr/lib/vst/drowaudio-flanger.so", "dRowAudio Flanger", generic_audio_icon, "OpenSource", (1, 0, 0), ("", "") ], - [ "drowaudio-plugins-vst", "dRowAudio Reverb [VST]", "VST", "Reverb", "/usr/lib/vst/drowaudio-reverb.so", "dRowAudio Reverb", generic_audio_icon, "OpenSource", (1, 1, 0), ("", "") ], - [ "drowaudio-plugins-vst", "dRowAudio Tremolo [VST]", "VST", "Tremolo", "/usr/lib/vst/drowaudio-tremolo.so", "dRowAudio Tremolo", generic_audio_icon, "OpenSource", (1, 0, 0), ("", "") ], - - [ "tal-plugins-vst", "TAL Dub 3 [VST]", "VST", "Delay", "/usr/lib/vst/TAL-Dub-3.so", "TAL Dub 2", "tal_plugins", "OpenSource", (1, 1, 1), ("", "http://kunz.corrupt.ch/products/tal-dub") ], - [ "tal-plugins-vst", "TAL Filter [VST]", "VST", "Filter", "/usr/lib/vst/TAL-Filter.so", "TAL Filter", "tal_plugins", "OpenSource", (1, 1, 1), ("", "http://kunz.corrupt.ch/products/tal-filter") ], - [ "tal-plugins-vst", "TAL Filter 2 [VST]", "VST", "Filter", "/usr/lib/vst/TAL-Filter-2.so", "TAL Filter 2", "tal_plugins", "OpenSource", (1, 1, 1), ("", "http://kunz.corrupt.ch/products/tal-filter") ], - [ "tal-plugins-vst", "TAL NoiseMaker [VST]", "VST", "Synth", "/usr/lib/vst/TAL-NoiseMaker.so", "TAL NoiseMaker", "tal_plugins", "OpenSource", (1, 1, 1), ("file:///usr/share/kxstudio/docs/TAL Noisemaker User Guide 1.0.pdf", "http://kunz.corrupt.ch/products/tal-noisemaker") ], - [ "tal-plugins-vst", "TAL Reverb [VST]", "VST", "Reverb", "/usr/lib/vst/TAL-Reverb.so", "TAL Reverb", "tal_plugins", "OpenSource", (1, 1, 1), ("", "http://kunz.corrupt.ch/products/tal-reverb") ], - [ "tal-plugins-vst", "TAL Reverb 2 [VST]", "VST", "Reverb", "/usr/lib/vst/TAL-Reverb-2.so", "TAL Reverb 2", "tal_plugins", "OpenSource", (1, 1, 1), ("", "http://kunz.corrupt.ch/products/tal-reverb") ], - [ "tal-plugins-vst", "TAL Reverb 3 [VST]", "VST", "Reverb", "/usr/lib/vst/TAL-Reverb-3.so", "TAL Reverb 3", "tal_plugins", "OpenSource", (1, 1, 1), ("", "http://kunz.corrupt.ch/products/tal-reverb") ], - [ "tal-plugins-vst", "TAL Vocoder 2 [VST]", "VST", "Vocoder", "/usr/lib/vst/TAL-Vocoder-2.so", "TAL Vocoder 2", "tal_plugins", "OpenSource", (1, 1, 1), ("file:///usr/share/kxstudio/docs/TAL-Vocoder-UserManual.pdf", "http://kunz.corrupt.ch/products/tal-vocoder") ], - - [ "wolpertinger-vst", "Wolpertinger [VST]", "VST", "Synth", "/usr/lib/vst/Wolpertinger.so", "Wolpertinger", "wolpertinger", "OpenSource", (1, 1, 1), ("", "http://tumbetoene.tuxfamily.org") ], + # Package AppName Type Short-name Icon Template? Level (F, I, MIDI-Mode) (doc-file, website) + [ "bristol", "Moog Voyager", "Synth", "explorer", "bristol_explorer", TEMPLATE_NO, LEVEL_1, (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/explorer.html") ], + [ "bristol", "Moog Mini", "Synth", "mini", "bristol_mini", TEMPLATE_NO, LEVEL_1, (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/mini.html") ], + [ "bristol", "Sequential Circuits Prophet-52", "Synth", "prophet52", "bristol_prophet52", TEMPLATE_NO, LEVEL_1, (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/prophet52.html") ], + + [ "bristol", "Moog/Realistic MG-1", "Synth", "realistic", "bristol_realistic", TEMPLATE_NO, LEVEL_1, (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/realistic.html") ], + [ "bristol", "Memory Moog", "Synth", "memoryMoog", "bristol_memoryMoog", TEMPLATE_NO, LEVEL_1, (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/memorymoog.html") ], + [ "bristol", "Baumann BME-700", "Synth", "BME700", "bristol_BME700", TEMPLATE_NO, LEVEL_1, (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/bme700.shtml") ], + #[ "bristol", "Synthi Aks", "Synth", "aks", "bristol_aks", TEMPLATE_NO, LEVEL_1, (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/aks.html") ], + + [ "bristol", "Moog Voyager Blue Ice", "Synth", "voyager", "bristol_voyager", TEMPLATE_NO, LEVEL_1, (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/voyager.html") ], + [ "bristol", "Moog Sonic-6", "Synth", "sonic6", "bristol_sonic6", TEMPLATE_NO, LEVEL_1, (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/sonic6.html") ], + [ "bristol", "Hammond B3", "Synth", "hammondB3", "bristol_hammondB3", TEMPLATE_NO, LEVEL_1, (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/hammond.html") ], + [ "bristol", "Sequential Circuits Prophet-5", "Synth", "prophet", "bristol_prophet", TEMPLATE_NO, LEVEL_1, (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/prophet5.html") ], + [ "bristol", "Sequential Circuits Prophet-10", "Synth", "prophet10", "bristol_prophet10", TEMPLATE_NO, LEVEL_1, (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/prophet10.html") ], + [ "bristol", "Sequential Circuits Pro-1", "Synth", "pro1", "bristol_pro1", TEMPLATE_NO, LEVEL_1, (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/pro1.html") ], + [ "bristol", "Fender Rhodes Stage-73", "Synth", "rhodes", "bristol_rhodes", TEMPLATE_NO, LEVEL_1, (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/rhodes.html") ], + [ "bristol", "Rhodes Bass Piano", "Synth", "rhodesbass", "bristol_rhodesbass", TEMPLATE_NO, LEVEL_1, (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/rhodes.html") ], + [ "bristol", "Crumar Roadrunner", "Synth", "roadrunner", "bristol_roadrunner", TEMPLATE_NO, LEVEL_1, (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/roadrunner.html") ], + [ "bristol", "Crumar Bit-1", "Synth", "bitone", "bristol_bitone", TEMPLATE_NO, LEVEL_1, (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/bitone.html") ], + [ "bristol", "Crumar Stratus", "Synth", "stratus", "bristol_stratus", TEMPLATE_NO, LEVEL_1, (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/stratus.html") ], + [ "bristol", "Crumar Trilogy", "Synth", "trilogy", "bristol_trilogy", TEMPLATE_NO, LEVEL_1, (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/trilogy.html") ], + [ "bristol", "Oberheim OB-X", "Synth", "obx", "bristol_obx", TEMPLATE_NO, LEVEL_1, (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/obx.html") ], + [ "bristol", "Oberheim OB-Xa", "Synth", "obxa", "bristol_obxa", TEMPLATE_NO, LEVEL_1, (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/obxa.html") ], + [ "bristol", "ARP Axxe", "Synth", "axxe", "bristol_axxe", TEMPLATE_NO, LEVEL_1, (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/axxe.html") ], + [ "bristol", "ARP Odyssey", "Synth", "odyssey", "bristol_odyssey", TEMPLATE_NO, LEVEL_1, (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/odyssey.html") ], + [ "bristol", "ARP 2600", "Synth", "arp2600", "bristol_arp2600", TEMPLATE_NO, LEVEL_1, (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/arp2600.html") ], + [ "bristol", "ARP Solina Strings", "Synth", "solina", "bristol_solina", TEMPLATE_NO, LEVEL_1, (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/solina.html") ], + [ "bristol", "Korg Poly-800", "Synth", "poly800", "bristol_poly800", TEMPLATE_NO, LEVEL_1, (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/poly800.shtml") ], + [ "bristol", "Korg Mono/Poly", "Synth", "monopoly", "bristol_monopoly", TEMPLATE_NO, LEVEL_1, (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/mono.html") ], + [ "bristol", "Korg Polysix", "Synth", "poly", "bristol_poly", TEMPLATE_NO, LEVEL_1, (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/poly.html") ], + [ "bristol", "Korg MS-20 (*)", "Synth", "ms20", "bristol_ms20", TEMPLATE_NO, LEVEL_1, (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/ms20.html") ], + [ "bristol", "VOX Continental", "Synth", "vox", "bristol_vox", TEMPLATE_NO, LEVEL_1, (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/vox.html") ], + [ "bristol", "VOX Continental 300", "Synth", "voxM2", "bristol_voxM2", TEMPLATE_NO, LEVEL_1, (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/vox300.html") ], + [ "bristol", "Roland Juno-6", "Synth", "juno", "bristol_juno", TEMPLATE_NO, LEVEL_1, (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/juno.html") ], + [ "bristol", "Roland Jupiter 8", "Synth", "jupiter8", "bristol_jupiter8", TEMPLATE_NO, LEVEL_1, (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/jupiter8.html") ], + #[ "bristol", "Bristol BassMaker", "Synth", "bassmaker", "bristol_bassmaker", TEMPLATE_NO, LEVEL_1, (1, 1, "ALSA | JACK"), ("", "") ], + [ "bristol", "Yamaha DX", "Synth", "dx", "bristol_dx", TEMPLATE_NO, LEVEL_1, (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/dx.html") ], + #[ "bristol", "Yamaha CS-80", "Synth", "cs80", "bristol_cs80", TEMPLATE_NO, LEVEL_1, (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/cs80.html") ], + [ "bristol", "Bristol SID Softsynth", "Synth", "sidney", "bristol_sidney", TEMPLATE_NO, LEVEL_1, (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/sidney.shtml") ], + #[ "bristol", "Commodore-64 SID polysynth", "Synth", "melbourne", "bristol_sidney", TEMPLATE_NO, LEVEL_1, (1, 1, "ALSA | JACK"), ("", "") ], #FIXME - needs icon + #[ "bristol", "Bristol Granular Synthesiser", "Synth", "granular", "bristol_granular", TEMPLATE_NO, LEVEL_1, (1, 1, "ALSA | JACK"), ("", "") ], + #[ "bristol", "Bristol Realtime Mixer", "Synth", "mixer", "bristol_mixer", TEMPLATE_NO, LEVEL_1, (1, 1, "ALSA | JACK"), ("", "http://bristol.sf.net/mixer.html") ], ] -iPlugin_Package, iPlugin_Name, iPlugin_Spec, iPlugin_Type, iPlugin_Filename, iPlugin_Label, iPlugin_Icon, iPlugin_RelModel, iPlugin_Features, iPlugin_Docs = range(0, len(list_Plugin[0])) +iBristol_Package, iBristol_AppName, iBristol_Type, iBristol_ShortName, iBristol_Icon, iBristol_Template, iBristol_Level, iBristol_Features, iBristol_Docs = range(0, len(list_Bristol[0])) # ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- # Effect @@ -247,17 +180,17 @@ iPlugin_Package, iPlugin_Name, iPlugin_Spec, iPlugin_Type, iPlugin_Filename, iPl # (S, MIDI-Mode) -> (Stereo, MIDI-Mode) 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, "---"), ("", "") ], + # Package AppName Type Binary Icon Template? Level (S, MIDI-Mode) (doc, website) + [ "ambdec", "AmbDec", "Ambisonic Decoder", "ambdec", generic_audio_icon, TEMPLATE_NO, LEVEL_0, (1, "---"), ("", "") ], - [ "guitarix", "Guitarix", "Guitar FX", "guitarix", "gx_head", TEMPLATE_NO, LEVEL_0, "OpenSource", (0, "JACK"), ("", "http://guitarix.sf.net/") ], + [ "guitarix", "Guitarix", "Guitar FX", "guitarix", "gx_head", TEMPLATE_NO, LEVEL_0, (0, "JACK"), ("", "http://guitarix.sf.net/") ], - [ "jamin", "Jamin", "Mastering", "jamin", "jamin", TEMPLATE_NO, LEVEL_0, "OpenSource", (1, "---"), ("", "http://jamin.sf.net/") ], + [ "jamin", "Jamin", "Mastering", "jamin", "jamin", TEMPLATE_NO, LEVEL_0, (1, "---"), ("", "http://jamin.sf.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.sf.net") ], + [ "rakarrack", "Rakarrack", "Guitar FX", "rakarrack", "rakarrack", TEMPLATE_NO, LEVEL_0, (1, "ALSA + JACK"), ("file:///usr/share/doc/rakarrack/html/help.html", "http://rakarrack.sf.net") ], ] -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])) +iEffect_Package, iEffect_AppName, iEffect_Type, iEffect_Binary, iEffect_Icon, iEffect_Template, iEffect_Level, iEffect_Features, iEffect_Docs = range(0, len(list_Effect[0])) # ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- # Tool @@ -265,72 +198,72 @@ iEffect_Package, iEffect_AppName, iEffect_Type, iEffect_Binary, iEffect_Icon, iE # (MIDI-Mode, T) -> (MIDI-Mode, Transport) 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), ("", "") ], + # Package AppName Type Binary Icon Template? Level (MIDI-Mode, T) (doc, website) + [ "arpage", "Arpage", "MIDI Arpeggiator", "arpage", "arpage", TEMPLATE_NO, LEVEL_0, ("JACK", 1), ("", "") ], + [ "arpage", "Zonage", "MIDI Mapper", "zonage", "zonage", TEMPLATE_NO, LEVEL_0, ("JACK", 0), ("", "") ], - [ "audacity", "Audacity", "Audio Editor", "audacity", "audacity", TEMPLATE_NO, LEVEL_0, "OpenSource", ("---", 0), ("", "http://audacity.sf.net/") ], + [ "audacity", "Audacity", "Audio Editor", "audacity", "audacity", TEMPLATE_NO, LEVEL_0, ("---", 0), ("", "http://audacity.sf.net/") ], - [ "cadence", "Cadence", "JACK Toolbox", "cadence", "cadence", TEMPLATE_NO, LEVEL_0, "OpenSource", ("---", 0), ("", "") ], - [ "cadence-tools", "Cadence XY-Controller", "XY Controller", "cadence-xycontroller", "cadence", 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", "JACK Toolbox", "cadence", "cadence", TEMPLATE_NO, LEVEL_0, ("---", 0), ("", "") ], + [ "cadence-tools", "Cadence XY-Controller", "XY Controller", "cadence-xycontroller", "cadence", TEMPLATE_NO, LEVEL_0, ("JACK", 0), ("", "") ], + [ "catia", "Catia", "Patch Bay", "catia", "catia", TEMPLATE_NO, LEVEL_0, ("JACK", 1), ("", "") ], + [ "claudia", "Claudia", "Session Handler", "claudia", "claudia", TEMPLATE_NO, LEVEL_0, ("JACK", 1), ("", "") ], + [ "carla-control", "Carla OSC Control", "OSC Control", "carla-control", "carla-control", TEMPLATE_NO, LEVEL_0, ("JACK", 1), ("", "") ], - [ "drumstick-tools", "Drumstick Virtual Piano", "Virtual Keyboard", "drumstick-vpiano", "drumstick", TEMPLATE_NO, LEVEL_0, "OpenSource", ("ALSA", 0), ("", "http://drumstick.sf.net/") ], + [ "drumstick-tools", "Drumstick Virtual Piano", "Virtual Keyboard", "drumstick-vpiano", "drumstick", TEMPLATE_NO, LEVEL_0, ("ALSA", 0), ("", "http://drumstick.sf.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, ("---", 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, ("---", 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, ("---", 1), ("", "") ], + [ "gjacktransport", "GJackTransport", "Transport Tool", "gjacktransport", "gjacktransport", TEMPLATE_NO, LEVEL_0, ("---", 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, ("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, ("---", 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.sf.net/") ], + [ "jack-keyboard", "Jack Keyboard", "Virtual Keyboard", "jack-keyboard", "jack-keyboard", TEMPLATE_NO, LEVEL_0, ("JACK", 0), ("file:///usr/share/kxstudio/docs/jack-keyboard/manual.html", "http://jack-keyboard.sf.net/") ], - [ "jack-mixer", "Jack Mixer", "Mixer", "jack_mixer", "jack_mixer", TEMPLATE_NO, LEVEL_0, "OpenSource", ("JACK", 0), ("", "http://home.gna.org/jackmixer/") ], + [ "jack-mixer", "Jack Mixer", "Mixer", "jack_mixer", "jack_mixer", TEMPLATE_NO, LEVEL_0, ("JACK", 0), ("", "http://home.gna.org/jackmixer/") ], - [ "kmetronome", "KMetronome", "Metronome", "kmetronome", "kmetronome", TEMPLATE_NO, LEVEL_0, "OpenSource", ("ALSA", 0), ("", "http://kmetronome.sf.net/kmetronome.shtml") ], - [ "kmidimon", "KMidimon", "Monitor", "kmidimon", "kmidimon", TEMPLATE_NO, LEVEL_0, "OpenSource", ("ALSA", 0), ("", "http://kmidimon.sf.net/") ], + [ "kmetronome", "KMetronome", "Metronome", "kmetronome", "kmetronome", TEMPLATE_NO, LEVEL_0, ("ALSA", 0), ("", "http://kmetronome.sf.net/kmetronome.shtml") ], + [ "kmidimon", "KMidimon", "Monitor", "kmidimon", "kmidimon", TEMPLATE_NO, LEVEL_0, ("ALSA", 0), ("", "http://kmidimon.sf.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, ("---", 0), ("", "") ], + [ "laditools", "LADI Tray", "Session Handler", "laditray", "laditray", TEMPLATE_NO, LEVEL_0, ("---", 0), ("", "") ], - [ "lives", "LiVES", "VJ / Video Editor", "lives", "lives", TEMPLATE_NO, LEVEL_0, "OpenSource", ("---", 1), ("", "http://lives.sf.net/") ], + [ "lives", "LiVES", "VJ / Video Editor", "lives", "lives", TEMPLATE_NO, LEVEL_0, ("---", 1), ("", "http://lives.sf.net/") ], - [ "meterbridge", "MeterBridge Classic VU", "VU / Peak Analyzer", "meterbridge -t vu :", "meterbridge32x32", TEMPLATE_NO, LEVEL_0, "OpenSource", ("---", 0), ("", "http://plugin.org.uk/meterbridge/") ], - [ "meterbridge", "MeterBridge PPM Meter", "VU / Peak Analyzer", "meterbridge -t ppm :", "meterbridge32x32", TEMPLATE_NO, LEVEL_0, "OpenSource", ("---", 0), ("", "http://plugin.org.uk/meterbridge/") ], - [ "meterbridge", "MeterBridge Digital Peak Meter", "VU / Peak Analyzer", "meterbridge -t dpm -c 2 : :", "meterbridge32x32", TEMPLATE_NO, LEVEL_0, "OpenSource", ("---", 0), ("", "http://plugin.org.uk/meterbridge/") ], - [ "meterbridge", "MeterBridge 'Jellyfish' Phase Meter", "VU / Peak Analyzer", "meterbridge -t jf -c 2 : :", "meterbridge32x32", TEMPLATE_NO, LEVEL_0, "OpenSource", ("---", 0), ("", "http://plugin.org.uk/meterbridge/") ], - [ "meterbridge", "MeterBridge Oscilloscope Meter", "VU / Peak Analyzer", "meterbridge -t sco :", "meterbridge32x32", TEMPLATE_NO, LEVEL_0, "OpenSource", ("---", 0), ("", "http://plugin.org.uk/meterbridge/") ], + [ "meterbridge", "MeterBridge Classic VU", "VU / Peak Analyzer", "meterbridge -t vu :", "meterbridge32x32", TEMPLATE_NO, LEVEL_0, ("---", 0), ("", "http://plugin.org.uk/meterbridge/") ], + [ "meterbridge", "MeterBridge PPM Meter", "VU / Peak Analyzer", "meterbridge -t ppm :", "meterbridge32x32", TEMPLATE_NO, LEVEL_0, ("---", 0), ("", "http://plugin.org.uk/meterbridge/") ], + [ "meterbridge", "MeterBridge Digital Peak Meter", "VU / Peak Analyzer", "meterbridge -t dpm -c 2 : :", "meterbridge32x32", TEMPLATE_NO, LEVEL_0, ("---", 0), ("", "http://plugin.org.uk/meterbridge/") ], + [ "meterbridge", "MeterBridge 'Jellyfish' Phase Meter", "VU / Peak Analyzer", "meterbridge -t jf -c 2 : :", "meterbridge32x32", TEMPLATE_NO, LEVEL_0, ("---", 0), ("", "http://plugin.org.uk/meterbridge/") ], + [ "meterbridge", "MeterBridge Oscilloscope Meter", "VU / Peak Analyzer", "meterbridge -t sco :", "meterbridge32x32", TEMPLATE_NO, LEVEL_0, ("---", 0), ("", "http://plugin.org.uk/meterbridge/") ], - [ "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, ("---", 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.sf.net/") ], + [ "mixxx", "Mixxx", "DJ", "mixxx", "mixxx", TEMPLATE_NO, LEVEL_0, ("ALSA", 0), ("file:///usr/share/kxstudio/docs/Mixxx-Manual.pdf", "http://mixxx.sf.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, ("CV", 0), ("file:///usr/share/doc/non-mixer/MANUAL.html", "http://non-daw.tuxfamily.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, ("ALSA + JACK", 0), ("", "http://drobilla.net/blog/software/patchage/") ], + [ "patchage", "Patchage (ALSA Only)", "Patch Bay", "patchage -J", "patchage", TEMPLATE_NO, LEVEL_0, ("ALSA", 0), ("", "http://drobilla.net/blog/software/patchage/") ], + [ "patchage-svn", "Patchage (SVN)", "Patch Bay", "patchage-svn", "patchage", TEMPLATE_NO, LEVEL_0, ("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, ("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, ("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, ("ALSA", 0), ("", "") ], + [ "qarecord", "QARecord", "Recorder", "qarecord --jack", "qarecord_48", TEMPLATE_NO, LEVEL_0, ("ALSA", 0), ("", "") ], + [ "qmidiarp", "QMidiArp", "MIDI Arpeggiator", "qmidiarp", generic_midi_icon, TEMPLATE_NO, LEVEL_0, ("ALSA", 0), ("", "") ], - [ "timemachine", "TimeMachine", "Recorder", "timemachine", "/usr/share/timemachine/pixmaps/timemachine-icon.png", TEMPLATE_NO, LEVEL_0, "OpenSource", ("---", 0), ("", "http://plugin.org.uk/timemachine/") ], + [ "timemachine", "TimeMachine", "Recorder", "timemachine", "/usr/share/timemachine/pixmaps/timemachine-icon.png", TEMPLATE_NO, LEVEL_0, ("---", 0), ("", "http://plugin.org.uk/timemachine/") ], - [ "vmpk", "Virtual MIDI Piano Keyboard (ALSA)","Virtual Keyboard","vmpk", "vmpk", TEMPLATE_NO, LEVEL_0, "OpenSource", ("ALSA", 0), ("file:///usr/share/vmpk/help.html", "http://vmpk.sf.net/") ], - [ "vmpk-jack", "Virtual MIDI Piano Keyboard (JACK)","Virtual Keyboard","vmpk-jack", "vmpk", TEMPLATE_NO, LEVEL_0, "OpenSource", ("JACK", 0), ("file:///usr/share/vmpk/help.html", "http://vmpk.sf.net/") ], + [ "vmpk", "Virtual MIDI Piano Keyboard (ALSA)","Virtual Keyboard","vmpk", "vmpk", TEMPLATE_NO, LEVEL_0, ("ALSA", 0), ("file:///usr/share/vmpk/help.html", "http://vmpk.sf.net/") ], + [ "vmpk-jack", "Virtual MIDI Piano Keyboard (JACK)","Virtual Keyboard","vmpk-jack", "vmpk", TEMPLATE_NO, LEVEL_0, ("JACK", 0), ("file:///usr/share/vmpk/help.html", "http://vmpk.sf.net/") ], - [ "xjadeo", "XJadeo", "Video Player", "qjadeo", "qjadeo", TEMPLATE_NO, LEVEL_0, "OpenSource", ("---", 1), ("", "http://xjadeo.sf.net/") ], + [ "xjadeo", "XJadeo", "Video Player", "qjadeo", "qjadeo", TEMPLATE_NO, LEVEL_0, ("---", 1), ("", "http://xjadeo.sf.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])) +iTool_Package, iTool_AppName, iTool_Type, iTool_Binary, iTool_Icon, iTool_Template, iTool_Level, iTool_Features, iTool_Docs = range(0, len(list_Tool[0])) diff --git a/src/claudia_launcher.py b/src/claudia_launcher.py index 23853da..660730b 100755 --- a/src/claudia_launcher.py +++ b/src/claudia_launcher.py @@ -30,6 +30,15 @@ import claudia_database as database import ui_claudia_launcher from shared import * +# ------------------------------------------------------------------------------------------------------------ +# Imports (Carla) + +try: + from carla_utils import * + haveCarla = True +except: + haveCarla = False + # ------------------------------------------------------------------------------------------------------------ # Safe import getoutput @@ -107,25 +116,25 @@ class ClaudiaLauncher(QWidget, ui_claudia_launcher.Ui_ClaudiaLauncherW): self.m_ladish_only = False self.listDAW.setColumnWidth(0, 22) - self.listDAW.setColumnWidth(1, 150) - self.listDAW.setColumnWidth(2, 125) + self.listDAW.setColumnWidth(1, 225) + self.listDAW.setColumnWidth(2, 150) self.listHost.setColumnWidth(0, 22) - self.listHost.setColumnWidth(1, 150) + self.listHost.setColumnWidth(1, 225) + self.listHost.setColumnWidth(2, 100) + self.listHost.setColumnWidth(3, 100) self.listInstrument.setColumnWidth(0, 22) - self.listInstrument.setColumnWidth(1, 150) - self.listInstrument.setColumnWidth(2, 125) + self.listInstrument.setColumnWidth(1, 225) + self.listInstrument.setColumnWidth(2, 150) self.listBristol.setColumnWidth(0, 22) - self.listBristol.setColumnWidth(1, 100) - self.listPlugin.setColumnWidth(0, 22) - self.listPlugin.setColumnWidth(1, 225) - self.listPlugin.setColumnWidth(2, 75) - self.listPlugin.setColumnWidth(3, 125) + self.listBristol.setColumnWidth(1, 150) + self.listPlugin.setColumnWidth(0, 225) + self.listPlugin.setColumnWidth(1, 175) self.listEffect.setColumnWidth(0, 22) self.listEffect.setColumnWidth(1, 225) - self.listEffect.setColumnWidth(2, 125) + self.listEffect.setColumnWidth(2, 150) self.listTool.setColumnWidth(0, 22) self.listTool.setColumnWidth(1, 225) - self.listTool.setColumnWidth(2, 125) + self.listTool.setColumnWidth(2, 150) # For the custom icons self.ClaudiaIcons = XIcon() @@ -170,82 +179,55 @@ class ClaudiaLauncher(QWidget, ui_claudia_launcher.Ui_ClaudiaLauncherW): 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 == iTabBristol) else 1 - - if tab_index == iTabDAW: - listSel = self.listDAW - elif tab_index == iTabHost: - listSel = self.listHost - elif tab_index == iTabInstrument: - listSel = self.listInstrument - elif tab_index == iTabBristol: - listSel = self.listBristol - elif tab_index == iTabPlugin: - listSel = self.listPlugin - elif tab_index == iTabEffect: - listSel = self.listEffect - elif tab_index == iTabTool: - listSel = self.listTool - else: - return "" + self.connect(self.listDAW, SIGNAL("cellDoubleClicked(int, int)"), SLOT("slot_doubleClickedList()")) + self.connect(self.listHost, SIGNAL("cellDoubleClicked(int, int)"), SLOT("slot_doubleClickedList()")) + self.connect(self.listInstrument, SIGNAL("cellDoubleClicked(int, int)"), SLOT("slot_doubleClickedList()")) + self.connect(self.listBristol, SIGNAL("cellDoubleClicked(int, int)"), SLOT("slot_doubleClickedList()")) + self.connect(self.listPlugin, SIGNAL("cellDoubleClicked(int, int)"), SLOT("slot_doubleClickedList()")) + self.connect(self.listEffect, SIGNAL("cellDoubleClicked(int, int)"), SLOT("slot_doubleClickedList()")) + self.connect(self.listTool, SIGNAL("cellDoubleClicked(int, int)"), SLOT("slot_doubleClickedList()")) - return listSel.item(listSel.currentRow(), column_name).text() + def getSelectedAppAndBinary(self): + tabIndex = self.tabWidget.currentIndex() - def getBinaryFromAppName(self, appname): - for Package, AppName, Type, Binary, Icon, Save, Level, License, Features, Docs in database.list_DAW: - if appname == AppName: - return Binary + if tabIndex == iTabDAW: + item = self.listDAW.item(self.listDAW.currentRow(), 0).data(Qt.UserRole) + return (item[database.iDAW_AppName], item[database.iDAW_Binary]) - for Package, AppName, Instruments, Effects, Binary, Icon, Save, Level, License, Features, Docs in database.list_Host: - if appname == AppName: - return Binary + if tabIndex == iTabHost: + item = self.listHost.item(self.listHost.currentRow(), 0).data(Qt.UserRole) + return (item[database.iHost_AppName], item[database.iHost_Binary]) - for Package, AppName, Type, Binary, Icon, Save, Level, License, Features, Docs in database.list_Instrument: - if appname == AppName: - return Binary + if tabIndex == iTabInstrument: + item = self.listInstrument.item(self.listInstrument.currentRow(), 0).data(Qt.UserRole) + return (item[database.iInstrument_AppName], item[database.iInstrument_Binary]) - for Package, AppName, Type, ShortName, Icon, Save, Level, License, Features, Docs in database.list_Bristol: - if appname == AppName: - return "startBristol -audio jack -midi jack -%s" % ShortName + if tabIndex == iTabBristol: + item = self.listBristol.item(self.listBristol.currentRow(), 0).data(Qt.UserRole) + return (item[database.iBristol_AppName], "startBristol -audio jack -midi jack -%s" % item[database.iBristol_ShortName]) - for Package, Name, Spec, Type, Filename, Label, Icon, License, Features, Docs in database.list_Plugin: - if appname == Name: - return "carla-single native %s \"%s\" \"%s\"" % (Spec.lower(), Filename, Label) + if tabIndex == iTabPlugin: + plugin = self.listPlugin.item(self.listPlugin.currentRow(), 0).data(Qt.UserRole) + return (plugin["name"], "carla-single %s" % plugin["label"]) - for Package, AppName, Type, Binary, Icon, Save, Level, License, Features, Docs in database.list_Effect: - if appname == AppName: - return Binary + if tabIndex == iTabEffect: + item = self.listEffect.item(self.listEffect.currentRow(), 0).data(Qt.UserRole) + return (item[database.iEffect_AppName], item[database.iEffect_Binary]) - for Package, AppName, Type, Binary, Icon, Save, Level, License, Features, Docs in database.list_Tool: - if appname == AppName: - return Binary + if tabIndex == iTabTool: + item = self.listTool.item(self.listTool.currentRow(), 0).data(Qt.UserRole) + return (item[database.iTool_AppName], item[database.iTool_Binary]) - print("ClaudiaLauncher::getBinaryFromAppName(%s) - Failed to find binary from App name" % appname) - return "" + return ("", "") - def startApp(self, app=None): - if not app: - app = self.getSelectedApp() - binary = self.getBinaryFromAppName(app) + def startApp(self): + app, binary = self.getSelectedAppAndBinary() if app and binary: os.system("cd '%s' && %s &" % (self.callback_getProjectFolder(), binary)) - def addAppToLADISH(self, app=None): - if not app: - app = self.getSelectedApp() - - binary = self.getBinaryFromAppName(app) + def addAppToLADISH(self): + app, binary = self.getSelectedAppAndBinary() if binary.startswith("startBristol"): self.createAppTemplate("bristol", app, binary) @@ -301,7 +283,7 @@ class ClaudiaLauncher(QWidget, ui_claudia_launcher.Ui_ClaudiaLauncherW): elif app == "Calf Jack Host": self.createAppTemplate("calfjackhost", app, binary) - elif app == "Carla": + elif app in ("Carla", "Carla (GIT)"): self.createAppTemplate("carla", app, binary) elif app == "Jack Rack": @@ -646,11 +628,14 @@ class ClaudiaLauncher(QWidget, ui_claudia_launcher.Ui_ClaudiaLauncherW): self.showDoc_Bristol("", "") def clearInfo_Plugin(self): - self.ico_app_plugin.setPixmap(self.getIcon("start-here").pixmap(48, 48)) + self.ico_app_plugin.setPixmap(self.getIcon("lv2").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.label_plugin_audio_ins.setText("0") + self.label_plugin_audio_outs.setText("0") + self.label_plugin_midi_ins.setText("0") + self.label_plugin_midi_outs.setText("0") + self.label_plugin_parameter_ins.setText("0") + self.label_plugin_parameter_outs.setText("0") self.frame_Plugin.setEnabled(False) self.showDoc_Plugin("", "") @@ -785,34 +770,35 @@ class ClaudiaLauncher(QWidget, ui_claudia_launcher.Ui_ClaudiaLauncherW): self.tabWidget.setTabEnabled(iTabPlugin, False) last_pos = 0 - for Package, AppName, Type, Binary, Icon, Save, Level, License, Features, Docs in database.list_DAW: + for item in database.list_DAW: + Package, AppName, Type, Binary, Icon, Save, Level, Features, Docs = item if SHOW_ALL or Package in pkglist: w_icon = QTableWidgetItem("") + w_icon.setData(Qt.UserRole, item) w_icon.setIcon(QIcon(self.getIcon(Icon))) w_name = QTableWidgetItem(AppName) w_type = QTableWidgetItem(Type) w_save = QTableWidgetItem(Save) - w_licc = QTableWidgetItem(License) self.listDAW.insertRow(last_pos) self.listDAW.setItem(last_pos, 0, w_icon) self.listDAW.setItem(last_pos, 1, w_name) self.listDAW.setItem(last_pos, 2, w_type) self.listDAW.setItem(last_pos, 3, w_save) - self.listDAW.setItem(last_pos, 4, w_licc) last_pos += 1 last_pos = 0 - for Package, AppName, Instruments, Effects, Binary, Icon, Save, Level, License, Features, Docs in database.list_Host: + for item in database.list_Host: + Package, AppName, Instruments, Effects, Binary, Icon, Save, Level, Features, Docs = item if SHOW_ALL or Package in pkglist: w_icon = QTableWidgetItem("") + w_icon.setData(Qt.UserRole, item) w_icon.setIcon(QIcon(self.getIcon(Icon))) w_name = QTableWidgetItem(AppName) w_h_in = QTableWidgetItem(Instruments) w_h_ef = QTableWidgetItem(Effects) w_save = QTableWidgetItem(Save) - w_licc = QTableWidgetItem(License) self.listHost.insertRow(last_pos) self.listHost.setItem(last_pos, 0, w_icon) @@ -820,33 +806,34 @@ class ClaudiaLauncher(QWidget, ui_claudia_launcher.Ui_ClaudiaLauncherW): self.listHost.setItem(last_pos, 2, w_h_in) self.listHost.setItem(last_pos, 3, w_h_ef) self.listHost.setItem(last_pos, 4, w_save) - self.listHost.setItem(last_pos, 5, w_licc) last_pos += 1 last_pos = 0 - for Package, AppName, Type, Binary, Icon, Save, Level, License, Features, Docs in database.list_Instrument: + for item in database.list_Instrument: + Package, AppName, Type, Binary, Icon, Save, Level, Features, Docs = item if SHOW_ALL or Package in pkglist: w_icon = QTableWidgetItem("") + w_icon.setData(Qt.UserRole, item) w_icon.setIcon(QIcon(self.getIcon(Icon))) w_name = QTableWidgetItem(AppName) w_type = QTableWidgetItem(Type) w_save = QTableWidgetItem(Save) - w_licc = QTableWidgetItem(License) self.listInstrument.insertRow(last_pos) self.listInstrument.setItem(last_pos, 0, w_icon) self.listInstrument.setItem(last_pos, 1, w_name) self.listInstrument.setItem(last_pos, 2, w_type) self.listInstrument.setItem(last_pos, 3, w_save) - self.listInstrument.setItem(last_pos, 4, w_licc) last_pos += 1 last_pos = 0 - for Package, FullName, Type, ShortName, Icon, Save, Level, License, Features, Docs in database.list_Bristol: + for item in database.list_Bristol: + Package, FullName, Type, ShortName, Icon, Save, Level, Features, Docs = item if SHOW_ALL or Package in pkglist: w_icon = QTableWidgetItem("") + w_icon.setData(Qt.UserRole, item) w_icon.setIcon(QIcon(self.getIcon(Icon))) w_fullname = QTableWidgetItem(FullName) w_shortname = QTableWidgetItem(ShortName) @@ -859,59 +846,89 @@ class ClaudiaLauncher(QWidget, ui_claudia_launcher.Ui_ClaudiaLauncherW): last_pos += 1 last_pos = 0 - for Package, Name, Spec, Type, Filename, Label, Icon, License, Features, Docs in database.list_Plugin: - if SHOW_ALL or Package in pkglist: - w_icon = QTableWidgetItem("") - w_icon.setIcon(QIcon(self.getIcon(Icon))) - w_name = QTableWidgetItem(Name) - w_spec = QTableWidgetItem(Spec) - w_type = QTableWidgetItem(Type) - w_licc = QTableWidgetItem(License) - - self.listPlugin.insertRow(last_pos) - self.listPlugin.setItem(last_pos, 0, w_icon) - self.listPlugin.setItem(last_pos, 1, w_name) - self.listPlugin.setItem(last_pos, 2, w_spec) - self.listPlugin.setItem(last_pos, 3, w_type) - self.listPlugin.setItem(last_pos, 4, w_licc) - - last_pos += 1 - - last_pos = 0 - for Package, AppName, Type, Binary, Icon, Save, Level, License, Features, Docs in database.list_Effect: + for item in database.list_Effect: + Package, AppName, Type, Binary, Icon, Save, Level, Features, Docs = item if SHOW_ALL or Package in pkglist: w_icon = QTableWidgetItem("") + w_icon.setData(Qt.UserRole, item) w_icon.setIcon(QIcon(self.getIcon(Icon))) w_name = QTableWidgetItem(AppName) w_type = QTableWidgetItem(Type) w_save = QTableWidgetItem(Save) - w_licc = QTableWidgetItem(License) self.listEffect.insertRow(last_pos) self.listEffect.setItem(last_pos, 0, w_icon) self.listEffect.setItem(last_pos, 1, w_name) self.listEffect.setItem(last_pos, 2, w_type) self.listEffect.setItem(last_pos, 3, w_save) - self.listEffect.setItem(last_pos, 4, w_licc) last_pos += 1 last_pos = 0 - for Package, AppName, Type, Binary, Icon, Save, Level, License, Features, Docs in database.list_Tool: + for item in database.list_Tool: + Package, AppName, Type, Binary, Icon, Save, Level, Features, Docs = item if SHOW_ALL or Package in pkglist: w_icon = QTableWidgetItem("") + w_icon.setData(Qt.UserRole, item) w_icon.setIcon(QIcon(self.getIcon(Icon))) w_name = QTableWidgetItem(AppName) w_type = QTableWidgetItem(Type) w_save = QTableWidgetItem(Save) - w_licc = QTableWidgetItem(License) self.listTool.insertRow(last_pos) self.listTool.setItem(last_pos, 0, w_icon) self.listTool.setItem(last_pos, 1, w_name) self.listTool.setItem(last_pos, 2, w_type) self.listTool.setItem(last_pos, 3, w_save) - self.listTool.setItem(last_pos, 4, w_licc) + + last_pos += 1 + + if haveCarla and os.path.exists("/usr/lib/carla/libcarla_utils.so"): + utils = CarlaUtils("/usr/lib/carla/libcarla_utils.so") + last_pos = 0 + for i in range(utils.get_cached_plugin_count(PLUGIN_LV2, os.getenv("LV2_PATH", "~/.lv2:/usr/lib/lv2:/usr/local/lib/lv2"))): + plugin = utils.get_cached_plugin_info(PLUGIN_LV2, i) + + if (plugin["hints"] & PLUGIN_HAS_CUSTOM_UI) == 0: + continue + + catgtext = "" + + if plugin["category"] == PLUGIN_CATEGORY_SYNTH: + catgtext = "Synth" + elif plugin["category"] == PLUGIN_CATEGORY_DELAY: + catgtext = "Delay" + elif plugin["category"] == PLUGIN_CATEGORY_EQ: + catgtext = "Equalizer" + elif plugin["category"] == PLUGIN_CATEGORY_FILTER: + catgtext = "Filter" + elif plugin["category"] == PLUGIN_CATEGORY_DISTORTION: + catgtext = "Distortion" + elif plugin["category"] == PLUGIN_CATEGORY_DYNAMICS: + catgtext = "Dynamics" + elif plugin["category"] == PLUGIN_CATEGORY_MODULATOR: + catgtext = "Modulator" + elif plugin["category"] == PLUGIN_CATEGORY_UTILITY: + catgtext = "Utility" + elif plugin["category"] == PLUGIN_CATEGORY_OTHER: + catgtext = "Other" + + if not plugin["category"]: + if plugin["hints"] & PLUGIN_IS_SYNTH: + catgtext = "Synth" + else: + catgtext = "FX" + + w_name = QTableWidgetItem(plugin["name"]) + w_auth = QTableWidgetItem(plugin["maker"]) + w_catg = QTableWidgetItem(catgtext) + + w_name.setData(Qt.UserRole, plugin) + + self.listPlugin.insertRow(last_pos) + self.listPlugin.setItem(last_pos, 0, w_name) + self.listPlugin.setItem(last_pos, 1, w_auth) + self.listPlugin.setItem(last_pos, 2, w_catg) last_pos += 1 @@ -927,25 +944,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.listPlugin.sortByColumn(0, 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 == iTabDAW: + def slot_checkSelectedTab(self, tabIndex): + if tabIndex == iTabDAW: test_selected = (len(self.listDAW.selectedItems()) > 0) - elif tab_index == iTabHost: + elif tabIndex == iTabHost: test_selected = (len(self.listHost.selectedItems()) > 0) - elif tab_index == iTabInstrument: + elif tabIndex == iTabInstrument: test_selected = (len(self.listInstrument.selectedItems()) > 0) - elif tab_index == iTabBristol: + elif tabIndex == iTabBristol: test_selected = (len(self.listBristol.selectedItems()) > 0) - elif tab_index == iTabPlugin: + elif tabIndex == iTabPlugin: test_selected = (len(self.listPlugin.selectedItems()) > 0) - elif tab_index == iTabEffect: + elif tabIndex == iTabEffect: test_selected = (len(self.listEffect.selectedItems()) > 0) - elif tab_index == iTabTool: + elif tabIndex == iTabTool: test_selected = (len(self.listTool.selectedItems()) > 0) else: test_selected = False @@ -955,19 +972,8 @@ class ClaudiaLauncher(QWidget, ui_claudia_launcher.Ui_ClaudiaLauncherW): @pyqtSlot(int) def slot_checkSelectedDAW(self, row): if row >= 0: - selected = True - - app_name = self.listDAW.item(row, 1).text() - - for DAW in database.list_DAW: - if DAW[1] == app_name: - app_info = DAW - break - else: - print("ERROR: Failed to retrieve app info from database") - return - - Package, AppName, Type, Binary, Icon, Save, Level, License, Features, Docs = app_info + item = self.listDAW.item(row, 0).data(Qt.UserRole) + Package, AppName, Type, Binary, Icon, Save, Level, Features, Docs = item self.frame_DAW.setEnabled(True) self.ico_app_daw.setPixmap(QIcon(self.getIcon(Icon)).pixmap(48, 48)) @@ -984,29 +990,16 @@ class ClaudiaLauncher(QWidget, ui_claudia_launcher.Ui_ClaudiaLauncherW): Docs0 = Docs[0] if (os.path.exists(Docs[0].replace("file://", ""))) else "" self.showDoc_DAW(Docs0, Docs[1]) - else: - selected = False self.clearInfo_DAW() - self.callback_checkGUI(selected) + self.callback_checkGUI(row >= 0) @pyqtSlot(int) def slot_checkSelectedHost(self, row): if row >= 0: - selected = True - - app_name = self.listHost.item(row, 1).text() - - for Host in database.list_Host: - if Host[1] == app_name: - app_info = Host - break - else: - print("ERROR: Failed to retrieve app info from database") - return - - Package, AppName, Instruments, Effects, Binary, Icon, Save, Level, License, Features, Docs = app_info + item = self.listHost.item(row, 0).data(Qt.UserRole) + Package, AppName, Instruments, Effects, Binary, Icon, Save, Level, Features, Docs = item self.frame_Host.setEnabled(True) self.ico_app_host.setPixmap(self.getIcon(Icon).pixmap(48, 48)) @@ -1022,29 +1015,16 @@ class ClaudiaLauncher(QWidget, ui_claudia_launcher.Ui_ClaudiaLauncherW): Docs0 = Docs[0] if (os.path.exists(Docs[0].replace("file://", ""))) else "" self.showDoc_Host(Docs0, Docs[1]) - else: - selected = False self.clearInfo_DAW() - self.callback_checkGUI(selected) + self.callback_checkGUI(row >= 0) @pyqtSlot(int) def slot_checkSelectedInstrument(self, row): if row >= 0: - selected = True - - app_name = self.listInstrument.item(row, 1).text() - - for Instrument in database.list_Instrument: - if Instrument[1] == app_name: - app_info = Instrument - break - else: - print("ERROR: Failed to retrieve app info from database") - return - - Package, AppName, Type, Binary, Icon, Save, Level, License, Features, Docs = app_info + item = self.listInstrument.item(row, 0).data(Qt.UserRole) + Package, AppName, Type, Binary, Icon, Save, Level, Features, Docs = item self.frame_Instrument.setEnabled(True) self.ico_app_ins.setPixmap(self.getIcon(Icon).pixmap(48, 48)) @@ -1056,29 +1036,16 @@ class ClaudiaLauncher(QWidget, ui_claudia_launcher.Ui_ClaudiaLauncherW): Docs0 = Docs[0] if (os.path.exists(Docs[0].replace("file://", ""))) else "" self.showDoc_Instrument(Docs0, Docs[1]) - else: - selected = False self.clearInfo_Intrument() - self.callback_checkGUI(selected) + self.callback_checkGUI(row >= 0) @pyqtSlot(int) def slot_checkSelectedBristol(self, row): if row >= 0: - selected = True - - app_name = self.listBristol.item(row, 2).text() - - for Bristol in database.list_Bristol: - if Bristol[1] == app_name: - app_info = Bristol - break - else: - print("ERROR: Failed to retrieve app info from database") - return - - Package, AppName, Type, ShortName, Icon, Save, Level, License, Features, Docs = app_info + item = self.listBristol.item(row, 0).data(Qt.UserRole) + Package, AppName, Type, ShortName, Icon, Save, Level, Features, Docs = item self.frame_Bristol.setEnabled(True) self.ico_app_bristol.setPixmap(self.getIcon(Icon).pixmap(48, 48)) @@ -1090,62 +1057,38 @@ class ClaudiaLauncher(QWidget, ui_claudia_launcher.Ui_ClaudiaLauncherW): Docs0 = Docs[0] if (os.path.exists(Docs[0].replace("file://", ""))) else "" self.showDoc_Bristol(Docs0, Docs[1]) - else: - selected = False self.clearInfo_Bristol() - self.callback_checkGUI(selected) + self.callback_checkGUI(row >= 0) @pyqtSlot(int) def slot_checkSelectedPlugin(self, row): if row >= 0: - selected = True - - pluginName = self.listPlugin.item(row, 1).text() - - for plugin in database.list_Plugin: - if plugin[1] == pluginName: - appInfo = plugin - break - else: - print("ERROR: Failed to retrieve plugin info from database") - return - - Package, Name, Spec, Type, Filename, Label, Icon, License, Features, Docs = appInfo + plugin = self.listPlugin.item(row, 0).data(Qt.UserRole) self.frame_Plugin.setEnabled(True) - self.ico_app_plugin.setPixmap(self.getIcon(Icon).pixmap(48, 48)) - self.ico_stereo_plugin.setPixmap(self.getIconForYesNo(Features[0]).pixmap(16, 16)) - self.ico_midi_input_plugin.setPixmap(self.getIconForYesNo(Features[1]).pixmap(16, 16)) - self.ico_presets_plugin.setPixmap(self.getIconForYesNo(Features[2]).pixmap(16, 16)) - self.label_name_plugin.setText(Name) - - Docs0 = Docs[0] if (os.path.exists(Docs[0].replace("file://", ""))) else "" - self.showDoc_Plugin(Docs0, Docs[1]) - + self.ico_app_bristol.setPixmap(self.getIcon("lv2").pixmap(48, 48)) + self.label_name_plugin.setText(plugin["name"]) + self.label_plugin_audio_ins.setText(str(plugin["audioIns"])) + self.label_plugin_audio_outs.setText(str(plugin["audioOuts"])) + self.label_plugin_midi_ins.setText(str(plugin["midiIns"])) + self.label_plugin_midi_outs.setText(str(plugin["midiOuts"])) + self.label_plugin_parameter_ins.setText(str(plugin["parameterIns"])) + self.label_plugin_parameter_outs.setText(str(plugin["parameterOuts"])) + + #Docs0 = Docs[0] if (os.path.exists(Docs[0].replace("file://", ""))) else "" + #self.showDoc_Plugin(Docs0, Docs[1]) else: - selected = False self.clearInfo_Plugin() - self.callback_checkGUI(selected) + self.callback_checkGUI(row >= 0) @pyqtSlot(int) def slot_checkSelectedEffect(self, row): if row >= 0: - selected = True - - app_name = self.listEffect.item(row, 1).text() - - for Effect in database.list_Effect: - if Effect[1] == app_name: - app_info = Effect - break - else: - print("ERROR: Failed to retrieve app info from database") - return - - Package, AppName, Type, Binary, Icon, Save, Level, License, Features, Docs = app_info + item = self.listEffect.item(row, 0).data(Qt.UserRole) + Package, AppName, Type, Binary, Icon, Save, Level, Features, Docs = item self.frame_Effect.setEnabled(True) self.ico_app_effect.setPixmap(self.getIcon(Icon).pixmap(48, 48)) @@ -1156,29 +1099,16 @@ class ClaudiaLauncher(QWidget, ui_claudia_launcher.Ui_ClaudiaLauncherW): Docs0 = Docs[0] if (os.path.exists(Docs[0].replace("file://", ""))) else "" self.showDoc_Effect(Docs0, Docs[1]) - else: - selected = False self.clearInfo_Effect() - self.callback_checkGUI(selected) + self.callback_checkGUI(row >= 0) @pyqtSlot(int) def slot_checkSelectedTool(self, row): if row >= 0: - selected = True - - app_name = self.listTool.item(row, 1).text() - - for Tool in database.list_Tool: - if Tool[1] == app_name: - app_info = Tool - break - else: - print("ERROR: Failed to retrieve app info from database") - return - - Package, AppName, Type, Binary, Icon, Save, Level, License, Features, Docs = app_info + item = self.listTool.item(row, 0).data(Qt.UserRole) + Package, AppName, Type, Binary, Icon, Save, Level, Features, Docs = item self.frame_Tool.setEnabled(True) self.ico_app_tool.setPixmap(self.getIcon(Icon).pixmap(48, 48)) @@ -1189,68 +1119,17 @@ class ClaudiaLauncher(QWidget, ui_claudia_launcher.Ui_ClaudiaLauncherW): Docs0 = Docs[0] if (os.path.exists(Docs[0].replace("file://", ""))) else "" self.showDoc_Tool(Docs0, Docs[1]) - else: - selected = False self.clearInfo_Tool() - self.callback_checkGUI(selected) - - @pyqtSlot(int) - def slot_doubleClickedListDAW(self, row): - app = self.listDAW.item(row, 1).text() - if self.m_ladish_only: - self.addAppToLADISH(app) - else: - self.startApp(app) - - @pyqtSlot(int) - def slot_doubleClickedListHost(self, row): - app = self.listHost.item(row, 1).text() - if self.m_ladish_only: - self.addAppToLADISH(app) - else: - self.startApp(app) - - @pyqtSlot(int) - def slot_doubleClickedListInstrument(self, row): - app = self.listInstrument.item(row, 1).text() - if self.m_ladish_only: - self.addAppToLADISH(app) - else: - self.startApp(app) - - @pyqtSlot(int) - def slot_doubleClickedListBristol(self, row): - app = self.listBristol.item(row, 2).text() - if self.m_ladish_only: - self.addAppToLADISH(app) - 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() - if self.m_ladish_only: - self.addAppToLADISH(app) - else: - self.startApp(app) + self.callback_checkGUI(row >= 0) - @pyqtSlot(int) - def slot_doubleClickedListTool(self, row): - app = self.listTool.item(row, 1).text() + @pyqtSlot() + def slot_doubleClickedList(self): if self.m_ladish_only: - self.addAppToLADISH(app) + self.addAppToLADISH() else: - self.startApp(app) + self.startApp() def saveSettings(self): if self.settings():