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

Editable parts #43

Open
oggy22 opened this issue Sep 15, 2018 · 5 comments
Open

Editable parts #43

oggy22 opened this issue Sep 15, 2018 · 5 comments
Assignees

Comments

@oggy22
Copy link
Owner

oggy22 commented Sep 15, 2018

On the wpf app provide the user interface for editing the music parts. Once edited, the part can be played back, but also the entire musical piece can be played back with the edited part.

@oggy22 oggy22 self-assigned this Sep 15, 2018
@oggy22
Copy link
Owner Author

oggy22 commented Dec 18, 2018

This is a great feature of the app! A recurrent motif/theme can be altered a bit and when the whole piece is played back it will give improvisational style to it. Imagine any 2-part invention by Bach played with the theme spiced-up in a jazz style!

@oggy22
Copy link
Owner Author

oggy22 commented Mar 27, 2019

It depends on #66

oggy22 pushed a commit that referenced this issue Mar 28, 2019
- List with all MusicalNodes (MelodyPartLists) shows on WPF app
- Timetable for Musical Nodes encapsulated in user control and integrated in the app
- Tabs for List, Chart and DAG (Directed Acyclic Graph)

Missing/todo:
- textbox update as the algorithm progresses, UI thread calls
- play midi routine (#66)
@oggy22
Copy link
Owner Author

oggy22 commented Mar 28, 2019

There are two conceivable ways a melody node can be edited:

  1. The edit applies only to that melody node i.e. all its occurrences. A new melody node containing a list of all notes should be added instead of existing node. It means excluding the existing node and replacing it with an edited copy. It also means that its children's references decrease by 1.
  2. The edit applies recursively down to the appropriate leaf and leaf is edited. Consequently the edit applies wherever the leaf is referenced.

If the node edited is a leaf there is no distinction between 1) and 2).

An edit may be:

  • changing a pitch of a single note
  • (or maybe also) splitting a note into two or more notes and merging them

Invariants:
Edits may not change the total duration.

@oggy22
Copy link
Owner Author

oggy22 commented Mar 28, 2019

Implementation-wise the edits may be implemented by having another implementation of IMelodyPart which keeps both original and edited versions of node, so the edits can be undone easily.

oggy22 added a commit that referenced this issue Apr 4, 2019
- class Composition introduced
- Composition.PlayBack utilizing midi or any other playback routine. Used in WPF and Program.
- Tests for Composition.PlayBack checking the tones being on and off
- class Fraction updated
- Upgraded all projects' TargetFrameworkVersion to v4.7
@oggy22
Copy link
Owner Author

oggy22 commented Apr 18, 2019

"Twinkle twinkle little start" can be altered by one simple edit to:
BC F#G G#A G
EF D#E C#D C

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant