Below is a selection of products I have contributed to as an employee. They are listed in chronological order.

Mafia 3 Mafia 3 by Hangar 13 (2K Games):   As their audio engineer, my first responsibility was to integrate Wwise from scratch for Hanger 13's propietary game engine. I stayed onboard to support audio tech needs for Mafia 3 and related downloadable content, which we shipped on PC, XboxOne, and PS4.
Star Wars: 1313 on Star Wars: 1313 and Star Wars: First Assault by LucasArts:   I continued my role as audio engineer for these games, and we continued to use Wwise as the audio engine. I also took over database development for the dialogue system. Unfortunately, our studio closed before either game was released.
Star Wars: The Force Unleashed on Star Wars: The Force Unleashed 2 by LucasArts:   I continued with my audio and build roles for this game, which continues the story of The Force Unleashed. While we had used our own in-house audio engine on the first game, for the sequel we integrated Wwise (Audiokinetic's commercial sound engine). Like the first game, we shipped this on PC, Xbox360 and PS3.
Star Wars: The Force Unleashed on Star Wars: The Force Unleashed by LucasArts:   I was part of the audio development team behind this game, as well as the build master. Not only does it comprise the next chapter in the Star Wars story (it takes place between Episodes III and IV), it also showcases a lot of new technology for the first time. Instead of using canned animation, characters and materials uniquely react to stimuli using NaturalMotion's Euphoria and Pixelux's DMM (Digital Molecular Matter) technologies, respectively. Furthermore, this is our first game that takes advantage of Zeno, the same tool used by Industrial Light and Magic.
System 5-MC on System-5 MC by Euphonix (now Avid):   I was part of the software development team behind the first products that featured EuCon, in particular the MC Controller and System-5 MC. What makes them stand out from other mixing controllers is their ability to integrate with Pro Tools, Logic Pro, Nuendo, Pyramix, Digital Performer, Final Cut Studio and more. In contrast, a mouse offers far less control at one time, a surface made for a single product won't work with other programs, and HUI provides less control than EuCon and cannot integrate with Nuendo or Pyramix.


Below is a list of projects I've conducted on my own or in a small team.

Doblet Public Site Doblet: A network of portable chargers for your smartphone- you can borrow such devices at bars, gyms, and other venues in the San Francisco Bay Area. I started out as the iOS developer for this team, and now I'm coordinating engineering dependencies between Android/iOS clients and the Rails backend. DemandVille: A Rails application to help makers decide which features to work on, based on customer feedback and pre-orders. My bandmate Gregor and I worked together on this project. Gregor has been handling the business-side of things, while I've been responsible for the tech.
Daily Fuzzy App Site Daily Fuzzy: An iOS app that collects adorable animal pictures using Reddit's API. I created this app for my wife, who thought it should be put on the App Store.
Cookbook For Nerds launch page 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.
GitHub page for Mobile Fusion Tables Mobile Fusion Tables (a Code for America project): I recently joined a 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.
GitHub page for Rezzo Rezzo (an app for Peace Corps Tanzania): At my first civic hackathon my team created a system to allow Peace Corps volunteers to collect resource data around their community and upload to a server when they have access. The end result is a map of local hospitals, natural resources, etc.

While the volunteers could take pictures with any GPS-enabled phone and upload through a website, I created an iOS map that allows them to enter the metadata offline. Clicking the icon takes you to the GitHub repository.

^-- live demo | github

Gapless 5 (a JavaScript/HTML5 audio player): With the advent of HTML5 Audio, I wanted to create a compact player that didn't depend on Flash (so that it could work on iOS devices). At the time of this writing, both HTML5 Audio and WebAudio objects have significant problems. HTML5 Audio cuts off the last chunk of audio in a track, making seamless transitions impossible. 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 seamlessly switch to WebAudio once it's loaded. page for gallery_get gallery_get (a Python 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 its page on, but you can also visit the GitHub page.


Below is a list of websites I've designed and created.

Automation Image Automation Image: I created a new website for this company. They started in telecom and have branched out to databases and consulting. The site was done in WordPress, and it was my first experience with the platform.
Zen Finger Painting 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.

DISCLAIMER: 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 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.
Sabri Sen Urology Sabri Sen Urology: A static site for my father's medical practice in the East Bay.
UCSF Reiter Lab UCSF Reiter Lab: A site for a biology laboratory at UCSF. I created this in 2008 (so it is not HTML5-compliant), and the lab members have maintained it themselves ever since.


Below is a selection of audio research projects I have conducted or been involved in.

info / demo / download 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 progam to hear 3D demos or spatialize his/her own audio samples. Click on the headphones to the left for more information and downloads.

documentation 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:
documentation 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 pereption 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.
documentation / video clips 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, found here). Click on the thumbnail for documentation and video clips of live game play.
video clip 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).
screen shots / info / sound clip 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):
  • choose between the Selsir, Tembung, Sunaren, and Slendro musical scales.
  • offset entire scale (since each Gamelan ensemble has its own starting point for scales)
  • adjust beating rate (most of these instruments are played in unison by pairs that are traditionally detuned from each other to produce between 4 and 8 beats per second when played together)
paper 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.


Below is a list of audio projects I have produced.

@ home (studio albums):
  • Food: MPA Buffet (1999)
  • Rego Sen: High School Demos (1999)
  • Rego Sen: Observer (2000)
  • Rego Sen: Decade of Novembers (2003)
  • Zen Finger Painting: Quantum Physics Girls (2009)
    (some tracks)
  • Zen Finger Painting: This Is Nerdpop (2012)
See music page for selected tracks.

@ MIT Media Lab:
  • Post-production on various recordings for Hyperinstrument press kits, including Toy Symphony concerts (2001-2003)
Joshua Bell - Paganini's Caprice No. 24 (live using Hyperviolin techniques)

@ HUSEAC (Harvard):
  • Assisted Tod Machover's "Hyperstring Trilogy" CD (2003)
Song of Penance (excerpt)

@ The Knoll, CCRMA (Stanford):
  • JSWM Quartet (2003), jazz quartet
Some Day My Prince Will Come (excerpt)
  • The Wreckage (2004), rock group
See music page for selected tracks.
  • Ambika (2004), Indian jazz fusion trio
"Elephant Dreams" is on the Stanford Soundtrack, Vol. 4 CD.

@ home (other production):
  • Stereo remixes of Beach Boys songs and albums that have been released only in mono
Click here for details and MP3's.
  • 80s pop and electronica mixes with vocal sections removed. Currently playing at Zushi Puzzle in San Francisco.
Click here to hear my 80s mixes, and here for the electronica mix.



Below 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.
Play MP3 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 in Excel format. I had recorded this before coding the jegogan synth, so I sequenced it using non-Gamelan instrument samples and western pitches selected to approximate the selsir mode. I might resequence this in the near future to take advantage of my PD patch.
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 Tren Istasyonu 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.
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.