How to Make a Chamber Music Log
1. Create the form
Go to Google Forms.
Create a new Form.
Fill it out with the questions you'd like to track. Mine looks like this:
Two things the log site needs from that form, if you plan to use Log a Piece (section 3) rather than the Google Form itself:
Composer must be a multiple-choice question with "Other" switched on. Every composer the app submits arrives through Google's Other box, even one that matches an option you listed. It has to: your option list lives on Google's servers and the app cannot read it, so it can never know whether the composer you just picked is on it — and the list could not cover them anyway, since Other… in the app accepts any name you type. An Other response lands in the response sheet as ordinary text, so the column reads the same either way.
Get this wrong and it shows on your very first piece: a short-answer Composer box fills with the literal text
__other_option__, and a multiple-choice one without Other makes Google reject the whole row so nothing arrives. The app says "Logged" in both cases, because Google's reply to a submission tells it nothing (section 3) — so log one piece and look at the sheet.Which Part should offer V1, V2, VA1 and VA2. Those are the four the app submits, and it sends them as plain values, so this question can be multiple-choice or short answer and does not need Other. (Cello is not among them — see below.)
Everything else can be whatever you like — the other seven questions are read as plain text.
Cellists: not yet. The app assumes the person logging is a violinist or violist, because it has to know which seat is which — playing V1 means Player 3 is the cellist. There is no VC option in Log a Piece, so if you play cello you will have to use the Google Form itself for now. Nothing about the sheet changes; it is the app that cannot read those rows back correctly yet.
2. Set up the response sheet
Click Responses, then the green Sheets button.
Name your sheet and click Create.
3. Put it on your phone
Get the form's link first: in the form editor click Send, then the Link icon, and check Shorten URL.
The obvious move is to pin that link: open it on your phone and choose Add to Home Screen.
That works, with one irritation. A Google Form ships no web app
manifest and no apple-mobile-web-app-capable tag, so
iOS treats the pin as an ordinary Safari bookmark rather than an
app: every launch opens another browser tab, and they pile up.
The log site does ship both, so pinning it gives you a real standalone app with no tabs. Open https://log.quartetroulette.com/#log on your phone (set it up first, section 8) and Add to Home Screen from there. It opens straight to the Log a Piece form.
That form writes to the same spreadsheet through the same Google Form, and it knows things the form cannot, because the app has your whole log loaded:
- The composers you actually play are one tap, ranked by how often you play them, with the whole catalogue behind More… and free text behind that.
- Names you have used before autocomplete. Picking one instead of retyping it is what keeps a second Alice from becoming indistinguishable from the first (section 7).
- The seats show who they will repeat. The greyed name in an empty Player field is exactly what a blank will carry forward, so you can see it rather than trust it (section 6).
- Each seat has a part beside it. When two people swap you change a dropdown instead of retyping both names into different columns, and the name comes along on its own. A seat only ever offers the three parts your own part implies, so a second viola or a pianist is an Others? entry with a part of their own (section 5).
- Extra players stay for the rest of the session and are written onto every piece, so the x beside someone is all you do when they leave. That is the one column the sheet cannot repeat for you, and the usual way a fifth player goes missing (section 6).
- The work list follows the composer you picked.
- It works with no signal. Everything but the send is local; a piece logged in a basement queues up and goes out, in order, when you have a network again. You can see what is waiting at the bottom of the form. Nothing you have typed is lost either — if the phone kills the app mid-entry, the half-filled form is there when you come back.
Either way in works, and both write the same rows.
Connecting your form. The site has no form of its own — it writes through yours, and it has to be told which. The first time you open Log a Piece it asks for a pre-filled link, which is where Google Forms puts the field ids:
- Open your form for editing and choose ⋮ → Get pre-filled link.
- Put anything at all in every field, then Get link → Copy link.
- Paste it into the log form's setup panel.
Nothing is submitted by that step: only the ids are read, and they are matched to your sheet's columns in order, which is the order Forms created them in. The panel shows you the mapping before you commit to it, so a form whose questions were reordered after the sheet already existed is something you can see rather than discover months later.
The connection lives on that device, next to your sheet URL. Copy setup link in the menu carries both, so setting up a second device is one link.
4. Use it
After every piece you play, open the app or the form from your home screen and fill it out — entries are saved straight to the response spreadsheet.
Play some Haydn.
Repeat.
What happens when you tap Log it. The form is replaced by a short summary of what went in: the piece, who played what, and the rest of the sitting so far. Log the next piece brings the fields back with the composer, your part and the seats already carried over, so the work title is usually all that is left to type.
Why the piece is not in the charts yet. Your
entry is in the spreadsheet the moment you tap — the app writes
through your Google Form, exactly as if you had filled the form in
by hand. What lags is the app's copy of the sheet: the
calendar and the charts read a published version that Google
rebuilds every few minutes, and the app re-checks every five. So
each piece in the summary carries a dot — filled once the app's own
copy holds that row, hollow while it is still on its way. The totals
underneath are your last 365 days — the same window
the calendar's header reports — and they count the whole sitting
either way, including the pieces whose dot is still hollow. A year
rather than the whole log because one evening barely moves a
lifetime total, so the green number under each is something an
evening can actually change: Unique +1 means a work you
have not played in a year.
A partial movement — anything with a : in the title,
like 59#1: I — is the one exception, and it shows in
italic. The sheet keeps it, but this app leaves it out of
its charts and its totals, so its dot can never fill in that way; on
that row it means simply that the entry was sent.
If you have no signal the summary says so instead: the piece is held on the device and sent automatically, in the order you logged them, when you are back on a network.
5. Logging anything that isn't a string quartet
The three player fields model a string quartet: you take one seat, and the other three go in Player 1, Player 2, Player 3 — the seats your own part implies. Playing V1 means Player 1 is V2, Player 2 is the violist, and Player 3 is the cellist.
Piano trios, piano quartets, quintets and sextets don't fit that shape, so there are two conventions to keep them straight.
Use - for a seat the work doesn't
have. A piano trio has no second violin and no viola, so
playing violin in one looks like this:
| Which Part | Player 1 | Player 2 | Player 3 | Others? |
|---|---|---|---|---|
V1 |
- |
- |
the cellist | Alice Hart (p) |
(instrument) on a player field is read, and
old rows carry it. The annotation wins over the seat, so a
row written this way still counts the pianist as a pianist even
though they sit in the cello field:
| Which Part | Player 1 | Player 2 | Player 3 | Others? |
|---|---|---|---|---|
V1 |
the violist (va) |
the cellist (vc) |
the pianist (p) |
New rows don't need it: everyone past the four goes in Others? with a tag, which is what the Log a Piece form writes (below).
Both spellings and shorthands work — p,
pf and piano are the same thing, as are
vc and cello, and va,
vla and viola. You can add a comment after
the instrument: Alice Hart (vc, doubling) keeps the
vc and ignores the rest. Parentheses that name no
instrument — (sub), (guest),
(first time) — are just notes: they're ignored, and the
seat decides as usual.
Pianists, clarinettists and other non-string players are counted as people you played with, but they're left out of the V1/V2/VA/VC part breakdowns, which only make sense for string parts.
You can also put the extra player in Others?
instead — Alice Hart (p) there is read the same way. In
the sheet these behave differently: the player
fields carry forward within a session, so a slot left blank repeats
whoever was there, annotation included, while
Others? does not carry forward — six
movements with the pianist in Others? is six rows that each have to
name them. Filling rows in the Google Form, that difference decides
which to reach for: a player field for a long session, Others? when
the seats are already full, as in a piano quintet where four string
players fill every slot.
The Log a Piece form removes the difference.
Extras stay on the form for the rest of the session and it writes
them onto every piece, and each one gets a part dropdown — so you
can say what someone played without remembering the (p)
syntax.
Every name field has a part dropdown. Say what each person played and the form works out where it goes — which column, or Others?, is the form's business, and the only thing asked of you is who played what.
So a field is a person and their part, not a column. The three
columns are still the quartet's parts, decided by your own part, and
the form writes each person into the column that holds theirs. Two
people swapping: set one of them to the part the other is on, the
form swaps the pair, and the names are written in the order the
columns mean — nothing is annotated and nothing is retyped. Someone
on a part no column holds — a second viola, a pianist, an octet's
third violin — is written into Others? with the tag, and the column
they left is written -, since nobody is on it. It goes
the other way too: an extra you put on v1 is written in
the column that holds V1.
That's what makes a change of personnel mid-session two taps. A
fifth player arrives and takes V1 while you move from violin to
viola: set the violist beside you to va2, type the
newcomer into Others? on v1, and the row comes out with
the violins and cello in their columns and the second viola as an
extra. Nobody is retyped, and the piece after that asks for nothing
at all.
The two lists differ. A player field offers the string chairs — V1, V2, VA, VA2, VC, VC2, less whichever one is yours — because the trade they exist to make easy is the one that happens between two sextets, where everybody shifts within their own family. Others? offers all of them, plus V3 and V4 for an octet, VA1 for when you are the second viola, and bass, piano and clarinet. Anything else — an oboe, a flute — is still typed in the parens as it always was, and the dropdown shows it back rather than rewriting it. Moving somebody INTO a column works from either list, so a pianist who picks up a violin is one tap on their Others? dropdown. Only the other direction — a player field moving to piano or to an octet's V3 — isn't on offer, and there you clear the name and add them as an extra by hand.
The row the fields will become is shown under them, so a name
moving between a column and Others? is never something that happens
out of sight. A tag an older row left in a column still shows in
that field's dropdown, and a (klavier) the app can't
read stays exactly as it is.
6. What repeats itself, and what doesn't
You don't have to retype the same four names for every piece.
Leave a player field blank and it repeats whoever
was in that seat on your last entry — annotation included, so
Alice Hart (p) keeps the (p). Typing a
short form of the name that's already there does the same:
Alice after Alice Hart means the same
person, not a new one.
Three things are worth knowing, because they're the difference between a log that reads correctly years later and one that doesn't.
It repeats field by field. When one player swaps out mid-session, type the new name in that one field and leave the others blank. The seats you left alone keep their people. This is what makes a long afternoon of rotating personnel easy to log — you only ever type what changed.
Only the player fields and the location repeat.
Others? does not. A fifth or sixth player has
to be typed on every row they played. This is the single most common
way a person goes missing from the log, and it's what
npm run audit looks for first.
The Log a Piece form handles this for you: extra players stay on the form for the rest of the session and are written out on every piece, so the only thing you do is press the x beside someone when they leave. Entering rows in the Google Form directly, you're on your own — retype them each time.
A blank always repeats, however long the break.
Take an hour for dinner or come back the next morning — a blank
field still means "the same person as last time", because leaving
names out is never how you'd start a group. When a seat is genuinely
empty, write - rather than leaving it blank; that's how
the sheet tells "nobody here" apart from "same as above".
A short form only reaches back a few hours — and only for
names. Typing Alice to mean the
Alice Hart above works within the same sitting. Weeks
later it's read as a name in its own right, because by then it's
just as likely to be a different Alice — so when you come back to
someone after a long time, type the name in full.
A location is always taken exactly as you typed
it. Only a blank repeats. That's what lets a room inside a
larger place be its own entry: type AKM after
AKM (chapel) and you get AKM, not the
chapel again.
7. Naming people
Type someone's full name the first time you log them. After that, whatever you naturally type is fine — first name, nickname, whatever the group calls them.
The reason is that a first name stops identifying one person the moment a second Alice turns up, and by then the older entries have no surname to tell them apart. Reconstructing that later means cross-referencing dates, venues and who else was in the room, and it gets harder every month. Spending three extra seconds once is the whole fix.
Short forms are still worth using for the people you play with constantly — you will never wonder who "Bob" was. The rule is only about the first entry for someone new.
8. View your log
In your response sheet, go to File → Share → Publish to web. Set the format to Comma-separated values (.csv) and click Publish. Copy the URL it gives you.
Open https://log.quartetroulette.com/ and paste the published-CSV URL into the setup screen.
From then on, the site reads your sheet on each visit, so new sessions you log will show up the next time you reload.