top of page
  • kristinarothe

Character Workout Tool

Updated: Sep 21, 2021

Direct link to the file: here (OneDrive download) - make sure to enable Macros upon opening

Jump to How to use the sheet

Jump to macro source code

A little bit of background

Character creation - some people have a knack for it, and to others (like me) it may be like standing in front of a fully stocked book case, saying "I have nothing to read, I don't even know how to start picking a book". In other cases, people might be asking themselves how to create more different, distinct voices beyond changing their pitch or adding vocal fry. No shame in that - Hey, I've been there :)

When I approached my Voice Over coach (with whom I have been primarily working on commercials until that point), he gave me a couple of pointers as well as an ongoing homework assignment: For every day I had to spend half an hour rolling a couple of dice (4, 6, 8, 10-sided) and use that to determine things like Pitch (1-10), Speed (1-4), Laban (1-8) and Placement (1-6). For laban and placement, numbers would equate certain characteristics.

I would then document the rolls in a continuous sheet as well as record my efforts with just a line from a sheet of paper I had flying around to essentially build my character library.

As I was typing it in, my old, geeky self came out and thought that there's gotta be a nice way to make all this a little bit easier - so I ended up learning a little bit of Excel Macros and VBA and made a handy little sheet that randomizes the characteristics that are currently entered, adds them to a list and automatically assigns them a new numeric ID.

How to use the sheet

This is what it looks like - you click on the "Randomize" button and the new "roll" will be added to the list as well as show to the right of the button (that part is not pictured). Click the button again, and it creates a new entry.

Right now it's a very workable work-in-progress and contains the following entries that get randomized:

Pitch (1-10), Speed (1-5), Laban (Dab, Flick, Press, Thrust, Glide, Float, Wring, Slash), Placement (Nasal, Throat, Normal, Cheek, Teeth, Mouthtop), Size (Small, Medium, Large) and Air (Breathy, Dry).

I have not added accents or other characteristics (vocal fry, lisp etc.) yet.

Download here

IMPORTANT NOTE: Upon opening the file, you'll either be warned by Excel (external document / macros etc.) or the Macros are disabled. Macros MUST BE TURNED ON for the document to work, so Allow/Trust/Enable Content. I'll post the full source code below so you can check it out.

Also, in case the "Randomize" button doesn't show up for you, try the following: Tools—Macro—Macros—Run.

VBA Source Code for the Randomizer:

There are probably easier, more elegant solutions - but it does the job for me :)

Sub RNG()
With Sheet1
Dim R_Pitch, R_Speed, R_Laban, R_Placement, R_Size, R_Air, Cur_ID As Integer
Dim V_Laban, V_Placement, V_Size, V_Air As String
Dim Laban, Placement, Size, Air As Variant

    V_Laban = "Dab Flick Press Thrust Glide Float Wring Slash"
    Laban = Split(V_Laban)
    V_Placement = "Nasal Throat Normal Cheek Teeth Mouthtop"
    Placement = Split(V_Placement)
    V_Size = "Small Medium Large"
    Size = Split(V_Size)
    V_Air = "Breathy Dry"
    Air = Split(V_Air)
    R_Pitch = WorksheetFunction.RandBetween(1, 10)
    R_Speed = WorksheetFunction.RandBetween(1, 5)
    R_Laban = WorksheetFunction.RandBetween(1, 8)
    R_Placement = WorksheetFunction.RandBetween(1, 6)
    R_Size = WorksheetFunction.RandBetween(1, 3)
    R_Air = WorksheetFunction.RandBetween(1, 2)
    .Range("K1") = R_Pitch
    .Range("L1") = R_Speed
    .Range("M1") = Laban(R_Laban - 1)
    .Range("N1") = Placement(R_Placement - 1)
    .Range("O1") = Air(R_Air - 1)
    .Range("P1") = Size(R_Size - 1)
 Dim ws As Worksheet
 Set ws = ActiveSheet
 Dim tbl As ListObject
 Set tbl = ws.ListObjects("Table1")
 Dim newrow As ListRow
 Set newrow = tbl.ListRows.Add
    With newrow
        .Range(1) = newrow.Index
        .Range(2) = R_Pitch
        .Range(3) = R_Speed
        .Range(4) = Laban(R_Laban - 1)
        .Range(5) = Placement(R_Placement - 1)
        .Range(6) = Air(R_Air - 1)
        .Range(7) = Size(R_Size - 1)
    End With
        End With
End Sub

382 views0 comments

Recent Posts

See All
bottom of page