Ideas for Melodic Interpolation Engine

April 13, 2010 Ideas 0 Comments

Here are a few ideas concerning melodic interpolation that I've been collecting in my mind over the past few days:

  • Certain blocks in the blockspace should have an ANCHORED flag so that they cannot be bumped vertically
    • I find that it is often the first and last notes of a phrase that really establish the tonality...perhaps they should both be "anchored" to an element of the chord?
    • Children of anchored blocks should not be anchored
  • Why not give blocks some inheritable properties? This will make the melodies less homogeneous (much like Fraccut, which tends to have, for example, short notes grouped together)
    • BLOCKINTERPCHANCE - when calculating the chance of an interpolation, use BASEINTERPCHANCE + BLOCKINTERPCHANCE
    • BLOCKVARIANCE - when calculating y deviations, use BASEVARIANCE + BLOCKVARIANCE
    • Grammar probability distribution - when calculating grammatical replacements, maybe certain blocks should be more likely to be replaced by certain words? This would have the effect of grouping words together more often. Is this a desirable property?
  • Make sure that blocks will not split if a split would create a block with a width below MINIMUMWIDTH
  • A style should include the following:
    • A grammatical dictionary
    • A grammar probability distribution
    • Intrinsic probabilities and quantitative measures that aren't part of the configuration interface
      • Like what? Need some more variables to work with.
  • To mutate a style over time, simply make small changes to the probability distribution or the other quantative measures
    • Probably not a good idea to mutate words
    • Maybe we could add new words to the dictionary
      • Add a new word
      • Slowly increase the probability of the new word
      • Slowly decrease the probability of another word (that will be phased out)
    • In this way, the dictionary undergoes slow, smooth, and continuous changes