<div dir="ltr"><div>Hello! my comments and questions are inline to your past email.</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Mar 4, 2020 at 4:31 PM Jonathan Wilkes <<a href="mailto:jon.w.wilkes@gmail.com">jon.w.wilkes@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Wed, Mar 4, 2020 at 5:33 AM Alia Morsi <<a href="mailto:morsi.alia@gmail.com" target="_blank">morsi.alia@gmail.com</a>> wrote:<br>
><br>
> Hi!<br>
><br>
><br>
> I’m a master student at the moment, and have software development experience in my past life. I would like to participate in GSOC 2020 with purr data, which I had used in one of the master courses.<br>
><br>
><br>
> I’m considering those options:<br>
><br>
> Vintage Platform Audio Emulation Library<br>
><br>
> and<br>
><br>
> Interaction with Audio Plugins<br>
><br>
><br>
> I would like to choose based on which would be feasible to implement given my skillset, and therefore It would be great if the potential mentor/s contact me to have a little discussion.<br>
><br>
><br>
> Please reach out!<br>
><br>
<br>
Hello Alia Morsi,<br>
<br>
Welcome!<br>
<br>
A general starting point would be to create a fork of Purr Data at<br>
<a href="http://git.purrdata.net" rel="noreferrer" target="_blank">git.purrdata.net</a>. Then compile Purr Data<br>
for your OS using the guide here:<br>
<br>
<a href="https://git.purrdata.net/jwilkes/purr-data#build-guide" rel="noreferrer" target="_blank">https://git.purrdata.net/jwilkes/purr-data#build-guide</a><br>
<br>
Once you have that running pick one of the issues labeled<br>
"good-first-bug" to get experience<br>
making a feature branch, touching the code, fixing the bug, and making<br>
a merge request in<br>
Gitlab. That will show you the basic process by which we develop Purr Data.<br></blockquote><div><br></div><div><font color="#0b5394">Done :) </font></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
For the audio emulation library, I left a single piece of prior art in the repo.<br>
<br>
Once you've cloned the Purr Data repo, have a look at<br>
purr-data/externals/mmonoplayer<br>
and see if you can figure out how to compile that C source file to<br>
create an external binary<br>
for Purr Data. It's a bit tricky given there is no build script or<br>
help file. But I think it's a good exercise to<br>
have a look at the interface for that class and play around with it in<br>
Purr Data. Also, you'll probably<br>
run into a lot of prior art like this which has minimal<br>
documentation/build scripts. :)<br></blockquote><div><br></div><span id="gmail-docs-internal-guid-d4f866b2-7fff-9355-ba30-efb8a53d37cb"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-family:Arial;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font color="#0b5394" style="">I did attempt to build it. At the end, an atari2600~.pd_darwin file is created. But, although I put it in the same directory as a .pd file, I still can’t create an atari_2600~ object (this is the exact symbol used in gensym in the atari2600~.c file, so I was hoping it would work)</font></span></p><font color="#0b5394"><br></font><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-family:Arial;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font color="#0b5394">To create the Makefile, I used the template/ external folder as a starting point. I hardcoded the include paths of pd headers in the Makefile (bad.. I know), and deleted some clang compiler flags. </font></span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-family:Arial;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font color="#0b5394" style="">I’m a bit stuck where I’m not sure if the reason it’s not loading is due to a mistake in my editing of the Makefile itself, or due to another rookie error I could have made. btw get a link warning that says “ld: warning: directory not found for option '-L/sw/lib'”. While I don’t know exactly what that means, I thought I’d put it here in case it is indeed what’s causing the problem.</font></span></p></span><br class="gmail-Apple-interchange-newline"><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
Some questions:<br>
<br>
Would you want to use mostly Pd abstractions or external compiled<br>
binaries for the library? Lots of<br>
trade-offs there with speed, rapid prototyping, readability, etc.<br></blockquote><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<span id="gmail-docs-internal-guid-f042cf9a-7fff-8206-01ab-cdd5e4f18344"><span style="font-family:Arial;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font color="#0b5394">I’m inclined to choose external compiled binaries, but I’m quite flexible. I guess this would be the choice of better speed, slower prototyping, and worse readability (if I understand the tradeoffs correctly). </font></span></span></blockquote><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
What should the interfaces look like? You can have signal i/o, control<br>
input with signal output, a mixture,<br>
etc. Is there a common interface that may be reused within the library?<br>
<br></blockquote><div><span id="gmail-docs-internal-guid-f6b8c27c-7fff-2738-5381-1bfb91d70825"><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="font-family:Arial;font-variant-numeric:normal;font-variant-east-asian:normal;vertical-align:baseline;white-space:pre-wrap"><font color="#0b5394">Do you mean, what would be a suitable interface through which many of the devices in mind could be adapted? I believe an approach to answer this question would be to find a generalization after emulating a couple of devices, if I understand correctly, so I don't have a concrete answer to this now.</font></span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><span style="color:rgb(11,83,148);font-family:Arial;white-space:pre-wrap">Also, I’ve used none of such vintage devices, so what would the process of emulating them be like?</span><span style="color:rgb(11,83,148);font-family:Arial;white-space:pre-wrap"> I am hoping that through their spec sheets I can get started. but are there any other resources you recommend?</span></p><p dir="ltr" style="line-height:1.38;margin-top:0pt;margin-bottom:0pt"><br></p></span></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
If you're interested in that project then hopefully that's enough to<br>
get started.<br>
<br>
Feel free to post any more questions you may have here to the list.<br>
<br>
Jonathan<br>
<br>
><br>
> Thanks<br>
><br>
> Alia<br>
><br>
> _______________________________________________<br>
> L2Ork-dev mailing list<br>
> <a href="mailto:L2Ork-dev@disis.music.vt.edu" target="_blank">L2Ork-dev@disis.music.vt.edu</a><br>
> <a href="https://disis.music.vt.edu/listinfo/l2ork-dev" rel="noreferrer" target="_blank">https://disis.music.vt.edu/listinfo/l2ork-dev</a><br>
_______________________________________________<br>
L2Ork-dev mailing list<br>
<a href="mailto:L2Ork-dev@disis.music.vt.edu" target="_blank">L2Ork-dev@disis.music.vt.edu</a><br>
<a href="https://disis.music.vt.edu/listinfo/l2ork-dev" rel="noreferrer" target="_blank">https://disis.music.vt.edu/listinfo/l2ork-dev</a></blockquote></div></div>