[{"data":1,"prerenderedAt":33},["ShallowReactive",2],{"note-the-lv2-adapter-against-mod-host-and-jalv-ca":3},{"slug":4,"order":5,"title":6,"summary":7,"measured":8,"topic":9,"toc":10,"html":32},"the-lv2-adapter-against-mod-host-and-jalv",160,"\"L'adaptador LV2 comparat amb mod-host i jalv: mida i estructura\"","L'adaptador LV2 que presenta un plugin LV2 com un plugin CLAP fa les mateixes crides a lilv i en el mateix ordre que mod-host i jalv. El seu codi és més petit i té menys branques que el nucli de mod-host i és 1,4 vegades el de jalv; gairebé tota aquesta diferència són funcions que el contracte CLAP exigeix i que jalv no ofereix.","L'adaptador LV2 d'omx-clap-core, mod-host 0.10.6 i jalv 1.10.0 (jalv 1.8.0 per a la prova de cobertura), octubre del 2026; mides amb scc 3.5.0 i lizard 1.24.1.","core",[11,14,17,20,23,26,29],{"id":12,"title":13},"que-es-compara","Què es compara",{"id":15,"title":16},"mida","Mida",{"id":18,"title":19},"complexitat","Complexitat",{"id":21,"title":22},"les-mateixes-tasques-en-tots-tres","Les mateixes tasques en tots tres",{"id":24,"title":25},"on-l-adaptador-es-mes-gran-i-per-que","On l'adaptador és més gran i per què",{"id":27,"title":28},"cobertura","Cobertura",{"id":30,"title":31},"en-resum","En resum","\u003Ch2 id=\"que-es-compara\">Què es compara\u003C\u002Fh2>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>subjecte\u003C\u002Fth>\n\u003Cth>què es mesura\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>l'adaptador\u003C\u002Ftd>\n\u003Ctd>\u003Ccode>lv2\u002Fcore\u003C\u002Fcode> i \u003Ccode>lv2\u002Fclap\u003C\u002Fcode> d'omx-clap-core; &quot;amb la infraestructura&quot; hi afegeix les sis capçaleres de la biblioteca que inclou\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>mod-host\u003C\u002Ftd>\n\u003Ctd>el seu \u003Ccode>src\u002F\u003C\u002Fcode>, sense el protocol de sòcol, la línia d'ordres, el completador ni el client de monitoratge i sense les biblioteques que incorpora\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>jalv\u003C\u002Ftd>\n\u003Ctd>el seu \u003Ccode>src\u002F\u003C\u002Fcode>, sense \u003Ccode>main.c\u003C\u002Fcode>, els motors JACK i PortAudio ni les interfícies d'usuari\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Cp>mod-host i jalv són aplicacions, cadascuna amb un motor d'àudio (JACK) i una interfície de sòcol o d'usuari. L'adaptador és\nuna biblioteca: presenta un plugin LV2 com un plugin CLAP i no té cap motor. Mesurar els nuclis dels amfitrions sense les\nseves interfícies ni els seus motors manté comparables els tres. El script que els mesura, \u003Ccode>tools\u002Fhosting-compare.sh\u003C\u002Fcode>\nd'omx-clap-core, clona els subjectes i imprimeix totes les taules d'aquí sota.\u003C\u002Fp>\n\u003Ch2 id=\"mida\">Mida\u003C\u002Fh2>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>subjecte\u003C\u002Fth>\n\u003Cth style=\"text-align:right\">fitxers\u003C\u002Fth>\n\u003Cth style=\"text-align:right\">línies\u003C\u002Fth>\n\u003Cth style=\"text-align:right\">codi\u003C\u002Fth>\n\u003Cth style=\"text-align:right\">comentaris\u003C\u002Fth>\n\u003Cth style=\"text-align:right\">funcions\u003C\u002Fth>\n\u003Cth style=\"text-align:right\">dependències externes\u003C\u002Fth>\n\u003Cth style=\"text-align:right\">funcions públiques\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>l'adaptador\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">8\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">7657\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">5648\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">1160\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">273\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">4\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">90\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>amb la infraestructura\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">14\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">9224\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">6591\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">1609\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">316\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">5\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">90\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>mod-host\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">20\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">11248\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">8164\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">1341\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">165\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">4\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">84\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>jalv\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">47\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">5492\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">3970\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">631\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">127\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">5\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">90\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Cp>Les dependències externes són les arrels d'inclusió diferents: l'adaptador \u003Ccode>clap lilv lv2 omxcontract\u003C\u002Fcode>; mod-host \u003Ccode>jack lilv lv2 mach\u003C\u002Fcode>; jalv \u003Ccode>lilv lv2 serd sratom zix\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Ch2 id=\"complexitat\">Complexitat\u003C\u002Fh2>\n\u003Cp>Complexitat ciclomàtica per funció (lizard):\u003C\u002Fp>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>subjecte\u003C\u002Fth>\n\u003Cth style=\"text-align:right\">funcions\u003C\u002Fth>\n\u003Cth style=\"text-align:right\">CCN mitjana\u003C\u002Fth>\n\u003Cth style=\"text-align:right\">CCN p95\u003C\u002Fth>\n\u003Cth style=\"text-align:right\">CCN màxima\u003C\u002Fth>\n\u003Cth style=\"text-align:right\">CCN per sobre de 15\u003C\u002Fth>\n\u003Cth style=\"text-align:right\">línies mitjanes per funció\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>l'adaptador\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">273\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">6,38\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">19\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">86\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">20\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">17,2\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>amb la infraestructura\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">316\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">6,60\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">19\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">86\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">26\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">17,2\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>mod-host\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">165\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">9,08\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">28\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">127\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">18\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">40,9\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>jalv\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">127\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">3,62\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">9\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">21\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">1\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">19,4\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Cp>Les funcions amb més branques són \u003Ccode>instance_make\u003C\u002Fcode> de l'adaptador (CCN 86), \u003Ccode>plugin_process\u003C\u002Fcode> (62), \u003Ccode>read_ports\u003C\u002Fcode> (57) i\n\u003Ccode>read_side\u003C\u002Fcode> (50); \u003Ccode>effects_add\u003C\u002Fcode> de mod-host (127, 736 línies), \u003Ccode>ProcessPlugin\u003C\u002Fcode> (122), \u003Ccode>effects_remove\u003C\u002Fcode> (70) i\n\u003Ccode>RunPostPonedEvents\u003C\u002Fcode> (68); \u003Ccode>jalv_open\u003C\u002Fcode> de jalv (21).\u003C\u002Fp>\n\u003Cp>Línies de codi per àrea (funcions classificades pel nom, el nombre entre parèntesis; és una aproximació, perquè el codi de\ndins d'una funció gran es compta a l'àrea d'aquella funció):\u003C\u002Fp>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>àrea\u003C\u002Fth>\n\u003Cth style=\"text-align:right\">l'adaptador\u003C\u002Fth>\n\u003Cth style=\"text-align:right\">mod-host\u003C\u002Fth>\n\u003Cth style=\"text-align:right\">jalv\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>worker\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">88 (8)\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">78 (6)\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">153 (11)\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>estat, presets i camins d'estat\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">522 (34)\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">456 (17)\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">177 (8)\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>CV\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">8 (2)\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">197 (2)\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">0 (0)\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>grups de ports, disposicions, auxiliars\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">236 (14)\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">0 (0)\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">0 (0)\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>contracte CLAP, paràmetres, descriptor\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">413 (30)\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">201 (6)\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">0 (0)\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>latència, freqüència, canvi de bloc\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">157 (17)\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">7 (1)\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">46 (1)\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>àtoms, esdeveniments, MIDI\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">945 (51)\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">1820 (50)\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">599 (41)\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>ports i connexió\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">386 (14)\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">287 (11)\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">313 (13)\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>errors i refusos\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">114 (9)\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">141 (3)\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">64 (4)\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>cicle de vida i aturada\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">291 (14)\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">402 (10)\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">188 (12)\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>execució, procés\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">164 (2)\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">678 (3)\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">54 (2)\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>instanciació\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">1103 (44)\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">1339 (12)\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">470 (12)\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>altres\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">278 (34)\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">1141 (44)\u003C\u002Ftd>\n\u003Ctd style=\"text-align:right\">399 (23)\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Ch2 id=\"les-mateixes-tasques-en-tots-tres\">Les mateixes tasques en tots tres\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>\u003Cstrong>Instanciar i connectar un efecte estèreo.\u003C\u002Fstrong> Tots tres llegeixen el plugin amb lilv, l'instancien i en connecten els\nports. L'adaptador jutja el plugin per la seva descripció i el refusa amb un codi abans d'obrir cap binari i connecta\ncada port una sola vegada, a memòria que és de la instància, copiant l'àudio d'entrada i de sortida a cada bloc. mod-host\ntambé copia; jalv connecta el búfer de JACK directament a cada cicle.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Un instrument MIDI en un port d'àtoms.\u003C\u002Fstrong> Tots tres escriuen els esdeveniments d'entrada en un búfer d'esdeveniments\nabans de \u003Ccode>run\u003C\u002Fcode> i llegeixen els de sortida després. La sortida de l'adaptador queda limitada per la seva pròpia capacitat.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>L'extensió worker.\u003C\u002Fstrong> El mateix disseny en tots tres: un anell de peticions, un fil, un anell de respostes que es buida\nabans de \u003Ccode>run\u003C\u002Fcode> i després \u003Ccode>end_run\u003C\u002Fcode>. El de l'adaptador fa 88 línies contra 78 i 153.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Desar i restaurar l'estat.\u003C\u002Fstrong> Tots tres passen per \u003Ccode>lilv_state_*\u003C\u002Fcode>. L'adaptador restaura en calent un plugin que declara\n\u003Ccode>state:threadSafeRestore\u003C\u002Fcode> i, si no, guarda l'estat i l'aplica a la propera activació; jalv atura el fil d'àudio. L'adaptador\nconfina el \u003Ccode>make_path\u003C\u002Fcode> d'un plugin al seu directori d'estat i refusa un camí que en surti.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Un canvi de freqüència de mostratge.\u003C\u002Fstrong> CLAP pot tornar a activar un plugin a una altra freqüència, de manera que\nl'adaptador ho diu al plugin a través d'\u003Ccode>options:interface\u003C\u002Fcode> quan pot i el torna a instanciar quan cal. Cap dels dos\namfitrions JACK no gestiona un canvi de freqüència en marxa: tots dos llegeixen la freqüència una sola vegada. Tots tres\ngestionen un canvi de longitud de bloc.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Ports CV i auxiliars.\u003C\u002Fstrong> L'adaptador agrupa els ports auxiliars, CV i envolupants per \u003Ccode>pg:group\u003C\u002Fcode> i designació i els\nofereix com a ports d'àudio CLAP. mod-host exposa els ports CV com a ports JACK i com a font de control; jalv com a ports\nd'àudio amb metadades CV. Cap dels dos no converteix un grup de ports en un bus.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2 id=\"on-l-adaptador-es-mes-gran-i-per-que\">On l'adaptador és més gran i per què\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>\u003Cstrong>Refús abans d'instanciar\u003C\u002Fstrong>, amb un codi per a cada motiu: cada plugin es jutja per la seva descripció abans d'obrir-ne el\nbinari. És el contracte d'allotjament.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>La cara CLAP\u003C\u002Fstrong>: la taula de paràmetres, les seves correspondències de text i valor, el contracte i el descriptor (413\nlínies), que els altres no necessiten.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Un canvi de freqüència o de bloc en marxa\u003C\u002Fstrong> (157 línies contra 7 i 46).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Disposicions, auxiliars, cadena lateral i so envolupant\u003C\u002Fstrong> com a ports d'àudio CLAP (236 línies contra cap).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Estat\u003C\u002Fstrong>: restauració en calent i diferida, camins confinats i descobriment de presets CLAP (522 línies contra 456 i 177).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Un camí d'execució sense bloquejos ni reserves de memòria\u003C\u002Fstrong>, demostrat per un testimoni de reserves a les proves; el\ncamí d'execució de jalv és igual en això.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Comparat amb jalv, l'adaptador té 1,42 vegades el codi i 1,76 vegades la complexitat mitjana. Les quatre àrees que jalv no té\n(la cara CLAP, les disposicions i els auxiliars, el canvi de freqüència i la part de l'estat que va més enllà de la de jalv)\nsumen 1151 línies, que cobreixen la major part de la diferència de 1678 línies.\u003C\u002Fp>\n\u003Cp>La complexitat accidental és en tres funcions: \u003Ccode>instance_make\u003C\u002Fcode> connecta els ports provant cada rol per a cada índex de port,\n\u003Ccode>plugin_process\u003C\u002Fcode> repeteix el mateix bucle &quot;canal de l'amfitrió o silenci&quot; per a cada tipus de branca i \u003Ccode>read_ports\u003C\u002Fcode> i\n\u003Ccode>read_side\u003C\u002Fcode> tenen cadascuna la regla de cada tipus de port en una sola funció. Construir una taula de rols quan es llegeix\nla descripció, una sola funció auxiliar per branca i un classificador per tipus de port n'eliminarien la major part, amb les\nproves de refús i de reserves existents com a protecció.\u003C\u002Fp>\n\u003Ch2 id=\"cobertura\">Cobertura\u003C\u002Fh2>\n\u003Cp>La mateixa pregunta als tres amfitrions: dels 979 plugins LV2 instal·lats en una màquina Fedora 44, quants n'instancia i\nn'activa cada amfitrió en un graf en marxa? Un espai de noms privat amb el seu propi PipeWire a 48 kHz, un plugin cada\nvegada, deu segons per resposta. Allotjat vol dir admès, instanciat i activat; no afirma que l'àudio sigui idèntic.\u003C\u002Fp>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>amfitrió\u003C\u002Fth>\n\u003Cth>allotjats\u003C\u002Fth>\n\u003Cth>no allotjats\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\n\u003Ctr>\n\u003Ctd>l'adaptador, a través d'omx-clap-host\u003C\u002Ftd>\n\u003Ctd>979 de 979\u003C\u002Ftd>\n\u003Ctd>cap\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>mod-host 0.10.6\u003C\u002Ftd>\n\u003Ctd>975 de 979\u003C\u002Ftd>\n\u003Ctd>drumkv1 (SIGABRT), samplv1 i synthv1 (l'amfitrió es va aturar a \u003Ccode>add\u003C\u002Fcode>), zynadd (\u003Ccode>resp -102\u003C\u002Fcode>)\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>jalv 1.8.0\u003C\u002Ftd>\n\u003Ctd>977 de 979\u003C\u002Ftd>\n\u003Ctd>zynadd (un port MIDI d'un tipus que no coneix), synthv1 (SIGABRT en instanciar)\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\n\u003C\u002Ftable>\n\u003Ch2 id=\"en-resum\">En resum\u003C\u002Fh2>\n\u003Cp>Els tres amfitrions fan les mateixes crides a lilv i en el mateix ordre: instanciar, connectar, un worker de dos anells i un\nfil i l'estat a través de \u003Ccode>lilv_state_*\u003C\u002Fcode>. L'adaptador és més petit i té menys branques que el nucli de mod-host en totes les\nmesures d'abans i és 1,4 vegades jalv, on la diferència són gairebé totes funcions que el contracte CLAP exigeix.\u003C\u002Fp>\n",1793954996532]