It is hereby certified that ______Alisa Yap Yi Hui (ID No: __19ACB01195 ) has completed this final year project entitled "Real-Time Algorithmic Music Composition Application" under the supervision of ___ Ts Soong Hoong Cheng ___ (supervisor) of the Department of Digital Economy Technology , Faculty _Information and Communication Technology. First of all, I would like to express my sincere thanks and appreciation to my supervisor, Ts Soong Hoong Cheng, for his invaluable guidance and direction during my final year project.
Introduction
- Problem Statement and Motivation
- The production of music is resource intensive
- Music composition is a complex process
- Limitations of using music produced by others
- Objectives
- Project Scope and Direction
- Contributions
- Report Organization
Users will only need to provide the parameters of the key, speed, pitch and instrument type in order to compose music. The expected outcome will be a system that can simplify the music composition process, even for users with little musical background, since most of the generative work is done by the system itself.
Literature Review
Methods for Algorithmic Composition .1 Stochastic Methods
- Rule-Based Models
- Artificial Intelligence
- Comparison of Algorithmic Composition Methods
Rule-based algorithmic composition systems integrate the use of constraints and predefined formal grammars, a set of principles to be followed during music generation. In addition to constructing the grammar for composition, GP in algorithmic composition further enables the system to also construct the musical material to be used for the composition [9].
Music Composition .1 The Circle of Fifths
- The Golden Ratio and its Application in Music
The golden ratio, also known as the divine ratio, is a unique mathematical concept often found in nature. The Fibonacci sequence and the golden ratio are evident in music through their presence in musical instrument design, compositional techniques, and the octave, which is the basic unit of melody and harmony.
Critical Remarks of Previous Works .1 Computoser
- Ecrett Music
- ArtSong
It allows users to edit the music in detail, with options to adjust the tempo, volume and duration of the music track. Users can control the parameters of the created music in the property editor as shown in Figure 2.7, where they can adjust a number of elements such as the length, tempos, number of tracks and scale of the music they want. Additionally, users can also modify the base of the random generator to experiment with the different compositions the system can offer.
In addition, the system also allows users to change the notes of the generated composition via the MIDI note editor, as shown in Figure 2.9, where users can use it to easily add, edit or delete the generated notes. Users can edit the algorithmically composed music in minute detail and even add, edit and delete the notes of the generated music through the system's note editor. The table below shows the comparison of the functions provided by each of the 2.2.4 Comparison of Existing Methods.
The following table shows the comparison table for the algorithmic composition systems from Sections 2.2.1 to 2.2.3. Most of the limitations mentioned in the previous sections can be solved by adding additional features in the system that provide this functionality.
System Methodology/Approach
System Design Diagram/Equation .1 System Architecture Diagram
- Use Case Diagram and Description
- Activity Diagram
As shown in the diagram above, the user is the only actor of the system. Users can perform various actions such as generating music, generating chord progressions, playing music, editing music, and viewing their music library to load or delete music files. When music is generated or after a user has finished editing a piece of music, he or she can also save the music to a MIDI file.
System Design
- System Flow
- Music Generation
- Chord Generation
- User Requirements Functional Requirements
- System Specifications
- System User Interface Design
First, the system receives the GA parameters provided by the user and determines the number of annotations to be generated and how many generations to perform. After that, the populations go through the steps of fitness estimation, selection, crossover and mutation, where random notes will be selected to perform crossovers or mutations. If the current iteration is not the last generation, the process will be repeated, otherwise if it is, the created measure will be retrieved and the system will use this sequence of notes to create music based on the musical parameters provided by the user.
The table below shows the parameters that the system is able to take in and generate music from. The system generates music using either two or four layers, depending on how many instruments the user selects. For generating chord progressions, the posterior probability distribution will be used to construct a Markov chain.
Generally, the main controls will appear in the center, while at the bottom will be controls such as generate, play and save. In addition, there will also be a navigation bar on the left for users to navigate between the system's functionalities.
System Implementation
- System Methodology
- Project Workflow in Phased Development Model
- Project Timeline
- Technologies and Tools Involved
- Hardware Involved
- Software Involved
- Implementation Outcome
Moreover, Improvements and modifications to the system's design are also made through continuous feedback. In the fourth phase, which is the implementation phase, the design of the system will be implemented by coding it. During this stage, the system will be programmed and tested before the system is introduced to the users.
By implementing this development model, the analysis, design and implementation phases are repeated several times before the final version of the system is launched. The most fundamental requirements for the overall system would be prioritized in the first iteration of the analysis phase, and would therefore be included in the first version of the system. Finally, after launching the final system version, maintenance is performed by monitoring the performance of the system to ensure that the system is functioning properly.
Besides that, for project 2, tasks include continuing to develop the rest of the system's functions, final testing, debugging and implementation of others. With that said, development of the system will be done in the Eclipse IDE, an open source integrated development environment compatible with Windows, Mac and Linux devices.
System Evaluation and Discussion
- Testing Setup and Result
- Music/Chord Generation
- Save Music
- Load Music
- Edit Music
- Play Music
- View Music Library
- Delete Music
- Project Challenges
- Objectives Evaluation
If the file was not saved, ensure that the system displays an error message to the user. Aim/Purpose To ensure that the system is able to load a previously created piece of music. If the file is uploaded successfully, ensure that the system displays the success message to the user.
If the file failed to load, ensure that the system displays an error message to the user. Purpose/Scope To ensure that music files are displayed in the system's music library. Purpose/Scope To ensure that the system can delete a midi file of a previously created piece of music.
If the file has been successfully deleted, make sure that the system displays a success message to the user. If the file cannot be deleted, make sure that the system displays an error message to the user.
Conclusion and Recommendation
Conclusion
In the third chapter, the approach to be taken to develop the system is described using a system architecture diagram and use case diagram. Furthermore, in the fourth chapter, the system design was explained with the use of a flow chart to illustrate the process that will be undertaken to generate the music. The parameters and implementation details of the genetic algorithm were explained, as well as the music parameters to be provided by the users of the system.
Besides that, for chord generation, the system uses a probability distribution obtained from a dataset of classical music. A plan is written for each use case to test the functionalities of each of them and to ensure that the system works as intended. After testing the system, it was confirmed that the system is not at fault.
Similar to chapter five, screenshots of the system were also provided to show the result obtained. As evidenced by our test results, the system is able to successfully generate and play music, therefore it is able to save the composer's time by automating the entire composition and refinement process.
Recommendation
In short, the novelty of this project is the creation of a simple algorithmic music composition application for beginner composers with limited musical knowledge. Finally, although the fitness function currently allows the genetic algorithm to produce a sequence of notes that sound harmonious together, there may still be adjustments to further improve the quality of the music produced. 2012) The four elements of music – melody, harmony, rhythm and dynamics. https://pianonotes.piano4u.com/index.php/2012/07/the-four-elements-of-music-melody-harmony-rhythm-and-dynamics/. 2021).
Byrne, "NEUROGEN, Musical Composition Using Genetic Algorithms and Cooperating Neural Networks Anden internationale konference om kunstige neurale netværk, 1991, s. Gudwin., "Vox Populi: An Interactive Evolutionary System for Algorithmic Music Composition." Leonardo Music Journal, vol. Teaching Rule-Based Algorithmic Composition: The PWGL Library Cluster Rules” Journal of Pedagogic Development Tilgængelig:. 2017) Algorithmic Music Composition Using Linear Algebra [Online].
Hirave, "An AI-based intelligent algorithm for music composition: Concord International Conference on Advances in Technology and Engineering (ICATE), 2013, pp. Music 110 Fundamentals of Theory [Online] Available: https://fundamentalsofmusictheory.umasscreate .net/unit Stages of the system development lifecycle.
FINAL YEAR PROJECT WEEKLY REPORT
- WORK DONE
- WORK TO BE DONE
- PROBLEMS ENCOUNTERED
- SELF EVALUATION OF THE PROGRESS So far so good
- SELF EVALUATION OF THE PROGRESS So far so good. Ned some time debugging
- PROBLEMS ENCOUNTERED None
- SELF EVALUATION OF THE PROGRESS Progress is faster than planned
- WORK TO BE DONE Submit the report to FYP portal
- SELF EVALUATION OF THE PROGRESS No problems faced
Users can now load saved midi files from the system and save the generated music in midi files. They can revert the settings back to the original file and the . Add an error message to inform the user if a file they are trying to load or delete does not exist.
The music generation code needs to be changed in order for users to change the volume. Difficult to find information about JFugue online to solve the problem of the volume not being adjustable, so spent a lot of time debugging. Added error message to inform the user if a file they are trying to load or delete does not exist.
Wrote up the report for Chapter 4 and Chapter 6, which is about tests done in the last two weeks.
APPENDICES
The originality parameters required and the restrictions approved by UTAR are as follows: i) The overall similarity index is 20% and below, and. ii) Match of individual sources listed must be less than 3% each and (iii) Matching texts in continuous block must not exceed 8 words. Note: Parameters (i) – (ii) will exclude quotes, bibliography and text matching that are less than 8 words. Note The Supervisor/Candidate(s) must/are required to provide the Faculty/Institute with a full copy of the complete set of originality report.
Based on the above results, I hereby declare that I am satisfied with the originality of the end-of-year project report submitted by my student(s) as mentioned above. Form Title: Supervisor's Comments on Originality Report Generated by Turnitin for End of Year Project Report Submission (for Undergraduate Programs).
UNIVERSITI TUNKU ABDUL RAHMAN