VTechWorks staff will be away for the winter holidays starting Tuesday, December 24, 2024, through Wednesday, January 1, 2025, and will not be replying to requests during this time. Thank you for your patience, and happy holidays!
 

Pd-L2Ork

dc.contributor.authorBowman, Douglas A. Jr.en
dc.contributor.authorKhochareun, Lilyen
dc.contributor.authorSprings, Ethanen
dc.contributor.authorFarzanehpour, Saharen
dc.date.accessioned2023-05-11T02:16:39Zen
dc.date.available2023-05-11T02:16:39Zen
dc.date.issued2023-05-10en
dc.description.abstractOver the past several years Professor Ico Bukvic has been developing his own extension to the visual programming language of Pd, called Pd-L2Ork. This software was designed to take the functionality of Pd, a computer music programming software system, and apply it to Virginia Tech's Linux Laptop Orchestra, or L2Ork. Since 2010, it has been used extensively in education, research, and production. Another product of this research is the K12 mode that Pd-L2Ork has more recently introduced with the help of a prior CS Capstone Team. K12 mode is targeted specifically at beginners, to introduce sound programming and design, as well as for elementary to high-school students. Our team's job was to expand on this existing software in two distinct ways. The first way we expanded the software's functionality is through the implementation of object tooltips. Since Pd-L2Ork is a visual programming environment, the objects you create in it take up physical space and can be hovered over. Each object (or patch) has a series of inlets and outlets that can be used to pass data into an object and receive output from an object, respectively. Each of these inlets and outlets require specific types of data to be passed into them for different uses. You might call the values passed into inlets parameters to a function/method. Consequently, you might call the values received through the outlets of an object the return value of a function/method. The way that the programmer identifies what needs to be passed into each inlet and what is received through each outlet is through tooltips. Hover over one of these inlets/outlets to view the object's tooltips, which describes the type of data the inlet needs and what the data should describe. Our team's task was to take the descriptions of each object's parameter(s) and return value(s) from the object's documentation and create tooltips for each object in every patch. This task was composed of two parts: tooltips for an object itself and tooltips for inlets and outlets of every object. In order to accomplish the first part, we take the description of the object out of the index and attach it as a title tag to the particular object. For the second part, we needed to parse in the information of the inlets and the outlets of the objects from the index and also attach it as a title tag to the particular inlet or outlet. The deliverable for this task was a merge-able code branch with code to enable this feature, which we gave our client access to. The other task of our team was to integrate a button that moves a Pd-L2Ork patch onto a web browser. This first involves compiling the original Pd-L2Ork code (written in C) to Web Assembly through a tool called Emscripten. This took up the majority of our time because of the large code base and many errors found by the Emscripten compiler that needed to be corrected. Once we edited the code base to make it Emscripten compatible and compiled it, we included the generated JavaScript file in our front-end code and linked the audio back-end to the front-end on the browser. This was a difficult task, but our team gained valuable insight from similar examples in PdWebParty and Purr-Data. In order to accomplish this task, we performed the necessary research to begin implementation, solved problems through file comparison and classic debugging strategies, and we asked Dr. Bukvic for help promptly when we needed it. The deliverable for this task was a button that could gather up all necessary files to display a patch current in Pd-L2Ork onto a web browser. We did not complete the work needed for this deliverable, but have provided documentation (in the sections for the Developer's Manual and on Future Work) regarding what has been done by the team, and what can be done by future teams to reach this deliverable.en
dc.description.notesPD-L2OrkReport.pdf PDF version of final report PD-L2OrkReport.zip Overleaf project download of LaTex of final report PD-L2OrkPresentation.pptx PowerPoint version of final presentation PD-L2OrkPresentation.pdf PDF version of final presentationen
dc.identifier.urihttp://hdl.handle.net/10919/115010en
dc.language.isoen_USen
dc.publisherVirginia Techen
dc.rightsCC0 1.0 Universalen
dc.rights.urihttp://creativecommons.org/publicdomain/zero/1.0/en
dc.subjectPd-L2Orken
dc.subjectComputer Musicen
dc.subjectTooltipsen
dc.subjectEmscriptenen
dc.titlePd-L2Orken
dc.typePresentationen
dc.typeReporten

Files

Original bundle
Now showing 1 - 4 of 4
Loading...
Thumbnail Image
Name:
PD-L2OrkPresentation.pdf
Size:
3.88 MB
Format:
Adobe Portable Document Format
Name:
PD-L2OrkPresentation.pptx
Size:
11.5 MB
Format:
Microsoft Powerpoint XML
Name:
Pd-L2OrkReport.zip
Size:
16.59 MB
Format:
Loading...
Thumbnail Image
Name:
Pd_L2OrkReport.pdf
Size:
13.91 MB
Format:
Adobe Portable Document Format
License bundle
Now showing 1 - 1 of 1
Name:
license.txt
Size:
1.5 KB
Format:
Item-specific license agreed upon to submission
Description: