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.
-
Please download and install SWI-Prolog for your machine at
https://www.swi-prolog.org/build/
. -
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).
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-Composer
swipl
-
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***.txt
files into stem files for each instrument (saved in thestems
folder) by placing the data files in thedata_files
folder, and entering['data_to_stems.pl'].
anddata_to_stems.
.
If:
- you have converted the data files to stem files and need
.mid
files, or - the file
song***.txt
is produced but the.mid
file is not:
- Place the data files or stems in the
stems
folder, enter['data_to_stems.pl'].
andstems_to_mid.
and the.mid
files will be saved in themid
folder.
- Place
*_meta.txt
files in themeta
folder, enter['meta2mid.pl'].
andmeta2mid.
and the*lyrics.txt
,*.mid
and*.txt
files will be saved in theMusic-Composer
folder. - 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_r
as 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