<html><head></head><body><div style="color:#000; background-color:#fff; font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:16px"><div id="yiv5811796797"><div id="yui_3_16_0_ym19_1_1466697112312_7324"><div style="color:#000;background-color:#fff;font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:16px;" id="yui_3_16_0_ym19_1_1466697112312_7323"><div id="yui_3_16_0_ym19_1_1466697112312_7322"><span id="yui_3_16_0_ym19_1_1466697112312_7321">Btw-- with this particular issue, wouldn't it be best to just have </span></div><div dir="ltr" id="yui_3_16_0_ym19_1_1466697112312_7566"><span id="yui_3_16_0_ym19_1_1466697112312_7565">a function in m_pd.h for opening an external doc?  That function </span></div><div dir="ltr" id="yui_3_16_0_ym19_1_1466697112312_7571"><span id="yui_3_16_0_ym19_1_1466697112312_7570">could then just do a call to the gui (or do nothing if in nogui mode).</span></div> <div class="yiv5811796797qtdSeparateBR" id="yui_3_16_0_ym19_1_1466697112312_7572"><br clear="none">That way Pd Vanilla could add the same functionality where they </div><div class="yiv5811796797qtdSeparateBR" id="yui_3_16_0_ym19_1_1466697112312_7572">wrap a tcl call.</div><div class="yiv5811796797qtdSeparateBR" id="yui_3_16_0_ym19_1_1466697112312_7572"><br></div><div class="yiv5811796797qtdSeparateBR" id="yui_3_16_0_ym19_1_1466697112312_7572">-Jonathan</div><div class="yiv5811796797yqt4118337516" id="yiv5811796797yqt79923"></div></div></div></div><div class=".yiv5811796797yahoo_quoted"> <div style="font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:16px;"> <div style="font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:16px;"> <div dir="ltr"><font size="2" face="Arial"> On Thursday, June 23, 2016 11:32 AM, Jonathan Wilkes <jancsika@yahoo.com> wrote:<br clear="none"></font></div>  <br clear="none"><br clear="none"> <div class="yiv5811796797y_msg_container"><div id="yiv5811796797"><div><div style="color:#000;background-color:#fff;font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:16px;"><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6635"><span id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6636" style="font-family:Arial;font-size:small;">> On Thursday, June 23, 2016 3:17 AM, Albert Graef <aggraef@gmail.com> wrote:</span><br clear="none" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6637"></div><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6638"><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6639"><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6640">  <div dir="ltr" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6791"><br clear="none"></div><div dir="ltr" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6795"><br clear="none"></div><div dir="ltr"><br clear="none"></div><br clear="none" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6642"> <div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6643"><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6644"><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6645"><div dir="ltr" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6646"><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6647"><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6648" style="font-family:HelveticaNeue,;">> On Thu, Jun 23, 2016 at 12:23 AM, Jonathan Wilkes <span dir="ltr" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6649"><<a rel="nofollow" shape="rect" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6650" ymailto="mailto:jancsika@yahoo.com" target="_blank" href="mailto:jancsika@yahoo.com">jancsika@yahoo.com</a>> </span></div><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6651">> wrote:<br clear="none" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6652"><blockquote id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6653" style="font-family:HelveticaNeue,;"><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6654"><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6655" style="color:rgb(0,0,0);background-color:rgb(255,255,255);font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:16px;"><span id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6656"></span><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6657">Yes, but I'd rather not index the entire thing.</div></div></div></blockquote><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6658" style="font-family:HelveticaNeue,;"><br clear="none" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6659"></div><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6660" style="font-family:HelveticaNeue,;">> Why not? You only need to index the *-help.pd patches. There are 2455 of </div><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6661" style="font-family:HelveticaNeue,;">> those in extra. If scanning these on every startup is too slow, the help </div><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6662" style="font-family:HelveticaNeue,;">> browser could have a button to only run the indexing on demand.</div><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6663" style="font-family:HelveticaNeue,;"> <br clear="none" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6664"></div><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6665" style="font-family:HelveticaNeue,;">It will certainly be slower, but we can easily cache the index.</div><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6666" style="font-family:HelveticaNeue,;"><br clear="none" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6667"></div><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6668" style="font-family:HelveticaNeue,;">The problem is that there two types of subdirectories inside "extra":</div><div dir="ltr" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6669" style="font-family:HelveticaNeue,;">a) external libraries, in the sense of most other programming languages</div><div dir="ltr" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6670" style="font-family:HelveticaNeue,;">b) abandoned cloud storage of early Pd users that we keep to maintain</div><div dir="ltr" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6671" style="font-family:HelveticaNeue,;">backwards compatibility</div><div dir="ltr" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6672" style="font-family:HelveticaNeue,;"><br clear="none" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6673"></div><div dir="ltr" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6674" style="font-family:HelveticaNeue,;">I don't want the cloud storage cruft to show up in the search results.  Or, </div><div dir="ltr" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6675" style="font-family:HelveticaNeue,;">if it does, I want it at the very bottom of the list.  Maybe a PDDP tag of </div><div dir="ltr" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6676" style="font-family:HelveticaNeue,;">"deprecated" can help with this.</div><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6677" style="font-family:HelveticaNeue,;"><br clear="none" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6678"></div><blockquote id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6679" style="font-family:HelveticaNeue,;"><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6680"><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6681" style="color:rgb(0,0,0);background-color:rgb(255,255,255);font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:16px;"><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6682">I'd like to choose only those <br clear="none" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6683"></div><div dir="ltr" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6684">libs which are being actively (and sustainably) maintained to show up in <br clear="none" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6685"></div><div dir="ltr" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6686">the search results.</div></div></div></blockquote><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6687" style="font-family:HelveticaNeue,;"><br clear="none" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6688"></div><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6689" style="font-family:HelveticaNeue,;">> My take on this is that if an external is included in the package then its </div><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6690" style="font-family:HelveticaNeue,;">> documentation should be accessible, no matter in what state it is. A bad help > patch is still better than none at all. Right now I have to search for the </div><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6691" style="font-family:HelveticaNeue,;">> external help patches with File/Open which is a workable solution but </div><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6692" style="font-family:HelveticaNeue,;">> inconvenient.<br clear="none" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6693"> <br clear="none" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6694"></div><blockquote id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6695" style="font-family:HelveticaNeue,;"><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6696"><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6697" style="color:rgb(0,0,0);background-color:rgb(255,255,255);font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:16px;"><div dir="ltr" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6698"></div><div dir="ltr" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6699">It might also be nice to have links to the manual and other popular starting <br clear="none" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6700"></div><div dir="ltr" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6701">points by default.<br clear="none" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6702"></div></div></div></blockquote><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6703" style="font-family:HelveticaNeue,;"><br clear="none" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6704"></div><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6705" style="font-family:HelveticaNeue,;">> Yes, that would be nice!<br clear="none" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6706"> <br clear="none" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6707"></div><blockquote id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6708" style="font-family:HelveticaNeue,;"><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6709"><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6710" style="color:rgb(0,0,0);background-color:rgb(255,255,255);font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:16px;"><div dir="ltr" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6711"></div><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6712">Once I'm in beta I'll get more rigorous about the debug messages.<br clear="none" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6713"></div></div></div></blockquote><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6714" style="font-family:HelveticaNeue,;"><br clear="none" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6715"></div><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6716" style="font-family:HelveticaNeue,;">> Ok, that's fair.<br clear="none" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6717"> <br clear="none" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6718"></div><blockquote id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6719" style="font-family:HelveticaNeue,;"><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6720"><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6721" style="color:rgb(0,0,0);background-color:rgb(255,255,255);font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:16px;"><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6722"></div><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6723" style="display:block;"><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6724" style="font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:16px;"><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6725" style="font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:16px;"><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6726"><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6727"><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6728"><div dir="ltr" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6729"><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6730"><span id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6731"></span><span id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6732"></span><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6733">> Jonathan, does sys_vgui() let me execute JavaScript code in purr-data? </div><span id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6734"></span><span id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6735"></span><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6736"><br clear="none" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6737"></div><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6738">No. sys_vgui can only print its old tcl string to the console.<br clear="none" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6739"></div></div></div></div></div></div></div></div></div></div></div></blockquote><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6740" style="font-family:HelveticaNeue,;"><br clear="none" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6741"></div><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6742" style="font-family:HelveticaNeue,;">> Ok, but surely there's a way to invoke exported functions from pdgui.js et al </div><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6743" style="font-family:HelveticaNeue,;">> from Pd's internals? Maybe that C routine could be exposed in m_pd.h until a </div><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6744" style="font-family:HelveticaNeue,;">> proper external GUI API is crafted?</div><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6745" style="font-family:HelveticaNeue,;"><br clear="none" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6746"></div><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6747" style="font-family:HelveticaNeue,;">Yes:</div><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6748">https://git.purrdata.net/jwilkes/purr-data#gui-messaging-specification<br clear="none" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6749"><br clear="none" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6750"></div><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6748">You can use that API to talk to the GUI.  But just keep in mind that any of </div><div dir="ltr" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6748">the js functions you call could change at will.</div><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6748"><br clear="none"></div><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6748"><br clear="none"></div><blockquote id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6751" style="font-family:HelveticaNeue,;"><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6752"><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6753" style="color:rgb(0,0,0);background-color:rgb(255,255,255);font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:16px;"><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6754" style="display:block;"><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6755" style="font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:16px;"><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6756" style="font-family:HelveticaNeue, Helvetica Neue, Helvetica, Arial, Lucida Grande, sans-serif;font-size:16px;"><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6757"><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6758"><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6759"><div dir="ltr" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6760"><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6761"><span id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6762"></span><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6763"><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6764"></div><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6765">Well, right now I'm just cheating and adding specific code to pdgui.js for <br clear="none" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6766"></div><div dir="ltr" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6767">handling gui external classes like Scope~.  I'm leaving the external GUI <br clear="none" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6768"></div><div dir="ltr" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6769">API question for a later time.</div></div></div></div></div></div></div></div></div></div></div></div></blockquote><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6770" style="font-family:HelveticaNeue,;"><br clear="none" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6771"></div><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6772" style="font-family:HelveticaNeue,;">> The JS routines I need are already there; external_doc_open is all I need. I </div><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6772" style="font-family:HelveticaNeue,;">> just need a way to invoke that routine from C code. If that's not possible then </div><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6772" style="font-family:HelveticaNeue,;">> I'll have to work around that somehow, but I really need that functionality in </div><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6772" style="font-family:HelveticaNeue,;">> my Pure and Faust externals.</div><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6772" style="font-family:HelveticaNeue,;"><br clear="none"></div><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6772" style="font-family:HelveticaNeue,;">The "public" functions all have the prefix "gui", but there is currently nothing </div><div dir="ltr" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6772" style="font-family:HelveticaNeue,;">technical that is stopping you from calling external_doc_open directly.</div><div dir="ltr" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6772" style="font-family:HelveticaNeue,;"><br clear="none"></div><div dir="ltr" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6772" style="font-family:HelveticaNeue,;">There is also gui_pddplink_open.  I could rename that and change the error </div><div dir="ltr" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6772" style="font-family:HelveticaNeue,;">message to generalize it.  Still, keep in mind it is unstable.</div><div class="yiv5811796797yqt6946624335" id="yiv5811796797yqtfd31106"><div dir="ltr" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6772" style="font-family:HelveticaNeue,;"><br clear="none"></div><div dir="ltr" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6772" style="font-family:HelveticaNeue,;">-Jonathan<br clear="none"><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6773"><br clear="none" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6774"> <br clear="none" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6775"></div></div><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6776" style="font-family:HelveticaNeue,;">Albert<br clear="all" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6777"></div></div></div><div class="yiv5811796797yqt6946624335" id="yiv5811796797yqtfd23826"><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6778" style="font-family:HelveticaNeue,;"><br clear="none" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6779">-- <br clear="none" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6780"><div id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6781"><div dir="ltr" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6782">Dr. Albert Gr"af<br clear="none" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6783">Computer Music Research Group, JGU Mainz, Germany<br clear="none" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6784">Email:  <a rel="nofollow" shape="rect" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6785" ymailto="mailto:aggraef@gmail.com" target="_blank" href="mailto:aggraef@gmail.com">aggraef@gmail.com</a><br clear="none" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6786">WWW:    <a rel="nofollow" shape="rect" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6787" target="_blank" href="https://plus.google.com/+AlbertGraef">https://plus.google.com/+AlbertGraef</a></div></div>
</div></div></div></div></div></div><div class="yiv5811796797yqt6946624335" id="yiv5811796797yqtfd95119"><br clear="none" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6788"><br clear="none" id="yiv5811796797yui_3_16_0_ym19_1_1466694375537_6789"></div></div><div class="yiv5811796797yqt6946624335" id="yiv5811796797yqtfd28217">  </div></div><div class="yiv5811796797yqt6946624335" id="yiv5811796797yqtfd20815"> </div></div><div class="yiv5811796797yqt6946624335" id="yiv5811796797yqtfd03637">  </div></div></div></div></div><br clear="none"><br clear="none"></div>  </div> </div>  </div></div></body></html>