<div dir="ltr">Dear list,<div><br clear="all"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span style="font-size:12.800000190734863px">if this is stable, wouldn't it be a nice idea to propose it as an update to the expr~ family of objects? since it is basically an optimized clone?</span></blockquote><div>basically it is an optimized clone, but we have to consider the introduction of several (and heavy: llvm one for all) dependencies before include it in the pd release. </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span style="font-size:12.800000190734863px">correct me if I'm wrong, but that means with this tool we now have something like gen~ in Max</span></blockquote><div> </div><div>i think that the introduction of a compiler could be usefull for the introduction of a scripting language in pd that can work at the three different time levels present in pd (control, audio and sample rate). for example, in pic1 taken from [1] we can see a gen~ patch.  so i think that jit_expr (and in general expr family) can read a text file, like the right one in picture, and interpret it. in this case, one can avoid to write externals and use jit_expr to compute the perform method. considering the case of a noise generator, one in principle can have this pseudocode:</div><div>static int val;</div><div>$y1 = ((float)((val & 0x7fffffff) - 0x40000000)) *</div><div><div>            (float)(1.0 / 0x40000000);</div><div>val = val * 435898247 + 382842987;</div></div><div>the pseudocode i wrote is just a mix of usual expr syntax and usual C syntax plus the problem of local variables where i use the static word.</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span style="font-size:12.800000190734863px">btw, I know there's Faust that works with Pd</span></blockquote><div>the introduction of a jit compiler is usefull to faust-ize pd, in the sense that optimizing [fexpr~] several filters that usually are done in faust can be done in pd incrementing the possibility of using small block size.</div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span style="font-size:12.800000190734863px">The name collision is unfortunate but "jit" very accurately describes what is happening.</span></blockquote><div>honestly i do not like the namespace in pd, but i find this very usefull to switch from expr family to jit_expr. </div><div><br></div><div>a final consideration about jit compilation: from my understanding of multithreading in computer music, not so much apart [pd~] can be done without breaking determinism. from one hand i see the possibility to introduce a steal working scheduler that breaks the dsp graph in sub-graphs and distribute them to threads (and divide some non-real time safe computation between threads, like soundfiler object and in general array operation); on other hand the possibility to jit-compile all the dsp graph is very interesting because it should leave all the black magic to the compiler and optimizing the patch reduces the need of parallelization. finally a combination of jit-compilation plus automatic parallelization would put this conversation on the heaven of computer music parallelization :)</div><div><br></div><div>best,</div><div>marco</div><div><br></div><div>[1]: <a href="https://docs.cycling74.com/max7/vignettes/gen_overview">https://docs.cycling74.com/max7/vignettes/gen_overview</a></div><div><img src="cid:ii_jfg190i20_1627e7b021556b7f" width="454" height="153"><br></div>-- <br><div class="gmail_signature"><div dir="ltr">Ho cambiato l'indirizzo email in <a href="mailto:mm.markidis@autistici.org" target="_blank">mm.markidis@autistici.org</a> . Se non è un problema, scrivimi a questo nuovo indirizzo email.<div><br></div><div>I changed my email address in <a href="mailto:mm.markidis@autistici.org" target="_blank">mm.markidis@autistici.org</a> . If it is ok for you, please write me to this new email address.</div></div></div>
</div></div>