oscarsouth / theharmonicalgorithm Goto Github PK
View Code? Open in Web Editor NEWThe Harmonic Algorithm by Oscar South - A Project Spanning Music Analysis, Functional Programming & Machine Learning
License: Other
The Harmonic Algorithm by Oscar South - A Project Spanning Music Analysis, Functional Programming & Machine Learning
License: Other
The current README.md is very minimal. Would be preferable to include a more fully comprehensive installation process and detailed usage guide (with examples).
The MusicData
module defines many useful Pitchclass Analysis functions and in combination with the Markov
module provides deterministic Machine Learning functionality for musical cadence data in generation of harmonic progression. The Overtone
module provides a variety of string parsing functions for generating harmonic filters or ranked sets of harmonic possibilities (on derived dissonance or intelligently in combination with the trained Markov
model). These features could be very useful in combination with Alex McLean's (@yaxu) TidalCycles Pattern Language for Live Coding (https://github.com/tidalcycles/Tidal) .
The Harmonic Algorithm was written with future integration with TidalCycles in mind and ideally I will write a new module which 'wraps up' all the useful pitchclass analysis and harmony generation/filtering functionality into tidal-specific functions for import into the interactive REPL environment in a Live Coding context.
Considering that this is a music project, there's not much music here yet! I've had great results personally in exploring musical possibilities exposed by the command line app, but haven't yet published anything publicly.
It would be nice to revise the README.md (which was made prior to a lot of chord-naming changes anyway) with sound examples.
The scope of the work and research underpinning it has been intentionally limited to three note (triadic) structures including fundamental tone. This scope could be logically expanded to three note structures OVER a fundamental tone (inside which, three note structures are a subset). This would present a great deal more interesting possibilities.
The existing codebase is partially written with this eventual expansion in mind, although how to implement the Machine Learning functionality effectively on on 7th chords will require some creative thought.
➜ theHarmonicAlgorithm git:(master) stack --install-ghc build
Preparing to install GHC to an isolated location.
This will not interfere with any system-level installation.
Already downloaded.
Installing GHC ...
Received ExitFailure 2 when running
Raw command: /usr/bin/make install
Run from: /Users/jasonwehmhoener/.stack/programs/x86_64-osx/ghc-8.2.2.temp/ghc-8.2.2/
➜ ghc-8.2.2 make install
mk/config.mk:533: *** missing separator. Stop.
If I comment out mk/config.mk:533, make install succeeds. But if I try to re-run the build or exec commands, my edit gets overwritten.
Similar to how root note(s) can be defined and presented possibilities will be filtered by that, it would be useful melody composition to filter by top note.
It would be a creative feature to be able to generate 'infinite' lists of deterministic data based with randomisation based on probability distribution. Integration with the R interpreter provides many useful tools that could be employed here.
As of right now, the app logs session info about the user's active environment. This may be useful for troubleshooting, but logged output on past harmonic movements and additional insight provided by statistical analysis which goes unseen on the command line GUI would be beneficial. This can be further enhanced by inclusion of automatically generated plots (which could even be appended inline into a pdf file.
It would be a useful ability for both quick reference in composition and also instrumental study, for info on where overtones are located to be printed to the terminal and logged.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.