For this project, the user can play any melody, and it will be harmonized in real-time. Sound is generated using a 4-voice triangular wave synthesizer created within the Web Audio API. For any given note entered, I created a database of possible chords. The chords are indexed by tonal center, and are chosen based on proximity to the last implied tonal center. I use a random log-based probability function, and weight nearby tonal centers to occur more frequently, with more distantly related chords happening occasionally. The colors change along with the implied tonal center.
Log in or sign up for Devpost to join the conversation.