May 19

cgMusic – Can computers create music?

Tag: General,Music Composition,Personal,TechnicalMaciek @ 3:45 pm

The short answer is –  yes they can. The long one is – yes, they can and in fact they do it better than most people. I’m not talking about computers performing music (like a MIDI Player or a Toyota robot playing violin). I’m talking about computer software that is composing music – making up melodies and writing scores for some instruments. The only thing which gives us, people an edge at composing music is that a real person can tell which one composition sounds better than others. A computer can create hundreds of songs in a second but it will never be able to tell which one it likes the most. But let’s get back to the beginning…

Apart from being a programmer and a designer I’m also a kind of an occasional music composer. I have created the entire music soundtrack for Magic Match and many tracks for Saqqarah and some other games, but in most cases I create music for fun. I plan to post my compositions on this blog in the future as well as to write about my experiences concerning making of music for games, but now I’d like to write about a piece of software called cgMusic, which I’ve developed as a part of my master thesis.

cgMusicThe goal of the cgMusic project was quite ambitious as I was supposed to create a computer program that would be able to create music with a certain level of quality that most of the existing music generating software lacked. Apart from that, I decided that I would not limit myself to mimicking any particular kind of music and rather make the software universal in such a way that it would be able to create music of any genre.  So, did I manage to do it? You can judge for yourself.

cgMusic Screenshot 

You can download the program here (0,5 MB), install it and give it a try. At start you can either load any of the preset projects or create a new project by selecting two master algorithms that will create a random song  for you. Later you can tweak all the internal parameters to your liking, change the songs arrangement and so on. If you have any questions about using the program, feel free to post them as comments to this article. If you don’t want to download the application here a some compositions created by cgMusic, that I was particularly impressed with. They are in midi format and should play properly on any General Midi compatible device.

The internal workings of cgMusic are quite complex. Basically cgMusic is an expert system distributed among many independent modules, where every single module knows how to create one aspect of music. An example would be an algorithm that creates a certain set of possible rhythms, melodies, harmonies, song structures or hole arrangements. The program can easily be extended by adding new modules on the fly and this is how supporting new styles is possible. Each module can be controlled independently so when you decide on a certain melody and structure you can listen to “your” song in any of the available arrangements. For the purpose of my master thesis I created a sample set of plugin modules that show the very basic abilities of the application. It was a nice surprise for me to see that even with very simple algorithms the program is able to create complex music.

If you think that music generated by cgMusic sounds crappy this probably because midi music generally sounds crappy. But there is no problem in rendering cgMusic generated compositions using some fancy synthesizers or samplers. Below are a couple of examples in mp3 format that show what kind of effects can be obtained with the usage of proper music rendering tools.

There are many potential uses for computer generated music, ranging from real human composer assistance, music production tools, dynamic music for computer games, etc. The main reason behind slow development of advanced new music generating algorithms is that relatively few music composers have the IT based skills and the necessary knowledge to translate their music composition skills into mathematically defined algorithms.

Share/Save/Bookmark

Related Posts

143 Responses to “cgMusic – Can computers create music?”

  1. Pomann Diggs says:

    Thank you for this wonderful software. I tried many different ones i.e. fracmus, fmusic 19, qfc, gingerbread, etc. This one is superior.

  2. Cat says:

    Hoping you’ll make this in Mac format one day. In the meantime… looking for a PC… THANKS! Cat

  3. Dwayne says:

    Try ‘Modern Song Structure’ 11055 and ‘Simple Ballad Song Arrangement’ 11896! 🙂 This is one of the two best random music creators I’ve ever used. The other was AlgoMusic on the Amiga back in the ’90s.

  4. David Pletts says:

    This is an awesome music application, best of its sort that I have come across. Well done and thank you. Now, I am hoping that you will extend it to include extra styles of music, including, perhaps, ones with less emphasis in a melody, such as trance (and similar) and ambient with slower movement of individual parts. But, wow, its good!

    Regards

    David Pletts

  5. Sibilance says:

    wow,
    It’s a wonderful software. I play with it a lot of time, and my son (11 years old) started to write song for his school :D.
    Your program is more interesting than that from soundtreck
    Congratulations
    Your my muse, now.

  6. vandergraaf says:

    First: Sorry for bad English….
    Thanks for this wonderful piece of Software.
    I tried a couple of algorythmic Composition Software,
    “Music in the Numbers” – simple and really great, but no longer developed.
    And other ones….and this seems really great.
    I wish in the future you can implement change the midi-output i.e. to MIDI-Yoke,
    so that is possible use this software on the fly together with Cubase (or similar programs)

    Congratulations !

  7. Steve says:

    It’s not just clever, it’s sensational! I genuinely enjoy the music it creates.
    You’ve done an outstanding job. I hope the University appreciated how your softwares’ capability dwarfs any other in the same arena.

    Is each track it creates truely unique?

  8. Bill-USA says:

    Thanks for this excellent software..

    Wondering if you plan any future development?

    Thanks

  9. Maciek says:

    Thanks for all the kind words about cgMusic.

    Unfortunately I don’t plan to develop it any further at the moment as I hove a lot of work with our games.

    Cheers!

  10. Jim says:

    Just downloaded this, and really want to experiment with it! Three questions though:
    (1) when I try to right click on a tree element to access script options, nothing happens. Am I missing something here?

    (2) are the help files available somewhere in English?

    (3) where can I find out more about the scripting language? what is it written in?

    (4) any possibility of a real-time midi-out implementation?

    Thanks so much! Great stuff!

  11. Maciek says:

    Jim, thanks for your interest in cgMusic. To answer your questions:

    (1) Right clicking on a script in a tree view should give you a popup menu with “Edit This Script”, “Duplicate” and “Remove” options. The “edit this script” function requires the freeware CrimsonEditor to be installed(www.crimsoneditor.com). But in fact you can use anything to edit the files on disk like notepad.

    (2) Sorry, no.

    (3) The embedded scripting language used is angelscript. The syntax is very similar to c/c++. You can learn more about it at angetcode.com/angelscript.

    (4) Actually when you hit the play button the application sends the events to the default MIDI device set in Windows, so you can redirect it wherever you want. But changing parameters during playback is not possible because it is necessary to recompute the whole song after each change.

  12. Bearz says:

    Definitely an amazing program! It is most unfortunate that there is no documentation in english for the scripting language, since writing scripts is such an important part of the cgMusic creative process. Alas… 🙁

    Also, I can certainly understand that you would be too busy to continue development of the program, but since you are giving it away for free, (Thanks!!), and don’t have the time, would you consider making it ‘open-source’ so others could continue to improve this wonderful gem? There are a number of similar programs out there, but they are all either proprietary (LOTS of $$), hard to use, or seriously out of date. cgMusic is a great, easy to use program that could become the ‘hub’ of a vibrant ‘open-source’ community! (And an easy way for Codeminion to generate more game traffic through a low cost, or no cost, ‘sponsorship’.)

    I know that I would be happy to invest a lot of my own time into an ‘open-source cgMusic’ project, (please feel free to email me), and I’m sure others around the world would too. We might even find someone who reads Polish to translate the scripting help for all of us poor, neglected english speakers! 😉

  13. Parker says:

    Beautiful software! I’m working on a similar project with a large format multi-touch interface (see http://www.nuigroup.com). I would love to know more about the architecture of the program. Maybe even a UML diagram? That would be awesome.

    Parker

  14. David McLeod says:

    Do you have English documentation for this program? When I installed, all I see is a couple of doc files that appear to be in Polish.

    Thanks,

    David

  15. RadicalOne says:

    Wonderful software, but how do I use mp3 rendering?

  16. Bastiliash says:

    I also think, that going open-source is a great idea. I also would be very happy to invest my time in contribution to this software.

  17. Boutros Boutros says:

    Genius program, simple and very effective. Well done! I think open source is a great idea too, but I totally understand if you wouldn’t want to release such great code. It’s free, it’s fantastic, thanks again!

  18. Paul says:

    I tried cgmusic and this one is the best music done by algorithmic composition. I can say only: WOW! 🙂
    I tried to output the midi file into ZynAddSubFX synthesizer and sounds great 🙂
    I am an open source music programmer and I recomand you to make your program open source (eg: under GPL license). I think that many developers will make this program even better ( and will make music composers to worry :-)) ) .

    Paul, the author of ZynAddSubFX, PaulStretch, and other open source software

  19. Érico says:

    awesome, reminds me of algomusic on my amiga days, thanks some genius have done such works on days like these. Would be nice to be able to kick in some self made samples, maybe it can and it is just me… anyway congratulations!

  20. bambang pranoto says:

    cg is break my midi mind to open imagination – bravo – oh ups how file save transfer to midi base recording system like pro tools or abelton – ones again brovo

  21. James Plant says:

    Hello,
    I am a freeware game developer. I would be interested in using music generated by cgMusic in my games. The games would be distributed, but not commercially. Does this count as personal use? If not, can I get permission to use the music generated in my games? If you choose to reply, please reply to toilethumour#AT#merseymail#’DOT#com.

    Thank you for reading,
    James

  22. James Plant says:

    I forgot to mention, you would of course be fully credited. Unfortunately, I am unable to pay for a licence, if one is needed, as I have no method of transferring money over the internet.

    Thanks again,
    James

  23. yuri says:

    AWESOME!!

  24. James says:

    I came across this while doing some research into procedural/generated/computer music, very cool. Any chance of the (or some of the) source code being open source?

  25. Myron says:

    Very impressive results! I’ve done some work with algorithmic composition myself. My web application (fractalcomposer.com) generates music using self-similarity.

  26. Joe says:

    Nice results! Is your master thesis available somewhere online? I’d be really interested in reading it. Kudos for sharing this program.

  27. Valerio says:

    This is the best music generation software I have ever used. You are authentically a genius – really!

  28. Thomas says:

    I’m interested in this field of research. Can I download your master thesis anywhere?

  29. otaru says:

    you are the man , awesome program.

  30. jmc says:

    Hi,

    Would you be interested in sublicensing the system/idea ?

    Regards,

    jmc

  31. mmm says:

    “A computer can create hundreds of songs in a second but it will never be able to tell which one it likes the most.”

    So what if someone makes a program that can learn receiving input from human who can tell it what it has to “like”?

  32. rabt says:

    This is the best music generator software I’ve ever used. Period.

  33. Ralph Arscott says:

    Brilliant!

    after only a few hours mucking about I’ve made several enjoyable songs that really seem like they’ve been composed by a human.

    You may know of this already but there is a man who has developed software that can copy a musician’s style and then use it to elaborate upon a given musical theme. His name is David Cope.

    Here is a link to some of the compositions produced and I think they are very good (particularly the Bach piece).

    Thanks for the brilliant and interesting software!

  34. Ralph Arscott says:

    Sorry, forgot the link.
    Here it is: http://arts.ucsc.edu/faculty/cope/mp3page.htm

  35. Katie says:

    This seems like an interesting project, but it’s a shame you’ve only targeted Windows so far. Might I suggest opening the source on the port-resistant interface bits, if not the entire project?

    I’m sure you’ve done a good enough job of writing portable code for the internal bits, and I know more than a few Linux users (myself included) who would love to tinker with this!

  36. Ralph Arscott says:

    Do you know of any fancy synthesizers to use?

  37. Ed says:

    Is is possible to you to send me the orchestral score of “hapsi_s90es.mp3” and the choral score of “piano_gigastudio.mp3”?? (if available, please) or how to generate them exactly on the CgMusic software. I’m very interested on the quality of those pieces and I would like to analyse them in detail.

  38. Maciek says:

    Hi Ed. You can simply download the piano.mid and hapsi.mid attached in my post and use any program that can print midi files as music notation. The project files are also distributed with cgMusic so you can also load them yourself in the app and save to midi. Best regards.

  39. JJ says:

    Hello. Great piece of software. I’m wondering if there is any way possible to batch export multiple randomly generated pieces without having to change everything by hand each time. Any help is appreciated. Thank you again for such wonderful work!

  40. Ed says:

    Hi again, thanks for the reply, but I have problems running CgMusic, it says that MSVCP70.DLL is missing… (both in windows xp sp3 and windows 7 rc). Any suggestions?

  41. Maciek says:

    I’m not really sure what the problem with MSVCP70.DLL is. As far as I remember cgMusic should not require it. But then again I might be mistaken as it was quite some time ago when I compiled the program. Anyway, you could try installing the Microsoft VC Runtime libraries. You can find it here:

    http://www.microsoft.com/downloads/details.aspx?FamilyId=32BC1BEE-A3F9-4C13-9C99-220B62A191EE&displaylang=en

    I hope it helps.

  42. sr says:

    Excellent quality of music generated. the expert system rules should be well formed given that it is possible to produce human like output from randomization.Would be nice to read the master’s thesis. is it available on the web?

  43. Maciek says:

    Thanks for the good words, sr. Unfortunately the thesis is only available in Polish language and only in the building. Unfortunately this is the current policy as they had problems in the past with people stealing and selling works to students of other schools.

  44. Progress Report #5 « A New Music says:

    […] cgMusic A freely-available and unpublicized software, cgMusic is the gem of all algorithmic composition tools that I have found so far. Maciej Biedrzycki created this flexible architecture that uses a scripting engine and expert systems to generate coherent music. A very impressive demonstration of algorithmic composition. […]

  45. Per says:

    Hello,

    I have translated the documentation with the help of Google’s language tools and the result is surprisingly good.

    Great program!

  46. Zachary says:

    This is very interesting. I can create a random siong, export as a midi file, then import the midi file into guitar pro 5, and i have an instant guitar riff(mayby not the best, but how easy!) This software wold be great if t contained different scales (aeolian gypsy pentatonic) woud it be possible to add them into the program… if so, how woud I.( i have no programming knowledge, but im a quick learner) I would even consider paying for a program which would have the different scales. Please respond!

  47. vo says:

    This is one of the best music software ever created.

    It would be wonderful if you could continue its development or, alternatively, open the source, even with a restrictive licence.

  48. Dave G. says:

    Is it possible to use the midis generated by this software commercially, or is it just for personal use? And if only for personal use, do you ever plan to release a program that can be used commercially?

  49. Martin says:

    Hi! I met Philip Glass (well, I saw him in a restaurant once or twice) and other celebrity composers, but your software is the COOLEST among em all! Genius, thanks! It beats the best of Eno or Nyman anytime!

  50. Daniel says:

    A magnificient piece of software. Keep up the good work 🙂

  51. Nasir Khan says:

    WOW! amazing peace of software. I am musician and know playing keyboard and music theory, chord etc. It is really helping for great ideas. Great job done.

  52. guyman says:

    This is OK but I still think people are much better at writing music.

  53. firster says:

    Havign trouble getting the live play to make a sound although I can easily play any file exported to midi.

    what are the requirements for live play (DX5 or 9 or something or winodws xp or win 98 or what?)

  54. Maciek says:

    The program uses standard system MIDI output, so it should work if MIDI is present and configured on the system (the default device is used). It was tested on xp and vista.

  55. Deb says:

    I have interest in Indian Raga using Sitar.

    May I request you to assist me in the following please.

    1. Is it possible to compose Indian Raga using computer software such as cgMusic which sounds like Sitar?

    2. Can I use cgMusic on Windows Operating System?

    Thanks

  56. Maciek says:

    Hi Deb,

    I’m not an expert on Indian Raga, but it should be technically possible, but it would require developing specialized scripts. So it can’t be done out of the box. For the other question – yes, cgMusic works on Windows.

  57. CatalystSpark says:

    This is simply amazing, even with Midi format, some of the songs I got out of it are just awesome as they are, so plan on pulling them apart in my editing programs and seeing what can be done with the tracks.

  58. richard says:

    I must rank myself in line with all the other great compliments. I have tried out a lot of automated composing programs, this is really the best. So it is really a shame that you have no time to develope it further. So, no chance for any new structures or arrangements ? Any way for a (non programmer) to write/develope some structures/arrangements ?

    Thanks again for the great tool !

  59. T says:

    SoundHelix is another cool tool for generatic algorithmic/random music (Java-based).

  60. Uwe says:

    Hello, happy new year and thank you for this great tool. It would be very nice to have more styles to choose from, Ambient, House, alternative music styles with facettes of New Wave, Gothic e.g., but this is absolutely great in what it does in a second or two. Regards, Uwe

  61. Remco says:

    Dude! Thanks soooo much!

    This is the first software I came across which actually does a good job when it comes to algorithmic / generative composing.
    I`ve been searching for years for something like this. This will be a valuable asset in my song making process. It gave me new inspiration. You could easily charge money for this.
    Ideas for future versions:

    • Midi input (auto accompaniment to fed melody lines)
    • Generative Rhythm
    • Micro tonality
    • Pitch bending from one pitch to the next
    • Wave to midi converter (including pitch trace on / off)
    • Classical forms selection (fugue, sonatas ..etcetera

    What have you used to write it? Is it open source?
    Again thanks man. It rocks

    Remco

  62. Remco says:

    oh …. one more thing.
    How about porting this into a realtime VST
    Would that even be feasible?

    Another idea: Groove patterns. Mail me if it sounds too cryptic

  63. Maciek says:

    @Remco Thanks for the ideas and for the kind words about cgMusic. I’m glad that you like the results. Unfortunately I don’t have the time to develop the software any more 🙁

  64. David says:

    i can’t runn cgMusic on my windows xp sp3. there’s a MSVCP71.dll error. I’d very much like to try your programm.
    what should i do?

  65. Maciek says:

    @David This shouldn’t normally happen. Maybe you could try installing the VC runtime libraries from MS: http://www.microsoft.com/downloads/en/details.aspx?FamilyId=32BC1BEE-A3F9-4C13-9C99-220B62A191EE&displaylang=en
    I hope it resolves your problem.

  66. Debi says:

    Great software! Please open source it!

  67. Antonin says:

    Hello Maciek,

    First, excellent job!

    I have a question and even if few people already asked it I didn’t found an answer. So forgive me if I am asking something what you answered many times before.

    Here it is: Is it possible to use music from cgMusic in commercial indie app?

    Antonin

  68. Maciek says:

    Hi Antonin. Unfortunately the music created in cgMusic cannot be used commercially.

  69. Antonin says:

    Hi,

    well, you made me sad but I must respect this. I am wondering if here is a chance to contact you.

    mr.engeor@gmail.com

    Antonin

  70. Clyde G. says:

    Hello Maciek,
    Thank you for making your excellent program available. Do users of CGMusic have permission to post the musical output from this program to the internet when it is published in this manner non-commercially?
    Thanks,
    Clyde

  71. Maciek says:

    Hi Clyde. Yes, you can post music from cgMusic on the internet non-comercially as long as it is clearly stated that the music was generated by cgMusic.

  72. Clyde G. says:

    Thanks Maciek for your prompt and clear response.

  73. Thomas says:

    Have a look at this: http://www.soundhelix.com/applet/SoundHelix-applet.jnlp
    (needs sound and a browser with Java 6 plugin)

  74. Per says:

    I have created a (almost complete) reimplementation of cgMusic in Java. The scripts have been ported to Java.

    What are your thoughts about that?

    The main reason for doing this was to become better at generative music programming. I will not release the source if you don’t want that to happen although it would be great if you approved 🙂

    Thanks for teaching me a lot about musical structure, rythms and styles!

  75. Maciek says:

    Hi Per, this sounds very interesting 🙂 I’m glad that cgMusic inspired you to learn so much about generative music programming. I don’t have anything against you publishing what you created, just please make sure to include a note that it’s based on cgMusic. Best regards!

  76. Per says:

    Ok thanks!
    A preliminary version of the source is available here:
    http://www.springworldgames.com/jcgmusic/jcgmusic.zip

    It might be fun to look at for you since you can see all my stupid implementation guesses 🙂

  77. Maciek says:

    Per, looks like you did a lot of work there. I’ll take a closer look at it when I find some time. Best regards!

  78. Per says:

    I am trying to take your abstractions of structure, sentences, phrases etc. and plug it into my reactive generative music module. The plan is to create a module for interactive applications like games. Unfortunately, I can’t reuse much of the reimplemented cgMusic code since my method of music generation is different.

    Here is a very early demo of the reactive music module plugged into a game:
    http://www.youtube.com/watch?v=YbDMyVVIJD0

    The music is really bad in that demo but the idea/vision is pretty clear. With better structure, style and “rendering” etc, this can be really cool, thanks to cgMusic!

  79. Emma says:

    Check out SoundHelix at http://www.soundhelix.com
    Generates cool tunes algorithmically…

  80. Lord_Braathen says:

    Congratulations for your revolutionnary software !
    I’ve never seen a procedural music software as great as this one.
    I have made a remix and an arrangement from one song generated by CGMusic, I used FL Studio + Omnisphere :
    http://www.youtube.com/watch?v=bA2QWA52mQ8
    It’s even better than some studio music, thank you so much !

  81. Philip says:

    Hi,

    I discovered your programme through a piece in Computer Shopper issue 282 August 2011.

    The MIDI file from any promising result goes to PG Music’s Band in a Box, which I find very useful. If only CG and PG could get together that would be something else. They should head-hunt you.

    Best Wishes for a brilliant career,

    Philip Fowler

  82. Dean says:

    This is damn impressive, I’m blown away!!!

  83. Tyler says:

    Simply AMAZING! You have done incredible work with this engine. This is definitely one of the best random music composers out there. Keep up the fantastic work =D

  84. v says:

    Awesome software! What is the license? Please open source!

  85. psavolai says:

    Hi,
    this is so nice that you have defined everything with editable scripts.
    I added the harmony modules with an “more advanced” chords set and I am really happy with the results.
    This is a great tool and framework to have fun with music theory

  86. psavolai says:

    Sorry to spam you like this,
    a Question about “AddHarmonic” how do I add out of scale notes to chords ?
    up.AddHarmonic(CreateTime(0,0), 1, “123567”); In key of c would result as “C major 6/9” .
    How could I add the d (2) one octave higher, resulting a different sounding inversion ?
    So what if I wanted to add C# note to that chord what would the notation be ?

    cheers.

  87. Maciek says:

    Hi psavolai. Frankly speaking it’s hard for me to remember such details, it’s been many years since I did cgMusic scripts. But if I recall correctly, the chords in the harmonic part could only contain steps from the selected mode, so I’m afraid it’s not possible to create complex harmonies on this level. But the render algorithms (the ones that write actual notes to the tracks) are free to change the notes as they please and do all kinds of inversions.

  88. ManoloKB says:

    it’s really awesome, i loved it since the first time i try it, it really helps and will be an incredible tool in game jams.
    thank you

  89. Ryan Palm says:

    Hi, First of all, great job with the software. I don’t know much about casual games, so I was wondering if casual games submitted to fgl.com are consider commercial. I’ve been doing lots of tutorials and finally I’ve started to create my own game. I’m planing to place it on fgl.com to see if I can sell a licence. Would it be possible to use songs created with this software in my project?.
    Thanks and regards

  90. Maciek says:

    Hi Ryan, I don’t see any problems with you using the songs in your software project as long as you include a statment that the music was generated by cgMusic and link to this page.

  91. Ryan Palm says:

    Wow thanks. You made my day. Then I’m going to keep working on my project and as soon as I finish it I’ll send you a link, so you can tell me if the statement is visible enough and you still allow me to use the music. Thanks a lot.

  92. Ricardo Veiga says:

    Thanks a lot for sharing your software! I was searching for an example of expert system to quote in a college lecture on management of information technology.

    Well, for me you sound like a genius!

    Thanks again!

  93. Marco says:

    Wonderful software, astonishing!
    One question please: are musics created by your program bound by some terms of use or copyright requirements to be applied ? May I use the midi tracks created by your program free of charge ?
    Many thanks for this software masterpiece and best of luck for your job.

  94. Maciek says:

    Hi Marco, if you want to use music generated by cgMusic, the only thing I ask is that you include a statment that the music was generated by cgMusic and link to this page

  95. Marco says:

    Hi Maciek! Thanks for your kind reply! I will surely do as you requested.
    many, many thanks for your generous gift.

  96. CIANO says:

    Compliments ! I went to your cgMusic just for case: I’m using it and compared with practically all the other available softwares and must say that cgMusic is
    really the FIRST and the BEST (for musicians ) IT IS A PITY IF YOU WILL NOT IMPROVE IT adding other styles and expanding the database : At the end it will be
    a real help for serious musicians.

  97. CMay says:

    Have you considered licensing the output from cgMusic as CC-By? It seems as if in the past you did not want output to be used for commercial works, though now you seem OK with it. There may be enough interest to edit the article with an explicit statement which links to a CC license, applying only to the output of cgMusic and not cgMusic itself.

    To allow commercial use, but require that you are attributed:
    http://creativecommons.org/licenses/by/4.0/

    To disallow commercial use and require that you are attributed:
    http://creativecommons.org/licenses/by-nc/4.0/

    Currently the cgMusic installer executable’s displayed license would contradict that and so it might make sense to simply replace it with a zip including a license.txt with the files rather than making a new installer if that would consume more time than you’re willing to spend.

    Whichever license you choose or whether you decide to leave it a bit ambiguous, you’ve developed something quite special.

  98. Heiko says:

    I agree with many others that this is a very nice application. Being a blind programmer and hobby music fan I am glad that the application is accessible with a screenreader like http://www.nvda-project.org. Two comments though:
    – If you’ll update the application please try to make every control accessible via keyboard and the tab cycle. Currently I have to use special screenreader commands e.g. to access the create button in the new project dialog.
    Beside this the help documents are not in english and therefore not helpful for me.

    You are right: one should keep in mind that midi music played directly often sounds kind of crappy. I recommend to use an renderer and the free sound font arachno with gave good results for the rock styles.

  99. Ondrosik says:

    Unfortunatelly, I can’t run the program on my win 7 64-bit with the following error: —————————
    cgm_app.exe – System Error
    —————————
    The program can’t start because MSVCR71.dll is missing from your computer. Try reinstalling the program to fix this problem.
    I installed the Microsoft runtime 2010 but it didn’t solve the issue. Any ideas?

  100. Emmanuel Ramos says:

    Man! thanks for this soft, you really deserve an award!

  101. Logan says:

    ‘Hoy
    I have no idea if you still monitor replies on this site, but I can’t find any other way to contact you.
    I’ve been a big fan of this program ever since I stumbled across it years ago. Recently I was looking around for other music-generation resources, and I came across this site: http://www.fakemusicgenerator.com/ which claims to generate whole fake albums in an instant. I tried it out and listened to the first song, and within moments recognized the distinctive patterns. This site is using your cgmusic’s algorithms to generate music. I couldn’t tell at all if you were associated with it, but I figured I should let you know.

  102. Robert says:

    You’ve done an awesome job writing this software! I’ve tried many other algorithmic composition programs. Most algorithmic composition software doesn’t include the factors necessary to make a complete song (without human intervention). It seems as though most other algorithmic composition software is really better for writing motifs. Is your code open source?

  103. bmceldowney says:

    Thanks so much for this!

    @Ondrosik
    I had the same problem on Windows 8. The instructions at the following link worked for me (even though it says it’s for Windows 7):
    http://www.addictivetips.com/windows-tips/fix-msvcp71-dll-and-msvcr71-dll-missing-error-in-windows-7/

  104. alfwein says:

    Thank you very much for providing the software for free. This is very cool.

    By the way, you said that the music can’t be used commercially, so it means that I cannot sell my game that uses music generated by cgMusic?

  105. Maciek says:

    @alfwein Actually, I’ve been getting a lot of questions about the possibility of using cgMusic commercially and generally I was allowing it. The only thing I ask is that it is clearly stated in the credits that cgMusic was used during music production. Also it would be great if I could get a copy of the game, to see how the music was used 🙂

    Anyway, this credit is important as copyright law is very unclear when it comes to algorithmic compositions. I would like everyone to avoid potential problems – after all the program can give two people identical results if the same random seed is used.

  106. SCAREKRO says:

    Hi Maciek, this is literally mind blowing! I recently watched a short doco on the progress of machinery/robotics and computer technology and its impacts on human occupations – it was quite interesting learning that computers were quite capable of ‘creative’ expression (given the right human instruction).

    I have always wanted to learn to code and create a game, so I decided to start doing that this year. I have been able to begin creating a game but I have struggled with music creation (given that my musical knowledge is quite basic). Watching the documentary, that I referred to, gave me the idea of searching for a program which would procedurally generate music. This led me to come across your program, for which I was able to produce some quite awesome pieces of music, that I felt quite suited the game I was making (I just changed some instruments with Anvil Studio and then ran them through an 8bit filter and was so happy with the results.) I was wondering and hoping that I would be able to use these tracks in my game, which I one day hope to make commercially available… as distant as that dream seems. Obviously you, and your program, would be credited with music production.

    Anyway, thanks for producing this program, it is quite excellent and regardless, has helped me increase my musical knowledge.

  107. srikanth says:

    i have installed it but if i try to run im getting this error. i tried reinstalling too…

    “This program can’t start because MSVCP71.dll is missing from your computer. Try reinstalling the program to fix this problem.”

  108. eternum says:

    Very good job!!! It’s awesome for me. Great music software!

  109. Wazza says:

    I had some problems running on windows 8 as well. Worked it out though thanks to bmceldowney comment…
    If anyone else is having troubles check out the link bmceldowney posted – http://www.addictivetips.com/windows-tips/fix-msvcp71-dll-and-msvcr71-dll-missing-error-in-windows-7/

  110. GT-Music-Online says:

    Hello Maciek,

    Thanks for an amazing program!

    I stumbled across your program on another site and thought I would give it a try. My initial intention was to use it to practice creating compositions. I found myself doing far more than that!

    While I did use your program as a basis for my compositions I (after exporting the projects to midi) dissected, rearranged and recreated the individual parts. Using midi, I also created my own parts like Bass, Guitar and Drums, ultimately ending up with my own creations.

    The reason I am writing here today is because there seemed to be some confusion as to the commercial use of songs created by cgMusic. As you stated in an earlier post “copyright law is very unclear when it comes to algorithmic compositions”. I also understand that the program can give two people identical results if the same random seed is used. Since I used cgMusic as a starting point as opposed to the only point I don’t think this would be an issue.

    My initial intention was to use proceeds from an album I created to fund future projects but I am not sure that I want to get all wrapped up in the copyright game so, I decided to create computer generated music videos for each song and release them together as sort of a free video album. The only possible income generated from these videos would be in the form of possible advertising revenue generated from YouTube. I don’t think this will be a problem.

    When the project is complete credit will be appropriately given to cgMusic complete with links.

    As of this writing, I have not yet uploaded any videos but I did however create a very basic web page with a player on it that contains all 10 songs from the album. I would be honored if you were to visit and listen at your leisure since you were the inspiration for the entire project.

    The album can be found here:
    http://www.vachpro.com/StupidStudiosPlayers/AccidentalCoincidence/stillborn_redefinition_player.html

    Thank you.

    P.S. I will re-post a link once the project has been completed and the videos uploaded.

  111. GT-Music-Online says:

    OK, here is the update as promised.

    Rather than post 10 different links, one for each video, I decided to create an account on ReverbNation that will allow folks to listen to the album, download the songs for free and watch the HD videos that have been uploaded to YouTube. All of this can be obtained by visiting: http://www.reverbnation.com/accidentalcoincidence

    I must say that I am pleasantly surprised because in just 4 short days the album already ranks #2 in Local Electronica, as well as #359 Nationally and 971 Globally! Not bad for an experimental side project.

    For those who want the highest quality download of the album simply visit BandCamp at: http://accidentalcoincidence.bandcamp.com
    I uploaded to BandCamp because the other sites simply don’t allow for high quality downloads which I felt was important. BandCamp doesn’t allow for freebies however so, I set the price at a whopping $0.

    Appropriate credit has been given to cgMusic in all locations complete with a brief explanation of how this project came about. I will be posting a link back to this page on the ReverbNation site as promised.

    The videos are copyrighted, since Stupid Studios did produce them but the music itself is 100% FREE!

    Enjoy!

  112. William Campbell says:

    I have a free version of CG Music. When I upgraded to Windows 10, the audio (sound) no longer is heard from my speakers or my headphones. (The program worked well in Win 8.1, pro 64 bit). I have another similar program, Easy Music Composer, that was installed at about the same time and it works just fine. Also my wav and Midi files play fine with Windows Player. Are you aware of any reason why cgmusic would stop working? Is there a possible fix? Thanks for ANY HELP!

  113. Tiled Quest, a Game Jam Entry by Doa Ibu | Tempa Labs says:

    […] We also decide to make the games using Phaser for HTML5. After that, it’s just a matter of execution. We are really fortunate because me and Rosan already have experience in using Phaser, Novel already proficient in creating interface/game component in pixel art, and Rino is talented illustrator with lots of original/interesting idea and draw style. Unfortunately for us, musician is quite rare in this type of event and we can’t get one to join us. It’s not much of a problem though, as I already have great collection of sfx from Universal Sound FX and can generate music using automatic music generator tool from cgMusic. […]

  114. GT-Music-Online says:

    William,

    I too had issues after installing Windows 10. I also have the Pro 64 bit version.

    After much research and searching for a solution I found that it has something to do with the way windows creates the default midi out device.

    To make a long story short simply go to:
    http://coolsoft.altervista.org/en/virtualmidisynth

    Download a sound font, download and install Virtual Midi Synth and set it up using the simple instructions (a link to easy set up is on the page).

    After you set everything up simply open cgMusic and create a new project.

    You should find everything working again plus, it sounds better than the old windows midi.

    Hope this helps!

  115. Dave Giles says:

    CG Music delivers some of the most amazing midi music I’ve ever heard in my life! You are a true musical genius in every sense of the word, and deserve every bit of praise imaginable! I can’t even begin to express how wonderful this software program really is. It just blows my mind!

  116. serpentsnoir says:

    This is a gem! Too good to be left in the past. Would be glad to carry the program forward if you are too busy. If not (reluctantly) I will start building my own.

  117. sunil says:

    cg music appears to be a great software….unfortunately i ahve not been able to use it. reason being that when i try to install …it says the dll file missing and stops installing. please guide…i am very eager to use the software. thank you

  118. Maciek says:

    @sunil If you look a few comments back you will find people posting solutions to this problem.

  119. serpentsnoir says:

    This is the first of 3 posts. I have created 2 scripts that will show you how to vary the volume for a rendered part. The first is the arrangement, and the second is the script that has a variable volume. The volume starts randomly between 66 and 80, goes up uniformly to between 120 and 127 and then back down uniformly. You can turn on the log to watch if you like. Add the first script in the arrangement directory and the second in the render directory.

  120. serpentsnoir says:

    add this to the arrangements directory====
    string GetDescription()
    {
    return “A sample arrangement that lets you vary the volume of an instrument.”;
    }

    void Arrange(Song @s)
    {
    int bars = s.GetBars();

    // The arrangement
    s.AddTrack(“Melody”, 1,127, 63);
    s.AddTrack(“Drums”, 1,127, 63);

    s.AddRenderEvent(“Simple Melody Dynamic Volume”, RndInt(0,32000), 0,0,bars, 0, CreateTime(0,0),1);
    s.AddRenderEvent(“Metronome”, RndInt(0,32000), 1,0,bars, 0, CreateTime(0,0),1);
    }

  121. serpentsnoir says:

    add this to the render directory====
    string GetDescription()
    {
    return “Renders the melody into a track with Volume variations”;
    }

    int leftside(int minVol, int maxVol,int events,int i)
    {
    double result = (((0.0+maxVol-minVol)/(events/2))*i);
    return( result );
    }

    int rightside(int minVol,int maxVol,int events,int i)
    {
    double result = (((0.0+maxVol-minVol)/(events/2))*(events-i-1));
    return( result );
    }

    int MathMin(int i, int j)
    {
    if (i < j) return i;
    else return j;
    }

    int VolumePeak(int minVol, int maxVol, int events, int i)
    {
    return(minVol+MathMin(leftside(minVol,maxVol,events,i),rightside(minVol,maxVol,events,i)));
    }

    void Render(RenderPart @p)
    {
    int maxVol = RndInt(120,127);
    int minVol = RndInt(66, 80);
    //Log(” “+minVol+” “+maxVol);
    for (int i = 0; i < p.GetEvents(); i++)
    {
    // Log(” “+i+” “+VolumePeak(minVol,maxVol,p.GetEvents(),i)+” “+leftside(minVol,maxVol,p.GetEvents(),i)+” “+rightside(minVol,maxVol,p.GetEvents(),i));
    p.AddNote(p.GetEventStart(i), p.GetEventEnd(i), p.GetEventPitch(i), VolumePeak(minVol,maxVol,p.GetEvents(),i));
    }
    }

  122. Danny says:

    What do these terms/settings for the Mode mean? (I have training in music theory but they don’t correlate to any English terms that I am familiar with)

    Major (soft)
    Major (harmonic)
    Minor (doric) Is this Dorian?

  123. Maciek says:

    @Danny Sorry for that. I don’t have any formal training in music, and English is not my native language. I was probably translating names from some Polish books on music theory. Anyway, the intervals are as follows: “minor (natural)” 2-1-2-2-1-2-2 | “minor (harmonic)” 2-1-2-2-1-3-1 | “minor (doric)” 2-1-2-2-2-2-1. I hope I got that right. I was translating directly from the source code, which wasn’t intervals.

  124. Danny says:

    Maciek-

    Thank you for the prompt response! Between your answers and analyzing the output of the MIDI files on my own, I have the answers I was looking for.

    Minor (Natural) – Natural Minor Mode
    Minor (Harmonic) – Harmonic Minor Mode
    Minor (Doric) – based on what you’ve said, this is the Melodic Minor scale, signified by the raised 6th and 7th with the minor 3rd. I don’t know if that matches up with the translation for “Doric.”

    Major (Natural) – standard diatonic Major mode.
    Major (Harmonic) – a diatonic Major scale with a flatted 6th. (Does not have a name in conventional Western theory.)
    Major (Soft) – a diatonic Major scale with flatted 6ths and 7ths. (Does not have a name in conventional Western theory.)

    I hope this helps anyone else who is wondering.

  125. Ardafg says:

    MIND = BLOWN

    Than you very much for this !!

  126. serpentsnoir says:

    great work Danny, i was wondering about the “soft” version. what tools did you use to dig into the midi files. I just open it in either GP5 or MuseScore.

  127. Danny says:

    I exported to MIDI and used Finale to open up the file. It was pretty easy to figure out once I saw a few lines of each mode in notated form. 🙂

  128. Joe says:

    I can’t seem to get it to work on any of my 3 systems, all of which are Windows 10, though I’m really interested in giving this a try. I keep getting the MSVCP71.dll is missing error, is this because of Win10?

  129. Dave says:

    I initial had a problem just installing on Win8.1 and the tried 10. Same problem as you Joe
    I installed MSCCVP71.dll which is not in W10 or W8! despite installing Dot Net fx4. Even threw in a copy in the install directory alongside the angel.dll for good measure.
    I have found that W10 will not accept a lot of the older software written for W7 etc. In some cases some will irretrievably crash W10. Be cautious in 10 🙂
    Maybe this post will get posted my last one “disappeared”
    Any answers please ?

  130. Dave says:

    Ooops that should read MSVCP71 spot of finger bounce 🙂

  131. Dave says:

    Joe: I have just run a full search and compatibility test in Windows 10 going back to Win7
    run compat and W10 has come up with “Incompatible Application” I have removed the program as I am threw out all my 486 computers etc 🙂 Sayonara San 🙂 Would have been nice to see it just work a little bit in W8/10 c’est la vie.

  132. Maciek says:

    Sorry for the problems you are having running cgMusic. The app has been designed for Windows 7 and I never had the chance to update it. I probably won’t be able to get back it anytime in the near future. Many people have managed to run it without problems though, some needed to install missing dll files. But some people just can’t run it. It’s a pity MS is so messy when it comes to keeping compatibility…

  133. GT-Music-Online says:

    Hey Joe! Read comment #114. I am running the latest version of Windows 10 and it works for me.

  134. David says:

    I would gladly pay money for this. As much as I love getting all of this awesomeness for free, I would love to see this developed into a hearty paid program. It would be worth it for the long term users and for ongoing development of new modules. Please take my money!

  135. Someone says:

    I find it really restrictive & crappy that music I generate myself using a midi file I made with this would be unable to be used any way I please. Why do people feel the need to completely destroy freedoms & freedom of use, especially for something like this?! Because then, what is the freaking point? I just think it’s a really crummy thing to do. Why even bother sharing this if people can’t even use what they generate? I wont be using it. Sad to find another well-developed idea ruined by stupid licensing, terms or copyright crap. Leave that stuff where it belongs – in the trash. Just share….

  136. NICK says:

    sorry ur prog is not working cause MSVCP71.dll is missing;how comes?what can i do?

  137. Paul Friedrich says:

    Any chance of an update with more settings and may a mp3 output? 🙂

  138. Anonymous says:

    If this crashes on launch, try to run it in WinXP compatibility mode. Then if it asks you for DLLs, you must copy-paste said DLLs from other software on your computer(searching on your whole PC via the windows explorer is the easiest way to do that).

  139. ynys says:

    After my initial search for generative music software, I would say that, so far,
    This is simply the best
    Better than all the rest . . .

  140. Ben says:

    For anybody having troubles with the MSVCP71.dll error, check out the link at comment #103. It helped me! (Windows 10 x64)

  141. Richard says:

    I am really impressed by it, and it’s also perfect since it doesn’t completely make the best songs so there is a lot to work with each generated midi for musicians. Great way to get inspiration and write music with, wouldn’t want it any better in my opinion 🙂

  142. Andy says:

    It’s been awhile since the release of the program, hoping you can find a way to open-source the code to allow future development. I’ve translated the documentation into English, but I was hoping there could be some tutorials on script coding, some additional info about the inner engine calls or if you could find the time to write additional scripts. I am hoping to find a way to write music in the same vein as Zelda, a smooth sounding pastoral type song in the Lydian mode but I’m not sure how that would be done via the documentation provided.

  143. Harrison says:

    Do I have to obtain a license to use cgMusic’s generated music for *PUBLIC* non-commercial use?

Leave a Reply

You must be logged in to post a comment.