Homework Solution: Hi, can i get some help with modifying this code based on the comments. thanks…

    Hi, can i get some help with modifying this code based on the comments. thanks public class Note { /** Static Constants */ public static final int DEFAULT_INTENSITY = 50; public static final int REST_PITCH = 128; // First illegal pitch, used for rests. private static final int PITCHES_PER_OCTAVE = 12; private static final String[] NOTE_LETTERS = {"c","c#","d","d#","e","f","f#","g","g#","a","a#","b"}; private static final double MIN_DURATION = 1.0/64, // One sixty-fourth MAX_DURATION = 8.0; // Eight whole notes /** Fields (Immutable) */ private final String pitch; private final int midiValue; private final double duration; /** * Instantiates a new note based on a string denoting note letter and octave. * * @param pitch the pitch (e.g. "f6") * @param duration the duration * @throws NullPointerException if pitch is null * @throws IllegalArgumentException if: * 1. The pitch parameter is malformed or out of range. * 2. The duration parameter is out of range. */ public Note(String pitch, double duration) { // TODO // Recommended: First implement toMidi(String). } /** * Instantiates a new note based on MIDI value. * * @param midiValue the MIDI value (e.g. 68) * @param duration the duration * @throws IllegalArgumentException if: * 1. The MIDI pitch parameter is out of range. * 2. The duration parameter is out of range. */ public Note(int midiValue, double duration) { // TODO // Recommended: First implement toPitch(int). } /** * Instantiates a new note from a String matching the format of Note's toString() method. * * @param note the string representation * * @throws IndexOutOfBoundsException if parameter isn't in correct format * @throws NumberFormatException if duration representation cannot be parsed as double * @throws IllegalArgumentException if the elements in the format are not permitted. */ public Note(String note) { this(note.split(" x ")[0], Double.parseDouble(note.split(" x ")[1])); } /** * Converts a pitch string to a MIDI value. * The pitch "rest" should return {@link #REST_PITCH}. * * @param pitch the pitch to convert * @throws NullPointerException if pitch is null * @throws IllegalArgumentException is the String is not a legal pitch * @return the MIDI value */ public static int toMidi(String pitch) { // TODO return -1; } /** * Converts a MIDI value to a pitch string. * The MIDI value 128 should return "rest". * * @param midiValue the MIDI value to convert * @throws IllegalArgumentException if the MIDI value is outside of legal range * @return the pitch string */ public static String toPitch(int midiValue) { // TODO return null; } /** * Gets the pitch string of this note. * * @return the pitch */ public String getPitch() { return pitch; } /** * Gets the MIDI value of this note. * * @return the MIDI value */ public int getMidiPitch() { return midiValue; } /** * Gets the duration of this note. * * @return the duration */ public double getDuration() { return duration; } /** * Returns a new note with the same pitch, but with its duration multiplied by the parameter. * * @param factor the amount to scale by * @throws IllegalArgumentException if resultant duration is outside of valid range * @return the stretched note */ public Note stretch(double factor) { // TODO return null; } /** * Returns a (new) note with the same duration, but transposed by the given interval. * * @param interval the interval to transpose by * @throws IllegalArgumentException if note is transposed beyond valid bounds [c0, g10] * @return the transposed note */ public Note transpose(int interval) { // TODO return null; } /** * Returns a string representation of this Note. * It should follow the format found in songs/InMyLife.song, namely: * For a Note with pitch "g#4" and duration 1.0625 -> "g#4 x 1.0625" * NB1: Identical spacing and format are important! * NB2: For a "rest" note, the same format must be used (including duration). * * @return the string representation */ @Override public String toString() { // TODO return null; } /* (non-Javadoc) * @see java.lang.Object#equals(java.lang.Object) */ @Override public boolean equals(Object o) { // TODO: Return equal if the argument is a Note and the midiValue and duration are equal return false; } @Override public int hashCode() { // TODO: Compute hash using pieces. (Don't take hash code of strings.) return -1; } }

    Expert Answer

     
    Hi, Since you have asked multiple questions in this code, I am gonna answer only one of the

    Hi, can i procure some acceleration with modifying this edict domiciled on the comments. thanks

    open class Voicelessness {

    /** Static Constants */

    open static decisive int DEFAULT_INTENSITY = 50;

    open static decisive int REST_PITCH = 128; // First illicit cast, used restraint rests.

    private static decisive int PITCHES_PER_OCTAVE = 12;

    private static decisive String[] NOTE_LETTERS = {“c”,”c#”,”d”,”d#”,”e”,”f”,”f#”,”g”,”g#”,”a”,”a#”,”b”};

    private static decisive enfold MIN_DURATION = 1.0/64, // Single sixty-fourth

    MAX_DURATION = 8.0; // Eight all voicelessnesss

    /** Fields (Immutable) */

    private decisive String cast;

    private decisive int midiValue;

    private decisive enfold period;

    /**

    * Instantiates a fantastic voicelessness domiciled on a string denoting voicelessness message and octave.

    *

    * @param cast the cast (e.g. “f6″)

    * @param period the period

    * @throws TriflingPointerException if cast is trifling

    * @throws IllicitArgumentException if:

    * 1. The cast parameter is malformed or extinguished of order.

    * 2. The period parameter is extinguished of order.

    */

    open Voicelessness(String cast, enfold period) {

    // TODO

    // Recommended: First utensil toMidi(String).

    }

    /**

    * Instantiates a fantastic voicelessness domiciled on MIDI prize.

    *

    * @param midiPrize the MIDI prize (e.g. 68)

    * @param period the period

    * @throws IllicitArgumentException if:

    * 1. The MIDI cast parameter is extinguished of order.

    * 2. The period parameter is extinguished of order.

    */

    open Voicelessness(int midiValue, enfold period) {

    // TODO

    // Recommended: First utensil toPitch(int).

    }

    /**

    * Instantiates a fantastic voicelessness from a String matching the restraintmat of Voicelessness’s toString() course.

    *

    * @param voicelessness the string truthfulness

    *

    * @throws IndexOutOfBoundsException if parameter isn’t in reform restraintmat

    * @throws NumberFormatException if period truthfulness canreferable attributable be parsed as enfold

    * @throws IllicitArgumentException if the elements in the restraintmat are referable attributable attributable attributable gratuitous.

    */

    open Voicelessness(String voicelessness) {

    this(note.split(” x “)[0], Enfold.parseDouble(note.split(” x “)[1]));

    }

    /**

    * Converts a cast string to a MIDI prize.

    * The cast “rest” should render {@link #REST_PITCH}.

    *

    * @param cast the cast to convert

    * @throws TriflingPointerException if cast is trifling

    * @throws IllicitArgumentException is the String is referable attributable attributable attributable a allowable cast

    * @render the MIDI prize

    */

    open static int toMidi(String cast) {

    // TODO

    render -1;

    }

    /**

    * Converts a MIDI prize to a cast string.

    * The MIDI prize 128 should render “rest”.

    *

    * @param midiPrize the MIDI prize to convert

    * @throws IllicitArgumentException if the MIDI prize is extinguishedside of allowable order

    * @render the cast string

    */

    open static String toPitch(int midiValue) {

    // TODO

    render trifling;

    }

    /**

    * Procures the cast string of this voicelessness.

    *

    * @render the cast

    */

    open String procurePitch() { render cast; }

    /**

    * Procures the MIDI prize of this voicelessness.

    *

    * @render the MIDI prize

    */

    open int procureMidiPitch() { render midiValue; }

    /**

    * Procures the period of this voicelessness.

    *

    * @render the period

    */

    open enfold procureDuration() { render period; }

    /**

    * Renders a fantastic voicelessness with the identical cast, barring with its period multigenous by the parameter.

    *

    * @param rudiment the totality to flake by

    * @throws IllicitArgumentException if unimportant period is extinguishedside of cogent order

    * @render the elongateed voicelessness

    */

    open Voicelessness elongate(enfold rudiment) {

    // TODO

    render trifling;

    }

    /**

    * Renders a (new) voicelessness with the identical period, barring displaced by the attached space-between.

    *

    * @param space-between the space-between to displace by

    * @throws IllicitArgumentException if voicelessness is displaced further cogent bounds [c0, g10]

    * @render the displaced voicelessness

    */

    open Voicelessness displace(int space-between) {

    // TODO

    render trifling;

    }

    /**

    * Renders a string truthfulness of this Voicelessness.

    * It should flourish the restraintmat ground in lyrics/InMyLife.song, namely:

    * Restraint a Voicelessness with cast “g#4” and period 1.0625 -> “g#4 x 1.0625”

    * NB1: Identical spacing and restraintmat are important!

    * NB2: Restraint a “rest” voicelessness, the identical restraintmat must be used (including period).

    *

    * @render the string truthfulness

    */

    @Override

    open String toString() {

    // TODO

    render trifling;

    }

    /* (non-Javadoc)

    * @see java.lang.Object#equals(java.lang.Object)

    */

    @Override

    open boolean similars(Object o) {

    // TODO: Render similar if the discussion is a Voicelessness and the midiPrize and period are similar

    render false;

    }

    @Override

    open int hashCode() {

    // TODO: Compute hash using pieces. (Don’t siege hash edict of strings.)

    render -1;

    }

    }

    Expert Tally

     

    Hi,

    Since you accept requested multiple questions in this edict, I am gonna tally solely single of them. Restraint other questions, delight request seperately.

    import java.util.Arrays;
    
    class experience {
    
    
        /**
    
         * Instantiates a fantastic voicelessness domiciled on a string denoting voicelessness message and octave.
    
         *
    
         * @param cast the cast (e.g. "f6")
    
         * @param period the period
    
         * @throws NullPointerException if cast is trifling
    
         * @throws IllegalArgumentException if:
    
         * 1. The cast parameter is malformed or extinguished of order.
    
         * 2. The period parameter is extinguished of order.
    
         */
    
        open Voicelessness(String cast, enfold period) {
    
            if(cast == trifling) {
                fling fantastic TriflingPointerException();
            }
    
    
            if(period < MIN_DURATION || period > MAX_DURATION || Arrays.binarySearch(NOTE_LETTERS, cast) == -1){
                fling fantastic IllicitArgumentException();
            }
            
            // Midi order is referable attributable attributable attributable attached so I acceptn't checked it. Provide it in the comments and I'll edit the edict accordingly
    // Recommended: First utensil toMidi(String).
    
        }
    }