menu
 

The Interactive Music Systems of Divinuet: Part 2

게임 오디오 / 사운드 디자인

Hi, it’s me again! I’m here to tell you more about the interactive music in my upcoming tarot music generating game, Divinuet. If you haven’t read part 1 yet, I’d recommend reading that first to get an idea of how the game works, and then coming back to this post. 

As I mentioned in part 1, the game has 2 main phases. Part 1 covered the reading phase, where you learn the definitions of the 3 cards you draw and hear each card’s individual theme. In this article, I’ll be covering the generative phase, which is where your specific combination and order of cards will create a unique musical and visual experience.

The Music

Your tarot reading will consist of 3 cards, the combination and order of which will determine the 4 layers that make up the music for the generative phase of Divinuet. For the sake of simplicity, I’ll be referring to these layers as bass (lowest), tenor (medium-low), alto (medium-high), and soprano (highest).

The bass layer is determined by which suit is most prevalent in the reading. There are 5 tarot suits: major arcana, swords, wands, cups, and pentacles. When you account for the possibility that each of the 3 cards could be a different suit, we end up with 6 different possible bass layers. Each suit has its own vibe, so I tried to reflect that in the bass. I’ve posted a few snippets below: Pentacles (earthy, simple), Swords (intelligence, action), and no majority (which I tried to keep as neutral as I could).

For the other layers, I separated the 78 cards into 26 different groups of 3 cards based on their meanings. Each group then has a tenor, alto, and soprano part. For example, I made the first card in your reading determines the tenor layer, then second determines the alto, and the third determines the soprano. Here is the very, very professional spreadsheet I’m using to keep track of the different groups.

Divinuet_Part2

Let’s take group 2, for example. These are all cards about feeling anguish of some kind. So I decided to go with dramatic, mournful strings for this group. The tenor part is a cello, alto is a viola, and soprano is violin. Here’s the three layers together (without a bass layer), although keep in mind that the only way you’d hear these layers together in game is if you happened to have a reading with all 3 cards from this group! It’s much more likely that you’d hear one of these layers combined with layers from other groups.

And now for another example, here’s the 3 layers of group 5, which is about resting and waiting.

If you’re a musician, you might be thinking something like, “but wait, Megan! Those are in different keys! How the heck are you going to combine them?!”  Well, I’m glad you asked!

The Rules

Since there are multiple layers that need to be able to fit together in more combinations than I’d ever be able to listen to, I made strict rules for myself about how to compose each one. The first and probably most obvious rule is that every layer has to be the same tempo and time signature. I chose 80bpm and 4/4.

So that solves the problem of things being in time, but what about the notes/chords? Since the cards cover such a vast multitude of emotions and meanings, I didn’t want to just choose one chord progression for them all to follow. 

The solution I landed on was dividing the piece into 4 measure phrases. The bass layer can only play one specific note during each phrase (it can be any rhythm, though). Whatever layer is taking the melody can play whatever notes I want as long as they don’t clash with the bass (unless I’m purposely going for dissonance, which is the case with a few of the groups). If the other layers are playing accompaniment, they’re only allowed to play the same note as the bass, but in their respective octaves. The result is that we never end up with clashing notes.

The rhythms of the accompaniments vary a lot. Some are doing very rhythmic things, some are small decorative flourishes, and others are drones. It depends on the vibe of whatever card group they’re in. 

Anyways, here’s another spreadsheet showing what layers are allowed to play what notes!

GenerativeSpreadsheet_divinuet2

You may also have noticed that I split phrases 5 and 9, and allow the layers to play both F and C during 5b and 9b. That’s because I wanted to end on just an open 5th chord so the piece isn’t leaning too heavily into any one mood.

I also noticed it was sometimes pretty jarring when a new layer would come in for the first time right on a downbeat, so I’ve often been adding pickup notes right before a new layer comes in. Of course, it still has to follow the rules. So for example, if I want the soprano to have a pickup to the melody in phrase 4, it’d technically happen during phrase 3, so the pickup note has to be a Bb.

This will all make much more sense when you get to listen to this happening, so let’s do that now! Here’s a demo of what the music would sound like if you got the following reading (with card art by Sarah Seekins):


DemoReading1_divinuet


Card 1 is the 4 of Swords, card 2 is the 5 of Cups, and card 3 is Queen of Swords. So we have the swords bass, group 5 (restful) tenor, group 2 (mournful) alto, and group 25 (ambitious) soprano.  

Now let’s switch things around a bit!

DemoReading2_Divinuet

For this one, I’ve kept card 1 the same. Card 2 is now the Ace of Pentacles, which is from group 26, the earthy/practical group. And I’ve moved the 5 of Cups to card 3 this time. So you’ll hear the bass for when there’s no suit majority, the same tenor layer as last time, the alto layer from a completely new group, and a mournful violin in the soprano layer instead of a mournful viola in the alto layer.

Hopefully that’s a good demonstration of how the music for readings that seem very similar can actually end up pretty different! And that’s just 2 examples-- the actual game will end up having thousands of possible combinations.

The Implementation

The implementation for this part is actually a lot more straightforward than the reading section. I just made a music segment containing four tracks that play at the same time, one track for each layer.

 GenerativeMusic_Divinuet

The layers are then set up with switch subtracks that are tied to states, which will be set by the game once it knows what your cards are. I only have the bass set up so far, but here’s what that looks like.

Audio_DivinuetGenerativeBass_Divinuet

I actually set this up on a Twitch stream I did with Damian from Audiokinetic - you can watch it here if you’re interested!

This is the point where I would show what everything would look like in the context of the game, except I don’t have any of the artwork that’ll come up during the generative part yet, and also I don’t have the tenor, alto, or soprano layers programmed in. So you’d just be looking at a blank screen listening to a lone bass part, which would maybe not be the most exciting thing to watch. But once it’s done, each reading will look and sound very unique. 

If you’re interested in following the progress of Divinuet, you can follow @divinuetgame on Twitter. I also do Twitch streams where I work on Divinuet’s music and programming. And if you’re interested in pre-ordering the game and maybe getting some extra perks as well, you can do so here.

Thanks for reading!


Megan Carnes

Composer & Game Developer

Megan Carnes

Composer & Game Developer

Megan Carnes is a Los Angeles based composer and game developer. She has a special interest in interactive and generative music and is the creator of the music based games "inter-view" and "Divinuet." She will also be scoring the upcoming indie 2D platformer "A Crooked Heart." She is a co-organizer of Game Audio LA.

megancarnesmusic.com/

megancarnes.itch.io/

 @megancomposer

댓글

댓글 달기

이메일 주소는 공개되지 않습니다.

다른 글

제 2부: 니어 : 오토마타(NieR:Automata)의 공간 음향과 Wwise로 구현한 다양한 게임 플레이 유형

블로그 제 1부를 읽어주세요! 다양한 게임 플레이를 지원해주는 Wwise 컨트롤 앞서 말씀드렸듯이 이 게임에서는 카메라의 위치가 자주 변경됩니다. 표준 후면 시점부터 시작해서 탑...

17.9.2019 - 작성자: PlatinumGames Inc. (플래티넘 게임즈)

게임 오디오 직업 스킬 - 게임 사운드 디자이너로 고용되는 법

20.1.2021 - 작성자: 브라이언 슈밋(BRIAN SCHMIDT)

Impacter와 Unreal - 게임 물리를 사용하여 Impacter 플러그인 제어하기

소개 Impacter(임팩터)는 Wwise를 위한 새로운 타격음 모델링 플러그인입니다. 플러그인 소개는 이 글을 통해 확인해주세요. 이 글에서는 Impacter를 사용하여...

3.6.2021 - 작성자: 션 소라한 (Sean Soraghan)

게임 음악은 단순히 그냥 음악이 아니다: 제 2부

게임 음악이란 무엇일까요? 상호작용 음악이란 무엇일까요? 이 질문에 답하기란 생각만큼 그리 간단하지 않습니다. 올리비에 더리비에르(Olivier Derivière)는 이 글을 통해...

27.10.2021 - 작성자: 올리비에 더리비에르 (OLIVIER DERIVIÈRE)

Wwise 라이선스 및 가격 책정에 대해

"도대체 어떤 방식으로 책정되는거죠??"전 세계 스튜디오의 어두운 구석 어딘가에서 Wwise의 가격 모델이 조금... 복잡하다는 속삭임들이 있어 왔습니다. 완전히 틀린 말은 아닐...

13.4.2023 - 작성자: 마이크 드러멜스미스 (Mike Drummelsmith)

Scars Above(스카스 어보브)의 오디오 최적화 모범 사례

소개 이 글에서는 게임 스카스 어보브(Scars Above)를 프로파일링하고 오디오를 최적화하는 데 적용한 다양한 원칙을 설명해드리려고 합니다. 사운드 디자이너분들에게 저희가 겪은...

12.3.2025 - 작성자: 밀란 앤틱(Milan Antić)

다른 글

제 2부: 니어 : 오토마타(NieR:Automata)의 공간 음향과 Wwise로 구현한 다양한 게임 플레이 유형

블로그 제 1부를 읽어주세요! 다양한 게임 플레이를 지원해주는 Wwise 컨트롤 앞서 말씀드렸듯이 이 게임에서는 카메라의 위치가 자주 변경됩니다. 표준 후면 시점부터 시작해서 탑...

게임 오디오 직업 스킬 - 게임 사운드 디자이너로 고용되는 법

Impacter와 Unreal - 게임 물리를 사용하여 Impacter 플러그인 제어하기

소개 Impacter(임팩터)는 Wwise를 위한 새로운 타격음 모델링 플러그인입니다. 플러그인 소개는 이 글을 통해 확인해주세요. 이 글에서는 Impacter를 사용하여...