Melody Generator

From CCRMA Wiki
Revision as of 10:34, 8 December 2010 by Ravik (Talk | contribs) (Created page with '=Melody Generator= ===Idea/Premise=== * To *aid* musicians in creating melodies * To modify melodies out of existing ideas ===Motivation=== * Personal interest in softwares that…')

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Melody Generator


  • To *aid* musicians in creating melodies
  • To modify melodies out of existing ideas


  • Personal interest in softwares that 'use' 'intelligence'


  • It's a challenge of placing notes in time
  • The code almost exclusively is about designating time values to different pitches as the melody proceeds
  • Take several attributes from the user input.
  • Ideas considered for this project to create the output: Scale and 'speed' of the input
  • The user interacts initially by giving an input and the engine immediately takes over the control, computes and plays the output.

Design Considerations

  • The program uses the RtAudio and RtMidi libraries for computing realtime audio and accepting real time input from the user.
  • The Karplus Strong synth model is the 'voice' of the project.
  • The number of notes that the user would like to give as the input can be set within the program. (This is kinda clumsy, so I am ACTUALLY working on trying to gauge the input in a different way)
  • A heavy amount of information is used from the input:
    • For example, if the user enters an input starting in C4, the output is in C Major. The system currently looks for the C Major, D Minor and G Major scales.
    • Another piece of information that's used from the input is the timing. If the average deltatime between different notes of the input is within a certain threshold, the song is considered 'fast-paced' otherwise, the overall contour of the song is in terms of its speed is mild.