PROFESSIONAL
|
|||||||||||||
LARGE-TEAM PROJECTSBelow is a selection of products I have contributed to as an employee. They are listed in chronological order. |
Below is a list of projects I've conducted on my own or in a small team.
↑ live demo | github |
Gapless 5 (a JavaScript / HTML5 audio player): I wanted to address the problem that HTML5 Audio doesn't
support seamless transitions, while WebAudio can't play a track until fully loaded.
To work around this, I load both objects. If WebAudio hasn't fully loaded yet, I start playback with HTML5 Audio. Then I cross-fade to WebAudio once it's loaded. Several others have contributed to this project on GitHub over the years. |
![]() |
Daily Fuzzy: A mobile app that collects adorable animal pictures using Reddit's API. I created this for
my partner, who thought it should be put on the App Store. Now available for both iOS and Android
devices.
Update: I've made the code open-source. Here is the source for iOS and the source for Android. |
![]() |
get_cover_art (a Python package / commandline tool): I got tired of manually setting cover artwork for
my music library, so I wrote this batch downloader / embedder in Python. It requires no manual intervention
and is more reliable than Apple's "Get Album Artwork" feature (even though it uses Apple Music's catalog of
standardized high-quality artwork).
Clicking the album cover takes you to the PyPI project page, but you can also visit the GitHub page. |
![]() |
Mobile Fusion Tables (a Code for America project): I worked on this with a small team at Code for
America's local
(SF) brigade. This project takes existing work for searchable Fusion Table maps and makes it mobile-friendly
and easily customizable.
Several web sites are already using our template. Clicking the icon takes you to several demos using national and local data, and you can also create your own demo here. |
![]() |
gallery_get (a Python package / commandline tool): I got tired of galleries that redirect their image
links, so I wrote this gallery downloader that crawls the redirects. It has plugins for different sites.
Clicking the icon takes you to the PyPI project page, but you can also visit the GitHub page. |
![]() |
Doblet (now Dash Plus): A network of portable chargers for your smartphone- you could borrow such
devices at libraries, bars, co-working spaces, and other venues in the San Francisco Bay Area. I started out
as the iOS developer for this seed-round company team, and later coordinated engineering dependencies between
Android/iOS clients and the Rails backend. Click the icon to see a demo video of Doblet's integration with
Uber.
Update: Doblet was acquired and rebranded as Dash Plus. |
![]() |
DemandVille: A Rails application to help small businesses decide what products and features to build,
based on customer feedback and pre-orders. Gregor Hanuschak and I worked together on this project, where he
drove
the business side and I was responsible for the tech.
In the end we didn't find a product-market fit, but I gained the perspective of co-founding a business, pitching to investors and recruiting talent. Click the icon to see a demo of how our site worked. |
Below is a list of designs and websites I've created.
![]() |
The Alchemist's Guide to Alcoholic Beverages is a mapping of alcoholic beverages along the four
classical elements of fire, earth, water, and air.
Update: Taschen just published my graphic as part of their new book: Food & Drink Infographics! Order the book here. |
![]() |
Cookbook For Nerds: I envisioned and developed a diagram-based cookbook with the help of my sister.
It's currently available on Kindle, Scribd, and Google Play, and I've begun to reach out to publishers in the
hopes of getting it into retail stores.
Update: Taschen just published our banana bread recipe as part of their new book: Food & Drink Infographics! Order the book here. |
![]() |
The Dark Side of the Bay: The BART (subway) map of the SF bay area already looks like the diffracted light beam from a certain album cover... so here is my take on it. It's available as a T-shirt or poster from two stores: Society 6 and Threadless. |
![]() |
THE402: An interactive randomized "album", created as a collaboration between myself and two German industrial musicians. I implemented the site and utilized my Gapless 5 player featured above. The code for the site itself is open source and hosted here. |
![]() |
Zen Finger Painting: A band website that takes you to a listening page for the latest album. On certain
browsers it uses my Gapless 5 player
featured above.
Note: I intentionally obfuscated the site's JavaScript (separate from my player's JavaScript) to guard against web bots downloading our album. I may have had too much fun with this. :) |
![]() |
This site (how meta is that): It queries public Google Drive spreadsheets to populate the record collection catalog on my personal page, but everything else is static. I've periodically maintained it since around 2001, updating its conventions over the years to comply with changing browsers and requirements. |
Below is a selection of audio research projects I have conducted or been involved in.
![]() |
Gamelan Sequencer: I found that western scores and MIDI files aren't well-suited for composing and playing pieces for a gamelan ensemble. So I decided to write my own format inspired by the kepatihan cipher system, as well as a corresponding sequencer script in Python. When provided with instrument samples, the script turns a score into a recording. I was fortunate to find online samples of the UC Davis Gamelan Ensemble, recorded for ketuk-ketik.com by Elisa Hough, and with permission I'm using said samples to seed this system. Click on the kantilan to the left to visit the repository, or scroll below to hear a piece Itranscribed with it. |
![]() |
HRTF Calibrator (patent pending): I wrote a calibration program that formulates head related transfer functions (HRTFs) for individuals without the need to have their ears measured, modeled or miked. It works on the same concept as an eye exam: the subject listens to pairs of stimuli that are spatialized using slightly different HRTFs and decides which one of each pair sounds better-spatialized. When the calibration program is completed, my program creates an .hrtf file containing data based on the calibration results. The subject can then use my program to hear 3D demos or spatialize his/her own audio samples. Click on the headphones to the left for more information and downloads. |
![]() |
Audio Codec: I wrote an audio codec in C with two other people. The encoder and decoder files are executable from a Linux terminal and the user can specify the bitrate, blocksize, alpha (mask addition coefficient), and choose from the following masking functions: Two-slope, Schroeder, Model 1, Model 2 or Terhardt. In addition, I formulated our own criterion for differentiating between tone maskers and noise maskers. Click on the cowbell to the left to read the documentation. Click on the Schubert song samples below to hear the sound quality of the encoded audio: |
![]() |
Phase Perception Model: During the first two quarters at Stanford I worked with Professor Malcolm Slaney and colleague Hiroko Terasawa on comparing experimental results of phase perception with Prof. Slaney's MATLAB perception model. To avoid repeating myself, I've linked my documentation to the image of the ear on the left. Also, here is the slide show from our March 24, 2004 presentation at the pre-CoSyNe workshop on Auditory Processing of Vocalizations and other Complex Sounds at the Cold Spring Harbor Laboratory, New York. |
![]() |
Foosball Live! Along with Wai Kit Leung and Ariege Misherghi, I modified a foosball table to create chance music and realistic crowd reaction based on game play, accompanied by announcer sound bites for scored goals and victory music cued at the end of each game. We labelled each pole with black-and-white stripes and affixed an optical sensor to detect pole motion, and we attached piezo disc (microphone) sensors to each goal casing to detect scored goals. The sensors are wired to an AVRmini chip that runs a small C program which I coded to find the rate of motion of each pole and send the values via OSC to a patch in Pure Data (multi-platform version of Max/MSP). I wrote the patch to select instruments based on the score of each team and sample them at a rate proportional to the motion of the corresponding pole. We also used a third-party patch for the crowd reaction (written by Paul Leonard, distributed by GamaSutra.com, found here). Click on the thumbnail for documentation and video clips of live game play. |
![]() |
Pee-Wee's Pencil Sharpener is a rotary pencil sharpener that I wired to act as a talking Jack-in-the-box. It sings the verse melody to "Pop Goes the Weasel" according to the speed in which the crank is turned. When the crank causes the pencil brace to retract, the verse melody jumps to the refrain with a Pee-Wee-Herman-style laugh. I attached a bend sensor to the pencil brace to indicate when the handle is retracted. Then I inserted a mechanical rotary encoder to the inside of the crank to detect its rotation. A short C program in the AVRmini calculates crank speed and sets a flag when the bend sensor crosses a threshold. These values are sent via OSC to a Pure Data patch that samples the verse based on the crank rotation and interrupts with the refrain when the flag is triggered. Click on the thumbnail to see a video clip (.avi file). |
![]() |
Jegogan Synth: Inspired by the unique tuning system of the Balinese gamelan, I coded a patch in
Pure Data that samples a Jegogan pair based on MIDI input. The Jegogan is played with a single mallet, while
the free hand manually mutes the otherwise undamped bars. In order to make the keyboard 'feel' like a Jegogan,
I had the black keys sound each note (Jegogans have 5 notes to an octave) while the white keys mute the notes.
Note that the Jegogan sample can be replaced by another instrument to achieve the same effect. Users control
the following parameters of the tuning system (click on the left screenshot for more information, click here to obtain the patch):
|
![]() |
Mozart's Eine Kleine Nachtmusik: Behind the Editions was my senior thesis for MIT's music program. This musicology paper investigates discrepancies between the editions of this piece, particularly regarding the treatment of staccato markings. It features tables that compare markings between the autograph and later editions. |
_
PRODUCTION WORKBelow is a list of audio projects I have produced. @ home (studio albums): |
|
|
See music page for selected tracks. |
@ MIT Media Lab: |
|
|
Joshua Bell - Paganini's Caprice No. 24 (live using Hyperviolin techniques) |
@ HUSEAC (Harvard): |
|
|
Song of Penance (excerpt) |
@ The Knoll, CCRMA (Stanford): |
|
|
Some Day My Prince Will Come (excerpt) |
|
See music page for selected tracks. |
|
"Elephant Dreams" is on the Stanford Soundtrack, Vol. 4 CD. |
@ home (other production): |
|
|
Click here for details and MP3's. |
|
Click here to hear my 80s mixes, and here for the electronica mix. |
|
Visit my YouTube channel to hear my restorations. |
_ COMPOSITIONSBelow is a sample of electronic and traditional compositions I have made. |
|
Play MP3 | Invention in D minor is a piece I composed for Peter Child's Writing in Tonal Forms class. It follows Bach's style of inventions for the harpsichord, and the recording is of a performance by Mark Kroll. |
Javanese version TS-10 version |
Kotekan Sonatina is a piece I composed for Evan Ziporyn's Music of Indonesia
class. The form of the piece is based on sonata form, and the counterpoint is based on Balinese Kotekan, which
consists of interlocking patterns between parts. A more detailed description can be found here.
|
Play MP3 | Screwdrivabilitation is the name of a piece I created for Tod Machover's Projects in Media class, using distortion from a 4-track tape recorder and synthesized AM and FM waves via Max/MSP. It's about our persistent fascination with analog in spite of the takeover of digital technology. At the start of the piece, the analog signals display their ability to fluidly change their timbres but have trouble lining up rhythmically with other signals. The digital signals boast about their precision, but lack in fluid analog effects. As the piece progresses, the digital signals gain analog control, and the analog signals line up. It looks as though the two signals will mutually benefit from each other, but soon the digital signals fade out from exhaustion of trying too hard to sound analog. Analog wins and follows through to end the piece. |
Play MP3 |
Thank You for Riding the T is something I had first conceived as a musique concrete piece for Evan
Ziporyn's class in computer music. I had recorded water sounds and organized them to mimic a long recording of
a subway train arriving and departing. After taking the class, I incorporated convolution and an excerpt from
my original long recording to create this piece. The three convolutions were done with samples from (1) a
water sample, (2) the original recording, and (3) Screwdrivabilitation (the aforementioned composition).
This piece begins with an already-underway altercation between the water samples and convolutions, which are fighting for control. The fight escalates until the train arrives, which silences everyone in awe (and in mono). The other versions, enlightened of their common ancestry, call out to the departing train in gratitude. This all happens in 1 minute and 59 seconds. |
Documentation Play MP3 |
Blasphemous Bosphorous is a piece I programmed using LISP (and making use of CM and CLM libraries). I used samples of the Darbuka, a drum used in traditional Turkish music. I also used a string model to synthesize a Saz-like electronic instrument. A Saz is a traditional Turkish stringed instrument with 16 frets to an octave. The non-western tuning of the instrument led me to use the Rast scale for executing notes on the electronic instrument. Refer to the documentation for more details and code. |
All tracks copyright © 1999-2019 Regaip Sen
To read and hear examples of my extracurricular involvement in music, please visit my main music page.