├── .gitignore ├── COPYRIGHT.md ├── README.md ├── TERMS_OF_USE.md └── docs ├── about.md ├── accounts.md ├── chord-progression.md ├── melody.md └── rhythm.md /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | -------------------------------------------------------------------------------- /COPYRIGHT.md: -------------------------------------------------------------------------------- 1 | # Copyright for Random Music Generators 2 | 3 | ## Definitions 4 | 5 | - The Random Music Generators software itself (currently available at ) will be known as "RMG". 6 | - Any music generated by the Random Music Generators software (RMG) will be known as "Song". 7 | - This includes but isn't limited to audio generated in-browser and .MID/.MIDI files 8 | 9 | Copyright (C) David Cohen , scraggo - All Rights Reserved, 2022 10 | 11 | Unauthorized copying of any file in RMG codebase, via any medium is strictly prohibited 12 | 13 | Proprietary and confidential 14 | 15 | ## Exclusions 16 | 17 | Other developers have forked an early version of RMG located here: [scraggo/rmg-archive: Random music generators archive](https://github.com/scraggo/rmg-archive). It's excluded from this copyright. Any RMG code written by scraggo after the fork is under this copyright. 18 | 19 | ## Disclaimer 20 | 21 | Any resemblance of a Song (generated musical idea) to existing music under copyright is completely unintentional. The developers of RMG are not responsible for preventing generated musical ideas from bearing resemblance to existing music. It is solely the user's responsibility to ensure that any Song is modified to avoid copyright disputes. 22 | 23 | See [TERMS_OF_USE](/TERMS_OF_USE.md) for more. 24 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Random-Music-Generators 2 | 3 | 4 | 5 | ## Documentation 6 | 7 | - [About](docs/about.md) 8 | - [Accounts](docs/accounts.md) 9 | - [Melody Generators](docs/melody.md) 10 | - [Rhythm Generators](docs/rhythm.md) 11 | - [Chord Progression Generators](docs/chord-progression.md) 12 | 13 | ## Overview 14 | 15 | Generate unlimited unique melodies, rhythms, and chord progressions with easily changed parameters including tonality, rhythm, and interval jumps. 16 | 17 | These melodies can be previewed in-browser and downloaded as MIDI. (These MIDIs can be used in any DAW for manipulation.) 18 | 19 | ### Philosophy 20 | 21 | 1\. **Random is better than patterned.** The goal of this project is to create **random** music. The sounds created are often off-kilter and "computery", but creating "normal" sounding ideas with this tool is perfectly possible and not discouraged. 22 | 23 | The aesthetic motivation behind this project is to break free of existing patterns in the service of _hearing and creating something new_. The project makes heavy use of random number generating functions to defy predictibility. Machine-learning algorithms (which analyze existing music), are currently not used, and would only be added in service to randomness. 24 | 25 | 2\. **Use the ideas to break out of your musical ruts.** If you've been composing for a while, you may notice that you tend to write similar sounding ideas from song to song, section to section. Given the flexibility of this tool, you can decide where you'd like to inject new parameters into your compositional style. 26 | 27 | 3\. **Inexperienced and experienced composers alike can use this tool as a place to start for writing music in a zero-pressure way.** Having absolutely random notes generated takes away the cognitive load when you'd like to write, but don't know where to begin. If you were to import one of the MIDIs into a DAW or write one down on manuscript paper, they can be used verbatim or edited to your heart's content. Maybe you'll be inspired to come up with something amazing with randomly generated music! 28 | 29 | 4\. **Find presets to generate new ideas with similar settings.** This is best explained with an example: The default melody preset is a mid-range, generic set of notes. If you were to change 'Tonality Options' to 'Chromatic', 'Note Durations' to 'Sixteenth Note', 'Note Range' to 'G2 G4', 'No of Notes' to 13, 14, 15, or 16, you can instantly generate as many creepy, cave, video-gamey boss music ideas as you wish. 30 | 31 | ## Technology 32 | 33 | - [React](https://reactjs.org/) 34 | - [Redux](https://redux.js.org/) 35 | - [Semantic UI React](https://react.semantic-ui.com/) 36 | - [MidiWriterJS](https://github.com/grimmdude/MidiWriterJS) 37 | - [ToneJS](https://github.com/Tonejs/Tone.js) 38 | - [tone-rhythm](https://github.com/scraggo/tone-rhythm) 39 | - [tonal](https://github.com/danigb/tonal) 40 | - [sharp11](https://github.com/jsrmath/sharp11) 41 | - [webaudio-tinysynth](https://github.com/g200kg/webaudio-tinysynth) 42 | 43 | ## Videos 44 | 45 | - [Random Melody Generator - Overview / New Look - YouTube](https://www.youtube.com/watch?v=D46ujdZg4o0) 46 | - [Random Melody Generator - Tutorial - YouTube](https://www.youtube.com/watch?v=ygfC9vkTKPw&t=1s) 47 | 48 | ## Posts 49 | 50 | 51 | 52 | Community Posts: 53 | 54 | - [Random Music Generators is great for ear training - Vinnie Classroom](https://www.vinnieclassroom.com/2022/02/27/random-music-note-generator/) 55 | 56 | ## Contact 57 | 58 | Suggest features, file support issues, or get in touch for any reason: 59 | 60 | 61 | 62 | ## Legal 63 | 64 | - [COPYRIGHT.md](COPYRIGHT.md) 65 | - [TERMS_OF_USE.md](TERMS_OF_USE.md) 66 | -------------------------------------------------------------------------------- /TERMS_OF_USE.md: -------------------------------------------------------------------------------- 1 | # Terms of use 2 | 3 | 2022-01-14 4 | 5 | ## Definitions 6 | 7 | - The Random Music Generators software itself (currently available at ) will be known as "RMG". 8 | - Any music generated by the Random Music Generators software (RMG) will be known as "Song". 9 | - This includes but isn't limited to audio generated in-browser and .MID/.MIDI files 10 | 11 | ## RMG Permissions: 12 | 13 | - You agree to not copy and/or modify RMG. 14 | - You agree to only use RMG for non-commercial purposes. 15 | - Example: Building a business that operates based on the use of RMG violates this agreement. 16 | 17 | ## Song Permissions: 18 | 19 | - Songs generated using RMG have [CC-BY 4.0](https://creativecommons.org/licenses/by/4.0/) License. This requires you to give attribution if you use the generated Song in a derivative work. 20 | 21 | ## Copyright Infringement: 22 | 23 | - The creators of RMG are not responsible for copyright infringement in any usage of RMG. 24 | - For example, a user publishes music using a Song. The song has a likeness to already existing music. An affected party takes legal action against the user who published the music. RMG has absolutely no liability, absolutely no responsibility, and won't have any involvement in the matter. 25 | - This includes accidental or intentional copyright infringement. 26 | -------------------------------------------------------------------------------- /docs/about.md: -------------------------------------------------------------------------------- 1 | # ABOUT 2 | 3 | ## Contents 4 | 5 | - [ABOUT](#about) 6 | - [Contents](#contents) 7 | - [General Usage](#general-usage) 8 | - [Interaction](#interaction) 9 | - [Choosing a playback instrument](#choosing-a-playback-instrument) 10 | 11 | ## General Usage 12 | 13 | - Melody 14 | - Rhythm 15 | - Chord Progression 16 | 17 | ### Interaction 18 | 19 | - Click "Hide Input" to hide the input form. 20 | - Click "Generate" to create random results. 21 | - Click (download icon) to download a .mid file (MIDI) of the corresponding random result. 22 | - Click (play icon) to start the in-browser preview of the melody. 23 | - Click (stop icon) to stop the in-browser preview of the melody. 24 | 25 | ### Choosing a playback instrument 26 | 27 | Each of the Melody, Rhythm, and Chord Progression have in-browser instrument choices. When "General MIDI" is selected, the dropdown to the right is available for choosing one of 128 GM instruments. 28 | -------------------------------------------------------------------------------- /docs/accounts.md: -------------------------------------------------------------------------------- 1 | # Accounts 2 | 3 | Creating an account allows you to opt-in to certain features. 4 | 5 | ## Login Methods 6 | 7 | ### Google 8 | 9 | Sign up with your google account (gmail, etc). Use the password associated with that account. 10 | 11 | ### Email 12 | 13 | Sign up with your email address and set a password. 14 | 15 | ## Forgot Password, Reset Password, Delete Account, Change Account Info 16 | 17 | Contact us if you need any of the above items. There isn't yet a way to do this automatically. 18 | -------------------------------------------------------------------------------- /docs/chord-progression.md: -------------------------------------------------------------------------------- 1 | # Chord Progression 2 | 3 | Coming soon! 4 | -------------------------------------------------------------------------------- /docs/melody.md: -------------------------------------------------------------------------------- 1 | # Melody 2 | 3 | ## Contents 4 | 5 | - [Melody](#melody) 6 | - [Contents](#contents) 7 | - [Settings](#settings) 8 | - [Melody Characteristics](#melody-characteristics) 9 | - [Note Range](#note-range) 10 | - [Rhythm Characteristics](#rhythm-characteristics) 11 | - [Preset Ideas](#preset-ideas) 12 | 13 | ## Settings 14 | 15 | ### Melody Characteristics 16 | 17 | - Tonic Note - The base/root note of the scale (any of the 12 chromatic pitches) 18 | - Tonality (Scale Name) - Popular scales include Chromatic, Major, Minor, Dorian, Mixolydian 19 | - Max Jump [1-127] - The lower the number, the less "jumpy" a melody will be. 20 | - No. Melodies [1-50] - The number of melodies generated in the list (after you click "Generate") 21 | 22 | ### Note Range 23 | 24 | > C-1 to G9 (MIDI Codes 0 to 127) 25 | 26 | - Pitch Low - Lowest possible generated note (any of the 12 chromatic pitches) 27 | - Octave Low [-1-9] - Corresponding octave for Pitch Low 28 | - Pitch High - Highest possible generated note (any of the 12 chromatic pitches) 29 | - Octave High [-1-9] - Corresponding octave for Pitch High 30 | 31 | ### Rhythm Characteristics 32 | 33 | - Time Signature - from 3/4 to 15/8 34 | - Tempo - from ~40 - ~200 35 | 36 | Option 1: Constant Rhythm 37 | 38 | - Note Durations - from Whole Note (slowest) to 64th note (fastest) 39 | - No. Notes [1-50] - The number of notes in the melody 40 | 41 | Option 2: Varied Rhythm 42 | 43 | - Rhythm Type - Each value choice includes the value and slower. So, "8th Note" includes quarter, half, whole, etc. "Mixed" includes "16th Note" and "16th Note Triplet". 44 | - No. Measures [1-4] - Repeat the varied rhythm (with different melody notes) for this number of measures. 45 | 46 | ## Preset Ideas 47 | 48 | Funky Bass Line 49 | 50 | - Tonality = "Minor" 51 | - lower note range [octave 1 to 3] 52 | - any bass instrument from General Midi 53 | - Time signature = 4/4 54 | - Tempo = 110 55 | - Varied Rhythm and Rhythm Type = 16th notes 56 | 57 | Crazy Boss Music 58 | 59 | - Tonality of "Chromatic" 60 | - lower note range [octave 1 to 3] 61 | - Rock Organ from General Midi 62 | - Constant Rhythm 63 | - Duration = 16th notes 64 | - No. Notes = 16 65 | -------------------------------------------------------------------------------- /docs/rhythm.md: -------------------------------------------------------------------------------- 1 | # Rhythm 2 | 3 | Coming soon! 4 | --------------------------------------------------------------------------------