Sound Generator#

This tool will generate midi or ogg “songs”.

Examples#

  • This will make midi song with a genome of type 0 (no hidden neurons) with 5 tracks 50 notes, saving the genome file.

SoundGenerator -G 0 -m -f gmidi1.mid -res 5 50 -sg gmidi1.json
  • This will reproduce gmidi1.json and gmidi2.json to make a “song” and a new genome gmidi12.json(this is the offspring of gmidi1 and gmidi2).

SoundGenerator -g r gmidi1.json gmidi2.json -m -f gmidi12.mid -sg gmidi12.json -res 5 50
  • This will make a raw audio “song” using the outputs as variables to mathematical formula.

SoundGenerator -G 1 1 50 -c -C -f gsong.ogg -res 5 5000 -sg gsong.json
  • This will make a raw audio “song” with a Elman Neural Network with 2 hidden layers of 50 and 25 neurons.

SoundGenerator -N 2 2 50 25 -C -f gsong.ogg -res 5 5000 -s nsong.json

Tool Help#

SoundGenerator [options] <filename>
-g, --genome [m|r] <filename> [<filename> with r]       load a genome json file
                                        With m will mutate the genome.
                                        With r will combine two genomes, without m or r will load the genome.
-G, --genome-type <type> <numHidden>    will generate a genome of the type specified
                                                types:
                                                        0. Without hidden neurons
                                                        1. With hidden neurons.
-n, --neuralnetwork [g] <filename>      load a neural network json file.
                                                        if g is specified will make a genome from this network.
-N, --neuralnetwork-type <type> <numLayers> <numNLayers, ..> will generate a random neural network of the type specified
                                                types:
                                                        0. CPPN
                                                        1. FeedForward
                                                        2. Elman Network
-c, --color                             will use color as input for the neural network (can be used with -C)
-C, --coords                            will use coordinates as input for the neural network (can be used with -c)
-m, --midifile                          will use the three random notes and feed it to the NN and then move it
                                                along the ones generated by the neural network.
                                                -res will be <Number of tracks> <Num of notes>
-s, --save <filename>                   will save the neural network generated.
-sg, --save-genome <filename>           will save the genome generated.
-f, --file-output <filename>            sound that will output.
-res, --resolution <width height>       It will create a sound using the coordinates(ignored if --image is specified).
--image <filename>                      load a image and generate a sound fromt it.
-r, --repeat <n>                        It will generate the sound again.(use it for recurrent nn)
-licenses                               shows licenses used by SoundGenerator
-h, --help                              help menu (This)

License#

midifile#

Copyright (c) 1999-2023, Craig Stuart Sapp
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:

1. Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice,
and the following disclaimer in the documentation and/or other materials
provided with the distribution.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.