Skip to content

Repository files navigation

Playback Notes Sync

Version 1.5.1

Playback Notes Sync is an Android tablet app for capturing handwritten playback notes with an S Pen. It combines a running MM:SS timer, optional MIDI Time Code (MTC) synchronization, on-device handwriting recognition, and CSV/PTX export for post-production workflows.

The interface is in English; handwritten notes and project names remain entirely user-controlled.

Highlights

  • Project-based note sessions stored locally on the device.
  • MM:SS transport with Start, Pause, Resume, and direct time-code adjustment.
  • Handwritten note cards designed for S Pen use, including stylus-button erasing.
  • Department buttons on every note: MIX, DIAL, SFX, STP, FOL, ADR, and CONC.
  • Notes are automatically sorted by time code. CLONE TC creates an adjacent empty note at the same time code.
  • OCR through Google ML Kit Digital Ink Recognition. The French recognition model is downloaded once (about 20 MB) and then works offline.
  • Combined CSV and PTX export: a Swissknife-compatible CSV, a clipboard-ready text version, and a Pro Tools session built from the included template.
  • RTP-MIDI / Apple MIDI MTC link over a standard IP network.
  • Optional Android screen pinning through SCREEN LOCK, to reduce accidental trips to the home screen during a session.

Requirements

  • Android 9 (API 28) or later.
  • Android Studio with JDK 17 for development.
  • Python 3.14 and Git available on the build machine. Android Studio uses them once to package the pt_api Python dependency.
  • An S Pen-compatible Android tablet is recommended.
  • Network access is required only for the first OCR model download and for MTC networking.

Open and run in Android Studio

  1. Clone the repository and open the repository root in Android Studio.
  2. Let Gradle sync and install any missing Android SDK components.
  3. Ensure JAVA_HOME points to JDK 17.
  4. Connect an Android device with USB debugging enabled, or select an emulator.

To produce an installable debug APK, run the Gradle Wrapper from Android Studio's terminal or any terminal opened at the repository root:

.\\gradlew.bat :app:assembleDebug

The output is app/build/outputs/apk/debug/app-debug.apk.

Workflow

  1. Create or open a project.
  2. Start the timer, then tap + NOTE at each relevant moment.
  3. Write with the S Pen and assign a department directly from the note card.
  4. Pause to adjust the master timer or an individual note time code when needed.
  5. Run OCR once the session is complete, correct any text if necessary, then use the share button from the project list.

Only unresolved notes are exported. Each unresolved note must have a department, completed OCR, and non-empty text before export is enabled.

PTX export

The share action creates and shares two files with the same base name:

  • <project>.csv
  • <project>.ptx

The PTX is generated from the packaged pb_notes_sync_template.ptx asset using pt_api. Each outstanding note becomes a 2-second empty Clip Group on the matching template track. The Clip Group name is the note text. If two notes have the identical text, a minimal (2), (3), and so on suffix is added because Pro Tools Clip Group names must be unique.

App department Template track
MIX MIX
DIAL DIAL
SFX SFX
STP STEPS
FOL FOLEY
ADR ADR
CONC CONCEP

Only tracks with exported notes remain visible. The other template department tracks are hidden. Note positions are converted to exact SMPTE HH:MM:SS:00 boundaries with the template's own frame rate: the export does not approximate the position by multiplying seconds by the sample rate. App times are elapsed MM:SS; PTX positions apply the template's 10:00:00:00 start, so an app note at 02:23 becomes a Clip Group at 10:02:23:00. The CSV retains the original elapsed time.

MTC link

Enable LINK in a project before connecting from the Mac. On macOS, create or enable a network MIDI session in Audio MIDI Setup, then connect it to the tablet IP address shown by the app on UDP port 5004.

LINK uses RTP-MIDI / Apple MIDI on a normal IP network. Some console Ethernet networks are dedicated or do not pass RTP-MIDI, multicast, or UDP traffic. In that case, connect the Mac and tablet through a separate router, switch, or Wi-Fi network.

Screen lock

SCREEN LOCK ON requests Android screen pinning immediately. After Android has accepted it, the lock stays active while playback is running or paused, so the system does not show a confirmation on every Play/Resume action. Use the app's back arrow to return to the project list and choose SCREEN LOCK OFF to end it.

Screen pinning is controlled by Android; its availability and exact prompt vary by device policy and Android version.

Privacy and storage

Projects are JSON files in the app's private storage. Android backup and device transfer are disabled for this app. No project content is uploaded by Playback Notes Sync.

The first OCR run downloads Google's French Digital Ink model. After the model is present, recognition runs locally on the device.

CSV format

Exports are UTF-8 CSV files with CRLF line endings. The time code is emitted as a numeric MMSS value without colons. Department mappings used by the export are:

App department CSV column
SFX FX
CONC CON
MIX, DIAL, STP, FOL, ADR same name

Project layout

app/src/main/
  java/com/sebbedard/playbacknotes/
    data/       Project persistence and models
    export/     CSV/PTX generation and Android sharing
    ocr/        ML Kit Digital Ink wrapper
    sync/       RTP-MIDI / MTC implementation
    ui/         Compose screens, note cards, drawing canvas, and theme
  res/          App resources, FileProvider, and backup rules
  python/       PTX export bridge executed by the embedded Python runtime
  assets/       Native Pro Tools PTX template used for exports

Known limitations

  • There is no undo/redo history yet.
  • There is no pinch-to-zoom on the drawing canvas.
  • Large numbers of detailed handwritten notes may be less fluid on older tablets.
  • The OCR model is French-only at present.

Technology

  • Kotlin 2.2.21
  • Gradle 8.7 / Android Gradle Plugin 8.5.2
  • Jetpack Compose / Material 3
  • Android Navigation Compose
  • Kotlin serialization and coroutines
  • Google ML Kit Digital Ink Recognition
  • Chaquopy / Python 3.14 with pt_api 1.5.1 for offline PTX generation
  • Minimum SDK: 28 (Android 9)
  • Target SDK: 34 (Android 14)

About

Android Playback Notes Taking App for Audio Post Workflows. Features ProTools AutoSync, OCR, CSV, PTX Export and much more.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages