Like many other people, I have a frustrated dream… To compose something that I am proud of. Whether it is due to lack of talent, lack of discipline or both, composing is quite a difficult process for me. Due in part to the above, I am attracted to the help that AI can provide to the artist in the creative process and in this project I wanted to know a little more about the possibilities of magenta.js in the creation of melodies and ways of combine those melodies. Eternal Circles provides the artist with a palette of melodies that they can explore and play with: I like to think of this application as an instrument in which melodies can be combined, changed, generated, mixed. You can also combine timbres, volumes, and textures. The application has 4 voices (discs) and 8 melodies (tiles) with which you can create an infinite number of combinations (works), in which both artist and listener have a dynamic role during the execution of the piece.
For the creation of this application I used many of the concepts learned during the Bitrate meetings, specifically the teachings on the use of P5.js Tone.js and Magenta.js, libraries that I had never used. Tero Parviainen's blogs / codes were also very helpful to me as well as the article Melody Mixer: Using TensorFlow.js to Mix Melodies in the Browser; on the other hand, I greatly admire the work of Arvo Pärt and Leo Brouwer and in Eternal Circles I also sought to implement some of their musical characteristics.
I am not a professional programmer, I have only taken some online courses, for this reason, many things were difficult for me in the implementation of my idea and I am sure that several things could have been implemented in a better way. I especially had trouble handling the asynchronous concept in JavaScript and creating a nice user interface. I am proud to have finished much of the functionalities that I thought of in my head and I also like the result, but I know many things should be still improved.
I learned many things creating this application, especially I was shocked to see that even using just the client (the explorer Chrome in this case) there are such powerful libraries to make music without the need for a server. Magenta is undoubtedly an exceptional tool for the creative process of artists, and there is no doubt that we will see many new uses for this tool soon.
I would like to add soon to Eternal Circles the ability to change all the melodies: In this version, the user can only use the default melodies or those generated by magenta, I would like that outside of this, she could also use her own melodies and / or modify the previous ones.
Feel free to test my app at https://juancopi81-eternal-circles.glitch.me/