PKBeam / Edda

A beatmap editor for the VR rhythm game Ragnarock
GNU General Public License v3.0
34 stars 8 forks source link

What do I do with meters like 17/16 or 12/8? Add 'denominator' feature? #61

Open drumnation opened 1 year ago

drumnation commented 1 year ago

If I set "beat division" to 17 or 12 it assumes that each beat is a quarter note and not a 16th note or 8th note.  I'd have to multiply the bpm by 2 or 4 for it to treat a beat properly, and it seems there is a limit of 300bpm which makes that not possible.  I'd suggest adding another field for 'denominator'.

In a musical time signature, the bottom number is called the "denominator." It tells you what kind of note gets the beat, or is counted as one beat.

If the denominator is 4, then a quarter note gets the beat. If it's 2, a half note gets the beat. If it's 8, an eighth note gets the beat, and so on. Here are some examples:

  • 4/4 Time: This is also known as "common time." The 4 on top means there are four beats in a measure, and the 4 at the bottom means that the quarter note is what gets one beat.
  • 2/2 Time: This is "cut time" or "alla breve." The 2 on top means there are two beats in a measure, and the 2 at the bottom means that the half note is what gets one beat.
  • 6/8 Time: In this time, the 6 on top means there are six beats in a measure, and the 8 at the bottom means the eighth note gets one beat.

It's important to note that while the top number can vary widely based on the composition, the bottom number is usually 2, 4, 8, or sometimes 16, because these correspond to the common types of notes (half, quarter, eighth, sixteenth).

Examples

17/16, 15/16 alternating - Tigran Hamasyan: The Grid:
- Recording: https://www.youtube.com/watch?v=8xlNF9-C6lQ
- Sheet Music: https://www.soundslice.com/slices/hBJcc/

12/8 - Leprous Illuminate
- Recording: https://www.youtube.com/watch?v=Tl4gwOMrJiQ
- Notation: https://www.songsterr.com/a/wsa/leprous-illuminate-tab-s543028

Brollyy commented 1 year ago

I don't feel I'm fully qualified to answer this, since I can't read sheet music, but I'll give it a shot.

Beat Division you set in Edda is already a denominator in the form of 1/X - it divides a single beat into X parts: image image

Note that this is for "global" BPM - if you introduce any timing changes, the beat division denominator for those sections is set from the "Edit Song Timing" window instead: image

Looking at the measures in your examples, you'd typically set the beat division to 1/16 and 1/8 respectively. With 1/16 the rune readability might be a concern (everything that has denominator bigger than 4 automatically gets X rune), so then you can double the BPM and use 1/8 instead to achieve the same beat lines, but with better rune readability. I took a look at the first song and honestly I couldn't figure out a consistent BPM for it. For the second one, I arrived at this beat pattern after some fiddling with the BPM, which only requires 1/4 beat division: image

If you need more than 1/8 with 300 BPM, I'd say that the song is too fast and the map will likely not be very fun to play in Ragnarock,

drumnation commented 1 year ago

It's crucial to understand that simply doubling the BPM doesn't solve the fundamental problem here; it's more of a workaround than a solution. The crux of this issue centers around the logical grouping of measures in a manner that's legible and musically coherent.

In my first example, there is a group of 17 sixteenth notes, which essentially corresponds to a 4/4 measure with an extra sixteenth note tagged onto the end. Unfortunately, I don't think there's a straightforward way to coerce the program into accommodating this format. What you'd ideally want is a measure that offers 17 beats before transitioning into the next measure (dark line). I think the bpm is 103 where a beat is a quarter note.

The subsequent example could potentially be doubled, but it's fundamentally supposed to be 87 BPM, with twelve 8th notes per group. This methodology aids in creating visually repeating patterns across bar lines, enhancing readability. In the absence of this, the bar line (or the dark line signifying the beginning of a measure) loses its functional significance, thereby reducing its utility. If a user were to reference one of these transcriptions as a means of improving their entry speed, it would be considerably more beneficial if the transcription could mirror the sheet music within the editor.

I also wanted to point out that the BPM appears to affect the note speed. As such, if you were to double it purely to accommodate more notes within a bar—a decision that is more theoretical than audible—it could potentially introduce unintended side effects that may complicate reading the map.

Brollyy commented 1 year ago

Sorry, but as I mentioned, I'm not really well-versed in the sheet music and music theory in general, so this is way over my head.

I think having this discussion with someone else from the RagnaCustoms community might be more fruitful - e.g. Vred0 is a prominent mapper who's also a drummer, so you might have a better luck with him. He's using MMA2 for mapping, not Edda, but since Ragnarock's map format was adapted from Beatsaber, these tools both use global BPM, beat division and timing changes.

BPM and note speed are separated in the map - changing the global BPM in Edda will adjust the note grid height purely to make sure it's still readable in the map editor, but it doesn't have any effect on the note speed in-game.

PKBeam commented 1 year ago

In Ragnarock there aren't any concepts of meter, measures, quarter- or eighth- notes or such. There's only tempo (BPM) and beat division - i.e. what constitutes a beat and how does it divide in the music? Edda is designed to follow that representation. The dark gridline doesn't denote a measure, it denotes a beat. The minor gridlines represent beat divisions. And (I'm going to start using non-American note names here) a beat isn't assumed to be a crotchet, or a minim or anything. It's just that: a beat. The period of time between your foot tapping or headbangs when you listen to the song.

The beat in a 12/8 time signature isn't necessarily an eighth note (see here). In the example you posted, the drum line makes me more inclined to define a beat as a dotted crotchet. The smallest common note value I can see is the semiquaver, which is 1/6th of a dotted crotchet so I'd set the beat division to 6. So you'd convert the tempo from ♩= 133 to ♩. = 88.67, set that as your BPM and then set beat division to 6.

As shown before, the other way you can do it is keep 1 beat = 1 crotchet with ♩= 133 and then you'd set beat division to 4 (since semiquaver = 1/4 crotchet).

Your first example is a lot trickier. The 15/16 part would probably be mapped as 1 beat = 1 crotchet + 1 semiquaver with a beat division of 5. The 17/16 part you'd probably have to add a timing change every time the group of 7 semiquavers rolls around. Or you combine the entire thing into a much more divisible 32/16 and go from there.

The crux of the issue is that Ragnarock wasn't really designed for rhythmically complex songs. For example, the game doesn't really care for anything that's not in simple or compound time, so even the beat division of 5 mentioned above would result in all "X" runes, making it difficult to read.

That's not to say we can't make changes that would make it easier to map complex rhythms, but if we do make changes they should accurately reflect what the player sees in-game. And because the game uses a fundamentally different approach to rhythm, there won't always be an easy way to translate sheet music into a Ragnarock map.