Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Algorithm Composition Roadmap Ideas #9

Open
marksweiss opened this issue Aug 1, 2019 · 0 comments
Open

Algorithm Composition Roadmap Ideas #9

marksweiss opened this issue Aug 1, 2019 · 0 comments

Comments

@marksweiss
Copy link
Owner

marksweiss commented Aug 1, 2019

Note

  • DONE Implement storage as numpy array
  • DONE Modify core attributes to:
    • retain existing accessors
    • store values in numpy array indexes
    • use CONSTS for the slots
    • store everything as float and convert instrument to int when get() called

Sequence

  • DONE Retain existing accessor, iterator and range support
  • DONE Add attribute which is a 2D numpy matrix, a sequence Notes
  • DONE Use CONSTS for the slots
  • DONE Extend validation to check shape of Notes being added
  • DONE Add attribute which is a list of child Sequences
  • DONE Support hierarchical traversal and apply from the subtree rooted at a Sequence, by DFS over all children
  • Add overloaded operator support to apply one Sequence to another as matrix operations
    • add
    • sub
    • mult
    • dot product
  • Port existing special purpose transformations, such as transpose, key change, swing and meter change

Generators

  • Add base class: defines generate() method taking no input and returning Sequence
  • Extend to support attribute which is a 2D numpy matrix, a sequence Notes stored as a matrix
  • Use CONSTS for the slots
  • Build up library based on different algorithms, e.g. random, by key, all one pitch, etc.

Modifiers

  • Add base class: defines transform() method taking Sequence as input and returning Sequence, pure function
  • Extend to support attribute which is a 2D numpy matrix, a sequence of Notes stored as a matrix
  • Use CONSTS for the slots
  • Add pipeline support to build DAGs with Sequence or Generator (returns a Sequence) at the source, and pipe support to chain any number of Modifiers after that and then return a Sequence, pure function
    • Combine with support for hierarchical Sequences
    • The idea is to be able to define arbitrary sequences and sub-sequences of Notes, and to apply arbitrary chains of transformations over them, all efficiently in vector space

Misc

@marksweiss marksweiss changed the title Roadmap Ideas Algorithm Composition Roadmap Ideas Jul 26, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant