Tonight · 7:30 PM · doors 6:30
Măcelaru conducts Enescu
Music Hall · 2 tickets, Orchestra A row F
Program notes, artist biographies, and the digital playbill live here, including interviews and rehearsal clips from the hall. Content refreshes as the season progresses.
Tonight · 7:30 PM · doors 6:30
Music Hall · 2 tickets, Orchestra A row F
Sunday, October 18
2026–27 season
No concerts match that search.
Classical six-show
SubscriptionHarmony Pass
MembershipSingle tickets
Buy on cincinnatisymphony.orgOctober
3 eventsNovember
5 eventsDecember
2 eventsTonight · 7:30 PM
After the performance
The orchestra can send the program notes, the recordings played tonight, and the next three concerts in this series. One email, not a subscription.
Or keep going: .
Member pass
Cameron Koczon
Pass preview. Admission scanning is not connected in this prototype.
Sunday, 18 October at 7:30 PM
Music Hall · Springer Auditorium
Plan status
ActiveRenewal
SubscriptionYour two seats in Orchestra A are held until 15 December. Renewal for 2027–28 opens on 3 November, when pricing is published. Renewing keeps the same seats.
Included shows
Six-show · 6
Sun 27 Sep · 8:00 PMOpening Night: Beethoven NineSpringer AuditoriumWith A. Koczon
Sun 4 Oct · 7:00 PMOrgan RecitalChrist Church CathedralAttended alone
Tonight · 7:30 PMMăcelaru conducts EnescuSpringer AuditoriumWith A. Koczon
Sun 8 Nov · 7:30 PMBrahms and BeyondSpringer Auditorium4 seats held
Sun 22 Nov · 7:30 PMMessiahChrist Church Cathedral2 seats held
Not yet scheduledSpring FinaleDate and venue to comeMonthly · renews 1 Nov
Harmony Pass
MembershipMember benefits
2 of 3 availableConcerts included with your pass
2 of 4 claims usedPatron 1048 · since 2019
Plan status
ActiveIncluded shows
Six-show · 6Harmony Pass
MembershipRenewal
SubscriptionYour two seats in Orchestra A are held until 15 December. Renewal for 2027–28 opens on 3 November, when pricing is published. Renewing keeps the same seats.
Sun 27 Sep · 8:00 PMOpening Night: Beethoven NineSpringer AuditoriumWith A. Koczon
Sun 4 Oct · 7:00 PMOrgan RecitalChrist Church CathedralAttended alone
Tonight · 7:30 PMMăcelaru conducts EnescuSpringer AuditoriumWith A. Koczon
Sun 8 Nov · 7:30 PMBrahms and BeyondSpringer Auditorium4 seats held
Sun 22 Nov · 7:30 PMMessiahChrist Church Cathedral2 seats held
Not yet scheduledSpring FinaleDate and venue to comeGive patrons a mobile companion for their next performance. Bring concert details, ticket access, and timely updates together in an app with your orchestra’s name and identity.
Every app includes the same core: upcoming concerts, ticket and seat details, admission, and updates for the visit. On top of that, we configure the features your organization actually runs, such as season packages or a monthly membership. Purchases open your existing website, so ticketing stays where it is today.
Verified once and stored, so the app stops asking until it expires.
Paid 14 August. Seats are held for the season and carry to renewal.
Harmony Pass member
Home, Events, Program, Subscription
Maestro provides branded digital tools for orchestras and their audiences. Each organization offers its own app, giving patrons access to concert information, tickets, memberships, and updates under the orchestra’s identity.
Beyond the Seat extends the identity from an individual seat to the wider audience. The app follows the same idea by showing a patron’s concerts, memberships, and account information together. Patrons see the orchestra’s identity throughout; Maestro appears in sales materials and platform documentation, not in the app.
This prototype explores a mobile companion for Cincinnati Symphony Orchestra. It focuses on the period between buying a ticket and attending a performance, with access to upcoming concerts, admission details, and information for the visit.
Core features are shared across organizations. Additional features are selected for each orchestra’s programs. In the Cincinnati example, a season subscription covers a set of concerts and Harmony Pass is a monthly membership giving access to selected performances. They appear separately because their benefits and renewal schedules differ. Harmony Pass belongs to Cincinnati; it is not part of every organization’s app.
Five questions, in the order a member asks them.
Home answers the first two. The member pass answers the third, and Your memberships answers the fourth. The fifth is why renewal dates and unclaimed concerts appear on Home rather than waiting to be found. Purchases are not completed in the app; buying links open the orchestra’s website.
The prototype is built around a season subscriber: someone who holds the same seats each year and attends six or more concerts. They already have a relationship with the orchestra, so the app is about using a booking rather than making one.
Subscribers still buy. They add single tickets outside their package and claim concerts included with Harmony Pass, which is why Events shows prices and an All events view. Those buying links open the orchestra’s website.
People often open the app in a busy lobby, shortly before a concert starts, in low light. That sets the requirements: readable text, fast access to a ticket, and section, row, and seat large enough to read aloud if scanning fails.
The brief also names donors, students, first-time attendees, and non-subscribers. This prototype does not cover them. They appear on the navigation map, marked as planned.
Eight app screens and a marketing screen for organizational buyers. Five destinations in the bottom bar: Home, Events, Subscription, Membership, and Profile. The navigation map shows the whole product, separating screens that open in this prototype from features that are proposed.
Subscription and Membership are separate tabs because they are separate plans with different benefits and renewal dates. Home opens with both, so a patron can see what each one includes without choosing a tab first.
Two reference sets accompany the app. The identity system covers the mark, color, typography, photography, motion, and voice. The design system covers layout, components, and the values used to build them. Both describe Maestro’s own identity, used for sales and documentation. Inside a patron app, the same structure carries the orchestra’s branding.
Implementation notes. The typefaces are trial and desktop licenses and need to be cleared before any public release. The member pass shows no admission code, because it is not connected to a scanning system. Time-based and location-based notifications are an intended capability and are not built here. An organization-facing management toolkit is a separate proposed project; its scope is not confirmed and none of it is included in this prototype. Screens show how a task would look; they do not complete purchases, renewals, or redemptions.
The diagram is drawn with the same values it documents, so it stays in step with the layout.
Rack gap 16px · between items in a rack
Column gap 40px · between prose columns
Five columns with 16px gutters. The guide line stops at the center of the first and last column, which is calc((100% - 64px) / 10) from each edge: half a column, derived from the grid rather than guessed, so it lands on center at any width.
Rows sit inside a white card on the Gray 100 background. Nothing in the app is separated by a divider.
18px on the phone. Cards sit on that gutter rather than running to the edge of the screen.
color.text
#060607
Body copy and headings
color.text.subtle
#50504E
Secondary text and captions
color.text.subtlest
#969593
Eyebrows, inactive tab labels
color.text.inverse
#FFFFFF
Text on Maestro Red or ink
color.text.brand
#690218
Current tab, brand emphasis
color.background
#FFFFFF
Screens and cards
color.background.raised
oklch(0.98 0 0 / 82%)
Blocks sitting on white
color.background.subtle
#CBCAC8
Tab bar and segmented tracks
color.background.brand
#690218
Primary action and the active tab
color.accent
#B9D7F6
Maestro Blue. Published as a primary color and not yet used in the app
color.border
oklch(0.90 0 0 / 90%)
Corner radius by role
space.050
4px
Icon to label
space.100
8px
Inside a chip
space.150
12px
Button padding block
space.200
16px
Between items in a rack
space.250
20px
Button padding inline
space.300
24px
Screen padding
space.400
32px
Between stacked groups
space.600
48px
Page gutter
space.800
64px
Between sections
radius.pill
999px
Buttons and inputs use 8px. Chips and the segmented control use the fully rounded value
radius.field
12px
Text inputs and icon plates
radius.card
8px
Navigation-map nodes
radius.chip
7px
Icon chips inside map nodes
radius.none
0
Cards, lists, sheets and the pass use 16px
radius.full
50%
Circular marks only: dots, avatars, round buttons
alpha.1
.12
Fills on a tinted background
alpha.2
.24
Dividers inside a dark panel
alpha.3
.40
Scrims behind a sheet
alpha.4
.60
Secondary text on media
alpha.5
.82
Primary text on media
Gradients are the exception. A falloff needs intermediate stops, and five steps would band.
frost.tint
rgb(232 232 232 / .34)
The background behind a full-screen overlay
frost.blur
blur(34px) saturate(118%)
One blur for every overlay
safe.top
env, min 52px
Status bar. Every screen starts below it
safe.bottom
env, min 30px
Home indicator. The tab bar clears it
font.family.display
Add to calendar
FT System Blank
Headings. 66 glyphs, trial cut
font.family.body
Add to calendar
Lab Grotesque
Everything a member reads
font.family.code
Add to calendar
Lab Grotesque Mono
Token names, values and code
font.heading.large
Enescu
72 / 1.12
Hero on the splash
font.heading.medium
Enescu
48 / 1.1
Section headings
font.body
Add to calendar
16 / 1.2
Default reading size
font.body.small
Add to calendar
14 / 1.2
Buttons and navigation
font.code
Add to calendar
10 / 1.4
Token names and values
space.0504pxspace.1008pxspace.20016pxspace.30024pxspace.60048px18px · 1.75 stroke Feather icons, twenty-two in the set. Always paired with a label, never used alone.
Identity system · 01
Set headlines and body text in FT System Blank. Do not add a third typeface. The current cut is a trial and covers a limited character set, so accented names fall back to Lab Grotesque. Check names such as Măcelaru at their real size before approving a layout.
Use Maestro Red for the primary action and the active tab. Do not place it directly against ink; the two measure 1.56:1 and will not separate. Build everything else from the gray ramp.
Group related content in a card rather than dividing it with a line. A set of values describing one thing is a single card. A list of separate items is one card per item.
Three levels, all on Radius/Button 8. Primary fills with Maestro Red. Secondary fills with Gray 100. Tertiary has no fill and is used for low-emphasis actions placed inside other content, such as View all or Clear all. Change the fill between states, not the shape or size.
Separate content with a change of background rather than a divider. Cards are white on the Gray 100 background, with no border and no shadow. Overlays and sheets use a solid background so the controls inside them stay legible.
Contrast ratios below are calculated from the current token values against the Gray 100 background. They are a design requirement, not a completed accessibility audit: keyboard order, screen-reader labels, and motion preferences still need testing.
Gray 300 measures 2.75:1 on the Gray 100 background and 2.99:1 on white, below the 4.5:1 needed for body text. It is currently used for secondary labels and inactive tab labels. Either darken those to Gray 400 or restrict Gray 300 to non-text use.
Maestro Red and ink are close in lightness, so red placed directly on ink is unreadable and stops reading as a color. Place Maestro Red on white or on the Gray 100 background.
Every control needs one visible focus style, applied consistently. The current build uses a 1.5px outline on most controls and a 3px outline in one place; this needs to be reconciled to a single value.
Draw a control at the size the design calls for, then extend its tappable area to at least 44 by 44 points. Do not enlarge the visible control to reach the number.
Pad the tab bar so labels clear the home indicator. env(safe-area-inset-bottom) returns zero in a browser mock, so the build applies a 30px minimum. Check it on a device.
Eight outlined paths on a 1025 × 132 viewBox, with no live text, so the mark carries no font dependency. It is inlined once as a <symbol> and referenced wherever it appears.
The mark inherits currentColor, so it takes Maestro Red on light backgrounds and white on dark ones. Do not recolor the artwork.
Below 18px the stacked bars in the symbol stop separating. In this prototype the Maestro mark appears at 42px on the splash screen, in the marketing screen header, and in this documentation.
Leave clear space on all four sides equal to half the height of the lockup, measured from its bounding box. Place nothing inside that area.
Primary
#FFFFFF#060607#690218#B9D7F6UI · Red
#E5A1A3#D16265#A01F3B#690218#3A000DUI · Blue
#DBE8F6#B9D7F6#8EB3D9#658DB5#365B82UI · Yellow
#FFE4AE#F3CF85#D7B063#B38A39#87641FUI · Green
#CADEB4#B4C699#94A77A#7A8C61#606E46Gray 100#F6F5F3Gray 200#CBCAC8Gray 300#969593Gray 400#50504EGray 500#2D2D2CMaestro
Member pass ready
Tonight · 7:30 PM · Music HallThe trial cut covers the alphabet, digits, space, comma, and period. Every other character falls back to Lab Grotesque through a unicode-range, so the switch is defined in the stylesheet rather than left to the browser.
Read Măcelaru closely: the M, c, e, l, a, r and u are FT System, the ă is Lab Grotesque. Assume every accented name in the catalog does this until the full cut is licensed.
Use performance photography with long exposures: a bow mid-stroke, a hand leaving a key, an audience in motion under stage lighting. No posed shots and no one looking at the camera.
pressTransform on tapcolorHover and statescreenEntry between screensambientSplash focus, letter driftcubic-bezier(.22, 1, .36, 1). It slows quickly and settles, which suits a screen arriving. Do not add a second curve.
The build defines five animations: a screen entering at 280ms, a sheet at 320ms, an overlay fade at 240ms, and two ambient effects on the splash screen. Most transitions run at 160 to 180ms. Animate a change of state; if a motion is not tracking something that changed, remove it.
Under prefers-reduced-motion, reduce every duration to .01ms, including the ambient splash animations.
Doors open at 6:30.
Not “Your unforgettable evening awaits.” Say what the member needs.