Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement Note Types #5902

Merged
merged 27 commits into from
Nov 18, 2023
Merged

Implement Note Types #5902

merged 27 commits into from
Nov 18, 2023

Commits on Feb 3, 2021

  1. Initial Commit

    	Starts implementing Note Types. The two available types are
    RegularNote and StepNote. PianoRoll now paints the color with a
    different color for StepNotes. Pattern::addStep now sets the type of the
    note to StepNote.
    	Negative size is still used to signal a step note.
    IanCaio committed Feb 3, 2021
    Configuration menu
    Copy the full SHA
    b205222 View commit details
    Browse the repository at this point in the history
  2. Update Pattern.cpp to account for the Note::Type

    	Updates the methods noteAtStep(), addStepNote() and checkType()
    from Pattern.cpp to account for the note type and not the note length.
    IanCaio committed Feb 3, 2021
    Configuration menu
    Copy the full SHA
    cfb533a View commit details
    Browse the repository at this point in the history
  3. Update PatternView::paintEvent to draw step notes

    	PatternView::paintEvent now draws the pattern if the pattern
    type is BeatPattern and TCOs aren't fixed (Song Editor). Color used is
    still the BeatPattern color (grey) and the conditional doesn't look very
    nice and can be improved.
    	Pattern::beatPatternLength was also updated so it accounts for
    the note type not note length. Review this method, as it looks a bit
    weird (particularly the second conditional).
    IanCaio committed Feb 3, 2021
    Configuration menu
    Copy the full SHA
    a5cf05d View commit details
    Browse the repository at this point in the history
  4. Implements StepNotes setting a NPH with 0 frames

    	Now, instead of TimePos returning 0 for negative lengths, we
    create a NotePlayHandle with 0 frames when the note type is StepNote on
    InstrumentTrack::play.
    IanCaio committed Feb 3, 2021
    Configuration menu
    Copy the full SHA
    df88140 View commit details
    Browse the repository at this point in the history
  5. Improves PatternView::paintEvent conditional

    	Improves a conditional inside PatternView::paintEvent by
    reversing the order in which they are executed.
    IanCaio committed Feb 3, 2021
    Configuration menu
    Copy the full SHA
    7a5ad82 View commit details
    Browse the repository at this point in the history
  6. Adds upgrade method for backwards compatibility

    	Adds an upgrade method that converts notes with negative length
    to StepNotes, so old projects can be loaded properly.
    	Explicitly set the Note::RegularNote value as 0.
    	Make the default "type" value "0", so notes without a type are
    loaded as RegularNotes.
    IanCaio committed Feb 3, 2021
    Configuration menu
    Copy the full SHA
    725169a View commit details
    Browse the repository at this point in the history

Commits on Feb 11, 2021

  1. Addresses Veratil's review

    	- Changes "addStepNote" so "checkType" isn't called twice in a
    row.
    	- Changes style on a one line conditional.
    IanCaio committed Feb 11, 2021
    Configuration menu
    Copy the full SHA
    faa5209 View commit details
    Browse the repository at this point in the history
  2. Uses ternary expression on statement

    	Reduces number of lines by using ternary expression.
    IanCaio committed Feb 11, 2021
    Configuration menu
    Copy the full SHA
    9decf11 View commit details
    Browse the repository at this point in the history

Commits on Mar 5, 2021

  1. Configuration menu
    Copy the full SHA
    3576300 View commit details
    Browse the repository at this point in the history

Commits on Apr 18, 2021

  1. Merge branch 'master' into feature/BBNotes

    	Fixes conflicts from separation of classes.
    IanCaio committed Apr 18, 2021
    Configuration menu
    Copy the full SHA
    f5cc889 View commit details
    Browse the repository at this point in the history

Commits on Jul 7, 2023

  1. Merge branch 'master' into feature/BBNotes

    Fixes conflicts with master branch
    IanCaio committed Jul 7, 2023
    Configuration menu
    Copy the full SHA
    1df46a5 View commit details
    Browse the repository at this point in the history

Commits on Jul 9, 2023

  1. Addresses PR review (sakertooth)

    	- Changes class setter to inline
    	- Uses enum class instead of enum
    	- Uses auto and const where appropriate
    IanCaio committed Jul 9, 2023
    Configuration menu
    Copy the full SHA
    db0d0b7 View commit details
    Browse the repository at this point in the history
  2. Finished changes from review (sakertooth)

    	- Used std::max instead of qMax
    	- Fixed style on lines changed in the PR
    IanCaio committed Jul 9, 2023
    Configuration menu
    Copy the full SHA
    6b3c75e View commit details
    Browse the repository at this point in the history

Commits on Jul 10, 2023

  1. Uses std::find_if to save codelines

    	As suggested by sakertooth, by using std::find_if we are able to
    simplify the checkType method to two lines.
    IanCaio committed Jul 10, 2023
    Configuration menu
    Copy the full SHA
    4b69615 View commit details
    Browse the repository at this point in the history

Commits on Jul 17, 2023

  1. Addresses review from sakertooth

    	- Reverts m_detuning in-class initialization
    	- Removes testing warning
    	- Removes unnecessary comment
    IanCaio committed Jul 17, 2023
    Configuration menu
    Copy the full SHA
    89a62f6 View commit details
    Browse the repository at this point in the history

Commits on Jul 23, 2023

  1. Addresses DomClark's review

    	- Rename the Note Types enum to avoid redundancy
    	- Uses std::all_of instead of std::find_if on MidiClip checkType
    	- Rewrites addStepNote so it sets the note type before adding it
    to the clip, avoiding having to manually change the type of the clip
    after adding the note
    IanCaio committed Jul 23, 2023
    Configuration menu
    Copy the full SHA
    b3511c2 View commit details
    Browse the repository at this point in the history

Commits on Aug 21, 2023

  1. Updates MidiExport to use Note Types

    	- Now MidiExport is updated to use note types instead of relying
    on negative length notes.
    	- For that change it was necessary to find a way of letting
    MidiExport know how long step notes should be. The solution found was to
    add an attribute to the Instrument XML called "beatlen", which would
    hold the number of frames of the instrument's beat. That would be
    converted to ticks, so we could calculate how long the MIDI notes would
    have to be to play the whole step note. If the attribute was not found,
    the default value of 16 ticks would be used as a length of step notes,
    as a fallback.
    IanCaio committed Aug 21, 2023
    Configuration menu
    Copy the full SHA
    dbefa9c View commit details
    Browse the repository at this point in the history

Commits on Aug 28, 2023

  1. Configuration menu
    Copy the full SHA
    463050a View commit details
    Browse the repository at this point in the history
  2. Fixes ambiguity on enum usage

    	Due to changes in the name of enum classes, there was an
    ambiguity caused in NotePlayHandle.cpp. That was fixed.
    IanCaio committed Aug 28, 2023
    Configuration menu
    Copy the full SHA
    0054ece View commit details
    Browse the repository at this point in the history

Commits on Oct 17, 2023

  1. Configuration menu
    Copy the full SHA
    fe42e97 View commit details
    Browse the repository at this point in the history
  2. Addresses new code reviews

    	- Addresses code review from PhysSong and Messmerd
    IanCaio committed Oct 17, 2023
    Configuration menu
    Copy the full SHA
    38dd8ec View commit details
    Browse the repository at this point in the history
  3. Fixes note drawing on Song Editor

    	- Notes were not being draw on the song editor for BeatClips.
    This commit fixes this.
    IanCaio committed Oct 17, 2023
    Configuration menu
    Copy the full SHA
    31a2bd3 View commit details
    Browse the repository at this point in the history

Commits on Oct 18, 2023

  1. Adds cassert header to TimePos.cpp

    	- Adds header to use assert() on TimePos.cpp
    IanCaio committed Oct 18, 2023
    Configuration menu
    Copy the full SHA
    43018d7 View commit details
    Browse the repository at this point in the history

Commits on Oct 26, 2023

  1. Apply suggestions from code review

    Fixes style on some lines
    
    Co-authored-by: Dalton Messmer <[email protected]>
    IanCaio and messmerd authored Oct 26, 2023
    Configuration menu
    Copy the full SHA
    389a245 View commit details
    Browse the repository at this point in the history

Commits on Nov 3, 2023

  1. Reverts some changes on MidiExport

    	- Some changes were reverted on MidiExport and InstrumentTrack.
    We were storing the beat length on the XML of Instrument Tracks, but in
    reality the beat length is a per note attribute, and some instruments
    could run into a segmentation fault when calling beat length without a
    NotePlayHandle (i.e.: AFP). Because of that I reverted this change, so
    the beat length is not stored on the XML anymore, and instead we have a
    magic number on the MidiExport class that holds a default beat length
    which is actually an upper limit for the MIDI notes of step notes. In
    the future we can improve this by finding a way to store the beat length
    on the note class to use it instead. The MidiExport logic is not
    worsened at all because previously the beat length wasn't even
    considered during export (it was actually improved making the exported
    notes extend until the next one instead of cutting shorter).
    IanCaio committed Nov 3, 2023
    Configuration menu
    Copy the full SHA
    dcb41af View commit details
    Browse the repository at this point in the history

Commits on Nov 18, 2023

  1. Configuration menu
    Copy the full SHA
    2ecadb0 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    67b0b24 View commit details
    Browse the repository at this point in the history