Music Composer can help automate writing pop songs in three modes. It outputs the lyrics text file, the asc2mid text file, a meta music file and a MIDI music file.
-
Manual entry of form, lyrics, melody, harmony, instruments, parts that the melody plays in and parts that the harmony plays in.
-
Random generation of the creative choices.
-
Mind reading mode.
Please read the following instructions on how to install the project on your computer for writing music.
-
Use a search engine to find the Homebrew (or other) Terminal install command for your platform and install it, and search for the Terminal command to install swipl using Homebrew and install it or download and install SWI-Prolog for your machine at SWI-Prolog.
-
Requires asc2mid (http://www.archduke.org/midi/, compile with a C compiler before running.
gcc asc2mid.c -o asc2mid
-
Call application "asc2mid").
-
Optional: Search for and download backdated version 6.0.5 of GarageBand and AlterEgo singing voice synthesis plug-in for old GarageBand for Mac or on Windows (https://www.plogue.com/downloads.html).
- In Terminal settings (Mac), make Bash the default shell:
/bin/bash
- In Terminal, edit the text file
~/.bashrcusing the text editor Nano:
nano ~/.bashrc
- Add the following to the file
~/.bashrc:
export PATH="$PATH:/opt/homebrew/bin/"
- Check if
usr/local/binexists
ls -ld /usr/local/bin
- Create the directory if missing
sudo mkdir -p /usr/local/bin
- Link to swipl in Terminal
sudo ln -s /opt/homebrew/bin/swipl /usr/local/bin/swipl
Download this repository, the List Prolog Interpreter Repository and the Mind Reader Repository.
- Download the LPPM Repository:
mkdir GitHub
cd GitHub/
git clone https://github.com/luciangreen/List-Prolog-Package-Manager.git
cd List-Prolog-Package-Manager
swipl
['lppm'].
lppm_install("luciangreen","Music-Composer").
../
halt.
-
In Shell:
cd Music-Composerswipl -
Enter the following to enter creative choices manually:
['mindreadtestmusiccomposer-unusual-4-userinput']. -
Enter the following to enter creative choices with rhythm manually:
['mindreadtestmusiccomposer-unusual-4-userinput-rhythm']. -
Note: In Rhythm entry mode, enter a maximum of n notes per lyric line, up to n melody and harmony notes, and n rhythm notes. The melody is truncated to the length of the vocal lyric line and the maximum vocal lyric line in vocal-less lines.
-
Enter the following to generate 3-note progressions randomly:
['mindreadtestmusiccomposer-unusual-3']. -
Enter the following to generate 4-note progressions randomly:
['mindreadtestmusiccomposer-unusual-4']. -
Before running texttobr-based mind reader, think of two radio buttons put on recordings, put through with prayer, nut and bolt, quantum box prayer 1, 1, 0.5 cm and 1, 1, 0.5 cm.
-
Follow instructions in https://github.com/luciangreen/Text-to-Breasonings/blob/master/Instructions_for_Using_texttobr(2).pl.txt when using texttobr, texttobr2 or mind reader to avoid medical problems.
-
Please follow instructions in init.txt to initialise any new mind-reading algorithms.
-
Enter the following to detailedly mind-read songs with 4-note progressions:
['mindreadtestmusiccomposer-unusual-4-mr-tree.pl']. -
Note: Please leave 1 hour between mind-reading songs for the best results.
-
Running the algorithm To generate the song:
sectest0(Form1,Lyrics,Melody,Harmony,MelodyParts,HarmonyParts,Vocalstubinstrument,Song1).
To output the possible chord progressions from one note to another:
versechorussoloprogression1451('C','D',Progression),writeln1(Progression).
versechorussoloprogression1564('C','D',Progression),writeln1(Progression).
versechorussoloprogression1645('C','D',Progression),writeln1(Progression).
classicalcomposition('C','D',Progression),writeln1(Progression).
popclassicalcomposition('C','D',Progression),writeln1(Progression).
- Separate
song***.txtfiles into stem files for each instrument (saved in thestemsfolder) by placing the data files in thedata_filesfolder, and entering['data_to_stems.pl'].anddata_to_stems..
If:
- you have converted the data files to stem files and need
.midfiles, or - the file
song***.txtis produced but the.midfile is not:
- Place the data files or stems in the
stemsfolder, enter['data_to_stems.pl'].andstems_to_mid.and the.midfiles will be saved in themidfolder.
- Place
*_meta.txtfiles in themetafolder, enter['meta2mid.pl'].andmeta2mid.and the*lyrics.txt,*.midand*.txtfiles will be saved in theMusic-Composerfolder. - Run
meta2mid_r.instead ofmeta2mid.to ask for a song-wide rhythm.
-
To redefine a meta file's rhythm, select it at the end of the file...:
-
-
Wilb","ney",["writes","on"],["Ven","ess"]]]]],[genre,["anthem"]],[rhythm,[["0","NT","3/4",1,60],["3/4","NT","1/4",2,80],["1","NT","3/4",3,60],["1+3/4","NT","1/4",4,80],["2","NT","3/4",5,60],["2+3/4","NT","1/4",6,80],["3","NT","3/4",7,60],["3+3/4","NT","1/4",8,80]]]] -
And delete it:
-
-
[genre,["anthem"]]] -
Then run
meta2mid_ras described above.
Mind Reader is currently not configured to display screens and accurately mind read decisions. It detects vague, not exact thoughts.
- If necessary, repeat the "arem" mantra all the time while the mind reading computation is running to ensure the best results.
We will use SemVer for versioning.
Lucian Green - Initial programmer - Lucian Academy
I licensed this project under the BSD3 License - see the LICENSE.md file for details