Skip to main content
Earlham CS/DS Portfolios

v11.30

Notes post-presentation, including a few features I need to complete the base version of the code: Ran long but that’s fine. Need the URL’s input by the author to be written to file Need to choose start URL’s from a file Need to produce a randomized-choice start URL for the user (Database may add overhead, … Read more

v11.29

I am shortly going to complete the presentation for this class and a quiz for another, but I made massive progress today. It is not perfect but it has enough functionality for a demo tomorrow (though because it’s not perfect I’ll spend some time tomorrow afternoon practicing). What it can do: works as a developer … Read more

Before Testing

I forgot that I also needed to compose an actual orchestral piece to demo my program with, so that’s what I did for the entire evening. I didn’t actually compose an original piece, but rather just took Beethoven’s Ode to Joy and adapted it for a woodwind quintet (since I don’t have time to compose … Read more

v11.28

I solved multiple issues just by walking through this diagram … … and it’s not even complete, I suspect. Subject to examination tomorrow morning. Progress relative to what I anticipated: basically good. Details: I process text from forms and can populate and reset those forms. I can open URL’s and produce timestamps (and therefore time … Read more

v11.27

Thanksgiving is over. I exercised my prerogative to take a break and did no work in the last week. I also chose to give my final presentation this week, so I have a firm timetable that prioritizes this project (both code and paper) for the next week. To wit: Sunday, 11/27: Implement the basic JavaScript functions … Read more

Core Program Complete!

Yesterday was a pretty big day as I was able to implement FluidSynth’s sequencer with fewer lines of code than I originally thought I needed. While the program is still not completely perfect, I was able to take the average number of clock ticks per beat and use that to schedule MIDI note messages that … Read more

Learning to Schedule MIDI Events

The past few days have been pretty uneventful, since I’m still feeling sick and I had to work on another paper for another class, but I am still reading through the FluidSynth API and figuring out how scheduling MIDI events work. FluidSynth also seems to have its own method of counting time through ticks, so … Read more

Configuring JACK and Other Instruments

Today, I found out how to automatically connect the FluidSynth audio output to the computer’s audio device input without having to manually make the connection in QjackCtl every time I run the program, and how to map each instrument to a specific channel. The FluidSynth API uses the “fluid_settings_setint” and “fluid_synth_program_select” functions, respectively, for such … Read more

Another Feature To Add

Yesterday, I changed the velocity value of every offbeat to make them the same as the previous onbeat since the acceleration at each offbeat tends to be much smaller and the offbeat notes would be much quieter than desired. This change, however, also made me realize that my current method of counting beats may be … Read more

Late Minor Update

Yesterday, I only had time to make relatively small changes to my program, but I did write more of the readme in more detail explaining how to use the program. Even more will be explained as I finish developing my program. Also, I figured out that the reason for the bad points showing up so … Read more

Getting FluidSynth Working

In a shorter amount of time that I thought, I was not only able to add FluidSynth to my program, but also able to get working MIDI audio output from my short CSV files, although I had to configure JACK in such a way that all of the necessary parts are connected as well. For … Read more

v11.15

I am spending today (Tuesday) writing the paper. I have now written all section and subsection headers that I need into it and started incorporating useful bits of the proposal as a baseline. In an effort to produce a working version of the software, the following are my goals for the rest of the day: … Read more

v11.13

I did a little more reading this weekend. Tomorrow (Monday) I’m occupied with meetings and classes, but I’m dedicating all day Tuesday to concluding my readings, completing the first draft, and (I hope) finishing iteration zero of the software. Because of recent disruptions I am not keeping pace with my imagined progress from a few … Read more

Daily Work Update [11-13]

I have been working quite a bit on my program. I set up what I think will be my primary database for info related to diseases. I have also been updating my github to reflect the updated state of my code. I ran into issues where the sql script I was using was based of … Read more

Minor Improvements

I briefly removed the timestamps from my program, but I didn’t notice any change in performance any more, so I just left them in the program as before. I also made my program a little more interesting by playing random notes instead of looping through a sequence of notes, and changed the beat counter to … Read more

More Experimentation

The past few days have been really rough on me, as I attended the Techpoint Xtern Finalist reception all day yesterday, all while being sick with a sore throat and cold from the freezing weather recently. On a positive note, I used my spare time to continue writing my rough draft, so there wasn’t too … Read more

v11.10

I didn’t accomplish anything the first few days of the week. Today I want to read some more sources and finalize the paper topic. I may start incorporating the survey paper into the draft, so I can start building up the page count.

Daily Work Update [11-9]

I have been working on my bot. I decided to name my bot Robyn. I also created a repo in my github (github.com/arai13) for Robyn and have started taking snapshots on a regular basis.

Tempo Tracking and More Searching

Yesterday, as suggested by Forrest, I added the ability to calculate the current tempo of the music in BPM based on the amount of time in between the last two detected beats. It doesn’t attempt to ignore any false positive readings, and it doesn’t take into account the time taken up by the sleep function, … Read more

Update 11/7/16

I spent Monday running more tests with ffmpeg to get better data.  I am now forcing a specific number of prediction frames over a regular interval.

Daily work log 11/8/16

Today I open up the extension cord to see what I was going to be working with. I expected two solid pieces of copper instead, I found many very skinny pieces.  Will need to consult with kyle about how to go about working from this point on.

Daily Work Log [11-7] and Design

So after playing around and exploring for a bit, I have finally chosen my final set of tools for the project. I will be using Python, AIML, SQLite with Py3kAIML and sqlite3 libraries. I was able to finish the plumbing and now have a very basic bot that can listen to the user, fetch data … Read more

Fun with PortAudio and Next Steps

Today, I added the ability to change the volume of the sound based on the acceleration value, or how quickly the hand is moved, as well as change the frequency of the sound and thus change the note being played using a simple beat counter. I also noticed that the beat detection works almost flawlessly … Read more

November 2 – November 7 Weekly Update

November 2 – November 4 Since I figured that understanding Android development would take more time than I expected, I decided to speed up the development process by using Cordova as my development platform. I installed Cordova on my computer and started integrating the Wikitude API into it. November 5 – November 6 I took … Read more

v11.7

Nothing new from this weekend. Today I’m considering the IO of the URL’s for the software and, if that goes well, writing the code to create the visual interface. I’ll outline the paper and gather final reading material tomorrow. At the end of the day tomorrow I’ll post a comprehensive update.

Audio Implementation

I added the PortAudio functions necessary to enable simple playback as well as revised my beat detection algorithm to watch for both velocity and acceleration. My first impressions of the application so far is that the latency from gesture to sound is pretty good, but I noticed that the program freezes while the sound is … Read more

Current Design and Next Steps

Here’s the current version of the flow chart of my program design, although it will surely be revised as the program is revised. I’ve also been thinking about how exactly the tracking of velocity and acceleration is going to work. At a bare minimum, I believe what we specifically want to detect is when the … Read more

v11.04

For the last couple of days I’ve been walking through a simple Chrome extension, HexTab, the source code of which is open and published on GitHub. The functionality is nothing like mine, but it has the virtues of … being simple and open-source relying on just a few JavaScript/HTML/CSS files and therefore being easily adaptable … Read more

Work log 10/29/16-11/4/16

I have spent the last week split up between 3 different tasks: Starting to chart the twitter ER diagram, following the O’Reilly Social Media Mining book to continue to learn about harvesting through APIs, and reopening my database systems textbook to remind myself how views work. After speaking with Charlie last week, we discussed the … Read more

Daily work log 11/2/16

Went to home depot and found a very help person who was knowledgeable in electronics.  I have decided to use an extension cord as the backbone of my non-invasive device.  I will plug both the power source of the Arduino and the washing machine into the extension cord, then open up the extension cord to … Read more

Quick Update

Small update today since I have other assignments I need to finish. I implemented a simple modified queue that stores the last few recorded positions of the hand in order to quickly calculate acceleration. I also learned a bit more about the OpenCV drawing functions and was able to replace drawing my hand itself on … Read more

v11.02

Presentation went well today. No project updates, except that I’ve decided that I hope to complete a working software version by the end of November so I can focus on the paper during December. (This will not interfere with completing the first draft by class in two weeks.)

Update 11/2/16

I have placed some of my early data in various spreadsheets.  I am continuing the process of collecting data, and am ready to use my the information I have so far and observations I have made to start the first draft of my paper.

Update 10/30/16

I have been gathering more data to find the optimal number of keyframes for various types of videos.  The videos with larger file sizes take a long time to compress.

Daily work log 11/1/16

Couldn’t get OpenCV to install properly on my laptop so I asked the CS admins to create a cluster account for me. By sshing to the cluster I will be able to use OpenCV. Tomorrow I expect to get the facedetect sample to compile and run. From there I can start working on implementing the … Read more

Compiling the Program

After a good amount of online searching and experimentation, I finally got my Makefile to compile a working program. There is no audio output for my main program yet, but I am going to try out a different beat detection implementation that bypasses the clunky gesture recognition (namely tracking the position of the hand and … Read more

Daily Work Log 10/31/16

Just wrapping the wires around the cord, doesn’t work, neither does attaching the wires to the prongs of the plug.  I am thinking about going to an electrician or home depot to find someone who knows where to measure the voltage

Daily Work Log 10/27/16

work on voltage monitoring, found 2 ways to determine voltage, the first measures 0-5V, the second measures higher voltages using voltage dividers and multiple resistors.

Testing PortAudio

I don’t know what took me so long to do it, but I finally installed PortAudio so that I can actually use it in my prototype program. To make sure it works, I ran one of the example programs, “paex_sine”, which plays a sine wave for five seconds, and got the following output: esly14@mc-1:~/Documents/git/edward1617/portaudio/bin$ ./paex_sine … Read more

Halloween Update

Accomplished since 10/28 post: Completed the IRB form, pending approval by Charlie (most likely it will need revised but could be submitted by class on Wednesday) Drew a design of the minimal version of the program, more comprehensive design pending Next to work on: Augment the minimal design by class on Wednesday Produce the presentation for … Read more

Update 10/28/16

Currently still trying to compile the OpenCV facedetect.cpp file from the samples directory. I keep getting an error saying it cannot locate the libraries in the OpenCV.pc file. I am trying to get this resolved as soon as possible so I can use that program and begin working on the emotion detection portion of the … Read more

Kinect v1 Setup

The new (or should I say, old) Kinect finally arrived today, and plugging it into one of the USB 2.0 ports gives me the following USB devices: Bus 001 Device 008: ID 045e:02bf Microsoft Corp. Bus 001 Device 038: ID 045e:02be Microsoft Corp. Bus 001 Device 005: ID 045e:02c2 Microsoft Corp. . . . which … Read more

Work Log 10/19/2016-10/27/16

I spent this week charting out ER diagrams for a Facebook database schema. A lot of this work involved converting DDL statements I found online into a class diagram, and understanding how the classes related to each other. I am now at a point where I understand the entities and their relationships, and the next … Read more

v10.28

Catching up after traveling last week, I focused mostly on procedural bits for the project: opening an Overleaf project for the paper and getting the formatting/section headers right, researching Chrome extensions, and drawing some diagrams (about which more later). I will focus on building up the paper for the next week. I also need to … Read more

Update 10/27/16

I have begun work on testing how long it takes ffmpeg to compress certain files, and how effectively it compresses files at certain key frame sizes. I have also been working on compiling the program’s source code so I can work on modifications, but I haven’t yet succeeded at that.

Chapel IO module

Currently working on tagging the individual data fields in each message entry, and saving the newly tagged tweets to a new directory.

Program Design and Progress

While I am waiting for the Kinect to arrive in the mail, hopefully by tomorrow, I have been planning out the structure of my program and what exactly it is going to do. More will be added and revised as the gestures and musical output get more complex, but the foundation and the basic idea … Read more

Update 10/26/16

After further researching open-source projects and tools that are available to me, I have decided that I will instead focus on ffmpeg.  It is similar to Xvid in the sense that it is an open-source project that provides codecs for compressing and decompression data, but it has better documentation and seems easier to work with. … Read more

Work Progress For This week

I played around with Wikitude and Vuforia SDKs and tested the sample examples that they gave. The next step would be testing how well each platform can recognize the target image. I have talked with Xunfei about how I should test these on certain scenarios like when there are multiple recognizable objects are in the view … Read more

Building a Chrome Extension

Never done it before, but Google’s guide here is a good start. I was traveling late last week with some Physics research students, so my accomplishments for this project this time around are sparser than in the past. I’ll sit down tomorrow or Thursday to sketch out a design on whiteboard for how the process should … Read more

Setup Complications Part 2

Thanks to Charlie, I added a 2-slot PCI Express USB 3.0 Card into the PC, and now instead of these devices from the Kinect: Bus 001 Device 006: ID 045e:02c4 Microsoft Corp. Bus 001 Device 003: ID 045e:02d9 Microsoft Corp. I get these: Bus 004 Device 003: ID 045e:02c4 Microsoft Corp. Bus 004 Device 002: … Read more

Setup Complications

My biggest fear for this project is being able to setup the hardware and software libraries in such a way that they would be able to work together. In terms of installing the libraries, I ran into a few complications that I had to manually fix myself, but thankfully, there weren’t any major issues I … Read more

Timeline & Design

This is my estimated timeline for this semester.

Timeline

I have also included my literature review and project proposal too.

Literature review – LiteratureReview_SawYan

Project Proposal – Proposal_SawYan

 

The following is the design flowchart for EARL: mobile app for better campus experiences. Input information will come from GPS, Text and markers when the device recognize them and it will be fed into the device for tracking. Then the device will look for the relevant virtual overlay for that object in the database. For finding the correct one, the application will render the virtual information and show it on the screen as an output.

Draft Design

Project Proposal

presentation-3 project-proposal I have completed my project proposal and powerpoint.  Below is the timeline I have constructed for my project. October 21: Be familiarized with the Xvid codec, how it works, and how to make simple modifications to it to change compression. November 6: Have unique, decently working, personal compression algorithm. At this point I … Read more

Progress Update as of 10/19/16

I’ve obtained an Arduino uno board and have been working and messing around with the sensors given to me. Also, I have obtained a Watts up meter and have watched and measured the voltage used during different cycles and different machines.  I have arrived at the conclusion that any Voltage over 100V indicates that a … Read more

Project Design and Proposal

The current version of the proposal, which includes my revised thoughts from the survey paper as well as the design and timeline of the project: Proposal.pdf Presentation-3.pdf Deadlines: October 26: Develop a preliminary test build for the application by learning a simple gesture and controlling the playback of a sawtooth wave. November 2: Add more … Read more

Project Design

First, the documents. Presentation Proposal The proposal outlines some research on HCI, in addition to a proposed browser extension (Chrome) to facilitate easier interface comparison tests on the scale of academic and independent developers. I will complete an IRB form and a (visual) sketch of the software logic for upload by the time of the … Read more

current approach: GeoBurst method

The GeoBurst algorithm detects local news events by looking for spatiotemporal ‘bursts’ of activity. This cluster analysis uses methods which look at geo-tag clusters of phrases. Phrase network analysis has been able to historically link user clouds, however the use of GPS in mobile devices has led many users of social media to indicate their … Read more

Gitlab

We use a self-hosted gitlab page for the Applied Groups and other internal CS work. All seniors have an account, which they can access through gitlab.cluster.earlham.edu upon receiving an email with your password. If you haven’t worked with git, it’s good to learn now. Version control through git is ubiquitous in software development, so knowing … Read more

Next Steps

I’ve been trying to figure out which libraries and frameworks are best for developing my Kinect application on Linux, and without testing any of the libraries I’ve found for compatibility so far, the search has been really difficult. This paper provides one possible setup, using: openFrameworks for essential libraries such as OpenGL, a choice number … Read more

Break Update

I spent some time over break reading The Design of Everyday Things, the first work of popular literature on user design I’ve read for this project. I’m about a third of the way through – it’s a quick and illuminating read – and I’ll finish the relevant sections soon. Some of his insights will certainly … Read more

Literature Review

Couple of things: The paper: craig_literature_review The presentation: craig_presentation As noted in my update of the annotated bibliography post, I had cited one paper incorrectly there. This mistake was corrected and has not been repeated in the literature review.

Road Map

First, the annotated bibliography, the preliminary version submitted two days ago: craig_annotated_bibliography. Second, I want to outline my general plan here. After a meeting with Charlie this week and carefully reading some of the more fundamental papers for the topic, I have greater clarity about the project. My general plan, subject to – potentially major – modification as the … Read more

Annotated Bibliography

Annotated Bibliography Surveys various methods for gesture recognition and audio processing for the purpose of playing music through physical motion.