Wellness · Worked Example

Warm-Up Playlists, Class Bells and Instructor Announcements

A boutique yoga & HIIT studio runs its day from one config · 6 min read

Illustrative worked example — a representative scenario showing how Multilarm is configured, not an account of a specific customer.

A small fitness studio doesn’t need a commercial gym-music subscription, a separate bell timer, and a handheld PA microphone. It needs one PC in the back office that knows the class schedule, plays the right music for the right class, and lets the instructor talk to the room without unclipping a body-pack. Multilarm covers that with a config file and a folder of music.

The studio

Two rooms, one instructor at a time: Studio A is the larger HIIT and spin room; Studio B is the yoga and pilates space. Different classes want different music at different volumes — a 6 am Vinyasa and a 7 pm boxing circuit share almost nothing musically, and the loud music that energises one wrecks the other. The owner didn’t want an instructor fiddling with a laptop between classes.

Hardware

Two studios, two independent outputs

Unlike a multi-zone PA, the studios are not mirrored — they need different audio at the same time. Multilarm solves that with multi-instance zones: two independent Multilarm processes launch side-by-side using the --config switch, each pinned to its own audio interface and its own schedule. Two Windows shortcuts on the back-office PC start both at boot:

"C:\Program Files\Multilarm\Multilarm.exe" --config zones\studio-a.xml
"C:\Program Files\Multilarm\Multilarm.exe" --config zones\studio-b.xml

Each config file differs in just a handful of settings — PlaybackDevice, WebRemotePort and (optionally) CloudDeviceToken — so the two instances coexist without a single shared piece of state. studio-a.xml for the HIIT room points at device 3:

<MAConfig><PlaybackDevice>3</PlaybackDevice></MAConfig>
<MAConfig><WebRemotePort>6580</WebRemotePort></MAConfig>
<MAConfig><InstanceName>Studio A</InstanceName></MAConfig>
<MAConfig><AlarmPath>C:\Studio\Music\HIIT_Warmup|C:\Studio\Chimes</AlarmPath></MAConfig>

studio-b.xml for the yoga room points at device 4, a different port, and its own music folders. Both fire at the same wall-clock moment; device 3 pipes HIIT warm-up beats to Studio A while device 4 pipes a soft ambient pad to Studio B. No cross-talk, no shared audio mixer, no routing software. The Hub dashboard (one running instance promoted to Hub mode with Ctrl+H) shows both as separate cards so the owner can jump between them from one tab.

Pinning dongles to rooms: USB audio indices can shift when the PC reboots with a different USB tree. After any hardware change, the owner presses Ctrl+O in the Multilarm console — it prints every playback device with its index, name and [default]/[disabled]/[init] flags. Match the studio label against the index in the output, update the XML, done. A thirty-second sanity check that saves an embarrassing morning.

Class changeover chimes

A one-note chime at the top of each class (and a second a few minutes before the end) keeps drop-ins on time and tells members in the changing room that the next class is about to start. Folder-based scheduling means the chime tone can change seasonally without touching the XML. Three slots per class get routed to two folders via AlarmIndexData:

<MAConfig><AlarmPath>C:\Studio\Chimes|C:\Studio\Chimes_Soft</AlarmPath></MAConfig>
<MAConfig><AlarmIndexData>1|2|1</AlarmIndexData></MAConfig>
<MAConfig><DateAndTimeData>6:00|6:55|7:00</DateAndTimeData></MAConfig>
<MAConfig><RecurEveryDay>True</RecurEveryDay></MAConfig>

Slot 1 (06:00 start chime) and slot 3 (07:00 end chime) use index 1 (Chimes); the 06:55 five-minute warning uses index 2 (Chimes_Soft) for a gentler tone. Each folder has half a dozen variants and Multilarm randomises the pick. Members get variation without the studio ever curating a bell playlist.

Volume profiles for the quiet hours

Early-morning yoga needs background music at a fraction of the volume that an evening boxing circuit wants. A single VolumeProfileRules setting caps the schedule by time-of-day without touching individual alarm volumes — rules are semicolon-separated, each rule is a time-range plus an optional volume= override:

<MAConfig><VolumeProfileRules>05:30-09:00,volume=0.55;09:00-17:00,volume=0.85;17:00-22:00,volume=1.0</VolumeProfileRules></MAConfig>

Evening HIIT runs at full volume; quiet-am Vinyasa is hard-capped at 0.55 of master. If a newer instructor cranks the master Volume too high, the rule still caps the early slot. The dashboard surfaces the active window as volumeProfile in the status JSON so the owner can see at a glance which ceiling is currently applied.

Instructor announcements without a PA mic

Most small studios own exactly one handheld PA mic that spends its life wandering off or running out of batteries. The Web Remote’s Voice Broadcast card replaces it with the tablet at reception:

  1. Instructor walks out, taps Record on the tablet.
  2. “Class is starting in two minutes, please make your way into Studio B.”
  3. Tap Stop, then Transmit, confirm.
  4. The announcement plays out of both studio outputs by temporarily treating them as a mirror group for the duration of the clip.

No batteries, no feedback, no hunting for the mic. The {"confirm":true} payload requirement on /api/voice/transmit means an accidental tap doesn’t blast a dropped phone into both rooms.

Fire-drill day

A dedicated Alert folder holds the evacuation tone. On drill day the owner picks it from the Web Remote’s folder dropdown and hits Test Alarm. Both studios sound the tone simultaneously; the playlist log records the exact file and timestamp. That log line is what goes into the drill report — no spreadsheet entry by hand.

AlternateConfig for weekday, weekend and holiday timetables

Studios run different timetables on weekdays, weekends, and public holidays. Each variant lives as its own config file — studio-a-weekday.xml, studio-a-weekend.xml, studio-a-holiday.xml — and an AlternateConfig rule on each instance’s master config maps dates and time windows to those files, so the switch happens automatically at midnight without anyone touching the PC. The currently loaded config filename is printed top-right of the dashboard, so the Monday morning instructor can see at a glance whether the weekend schedule got left on overnight.

What the owner sees from anywhere

With the Cloud Relay enabled, the owner’s phone dashboard works from the cafe next door, from home, or from holiday. It shows whether class music is actually playing (playing), which class the schedule currently thinks is in progress (alarmInfo), whether a volume cap is active, and whether the box has been restarted unexpectedly (uptime). When a new instructor asks “did the 7 am music actually play?”, the answer is the status dashboard, not a phone call.

Takeaways

One PC, two USB interfaces, one XML file. The studio’s music bill dropped to zero and the handheld PA mic went in a drawer. Download Multilarm and point it at a folder of tracks.