Timecode resource

grandMA3 onPC timecode workflows

Article goal: Some practical grandMA3 onPC timecode workflows, with real-world tips for getting show playback behaving as expected.

Using Timecode with grandMA3 onPC

grandMA3 onPC is wildly useful for programming, rehearsals, previz, small rigs, backup systems, and “I need to build this show in a hotel room before load-in” situations. Add timecode, and suddenly your onPC setup can chase playback just like a proper show system instead of depending on someone to smash Go at the exact right millisecond.

That is the dream: playback rolls, MA3 follows, cues land, everybody on comms gets a little less spicy.

But timecode with grandMA3 onPC has a few traps. The biggest one is assuming that all timecode formats enter the software the same way. They do not. LTC, MTC, and ArtTimeCode may all describe the same timeline, but they travel through different doors.

This article is mostly tips, because the theory is nice, but show day does not care that you read a PDF. Show day cares whether the cursor moves when the artist hits play.

The simple version

In grandMA3, a Timecode Show is the thing that contains the timed events. A Timecode Slot is the clock source that feeds it.

Think of it like this:

  • Timecode Slot: “What time is it?”
  • Timecode Show: “What should happen at that time?”

The slot receives or generates time. The show listens to that slot and fires events, cues, fader moves, and other programmed moments.

That separation matters. If your Timecode Show is clean but the Timecode Slot is looking at the wrong input, your programming is not broken. The clock just walked into the wrong room.

Tip 1: Choose the timecode format before you build the rig

grandMA3 can work with multiple timecode formats, but onPC workflows are usually happiest when you pick the right one early.

For onPC, the practical choices are usually:

  • MTC: Best for DAWs, virtual MIDI, and simple laptop-based programming rigs.
  • ArtTimeCode: Best when your show-control world is already living on Art-Net and the source supports it.
  • LTC converted to MTC: Best when playback, broadcast, or another department gives you LTC, but your onPC machine needs to receive timecode without MA hardware.

Here is the big gotcha: do not assume a random laptop audio input can feed LTC directly into grandMA3 onPC. Direct SMPTE/LTC into MA3 normally wants MA hardware with an LTC port, such as a console, command wing, or I/O node. Plain onPC is much easier to feed with MTC or ArtTimeCode.

Translation: if you have no MA hardware with an LTC port, convert LTC into MTC or ArtTimeCode. That is not a hack. That is the clean route.

Tip 2: Use MTC for the clean REAPER to MA3 onPC workflow

For programming rooms, rehearsal laptops, and smaller onPC rigs, MTC is often the move.

A common setup looks like this:

  • REAPER generates MIDI Timecode.
  • Duckport MIDI routes that MTC to grandMA3 onPC.
  • grandMA3 onPC selects the Duckport MIDI input as its MIDI source.
  • The Timecode Show listens to the matching Timecode Slot.

That is the clean little sandwich. Playback on one side, MA3 on the other, Duckport MIDI in the middle keeping the routing from becoming a haunted house.

In REAPER, the typical workflow is to insert a SMPTE LTC/MTC Timecode Generator, open its properties, and set it to send MIDI Timecode. Then route that track’s MIDI output to the virtual port that Duckport MIDI is managing.

In grandMA3 onPC, open the onPC Local Settings and select the Duckport MIDI port as the MIDI In Device. Then make sure your Timecode Show is listening to the correct Timecode Slot.

Do not skip the “correct slot” part. Timecode troubleshooting is often not glamorous. It is usually just one dropdown quietly ruining your afternoon.

Tip 3: Duckport MIDI is the sane routing layer

Virtual MIDI routing is one of those things that sounds simple until you have three apps open, two ports named almost the same thing, and no one remembers which direction the virtual cable is supposed to go.

Duckport MIDI is built to make that less gross.

For this kind of grandMA3 onPC workflow, Duckport MIDI replaces the old “stack a bunch of general-purpose MIDI utilities and pray” approach with a cleaner, show-focused routing layer. Apps like Bome MIDI Translator Pro are powerful, but for a straight REAPER to MA3 onPC MTC route, you usually do not need a spaceship. You need a readable patch.

Duckport MIDI is especially useful when:

  • You want REAPER to send MTC to MA3 onPC on the same Windows machine.
  • You want a simple virtual MIDI path without fragile port-name confusion.
  • You want one MIDI controller connected into the same routing setup.
  • You want a cleaner alternative to older utility stacks.

That last controller detail is sneaky useful. You can have MTC feeding the MA3 timeline while a small MIDI controller still handles practical programming or playback controls. One little controller, one clean route, no cable goblin behavior.

Tip 4: Give MTC a tiny runway

Do not put the first lighting cue on the first frame of the file and expect every device to wake up like it had espresso.

MTC is solid, but give the system a moment to see the code, identify the position, and start chasing. In real production terms, leave a short pre-roll before the first cue. One or two seconds is often enough for programming. More can be useful for show playback, especially if the first moment is high-stakes.

A clean song start might look like this:

  • 01:00:00:00 Timecode begins
  • 01:00:02:00 First safe lighting event
  • 01:00:04:00 First visible musical hit

That little runway makes the rig feel calmer. Your timeline gets to breathe before the first punch.

Tip 5: Keep MTC and MIDI controller data organized

MTC is MIDI, but it is not the same job as MIDI notes, control changes, or program changes.

MTC says, “We are at 01:10:23:12.”

A MIDI controller says, “Button 7 was pressed.”

Same language family. Different conversation.

Best practice: keep your MTC path clean. Do not bury it under a ton of controller messages unless you actually know why. Let Duckport MIDI route the DAW’s MTC to grandMA3 onPC, and route your controller intentionally instead of letting everything spray everywhere like a broken lawn sprinkler.

If the timecode cursor jitters, drops, or refuses to lock, simplify the MIDI route first. One source. One destination. Confirm it works. Then add the controller back in.

Tip 6: Do not double-offset yourself into the void

Offsets are great. They are also a fantastic way to confuse yourself.

You can offset timecode in the playback system, in the Timecode Show, or in the Timecode Slot settings. That does not mean you should offset it everywhere.

Pick a strategy and write it down.

For concerts, a clean workflow is usually to put each song at a real timecode address in playback:

  • 01:00:00:00 Song 1
  • 01:10:00:00 Song 2
  • 01:20:00:00 Song 3
  • 02:00:00:00 Encore

Then program MA3 against those real addresses.

Another valid workflow is to build each Timecode Show from zero and use MA3’s Offset TC Slot setting to make that show line up with the incoming clock. That can be nice for musicals, acts, or song-by-song organization.

The danger is doing both without realizing it. If REAPER starts the song at 01:20:00:00 and MA3 also adds a one-hour offset, congratulations, your cue is now living in a different ZIP code.

Offset rule: use one offset brain. Not three.

Tip 7: One song per Timecode Show is often cleaner

You can make one giant Timecode Show for the entire set. Sometimes that is fine. But for most concert programming, one Timecode Show per song or section is usually easier to edit, copy, rebuild, and troubleshoot.

Why?

  • Song changes do not wreck the whole timeline.
  • You can rehearse one song without staring at a massive scroll of sadness.
  • You can duplicate a song structure for alternates or one-offs.
  • You can keep notes, markers, and offsets more organized.

Think of each song as its own little apartment. It can have its own cues, markers, and mess. Much better than making the entire tour live in one giant open-plan loft with no labels.

Tip 8: Build a dedicated timecode view

Make yourself a timecode workspace in grandMA3 onPC. Do not rely on digging through menus every time something gets weird.

A good timecode view includes:

  • Timecode Pool
  • Timecode Slots Pool
  • Timecode Viewer
  • Clock Viewer set to the relevant Timecode Slot
  • Sequence or playback view for the target cue stack

This gives you the whole story at once: what show is selected, what slot is receiving, what time is rolling, and what cues are being triggered.

When the room gets loud and everyone is asking why the chorus look did not hit, this view is your emotional support animal.

Tip 9: Watch the Timecode Slot, not just the Timecode Show

If the Timecode Show is not moving, look at the slot first.

Ask:

  • Is the Timecode Slot receiving time?
  • Is it receiving the right type of timecode?
  • Is it showing the expected time address?
  • Is the Timecode Show assigned to that same slot?
  • Is the show duration actually covering the incoming time?

The Timecode Slot is the front door. If timecode is not getting through the front door, the Timecode Show cannot do anything useful inside the house.

Tip 10: Remember that Timecode Slot settings are local

This one can absolutely ruin your day.

Timecode Slot settings are not always something you should assume will travel with the show file exactly the way you expect across stations. When moving between your programming laptop, show machine, backup machine, and console network, verify the slot settings on the actual machine that will receive the code.

That includes:

  • Slot name
  • Input/source behavior
  • Pre Roll
  • After Roll
  • Colors and appearances
  • Generator settings

Best practice: include Timecode Slot setup in your show-day checklist. Not just the show file. Not just the patch. The slot setup too.

Future you deserves peace, not a surprise local setting from last month’s corporate ballroom.

Tip 11: Use Pre Roll to avoid false starts

Pre Roll tells the Timecode Slot how long it needs to see an external signal before it trusts it.

That is useful when timecode might appear briefly, glitch, or get poked during setup. Instead of MA3 instantly chasing every tiny blip, Pre Roll lets you say, “Hold up, prove this is real.”

For a stable REAPER to MTC workflow, you may not need much. For more complicated source chains, a little Pre Roll can keep the slot from reacting to nonsense.

Do not set it so high that the first cue misses the bus. Pre Roll is a seatbelt, not a parking brake.

Tip 12: Use After Roll carefully

After Roll lets the Timecode Slot keep running internally for a bit after the external signal stops.

This is useful when the incoming code has a tiny dropout. Instead of the whole show instantly stopping because one packet coughed, MA3 can keep rolling for the amount of After Roll you set.

That is great for little hiccups. It is not great as a way to hide a broken source.

Use After Roll like a safety net, not a lifestyle. If the timecode source drops for real, you want to know. Masking a serious problem for 30 seconds just means the cue stack is confidently wrong for longer. Bold, but bad.

Tip 13: Set Duration on your Timecode Shows

Duration is not just cosmetic. It helps define the useful time range for a Timecode Show, especially when Auto Start and Auto Stop are involved.

If you have one show for Song 4, set the duration to cover Song 4. Do not leave every Timecode Show acting like it owns the entire 24-hour timeline.

For example:

  • Song offset: 01:30:00:00
  • Song length: 04:12
  • Practical duration: 05:00 or 06:00, depending on padding

This keeps MA3 from being too eager when timecode from a different section rolls by. Good fences make good neighbors. Good durations make good Timecode Shows.

Tip 14: Auto Start is powerful, but do not let it freestyle

Auto Start can start a Timecode Show automatically when the external time signal appears in its range. That is very useful for hands-off playback.

It can also be confusing if multiple Timecode Shows overlap or have lazy durations.

Use Auto Start when:

  • Each song has a clear time range.
  • The incoming timecode map is stable.
  • You have tested the exact playback source.
  • The Timecode Show duration is set intentionally.

Avoid Auto Start chaos by making sure only the show that should respond to that time range is in play. Otherwise, MA3 may technically do what you told it to do, which is not always what you meant. Classic console behavior. Zero remorse.

Tip 15: Auto Stop should match your playback reality

Auto Stop can stop a Timecode Show when the time signal stops. That is nice when the DAW stops and you want the timecoded behavior to stop too.

But think through your rehearsal workflow.

During programming, you may stop and start constantly. Auto Stop can be helpful, or it can become annoying if you are jumping around quickly.

During show playback, Auto Stop is often useful because a real stop should probably stop the timecode show. During programming, you might turn it off until the timeline is built and stable.

Tip: do not use the same settings blindly for programming and show mode. Rehearsal mode and show mode are different animals.

Tip 16: Use Assert Previous Events with intention

Assert Previous Events is one of those settings that can feel like magic when jumping into the middle of a song.

When enabled, MA3 can assert events before the current cursor position. In human language: if you jump to the second chorus, MA3 can try to restore the state that should already exist by that point.

This is super helpful during rehearsals. You do not want to start from the top of the song every time just to see whether a chorus look works.

But be careful. If your timeline is messy, asserting previous events can bring along old states you forgot about. It is not wrong. It is just aggressively obedient.

Best practice: use Assert Previous Events, but keep your cue structure clean. Make sure major sections have clear looks and cue states. Do not rely on vibes and partial leftovers.

Tip 17: Record rough, then edit clean

grandMA3 can record timecode events while you operate. That is awesome for getting a first pass down quickly.

But a recorded pass is rarely the final form. Human timing is human timing. That is the polite version.

A good workflow:

  • Record a rough pass while listening to the track.
  • Clean up event timing in the Timecode Viewer.
  • Move hits to exact musical moments.
  • Remove accidental button presses.
  • Simplify anything that does not need to be timecoded.

Timecode recording is a sketchpad. Editing is where it becomes a show.

Tip 18: Do not timecode every tiny thing

Just because you can timecode something does not mean you should.

Timecode the things that must land precisely:

  • Big downbeat hits
  • Blackouts
  • Video sync moments
  • Laser accents
  • Automation-safe transitions
  • Big chorus reveals

Leave room for the LD to be live:

  • Audience bumps
  • Solo rides
  • Spot calls
  • Artist banter moments
  • Energy adjustments

A great timecoded show should not feel like a robot wearing a laminate. It should feel tight, musical, and still alive.

Tip 19: Use markers like section labels

Markers are your friend. Use them for real song sections:

  • Intro
  • Verse 1
  • Pre-chorus
  • Chorus 1
  • Bridge
  • Dance break
  • Final chorus
  • Button

This makes the Timecode Viewer readable. Nobody wants to scrub around a blank timeline going, “Is this the drop or the fake drop?”

Markers turn the timeline into a map. Without them, it is just a ruler with anxiety.

Tip 20: Keep your first cue boring

The first timecoded event in a song should usually be safe. Not the biggest look. Not the pyro enable. Not the full-send blinders.

Use an early setup cue first:

  • Preset the base look.
  • Set the sequence state.
  • Prepare color, position, or intensity defaults.
  • Then fire the visible hit later.

This gives the timeline a stable foundation. Big looks are more fun when they are not also doing basic housekeeping.

Tip 21: Make a panic plan

Timecode is great until it stops. Build a plan before it stops.

Have a manual fallback for each song. That might be:

  • A normal cue stack you can run by hand
  • A “timecode failed” macro or view
  • A backup executor page
  • A simple busking state for emergencies

The audience does not know your timecode failed. They know whether the stage looks dead.

Do not make your only usable show path depend on one invisible clock. That is not confidence. That is spicy gambling.

Tip 22: For LTC sources, use DuckTC as the bridge

Sometimes you do not control the source format. Playback, broadcast, or another department may hand you LTC because that is what the rest of the production is using.

When your onPC system needs MTC, DuckTC is the practical Duck Lights bridge: LTC audio in, MTC out.

That is especially useful for grandMA3 onPC because it lets you build an inexpensive Windows show-control machine that listens to incoming LTC through an audio interface, converts it to MIDI Timecode, and sends that MTC into MA3 through Duckport MIDI.

The big win is visibility. DuckTC is not just a mystery converter living in the corner. It is designed to show sync status and signal health, including waveform monitoring. That matters because LTC problems are often boring audio problems wearing a timecode costume.

With DuckTC, you can answer questions like:

  • Is LTC actually coming in?
  • Is it on the correct audio channel?
  • Is the waveform healthy?
  • Is the signal too quiet or too hot?
  • Is the frame rate what we think it is?
  • Is MTC being sent out to the right place?

That is way better than staring at MA3 and whispering, “Please move.”

Tip 23: Build a headless timecode machine the cheap way

For installs, rehearsal rigs, programming rooms, and backup systems, you may not want a full console or command wing just to deal with timecode. A small Windows machine can do a lot.

A practical headless setup can look like this:

  • Small Windows 11 computer
  • Reliable audio interface receiving LTC
  • DuckTC converting LTC to MTC
  • Duckport MIDI routing MTC cleanly
  • grandMA3 onPC receiving MTC
  • Remote access for setup and monitoring

This is the “little box that makes the timeline behave” approach.

For a headless machine, do the unsexy prep:

  • Disable sleep.
  • Disable surprise operating system updates during show hours.
  • Use a reliable USB/audio interface.
  • Label the LTC input physically.
  • Save the DuckTC and Duckport MIDI configuration.
  • Test reboot behavior.
  • Put the machine on a UPS for show-critical use.

Headless is only cool when it comes back up correctly. Otherwise it is just a tiny black box with trust issues.

Tip 24: Do not confuse Audio In with LTC In

grandMA3 has audio features, and grandMA3 has LTC timecode features. Those are not automatically the same thing.

Audio input can be used for sound-related features like sound triggers or BPM workflows. LTC is a specific timecode signal that needs to be decoded as timecode.

So when someone says, “Just plug the LTC into the laptop input,” slow down. The question is not whether audio is entering the computer. The question is whether grandMA3 onPC can use that audio as a timecode source in your exact hardware/software setup.

For plain onPC, MTC or ArtTimeCode is usually the cleaner input path. For incoming LTC, convert it first with DuckTC or use MA hardware with an LTC port.

Tip 25: ArtTimeCode can be elegant, but only if the network is clean

ArtTimeCode is timecode carried over Art-Net. For network-native rigs, that can be super clean.

Use it when:

  • Your source can generate ArtTimeCode.
  • Your MA3 network is configured intentionally.
  • The correct interface is selected.
  • Art-Net input is enabled.
  • The Art-Net row is set to Input.
  • The Timecode Slot is assigned correctly.

Do not use it as an excuse to toss everything onto a mystery network switch from someone’s backpack.

Networks are amazing. Networks are also where good intentions go to become “why is this packet not here?” Keep the lighting network boring. Boring networks win shows.

Tip 26: Match the frame rate to the show world

For most grandMA3 onPC timecode workflows, pick the frame rate based on the content and playback ecosystem.

  • 30 fps: Common for US live workflows and 60 fps video environments.
  • 29.97 fps: Common when broadcast, livestream, or 59.94 video is involved.
  • 25 fps: Common in Europe and 50 fps video environments.
  • 24 fps: Used for film-style or camera-based workflows where the content pipeline is truly 24 fps.

The important part is not sounding smart in the meeting. The important part is making sure playback, video, MA3, and any converters agree.

Frame rate mismatch is a classic sync gremlin. It does not always explode immediately. Sometimes it waits until rehearsal has already become expensive.

Tip 27: Watch drop frame like it owes you money

Most concert lighting workflows use non-drop frame unless there is a broadcast reason not to.

Drop frame is mainly a broadcast timing solution for 29.97. It does not drop actual picture frames, but it does skip certain frame numbers in the timecode count.

If broadcast says “29.97 drop,” listen. If nobody knows why drop frame is being used, ask questions before programming the whole show against it.

Write down exactly what you are using:

  • 30 ND
  • 29.97 ND
  • 29.97 DF
  • 25
  • 24

“It is basically 30” is not documentation. That is how goblins get tenure.

Tip 28: Test with the real source, not just a generator

A test generator is useful. It tells you that the receiving side can lock.

But before show time, test with the actual source:

  • The real REAPER session
  • The real playback machine
  • The real audio interface
  • The real DuckTC settings
  • The real Duckport MIDI route
  • The real MA3 show file

A fake source can make the system look fine while the real show source is still patched wrong, muted, offset, or sending a different frame rate.

Test the meal you are serving, not just the oven.

Tip 29: Put the timecode map in the show file notes

Somewhere obvious, document the timecode map.

Example:

  • 01:00:00:00 Opener
  • 01:10:00:00 Song 2
  • 01:20:00:00 Song 3
  • 01:30:00:00 Ballad
  • 01:40:00:00 Dance break
  • 02:00:00:00 Encore

Also document:

  • Frame rate
  • Drop or non-drop
  • Timecode source
  • Duckport MIDI routing
  • DuckTC audio input, when used
  • MA3 Timecode Slot assignment
  • Who owns playback changes

When the setlist changes at 4:47 p.m., documentation becomes less boring.

Tip 30: Use clear names everywhere

Bad names cause bad troubleshooting.

Do not name everything “MTC” and call it a day. Use names that describe the job.

Better examples:

  • REAPER MTC OUT
  • Duckport to MA3 MTC
  • MA3 TCSlot 1 Main Set
  • MA3 TCSlot 2 Encore
  • DuckTC LTC Input Playback A

Good labels are free. Confusion is expensive.

Tip 31: Keep the cue stack playable without timecode

A timecoded sequence should still make sense if you have to run it by hand.

That means:

  • Major looks should live in cues.
  • The cue order should be understandable.
  • Manual Go should still step through a usable version of the song.
  • Important safety or blackout cues should be easy to reach.

Timecode should trigger a good sequence. It should not be the only reason the sequence makes sense.

Build the show like a human might have to save it. Because a human might have to save it.

Tip 32: Check the boring stuff first

When timecode does not work, do not immediately assume the software is cursed.

Check this list:

  • Is REAPER actually playing?
  • Is the timecode generator item long enough?
  • Is it set to send MTC, not just generate LTC audio?
  • Is Duckport MIDI routing the correct output to the correct input?
  • Is grandMA3 onPC listening to the correct MIDI In Device?
  • Is the Timecode Show assigned to the correct Timecode Slot?
  • Is the Timecode Slot receiving the expected address?
  • Is the frame rate correct?
  • Is the show duration covering the incoming time?
  • Is Auto Start doing what you think it is doing?

Most timecode problems are not mystical. They are small routing mistakes with confidence.

A practical REAPER to grandMA3 onPC recipe

Here is a simple programming setup for a single Windows machine:

  1. Open REAPER and create your playback session.
  2. Insert a SMPTE LTC/MTC Timecode Generator item.
  3. Set the generator to send MIDI Timecode.
  4. Route that generator track’s MIDI output to Duckport MIDI.
  5. Open Duckport MIDI and route the REAPER MTC source to the MA3 onPC MIDI input path.
  6. Open grandMA3 onPC.
  7. In onPC Local Settings, select the Duckport MIDI port as the MIDI In Device.
  8. Create or select a Timecode Slot for the incoming MTC.
  9. Create or select a Timecode Show and assign it to that slot.
  10. Press play in REAPER and confirm the Timecode Slot is rolling.
  11. Record or program your timed events.

That gives you a no-command-wing programming workflow where REAPER is the source, Duckport MIDI is the route, and MA3 onPC is the listener.

Actual show output, parameters, nodes, viz-key, or MA hardware needs are a separate system design topic. This workflow is about getting timecode into onPC cleanly.

A practical LTC to grandMA3 onPC recipe

Here is the version for incoming LTC:

  1. Feed LTC from playback into a reliable audio interface.
  2. Open DuckTC on the Windows show-control machine.
  3. Select the correct audio input channel.
  4. Confirm the LTC waveform and sync status look healthy.
  5. Set DuckTC to output MTC through Duckport MIDI.
  6. Open Duckport MIDI and route that MTC output to grandMA3 onPC.
  7. In MA3 onPC, select the Duckport MIDI port as the MIDI In Device.
  8. Assign the incoming MTC to the correct Timecode Slot.
  9. Assign your Timecode Show to that slot.
  10. Roll playback and confirm the timeline follows.

This is the “LTC exists, but MA3 onPC wants MTC” workflow. It keeps the audio decoding in DuckTC, the MIDI routing in Duckport MIDI, and the show programming in MA3.

Clean lanes. Less drama. Big fan.

When Duck Lights services make sense

Sometimes you do not just need a tool. You need the workflow designed, tested, and documented before the room gets loud.

Duck Lights can help build practical show-control workflows around grandMA3 onPC, playback, MIDI routing, LTC conversion, and timecode troubleshooting. That might mean setting up a REAPER to MA3 programming station, building a DuckTC-based LTC-to-MTC machine, cleaning up a timecode map, or helping a production team decide which format should be the master clock.

Software is great. A clean workflow is better. The best rig is the one the crew can actually understand at show speed.

Start with Duckport MIDI for clean REAPER to MA3 onPC MTC routing. Use DuckTC when LTC needs to become MTC with real signal-health visibility.

The big takeaway

grandMA3 onPC can be a great timecode programming and show-control environment, but the format matters.

For DAW workflows, MTC is usually the cleanest path. For REAPER on the same machine, Duckport MIDI makes that routing simpler and more show-friendly. For incoming LTC, DuckTC converts the signal into MTC and gives you the monitoring tools to know whether the signal is actually healthy.

The MA3 side is all about Timecode Slots, Timecode Shows, offsets, duration, Auto Start, Auto Stop, Pre Roll, After Roll, and clean cue structure.

Get those pieces right, and onPC stops feeling like “just the laptop version” and starts feeling like a real timecode programming machine.

Which is exactly the vibe. Less guessing. More lock. Fewer sync gremlins wearing tiny little headsets.