<div dir="ltr"><div dir="ltr"></div>finally it worked :), and made sound too!<div><br><div>This is a first draft of my proposal, I would appreciate comments and tips. Also, I've opened the ability to comment to everyone.</div><div><a href="https://docs.google.com/document/d/12RVFkiOj4gr8HYv7k2dGDlYY-io5y8r4EeGcMYnKI48/edit?usp=sharing" target="_blank">https://docs.google.com/document/d/12RVFkiOj4gr8HYv7k2dGDlYY-io5y8r4EeGcMYnKI48/edit?usp=sharing</a><br></div><div><br></div><div>Looking forward for your response/s</div><div><br></div><div><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Mar 19, 2020 at 2:36 AM Jonathan Wilkes <<a href="mailto:jon.w.wilkes@gmail.com" target="_blank">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 18, 2020 at 6:23 PM Alia Morsi <<a href="mailto:morsi.alia@gmail.com" target="_blank">morsi.alia@gmail.com</a>> wrote:<br>
><br>
> Hello! my comments and questions are inline to your past email.<br>
><br>
> On Wed, Mar 4, 2020 at 4:31 PM Jonathan Wilkes <<a href="mailto:jon.w.wilkes@gmail.com" target="_blank">jon.w.wilkes@gmail.com</a>> wrote:<br>
>><br>
>> 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>
><br>
><br>
> Done :)<br>
>><br>
>><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>
><br>
><br>
> 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)<br>
><br>
><br>
> 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.<br>
><br>
> 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.<br>
<br>
I'd advise throwing out the Makefile for now and compiling straight from gcc:<br>
<br>
* you want to compile it as a shared library<br>
* compile it to have position independent code (for example, on<br>
aarch64 it won't load correctly if you don't do that)<br>
* make sure there are no errors or even warnings<br>
<br>
Now, when you try to test it do two things:<br>
<br>
1. Run Purr Data with -verbose flag: `pd-l2ork -verbose`<br>
2. After Purr Data starts up, click "Clear Console" in the "Edit" menu<br>
of the main Pd window. (There's a handy little shortcut for it, too.)<br>
3. Now that your Pd window is clear go ahead and try to create "atari_2600~".<br>
<br>
If it ends up broken, check the Pd window for external loading errors.<br>
<br>
><br>
><br>
><br>
>><br>
>> 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>
><br>
><br>
>><br>
>> 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).<br>
<br>
<br>
<br>
Abstractions are more accessible-- that is, one can read them and<br>
potentially change/fix them and they'll run on every platform without<br>
recompile.<br>
<br>
But for this kind of project there will be an enormous speed advantage<br>
writing it in C.<br>
<br>
<br>
><br>
><br>
>><br>
>> 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>
> 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.<br>
<br>
<br>
I mean the interface consisting of inlets, outlets, and the class methods.<br>
<br>
<br>
><br>
> Also, I’ve used none of such vintage devices, so what would the process of emulating them be like? I am hoping that through their spec sheets I can get started. but are there any other resources you recommend?<br>
<br>
<br>
There are pretty active forums for emulating vintage audio chips and<br>
instruments. I would definitely check those to see what<br>
the prior art looks like.<br>
<br>
-Jonathan<br>
<br>
><br>
><br>
>> 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><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></div></div>