Hvad er KAR-filformatet?
En .kar-fil, også kendt som Karaoke MIDI-filen, ligner den traditionelle .mid-fil, der bruges i forskellige MIDI-applikationer og afspillere. I modsætning til den beskrivelse, der nogle gange gives, indeholder en .kar-fil ikke referenceplaceringer til eksterne lydspor - det ER en Standard MIDI-fil, der indeholder en sekvens af timede nodehændelser, som en synthesizer omdanner til lyd. Det, der adskiller den, er et ekstra spor, der indlejrer sangteksterne i tekstformat, tidssynkroniseret til melodien for ord-for-ord-visning under afspilning.
Metadata gemt i en .kar-fil inkluderer typisk sangtitlen, kunstneren eller albummet og andre relaterede detaljer - konventionelt placeret i @T, @A og @I header-linjer i starten af den første MTrk track-chunk. Selve teksterne overføres som FF 01 tekst-meta-hændelser (Soft Karaoke @-tag-formatet, med en @KMIDI KARAOKE FILE-identifikator) eller som FF 05 lyriske meta-hændelser.
Da .kar gemmer et partitur frem for samplet lyd, kan den samme fil lyde forskelligt afhængigt af den synthesizer eller lydbank, der bruges. Filerne er bemærkelsesværdigt kompakte - en komplet karaoke-sang med fuld tekst vejer typisk mellem 5 KB og 150 KB. Da .kar deler MThd magic bytes med enhver MIDI-fil, vil omdøbning af .kar til .mid normalt tillade enhver MIDI-afspiller at åbne den; musikken spiller korrekt, men de synkroniserede tekster vil ikke blive vist.
Sikkerhed og tryghed
RISIKO: LOWEn .kar er passive MIDI-hændelsesdata uden indlejret kode eller makroer, så selve formatet er lavrisiko. Historisk note: en fejl i Windows MIDI-parsing fra 2012 (CVE-2012-0003) tillod eksekvering af kode via en manipuleret MIDI i Windows Media Player - dette er for længst rettet, så hold dit OS og dine afspillere opdateret. Den største praktiske «risiko» er skuffelse: en .kar kan lyde tynd, fordi afspilningen afhænger af enhedens soundfont, og en ikke-karaoke-afspiller vil slet ikke vise teksterne.
Formatdetaljer
kort fortalt- Winamp AVS / andre app-presets - En håndfuld urelaterede programmer har brugt .kar til deres egne data, men betydningen som karaoke-MIDI er overvældende dominerende.
Programmer der åbner KAR-filer
Tekniske detaljer
dyb specifikation| Filstruktur | Standard MIDI File (SMF) - én `MThd` header-chunk efterfulgt af én eller flere `MTrk` track-chunks |
| Magic bytes | `4D 54 68 64` (ASCII `MThd`) ved byte-offset 0, identisk med en `.mid`-fil; der findes ingen `.kar`-specifik filsignatur |
| Indlejring af tekst | Tekster gemt som `FF 01` tekst-meta-hændelser (Soft Karaoke `@`-tag-stil, med `@KMIDI KARAOKE FILE`-identifikator) eller `FF 05` lyriske meta-hændelser, tidsjusteret til melodisporet |
| MIDI-formatvariant | SMF Format 0 (enkelt spor) eller Format 1 (flere spor); tekst/header-sporet er typisk den første `MTrk`-chunk i Format 1-filer |
| Byte-rækkefølge | Big-endian - alle heltal med flere bytes følger MIDI-specifikationens big-endian-konvention |
| Datakodning | Binær; delta-tid-tidsstempler bruger variable-length quantity (VLQ) kodning, 1-4 bytes pr. hændelsestidsstempel |
| Komprimering | Ingen - delta-tider med variabel længde holder hændelsesdata kompakte uden et separat komprimeringslag |
| Typisk filstørrelse | 5 KB - 150 KB; en fuld karaoke-sang med synkroniserede tekster er normalt et godt stykke under 100 KB |
| MIME-type | `audio/midi`; også brugt som `audio/x-midi` og `application/x-midi` |
| Timing-opløsning | Defineret af feltet `division` i `MThd`-headeren (ticks pr. fjerdedelsnode); tempo indstilles dynamisk via `FF 51` meta-hændelser i µs/fjerdedelsnode |
| Partitur vs. optagelse | Gemmer node- og kontrolhændelser, ikke samplet lyd - en synthesizer eller lydbank renderer afspilningen; den samme fil kan lyde forskelligt på forskellig hardware eller software |
| Header-metadatakonvention | Første spor starter konventionelt med `@KMIDI KARAOKE FILE`, efterfulgt af `@V` (version), `@I` (info), `@L` (sprog), `@T` (titel) og `@A` (forfatter) teksthændelser |
| Platformunderstøttelse | Windows, macOS, Linux, Android, iOS samt hardware-arrangør-keyboards og karaoke-maskiner |
| Interoperabilitet | Omdøbning af `.kar` til `.mid` gør det muligt for enhver standard MIDI-afspiller at åbne filen; musikken spiller korrekt, men synkroniserede tekster vises ikke |
| Legacy-status | I vid udstrækning erstattet til hjemmebrug af CD+G-diske, MP4-video-karaoke og streaming-karaoke-tjenester; `.kar`-filer lever videre i ældre samlinger og på arrangør-keyboards |
| Udgivet | Mid-1990s (the .kar lyric convention popularised by Tune 1000 / the MIDIOKE scene) |
| Seneste version | No separate spec - based on Standard MIDI File 1.0 (1988); lyrics carried in text/lyric meta-events |
| Åben standard | Ja · royaltyfri |
| Specifikation | midi.org |