Giter VIP home page Giter VIP logo

Comments (5)

napulen avatar napulen commented on July 19, 2024 1

@ekzhang,

There are some well-known chorale generators: DeepBach, COCONET, BachBot and maybe a dozen more, so there is definitely a lot of knowledge out there if you are interested.

Would you be able to just plug in chord progressions from other music? I think so. I guess it depends what "other" music. I generally think that the roman numeral analysis techniques work well for music between years 1700--1850, so progressions you find within music of that period will blend well.

Regarding my own research, I am more on the analysis side than on the generation side. Essentially, I want to build models that can annotate the keys and roman numerals from the score (e.g., looking at the score of your B- example and figure out that it should be notated as I I6 IV V43/ii ii V V7 I in B-). This would be almost deterministic for chord block music excerpts, but it gets really messy for polyphonic textures (e.g., romantic piano music or string quartets). I think that this artificial voice leading generations will help with data augmentation. In music, we'd say that this code can produce a harmonic reduction of, say, a string quartet/piano sonata, if you have the chord annotations. An analysis model could be fed with a lot of harmonic reductions in different positions and transposed to different keys, along with the original music examples. I hope that makes sense.

I'm lagging behind the deep learning more than on the music theory, so there could definitely be some mutual feedback if you are ever interested in this. I can share some more thoughts over email.

Thanks for the license, by the way!

from harmony.

ekzhang avatar ekzhang commented on July 19, 2024 1

Gotcha, I can see why romantic piano music is quite difficult to analyze. But in some sense, even ambiguous annotations should be able to be handled reasonably by a language model. Shoot me an email if you'd like to talk more about NLP.

from harmony.

ekzhang avatar ekzhang commented on July 19, 2024

Hey @napulen, great to see you found this interesting. I actually had in mind updating this (and fixing some bugs) for a while now, but never got around to it, so thank you for reminding me. Will do this in the next couple days.

Feel free to do whatever you want with the code. I'll put it under the BSD3 license for compatibility with music21. I would appreciate a mention or link-back if you use it in a project, though.

from harmony.

napulen avatar napulen commented on July 19, 2024

Hey @ekzhang, thanks, that's great news!

I have been playing around with your code and it is really great!

I see that you are interested in deep learning too. I essentially want to use this to generate tons of artificial chorales for data augmentation. I understand this repo may not be your top priority, however, I'd be very happy to collaborate if you are interested. I am planning to use annotations I did myself as well as some by other researchers.

If you are not interested in collaboration or accepting PRs into this repo (just sent one), I'll definitely mention/link your work in whatever paper comes out of this.

Thanks again, and great work. It'd have taken me way more than ~200 lines to come up with something that delivers results this good.

Cheers.

(The BSD3 would be nice indeed).

from harmony.

ekzhang avatar ekzhang commented on July 19, 2024

@napulen,

Interesting, I'd be curious about generating artificial chorales. That sounds like a very salient problem, and I guess it was always on the back of my mind as a "next step." Would you be able to just plug in chord progressions from other music? Also, how are artificial chorales relevant for what you're working on?

Also, very cool stuff with the Haydn annotations. I'm not nearly as familiar with music theory as I am with computer science, but it looks like a lot of great work.

I just pushed some changes, including the license.

from harmony.

Related Issues (3)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.