1diff --git a/src/makerdf.cpp b/src/makerdf.cpp 2index 430fb91..ee82152 100644 3--- a/src/makerdf.cpp 4+++ b/src/makerdf.cpp 5@@ -168,16 +168,16 @@ static void add_port(string &ports, const char *symbol, const char *name, const 6 ss << ind << "lv2ev:supportsTimestamp <lv2ev:TimeStamp> ;\n"; 7 } 8 if (!strcmp(symbol, "in_l")) 9- ss << ind << "pg:membership [ pg:group <#stereoIn>; pg:role pg:leftChannel ] ;" << endl; 10+ ss << ind << "pg:inGroup <#stereoIn> ; pg:role pg:leftChannel ;" << endl; 11 else 12 if (!strcmp(symbol, "in_r")) 13- ss << ind << "pg:membership [ pg:group <#stereoIn>; pg:role pg:rightChannel ] ;" << endl; 14+ ss << ind << "pg:inGroup <#stereoIn> ; pg:role pg:rightChannel ;" << endl; 15 else 16 if (!strcmp(symbol, "out_l")) 17- ss << ind << "pg:membership [ pg:group <#stereoOut>; pg:role pg:leftChannel ] ;" << endl; 18+ ss << ind << "pg:inGroup <#stereoOut> ; pg:role pg:leftChannel ;" << endl; 19 else 20 if (!strcmp(symbol, "out_r")) 21- ss << ind << "pg:membership [ pg:group <#stereoOut>; pg:role pg:rightChannel ] ;" << endl; 22+ ss << ind << "pg:inGroup <#stereoOut> ; pg:role pg:rightChannel ;" << endl; 23 ss << " ]"; 24 ports += ss.str(); 25 } 26@@ -469,7 +469,7 @@ void make_ttl(string path_prefix) 27 "@prefix lv2midi: <http://lv2plug.in/ns/ext/midi#> .\n" 28 "@prefix lv2ctx: <http://lv2plug.in/ns/dev/contexts#> .\n" 29 "@prefix strport: <http://lv2plug.in/ns/dev/string-port#> .\n" 30- "@prefix pg: <http://ll-plugins.nongnu.org/lv2/ext/portgroups#> .\n" 31+ "@prefix pg: <http://lv2plug.in/ns/dev/port-groups#> .\n" 32 "@prefix ue: <http://lv2plug.in/ns/extensions/units#> .\n" 33 "@prefix epp: <http://lv2plug.in/ns/dev/extportinfo#> .\n" 34 "@prefix kf: <http://foltman.com/ns/> .\n" 35@@ -538,7 +538,17 @@ void make_ttl(string path_prefix) 36 ttl += gui_uri + " uiext:portNotification [\n uiext:plugin " + uri + " ;\n uiext:portIndex " + i2s(j) + "\n] .\n\n"; 37 } 38 #endif 39- 40+ 41+ if (pi->get_input_count() == 2) 42+ ttl += "<#stereoIn> a pg:StereoGroup ;\n lv2:symbol \"in\";\n lv2:name \"Input\" .\n\n"; 43+ 44+ if (pi->get_output_count() == 2) { 45+ ttl += "<#stereoOut> a pg:StereoGroup ;\n lv2:symbol \"out\" ;\n lv2:name \"Output\""; 46+ if (pi->get_input_count() == 2) 47+ ttl += " ;\n pg:source <#stereoIn>"; 48+ ttl += " .\n\n"; 49+ } 50+ 51 ttl += uri + " a lv2:Plugin ;\n"; 52 53 if (classes.count(lpi.plugin_type)) 54@@ -583,12 +593,13 @@ void make_ttl(string path_prefix) 55 56 string ports = ""; 57 int pn = 0; 58- const char *in_names[] = { "in_l", "in_r" }; 59- const char *out_names[] = { "out_l", "out_r" }; 60+ const char *in_syms[] = { "in_l", "in_r" }; 61+ const char *out_syms[] = { "out_l", "out_r" }; 62+ const char *names[] = { "Left", "Right" }; 63 for (int i = 0; i < pi->get_input_count(); i++) 64- add_port(ports, in_names[i], in_names[i], "Input", pn++); 65+ add_port(ports, in_syms[i], names[i], "Input", pn++); 66 for (int i = 0; i < pi->get_output_count(); i++) 67- add_port(ports, out_names[i], out_names[i], "Output", pn++); 68+ add_port(ports, out_syms[i], names[i], "Output", pn++); 69 for (int i = 0; i < pi->get_param_count(); i++) 70 add_ctl_port(ports, *pi->get_param_props(i), pn++, pi, i); 71 if (pi->get_midi()) { 72