Giter Site home page Giter Site logo

allthemusicllc / libatm Goto Github PK

View Code? Open in Web Editor NEW
211.0 5.0 24.0 2.19 MB

Library for generating and working with MIDI files

Home Page: http://allthemusic.info

License: Other

Rust 97.45% Shell 2.55%
midi music rust creative-commons public-domain

libatm's Introduction

libatm

Overview

libatm is a library for generating and working with MIDI files. It was purpose-built for All the Music, LLC to assist in its mission to enable musicians to make all of their music without the fear of frivolous copyright lawsuits. All code is released into the public domain via the Creative Commons Attribution 4.0 International License. If you're looking for a command line tool to generate and work with MIDI files, check out the atm-cli project that utilizes this library. For more information on All the Music, check out allthemusic.info. For more detailed library documentation, check out the crate documentation here.

libatm's People

Contributors

allthemusicllc avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

libatm's Issues

Where is MIDINoteSequence?

$ if [ -f $CARGO ] && [ -x $CARGO ]

then
echo "::: INFO: Checking code for errors" &&
cargo check --lib &&
echo "::: INFO: Building code in release mode" &&
cargo build --release &&
echo "::: INFO: Running library and doc tests" &&
cargo test --lib && cargo test --doc
else
echo "::: ERROR: Failed to locate cargo executable"
exit 1
fi
::: INFO: Checking code for errors
Checking atm v0.2.0 (/home/li)
error[E0433]: failed to resolve: could not find MIDINoteSequence in libatm
--> src/directives.rs:214:27
|
214 | let seq = libatm::MIDINoteSequence::new(
| ^^^^^^^^^^^^^^^^ could not find MIDINoteSequence in libatm

error[E0412]: cannot find type MIDINoteSequence in crate libatm
--> src/directives.rs:13:75
|
13 | fn parse_sequence_argument<'a>(matches: &clap::ArgMatches<'a>) -> libatm::MIDINoteSequence {
| ^^^^^^^^^^^^^^^^ not found in libatm

error[E0412]: cannot find type MIDINoteSequence in crate libatm
--> src/directives.rs:15:45
|
15 | let sequence = sequence.parse::libatm::MIDINoteSequence().unwrap();
| ^^^^^^^^^^^^^^^^ not found in libatm

error[E0412]: cannot find type MIDINoteSequence in crate libatm
--> src/directives.rs:87:27
|
87 | pub sequence: libatm::MIDINoteSequence,
| ^^^^^^^^^^^^^^^^ not found in libatm

error[E0412]: cannot find type MIDINoteSequence in crate libatm
--> src/directives.rs:128:27
|
128 | pub sequence: libatm::MIDINoteSequence,
| ^^^^^^^^^^^^^^^^ not found in libatm

error[E0412]: cannot find type MIDINoteSequence in crate libatm
--> src/directives.rs:241:27
|
241 | pub sequence: libatm::MIDINoteSequence,
| ^^^^^^^^^^^^^^^^ not found in libatm

error[E0599]: no method named gen_buffer found for type libatm::MIDIFile in the current scope
--> src/utils.rs:367:19
|
367 | mfile.gen_buffer().unwrap().as_slice(),
| ^^^^^^^^^^ method not found in libatm::MIDIFile

error: aborting due to 7 previous errors

Some errors have detailed explanations: E0412, E0433, E0599.
For more information about an error, try rustc --explain E0412.
error: could not compile atm.

To learn more, run the command again with --verbose.

Intersection with Million Songs Dataset

Hi,

watching the TED talk brought me to the idea to enhance libatm with a simple function to compare all the melodies generated with MIDI melodies available in the http://millionsongdataset.com/

Filtering for copyrightable melodies in the set (some are too old already etc.) allthemusic could release a dataset of def. "free melodies" one could use today because it's "copyrighted" by allthemusic (green spot).

Also, the website could be enhanced with a web audio midi player (I could help with this) where you can choose from "free" melodies at random or selective by scale, mode etc.

Best,
Aron

I did exactly the same - years before

Hello Damien, Hello Rubin,

I've just read about your project (all possible melodies) a couple of hours ago. I did exactly the same and I started the project about 7 years ago. I can proof it because I uploaded large parts of my created melodies to external servers (e. g. box.net) which have time stemps of 2014. I even stepped a lot of steps furher: I tried to generate countless chord melodies (almost the half of all possible variations in a 4 chord scenario) and "full" MIDI Songs, too, which contain up to 80 bars. I have several terrabytes of generated MIDI Data.

I decided to NOT release any of this past to public. You will face the same problem. You declared a huge amount of melodies as CC0 but you are not the original creator ALL of them (copyright is even not the related issue in the first place) . I am not sure if you know what you did... You re-created pre-existing melodies and you did not only gave them away for free, you told the world that they can be used for almost all purposes - but there ARE a lot of melodies included in this library who will have ownership by 3rd parties.

Besides song rights, there are a lot of MIDI and and audio loop based companies, who have a copyright of millions of that files you declared as CC0 and you have no option to filter that at all!

It is comparable to someone uploading a Michael Jackson Song and it declare it as Public Domain - it won't work out and it will result in lawsuits. Times thousand in this case.

The next main thing is: there ARE owner rights, even if the product is declared as "CC0". The user of "your" files is NOT allowed to claim to be the creator - this right is exclusively granted to the original creator of the CC0 content.

Sincerly,
Wolfgang

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.