JcfFormat - hyvart/Unjammit GitHub Wiki

JCF Archive Format

In short, a JCF archive is a GUID-named ZIP file containing a Jammit song's audio, score and metadata in a single GUID-named directory.

It holds tracks for an isolated instrument (one or more), and the complementing instruments (band).

Sample Layout

E60AE659-D23C-4410-9B48-D9807DC04E53.jcf/
├── D9A3376A-2607-4FCA-9F70-8B37E242C6DE_anlx
├── D9A3376A-2607-4FCA-9F70-8B37E242C6DE_jcfx
├── 91853D95-0056-4A04-AF74-49612D560087_anlx
├── 91853D95-0056-4A04-AF74-49612D560087_jcfn_00
├── 91853D95-0056-4A04-AF74-49612D560087_jcfn_01
├── 91853D95-0056-4A04-AF74-49612D560087_jcfn_02
├── 91853D95-0056-4A04-AF74-49612D560087_jcfn_03
├── 91853D95-0056-4A04-AF74-49612D560087_jcfn_04
├── 91853D95-0056-4A04-AF74-49612D560087_jcfx
├── beats.plist
├── cover.jpg
├── ghost.plist
├── info.plist
├── music.waveform
├── nowline.nodes
├── patches.plist
├── sections.plist
├── tracks.plist
└── user.plist

For each GUID-prefixed file, such GUID relates it to a particular track (instrument or band).

Audio Track {GUID}_jcfx

AIFF-C encoded lossless audio track.

Score Images {GUID}_jcfn_{digit}{digit}

PNG image files representing the score (jcfn) or tablature (jcft) transcriptions for the instrument part.
The files are meant to be displayed as a single continuous score.

Each image's dimensions are 724 × 1024 (181 x 256 proportion).

ANLX File {GUID}_anlx

unknown

Main metadata file info.plist

Apple Property List containing the main song metadata:

  • Artist
  • Album
  • Title
  • Instrument
  • Genre
  • SKU
  • Skill Level
  • Beats Per Minute
  • Copyright Year
  • Count-in Beats
  • Publisher
  • Version
  • Author

Optional properties

  • Affiliate ?
  • Courtesy Of
  • Is Demo
  • Is Explicit
  • Slowdown factor

Beats Sequence beats.plist

Contains the coordinates for each note or chord matching the score images for the instrument tracks. The metronome click track is generated from this file.

Album Cover cover.jpg

Pretty self-descriptive.

Ghost Notes ghost.plist

unknown

Waveform music.waveform

unknown

Nowline File nowline.nodes

unknown

Patches File

unknown

Song Sections sections.plist

Song parts to allow direct browsing by the Jammit-compatible player.

Tracks List tracks.plist

Metadata for each of the tracks in the JCF archive.

class

Track class name

Class name Description
JMFileTrack Audio Track
JMClickTrack Generated during playback
JMInputTrack Represents the user input/record track
JMEmptyTrack unknown

identifier

GUID track identifier

title

Track instrument display name

scoreSystemHeight

Appears only in file tracks.
Height of each staff system.

scoreSystemInterval

Appears only in file tracks.
Staff system offset base.

Determines the score cursor vertical position by:
offset(beat index) = ScoreSystemInterval * row(Nodesbeat index)

User File user.plist

unknown

⚠️ **GitHub.com Fallback** ⚠️