Skip to main content
Earlham CS/DS Portfolios

Last Program Update

Yesterday, I just changed the name of the executable file to “konductor” simply because I wanted the command to be a little more descriptive over just “main,” and all related files have also been updated to reflect the change. Unless something else happens, this will probably be my last program update for the semester. Meanwhile, … Read more

v12.8

I’ve been sick for the days I wanted to do the poster, so it’s substantially lower in quality than I wanted it to be and I haven’t submitted it for printing yet. I intend to do so before noon tomorrow. Also because of illness, I have no other progress to report. Timeline: Finish the poster … Read more

v12.6

I met with Charlie this morning. Due to feeling increasingly sick throughout the day I haven’t finished the poster as planned, but I know what needs to be added on Thursday – just a few hours of work on that day, print either that afternoon or first thing in the morning Friday.

Progress on Paper and Program

Today, I tried getting rid of the sleep function from OpenCV that watches when a key has been pressed so that the program can quit safely. This is the only sleep function left in the program that could possibly interfere with the timekeeping functions in the program, and keyboard control is not necessarily a key … Read more

Second Draft Complete

Wanted to update to make that clear. I hope that my only requirements in the final version relate to style and language: adding the appropriate academic structure, rephrasing sentences and paragraphs, maybe moving something here or there. I hope not to need additional content, though it’s possible that some section will need an extra paragraph … Read more

Work Update [12/1 – 12/4]

I have been extensively working on improving the front end of Robyn’s web interface and the Natural Language Processing aspect of Robyn. Trying to give some finishing touches to Robyn before the demo this Wednesday.

Paper Update

The paper was my project for the weekend. I had intended it to be the final version, in order to be done with it entirely before exams and other projects came due, but I will instead consider this version the second draft and submit it to that slot on Moodle. More specific status of the … Read more

Demo Video and Small Update

Before I forget, here’s the link to the video of the demo I played in my presentation. This may be updated as I continue testing the program. https://youtu.be/BOQAUUJLLyU Today’s update mainly just consisted of a style change that moved all of my variables and functions (except the main function) to a separate header file so … Read more

Progress Update

Over Thanksgiving break I have learned how to compile and modify the software for ffmpeg in Cygwin, a virtual Unix environment.  This makes the process of modifying and compiling the code easier.  Furthermore, I have been developing and working on implementing algorithms to use the conclusions from my experiment better choose how many keyframes to … Read more

Work Log[11-27 to 11-30]

I did not do much work during Thanksgiving since I was travelling a lot. However, after coming back from the break I have spent a good amount of time everyday working on my senior sem project. I have especially been working making a web interface for the python script of Robyn. Since I had not … Read more

Post-Presentation Thoughts

Today’s program update was all about moving blocks of code around so that my main function is only six lines long, while also adding dash options (-m, -f, -h) to my program as a typical command would. Looking through the XKin library for a little bit and after having done my presentation, I’ll soon try … Read more

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.