Added a README file and updated some code (flake8 + help message)
This commit is contained in:
parent
f8592113e8
commit
9fa7594b12
51
README.md
Normal file
51
README.md
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
(Bad) Artificial Song Generator
|
||||||
|
===============================
|
||||||
|
|
||||||
|
This is just a simple C code to handle wave files (see files wave_stuf.* for the functions) and a simple application to generating purely artificial sounds (just by creating a wave file with values from a sine wave at the good frequency to make a note.
|
||||||
|
|
||||||
|
### Included files are :
|
||||||
|
|
||||||
|
* _examples_ folder with some examples music sheets and the resulting generated wave files
|
||||||
|
* _generateur.c_ which is the main program
|
||||||
|
* _generateur_partition.py_ which is just a simple program to generate basic music sheet to use with the main program
|
||||||
|
* _wave_stuff.*_ which are the functions to handle wave files
|
||||||
|
|
||||||
|
## Usage of the main program
|
||||||
|
|
||||||
|
The main program should be compiled using the makefile.
|
||||||
|
|
||||||
|
To use it, just run from command line :
|
||||||
|
<code>generateur.out partition output.wav bpm silence</code> where
|
||||||
|
|
||||||
|
* _partition_ is the path to the music sheet you want to generate
|
||||||
|
* _output.wav_ is the resulting wave files
|
||||||
|
* _bpm_ is the speed of the song (in bpm)
|
||||||
|
* _silence_ is an integer that should be set to 1 to add silences between notes
|
||||||
|
|
||||||
|
## Usage of the basic music sheet generator
|
||||||
|
|
||||||
|
This program allows you to write a simple music sheet without always looking for the correspondance between note and frequency. It is very basic and only allows you to use notes amongst :
|
||||||
|
|
||||||
|
* RE, MI, FA, SOL, LA, SI, DO (where LA is 440Hz)
|
||||||
|
* RE2, MI2, FA2, SOL2, LA2, SI2, DO2 (where LA is 880Hz).
|
||||||
|
|
||||||
|
Length is any integer you want. It will define the length of the note (play with both length and bpm params to get what you want).
|
||||||
|
|
||||||
|
You can use the -o (--output) option with a filename as argument to store the generated music sheet to this specific file.
|
||||||
|
|
||||||
|
## License
|
||||||
|
### TLDR;
|
||||||
|
I don't give a damn to anything you can do using this code. It would just be nice to
|
||||||
|
quote where the original code comes from.
|
||||||
|
|
||||||
|
|
||||||
|
--------------------------------------------------------------------------------
|
||||||
|
"THE NO-ALCOHOL BEER-WARE LICENSE" (Revision 42):
|
||||||
|
|
||||||
|
Phyks (phyks@phyks.me) wrote this file. As long as you retain this notice you
|
||||||
|
can do whatever you want with this stuff (and you can also do whatever you want
|
||||||
|
with this stuff without retaining it, but that's not cool... :/ ). If we meet some
|
||||||
|
day, and you think this stuff is worth it, you can buy me a <del>beer</del> soda
|
||||||
|
in return.
|
||||||
|
Phyks
|
||||||
|
---------------------------------------------------------------------------------
|
@ -63,7 +63,7 @@ int main(int argc, char **argv)
|
|||||||
{
|
{
|
||||||
if (argc < 5)
|
if (argc < 5)
|
||||||
{
|
{
|
||||||
fprintf(stderr,"Usage: %s partition output.wav bpm silence\n",argv[0]);
|
fprintf(stderr,"Usage: %s partition output.wav bpm silence\nsilence should be 1 to add silence between notes.\n",argv[0]);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -12,18 +12,25 @@ except getopt.GetoptError:
|
|||||||
for opt, arg in opts:
|
for opt, arg in opts:
|
||||||
if opt in ("-h", "--help"):
|
if opt in ("-h", "--help"):
|
||||||
print("Music sheet generator for the sound player. Usage :")
|
print("Music sheet generator for the sound player. Usage :")
|
||||||
print("-h \t --help \t Displays this help message")
|
print("-h \t\t --help \t Displays this help message")
|
||||||
print("-o file \t --output file \t Save the generated music sheet to "
|
print("-o file \t --output file \t Save the generated music sheet to "
|
||||||
"the specified file")
|
"the specified file")
|
||||||
|
|
||||||
|
print("\nAllowed values for notes are RE, MI, FA, SOL, LA, SI, DO"
|
||||||
|
"(corresponding to LA = 440Hz) and RE2, MI2, FA2, SOL2, LA2, "
|
||||||
|
"SI2, DO2 (corresponding to LA2 = 880Hz)")
|
||||||
|
|
||||||
|
print("\nTo quit, just enter \"quit\" as note")
|
||||||
|
sys.exit()
|
||||||
|
|
||||||
elif opt in ("-o", "--output"):
|
elif opt in ("-o", "--output"):
|
||||||
output = arg
|
output = arg
|
||||||
|
|
||||||
|
|
||||||
continue_while = True
|
continue_while = True
|
||||||
notes = {"RE": 294, "MI": 330, "FA": 349, "SOL": 392, "LA": 440, "SI": 494,
|
notes = {"RE": 294, "MI": 330, "FA": 349, "SOL": 392, "LA": 440, "SI": 494,
|
||||||
"DO": 523, "RE2": 587, "MI2": 659, "FA2": 699, "SOL2": 794, "LA2": 880,
|
"DO": 523, "RE2": 587, "MI2": 659, "FA2": 699, "SOL2": 794,
|
||||||
"SI2": 988}
|
"LA2": 880, "SI2": 988}
|
||||||
partition = ''
|
partition = ''
|
||||||
|
|
||||||
while continue_while:
|
while continue_while:
|
||||||
|
Loading…
Reference in New Issue
Block a user