estrasnick / Augmented-Reality-Piano-Interface

Project for Stanford's CS 377M course. Augmented Reality Piano Interface.
4 stars 3 forks source link

Bar/Phrase "Micro" View of sheet music (3SP) #6

Open austinchambers opened 8 years ago

austinchambers commented 8 years ago

Goal: Show the next, previous, and current segment of music (whether it's a bar or phrase) to make it easier to focus in on what is being learned.

Lil-Liu commented 8 years ago

We are using AlphaTab for now.

Xrave commented 8 years ago

Much more complicated than is originally expected, the workflow doesn't make a lot of sense. So far most libraries output on a page / pdf / or per track basis, however, what we're looking for is a continuously updating process where the rendering methodology is more MVC than one-off.

There are plenty of javascript libraries that do this, but it's difficult to translate to Unity from HTML5. Perhaps a different approach, or reverse engineering of some library is required before we can have sheet music.

Due to the research done in this process, we suggest that this be elevated to around 13 or 21 points. Meanwhile, Piano Roll is actually not that bad and is actually easier. >_>

austinchambers commented 8 years ago

With Unreal, I employed a cool little plugin that rendered the Chromium engine to do stuff. I wonder if we could employ the same and actually have HTML5 within a view. A bit hacky, but we can certainly cut corners now and revise the approach later (time permitting).

Moreover, maybe we can start by getting the UI roughly right (especially since music representation isn't done yet). For example, to employ a series of fixed images or something.

estrasnick commented 8 years ago

Hey now rendering music on our own, dynamically, so that songs can be added simply by specifying notes and we have full control over appearance and style. On branch sheet_music.

Currently done: staff and clefs rendered. Infrastructure and logic for inputting notes of a song in a given format and rendering the notes of each bar in sequence. Prefabs resized and tagged to allow for rendering and easy clearing. A few pitches and note types (quarter, half, whole) implemented to show how. To do: add the logic for rendering accidentals next to each note based on key signature. Fill in the remaining pitches and note types/rests. Add dynamics and other additional markings, if we care about it.