Jun Hee Lee's Web Portfolio

Works

  • Audio/Music Projects
  • Misc. Projects
  • Performances/Compositions
  • 3D Whitney Music Box (2013)

    • Programmed by Jun Hee Lee using JavaScript and WebGL

        3D visualization of Whitney Music Box with 48 tines tuned to C major scale. Additionally, each note can be manually triggered at any time.

        Click to play (requires Google Chrome)

  • Supervised Learning for Guitar Chord Voicing Identification Aided by the Use of MIDI Pickups (2013)

    • Programmed by Jun Hee Lee using MATLAB and LIBSVM

        A new approach for multiple fundamental frequency estimation, specifically devised for guitar, via chord voicing identification is proposed. With the proposed method, the isolated guitar signal is analyzed into a constant-Q spectrum, which becomes the feature vector when shifted by each block’s lowest pitch content. Using the features and the corresponding voicing labels derived from the ground truth data, a model is trained via support vector machines (SVMs) and used to classify the voicing type of guitar signals, such that it can be converted to actual pitches when its bass note is extracted. This was made possible by the use of a reliable MIDI pickup, by which the ground truth was produced alongside the audio signal for training. For evaluation, the model was trained with the audio and MIDI recording of an hour-long performance and its misclassification rate on a ten-minute testing audio signal was about 14%.

        Click to download the paper

  • Listen to This Site (2013)

    • Directed by Hyeonah Kim
    • Programmed by Jun Hee Lee using MATLAB

        As a sound designer for Hyeonah Kim's project, I created a MATLAB program that generates a music box-like piece from picture representation of a sidewalk covered with gums, mapping each stain to a note. This particular image was transferred from a picture of the 44th street in Manhattan.

  • Harmony Police: Jazz Improvisation Evaluator (2012)

    • Programmed by Jun Hee Lee using C, C++, Cocoa, and MATLAB

        Harmony Police is a system that evaluates the theoretic harmonic validity of a pre-recorded solo chorus improvised to a jazz tune to provide helpful feedback to students. This particular version was conceived as the final project of Digital Audio Processing I class. It is a work in progress and will be improved a lot in many aspects to be practically useful at least. Notes with (V) represent that they are harmonically correct according to the jazz harmony/chord scale theory, while notes with (X) represent "wrong" notes.

        Disclaimer: Wrong notes are not necessarily bad notes. They are labeled as being wrong only for disciplinary purpose.

  • Pitch Detection of Singing Voice from Music Recordings (2012)

    • Programmed by Jun Hee Lee and Kwan Kim using MATLAB

        A singing voice separation system is a hard yet popular task in the field of music information retrieval (MIR). If successfully separated, a number of algorithms can be applied to vocal melody for any possible application. In this study, we applied a pitch estimation algorithm after separating a singing voice from background music based on the implementation of REPET [1]. Then we evaluated our algorithms on MIR- 1K dataset using different combinations of parameters and compared the results with ones found on literatures. We found out that although comparable, our implementation of music/voice separation was not as good as the ones found in [1], and the pitch estimation algorithm returned about 67% accuracy.

        [1] Z. Rafii and B. Pardo. Repeating pattern extraction technique (repet): A simple method for music/voice separation. ICASSP, 21(1), 2013.

        Original recording
        Extracted vocal part
        Pitch tracking mixed back into the original recording

        Click to download the paper

  • Conway Music (2012)

    • Programmed by Jun Hee Lee using Java and JSyn

        ConwayMusic is an expandable sonification system that generates sound from Conway's game of life with user-defined mapping algorithms. It is deployed as a web applet and available at the following link.

        Click to play

  • Drawing #1212121212 (2012)

    • Programmed by Jun Hee Lee using MATLAB

        A generative music with cascaded sinusoids corresponding to lines in a random drawing. This particular piece was created on 12/12/12 at 12:12 PM, hence the title.

  • Pic-a-Tune: Image to Modal Music Converter/Generator (2011)

    Demo clip presented at Berklee EPD Senior Showcase in 2011

    • Programmed by Jun Hee Lee using C/C++

        Pic-a-Tune by Jun Hee Lee is a software that converts a PNG image file into music. It reads an image, analyzes how we perceive and uses that information to compose a modal piece.

        This program can generate different styles of music, applying different methods of construction, by using various presets. One default and three advanced presets are provided with this version and they can be modified/expanded for further musical possibilities.

        Since its output is in realtime multi-channel MIDI messages, one needs proper external sound source to achieve the intended result. Original Logic session files set up with NI virtual instruments are part of the supplementary presets.

  • Effects Pedal Board (2010)

    • Programmed by Jun Hee Lee using Csound and QuteCsound Widgets

        This is a Csound program that emulates a simple guitar effects pedal board setup, utilizing QuteCsound widgets GUI.

        You can select one of the 3 clips to play by clicking on a button on the Playback section. Then you can turn on/bypass each of 3 effects and adjust their parameters by turing knobs. Since GUI is available, everything should be pretty straight-forward. Vintage-voiced overdrive, chorus, and delay effects are available and cabinet simulation is also integrated and on all the time.

        One nice thing about these widget knobs is MIDI CC mapping is inherently supported by QuteCsound so you can manipulate all these parameters on a MIDI control surface.

        Click to download

  • Counterpoint Generator (2010)

    • Programmed by Jun Hee Lee using Max/MSP 5

        This patch generates a random modal counterpoint. You can pick a tonic note from the keyboard and choose one of 7 modes from major scale. Set tempo and comp rate (how often the chords will be played) and you are good to go.

        There are 4 channels, 2 random modal melodies, a random 3-note chords, and a bass drone playing a whole note every measure. You can turn on/off each channel or adjust their mix volume at the mixer section. To fine-tune the colors of melody 1 and 2, you can choose from 7 random algorithms from max itself and litter library. Try different presets and see how each parameter is set.

        Also, you can route the output from this program externally. Open extmixer.rns in Reason (4 or higher) and set the output to "from MaxMSP 1". 4 midi channels will be routed into Reason and you will hear a totally different sound with higher quality.

        Click to download

  • Pattern Sequencer (2010)

    • Programmed by Jun Hee Lee using Max/MSP 5

        This is a simple sequencer that you can arrange patterns into a tune. To understand how it works, feel free to try presets first.

        You can draw up to 8 patterns into 8 pattern tables. (labled as pattern 1-8) On each pattern table, you can draw 8 eighth notes. It is a bit hard to precisely draw into these table but not impossible.

        After finishing as many patterns as needed, you can arrange them at the form table on the upper right-hand corner. First, you pick one from 1, 2, 4, 8, or 12 bar form and the form table will be reset. Each bar is represented as column and its position determines the pattern number for that measure.

        Press start/stop toggle and the sequence will be played. Of course, you can change the tempo or have its counter reset and play from the top.

        The cool thing is you can have the title for your sequence. Shift-click on a preset to save your work or click on a saved preset to recall.

        Click to download

  • MIDI Controlled FM Synth (2010)
    midifmsynth

    • Programmed by Jun Hee Lee using Max/MSP 5

        This is an implementation of a FM synthesizer controllable by MIDI. Carrier is modulated by a modulator and fed into a filter.

        User has control over carrier frequency, modulation ratio, index, filter cutoff frequency, gain and Q. These are also controllable by a MIDI controller with CC messages. You can freely assign a different CC number to each slider. All MIDI CC messages are printed on screen to help user see what CC numbers the knobs and sliders on their MIDI device produce.

        Carrier(main signal), modulator and filter can be individually turned on or bypassed.

        Click to download

  • Elastic Looper (2010)
    elasticlooper

    • Programmed by Jun Hee Lee using Max/MSP 5

        This is a loop player with tempo adjust function. Feed your 1-bar loop file into drop-a-loop or just use the default "groove.wav".

        Press on or off button to play or stop. It shows the original tempo, given the loop file is exactly 1 measure long, and you can set a new tempo to play it. Pitch will change according to the playback speed. Check reverse to change the playback direction.

        Click to download

  • Drumatrix (2010)
    drumatrix

    • Programmed by Jun Hee Lee using Max/MSP 5

        This is a simple matrix driven drum machine. The shown grid represents 1 bar consisting or 16 16th notes. (or you can use it as 16 8th notes with 2x tempo) You can draw the "score" into the matrix clicking on a cross section.

        There are 3 levels of velocity. When you first click, a dark red dot shows, which means a weak velocity. If you click again, it turns into red then finally orange, gaining a stronger velocity each time. The tempo can be adjusted and you can start from the top by pressing the button. You can always try the presets to get the idea of how it's working.

        Click to download

  • Wind Chime (2010)
    windchime

    • Programmed by Jun Hee Lee using Max/MSP 5

        This is a simple wind chime simulator. You can manually make sound by clicking and dragging on the gray board on the left side. Or you can "generate wind" and make a random sound by clicking on random wind box. You can change the wind speed and control the behavior of wind.

        Click to download

  • Music Box (2010)
    musicbox

    • Programmed by Jun Hee Lee using Max/MSP 5

        This is a music box simulator, working similarly to a real one. Turn around the knob and the music will play. Playback speed is determined by how fast you turn the knob. The score file, "noel.txt" is fed into coll by default. To play from the start, press reset button.

        Click to download

  • Random Note Generator based on Fibonacci Sequence Modulo m (2010)

    • Programmed by Jun Hee Lee using C/C++

        This program generates a series of random notes within given range and writes them into a csound file.

        A Fibonacci sequence with 2 random numbers for the first two "seeds" is generated. Then by taking modulo m, the range of series is limited, giving more control yet maintaining the nature of Fibonacci sequence.

        The result is almost random but since there are only finite number of possible pairs of (A_(i-1), A_i) modulo m, the sequence is periodic with enough number of notes, creating recognizable motivic/rhythmic aspect. Limiting the range to an exact multiple of octaves by setting input data from C? to B? can give a very pleasing result since 12 consists of only 2 and 3s, which means a short cycle. Short cycles can be easily noticed even with moderate duration but to catch long cycles by ears, very short duration is crucial. (less than 50ms)

  • Random Modal Progression Generator (2010)

    • Programmed by Jun Hee Lee using C/C++

        This program generates a modal progression, which presents changing modality through time. A single modality from the mode library (external file defined as FILE_MODES) is randomly picked and maintained for several measures. (defined as MEASURE_PER_MODE) Then different chord voicings for each measure are generated from the voicing library (external file defined as FILE_VOICINGS) with random root note. Each chord voicing is selected to define its modality pretty well, containing most of the mode's characterist notes.

        In this version, voice-leading is considered when choosing a voicing for each measure, but in a primitive manner. Generating modes is totally random now. In a future version, modes will be selected in a random but more musical way, considering their colors, stabilities, etc. All modes have C for their tonic pitches. This is to contrast each mode and will not be changed. The score, consisting of treble and bass clefs, is printed into the standard output. It's slightly hard to recognize since it's text-based but will surely help to "see" what notes are played.

        Before the output csd file is played, a test tone of octave-doubled C note will be played for 2 seconds. This will help to establish the tonal center. The tonic pitch will also played on the bass with the actual voicing.

  • Gravity Game (2013)

    • Programmed by Jun Hee Lee and John Mu using Java

        We developed this simple game for the final project for Heuristic Problem Solving course at NYU. The base rules are given here.

        Click to play

  • Nanomunchers Server (2013)

    • Programmed by Jun Hee Lee and John Mu using Java

        Two sample games using the Nanomunchers server/visualizer that we designed for a weekly competition for Heuristic Problem Solving course at NYU. The rules are given here.

  • Computer Graphics Works (2013)

    • Programmed by Jun Hee Lee using JavaScript and WebGL

        Showcase of the works I've done for Computer Graphics course at NYU. Topics include the use of fragment/vertex shader, ray tracing, transformation matrix, animation, and forward/inverse kinematics.

  • Multi-Domain Language Modeling (2013)

    • By Jun Hee Lee and Sven Alexander Giesselbach

        For the final project for Speech Recognition course at NYU, we devised and compared methods to combine multiple language models in different domains for more robust likelihood estimation with broader domain coverage.

        Click to download the paper

  • Sailing (2011)

    • Composed by Jun Hee Lee (2011)
    • Performed by Jun Hee Lee (guitar), Yongeun Kwon (piano), Yeolwon Sung (bass), and Jongsun Park (drums)
    • Recorded by Jin Hwan Song
    • Mixed by Jun Hee Lee
    • Instruments used: Benedetto Bambino electric guitar

        From a recording session I arranged for my performance portfolio. This tune is based on a famous jazz standard, Stella by Starlight, with a reharmonized bridge and some Afro-Cuban-ish groove.

  • Billie's Bounce (2011)

    • Composed by Charlie Parker
    • Arranged by Jun Hee Lee
    • Performed by Jun Hee Lee (guitar), Yongeun Kwon (piano), Yeolwon Sung (bass), and Jongsun Park (drums)
    • Recorded by Jin Hwan Song
    • Mixed by Jun Hee Lee
    • Instruments used: Benedetto Bambino electric guitar

        From a recording session I arranged for my performance portfolio. I employed Coltrane changes on every other chorus to complicate the tune and make it more fun.

  • Detour Ahead (2011)

    • Composed by Johnny Frigo
    • Performed by Jun Hee Lee (guitar), Yongeun Kwon (piano), Yeolwon Sung (bass), and Jongsun Park (drums)
    • Recorded by Jin Hwan Song
    • Mixed by Jun Hee Lee
    • Instruments used: Benedetto Bambino electric guitar

        From a recording session I arranged for my performance portfolio. I haven't really seen a lot of people playing this tune but still this beautiful tune has been one of my favorite ballad. I was exploring with guitar mic'ing technique and mixing a processed direct input with the archtop guitar's natural sound successfully resulted in very natural, full and dynamic tone. And as a bonus, I was able to achieve a very wide tonal palette by micro-balancing those tracks, without excessive EQ.

  • Daahoud (2011)

    • Composed by Clifford Brown
    • Performed by Jun Hee Lee (guitar), Yongeun Kwon (piano), Yeolwon Sung (bass), and Jongsun Park (drums)
    • Recorded by Jin Hwan Song
    • Mixed by Jun Hee Lee
    • Instruments used: Benedetto Bambino electric guitar

        From a recording session I arranged for my performance portfolio.

  • Leave Me Be (2011)

    • Composed by Jun Hee Lee (2011)
    • Sequenced by Jun Hee Lee
    • Sung by Kina Lee
    • Software used: Apple Logic Pro 9 and NI Komplete 7

        I was trying to emulate the style of one of my favorite songs, Life in Mono by Mono. I started off following some of the characteristic instrumentation of the original piece and tried to employ various compositional techniques to make each section something different. It was really hard to write lyrics in a second language, especially when I'd never done this even in my native language, so it may make very little sense, if recognizable at all. I actually ended up putting way too much reverb on the vocal part just to kind of mask it and I hope to write, record and mix it properly some other time.

  • My Haus (2011)

    • Composed by Jun Hee Lee (2011)
    • Sequenced by Jun Hee Lee
    • Software used: Apple Logic Pro 9 and NI Komplete 7

        This was my first attempt to write a house music, which I considered one of my weak points.

  • Three Is the Key (2009)

    • Composed by Jun Hee Lee (2009)
    • Performed and Sequenced by Jun Hee Lee
    • Instruments used: Fender Stratocaster electric guitar
    • Hardware used: Digidesign Mbox 2 Pro and Shure SM58
    • Software used: Apple Logic Express 8, NI Guitar Rig 3, and NI Kontakt 3

        I wrote this tune for MS-340 Speech and Vocal Synthesis final project. We learned to use vocoder in the class and I was fascinated by its application on guitar sound. At the same time, I came up with the idea of exploiting number 3. The tune is primarily in 3, some parts are repeated 3 times and there are a lot of dotted 8th notes happening. The wah-like effects on both rhythm and lead guitar tracks are the product of vocoder. Female voices are word bits I gathered from the internet.

  • Marsquake (2009)

    • Composed by Jun Hee Lee (2009)
    • Performed by Jun Hee Lee on guitar and Dayeon Seok on drums
    • Sequenced by Jun Hee Lee
    • Instruments used: Fender Stratocaster electric guitar
    • Hardware used: Creative Labs E-MU 1212M, Digidesign Mbox2 Pro, and hand-built wah pedal
    • Software used: Apple Logic Express 8, Steinberg Nuendo 3, Digidesign Pro Tools 8, NI Guitar Rig 3, NI Absynth 4, Spectrasonics Trilogy, and Spectrasonics Atmosphere

        I put this one together for MS-381 project 4, which was a music production project. To meet the requirements of the project, Dayeon Seok, a talented student drummer at Berklee, played some solid grooves and I used loops out of those recordings for the skeleton of the tune. Repeating a simple modal progression, I explored different sound layers to contrast without making them fight each other. I also used minor 2nd and major 7th interval extensively to create a certain amount of dissonance.