Skip to content

IEEE 1599 random generator, on the basis of a series of user-definable parameters, generates an IEEE 1599 file by randomly the elements present.

License

Notifications You must be signed in to change notification settings

FedericaPaoli1/IEEE1599Generator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 

Repository files navigation

MIT License


IEEE1599 Generator

Table of Contents
  1. About The Project
  2. Getting Started
  3. Usage
  4. License
  5. Contact

About The Project

IEEE1599Generator is a project developed for the Music Programming exam at the University of Milan (academic year 2020-2021). It is an application which, on the basis of a series of user-definable parameters, generates an IEEE 1599 file by randomly the elements present.

Built With

Getting Started

Prerequisites

  • Java 11.0.12
  • Apache Maven 3.8.2

Installation

  1. Clone the repo:
    git clone https://github.com/FedericaPaoli1/IEEE1599Generator.git
  2. Run the following command:
    mvn clean package 

Usage

  1. Within the target/ folder, run the following command:

    java -cp IEEE1599Generator-1.0-SNAPSHOT-jar-with-dependencies.jar com.ieee1599generator.IEEE1599App 

    followed by the parameters:

    Description Default
    --creator=<String> creator name of the IEEE1599 file
    --title=<String> musical composition title Title
    --author=<String> musical composition author Author
    --track-length=<long> track length in seconds
    --bpm=<int> time expressed in bpm
    --metre=<first parameter:second parameter> metre expressed as a string
    --instruments-number=<int> musical instruments number
  2. Specify the following parameters as many times as there are musical instruments (instruments-number):

    Description Default
    --max-notes-number=<int> maximum number of played notes
    --min-duration=<numerator/denominator> minimum duration of musical figures expressed as integers array
    --max-duration=<numerator/denominator> maximum duration of musical figures expressed as integers array
    --min-height=<Anglo-Saxon note name>_<possible accidental (sharp, sharp_and_a_half, demisharp, double_sharp, flat, flat_and_a_half, demiflat, double_flat)><octave> minimum height of musical figures expressed as a string
    --max-height=<Anglo-Saxon note name>_<possible accidental (sharp, sharp_and_a_half, demisharp, double_sharp, flat, flat_and_a_half, demiflat, double_flat)><octave> maximum height of musical figures expressed as a string
    --max-notes-number-chord=<int> maximum number of notes in a chord
    --irregular-groups=<boolean> presence or absence of irregular groups
    --min-delay=<int> minimum delay in VTU after which the next note will sound
    --seed=<long> seed for random object 1234
  3. Once execution is complete, the following will be generated:

    • the IEEE1599 file, called ieee1599.xml
    • the log file, called ieee1599.log
  4. To generate the Java documentation, run the following command:

    mvn javadoc:javadoc 

    and in /target/site/apidocs/ you will find the generated javadoc file, called index.html.

Usage examples

After positioning yourself in the /target folder:

  1. Generation of IEEE1599 file with a single musical instrument:
 java -cp IEEE1599Generator-1.0-SNAPSHOT-jar-with-dependencies.jar com.ieee1599generator.IEEE1599App --creator=Federica --track-length=120 --bpm=108 --metre=4:4  --instruments-number=1 --max-notes-number=150 --min-duration=1/8 --max-duration=1/1 --min-height=C-1 --max-height=A4 --max-notes-number-chord=3 --irregular-groups=false --min-delay=256 
  1. Generation of the IEEE1599 file with the presence of irregular groups:
 java -cp IEEE1599Generator-1.0-SNAPSHOT-jar-with-dependencies.jar com.ieee1599generator.IEEE1599App --creator=Federica --track-length=120 --bpm=108 --metre=4:4 --instruments-number=1 --max-notes-number=150 --min-duration=1/8 --max-duration=1/1 --min-height=C-1 --max-height=A4 --max-notes-number-chord=3  --irregular-groups=true --min-delay=256
  1. Generation of IEEE1599 file with the presence of accidental in note pitches:
 java -cp IEEE1599Generator-1.0-SNAPSHOT-jar-with-dependencies.jar com.ieee1599generator.IEEE1599App --creator=Federica --track-length=120 --bpm=108 --metre=4:4 --instruments-number=1 --max-notes-number=150 --min-duration=1/8 --max-duration=1/1 --min-height=C_flat_and_a_half2 --max-height=A_sharp_5 --max-notes-number-chord=3 --irregular-groups=false --min-delay=256
  1. Generation of IEEE1599 file with more than one musical instrument:
 java -cp IEEE1599Generator-1.0-SNAPSHOT-jar-with-dependencies.jar com.ieee1599generator.IEEE1599App --creator=Federica --track-length=120 --bpm=108 --metre=4:4 --instruments-number=5 --max-notes-number=150 --min-duration=1/8 --max-duration=1/1 --min-height=C-1 --max-height=B_sharp_9 --max-notes-number-chord=3 --irregular-groups=true --min-delay=256 --max-notes-number=200 --min-duration=1/16 --max-duration=1/2 --min-height=E2 --max-height=A4 --max-notes-number-chord=2 --irregular-groups=true --min-delay=256 --max-notes-number=250 --min-duration=1/32 --max-duration=1/4 --min-height=C-1 --max-height=G8 --max-notes-number-chord=5 --irregular-groups=false --min-delay=2 --max-notes-number=50 --min-duration=1/64 --max-duration=1/1 --min-height=D_flat_and_a_half2 --max-height=A5 --max-notes-number-chord=1 --irregular-groups=true --min-delay=100 --max-notes-number=20 --min-duration=1/2 --max-duration=1/1 --min-height=B-1 --max-height=A9 --max-notes-number-chord=7 --irregular-groups=false --min-delay=256
  1. Generation of the IEEE1599 file with a different setting of the values that have the default value:
 java -cp IEEE1599Generator-1.0-SNAPSHOT-jar-with-dependencies.jar com.ieee1599generator.IEEE1599App --creator=Federica --title=DifferentTitle --author=DifferentAuthor --track-length=120 --bpm=108 --metre=4:4  --instruments-number=1 --max-notes-number=150 --min-duration=1/8 --max-duration=1/1 --min-height=C-1 --max-height=A4 --max-notes-number-chord=3 --irregular-groups=false --min-delay=256 --seed=5678

License

Distributed under the MIT License. See LICENSE for more information.

Contact

Federica Paoli' - [email protected]

Project Link: https://github.com/FedericaPaoli1/IEEE1599Generator

About

IEEE 1599 random generator, on the basis of a series of user-definable parameters, generates an IEEE 1599 file by randomly the elements present.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages