Réception et contrôle / R2 · Livraison

À la réception d’un ALE, vérifiez d’abord ces champs

Réponse courte : un ALE est livré aujourd’hui avec 28 colonnes dans un ordre fixe ; on vérifie la ligne des noms de colonnes par rapport à cet ordre. Les deux heures qui suivent la fin de journée sont le vrai coût de la journée : les numéros de prise notés sur papier doivent être retapés dans un tableau, et la dernière heure passe à mettre en ordre une fiche que quelqu’un lira demain ; un numéro de prise sauté, une image de décalage dans le timecode, et le renvoi en rapprochement tombe l’après-midi du lendemain. SlateX livre cela en lignes de données — générées ligne par ligne à partir des caméras : quatre caméras donnent quatre lignes, et sans une seule information caméra relevée, une ligne sort quand même. Une case où rien n’a été relevé reste vide ; nous ne la remplissons pas d’un nombre qui a simplement l’air légal. Cette page n’est écrite que selon un seul critère : ce que vous livrez doit permettre au destinataire de trouver lui-même où ça ne concorde pas. La ligne de déclaration en tête de fichier écrit mot pour mot qui a fixé ces conventions ; lisez-la comme une frontière, non comme un certificat.

Qu’un fichier s’ouvre ne prouve que la lisibilité de la syntaxe. Une forme valide ne veut pas dire des faits corrects.

Noms des colonnes et ordre : contrôler les 28 colonnes sur les chaînes réellement présentes dans le fichier

Les positions de colonnes sont un contrat entre nous et le destinataire : qui change une colonne doit changer la ligne de données dans le même passage, sinon, des deux côtés, c’est tout le fichier qui se décale. Les 28 colonnes livrées actuellement, dans l’ordre : Name, Tracks, Start, End, Duration, Scene, Take, Reel #, Soundroll, FPS, SlateX Description, SlateX Comments, Tape, Camera, Camera Notes, VFX_Count, VFX_Type, Director, Sound TC, Source File Name, Source File, Camroll, Shoot date, Unit, Rating, Circled take, TC Mode, SlateX Set Time. Cette dernière est une colonne à nous, et ce qu’elle porte, c’est la Durée de la scène que la scripte remplit elle-même sur la fiche de la prise : ce n’est pas la même mesure que Duration, dont la portée, à l’écran, est la case en lecture seule Durée TC, et la section sur la position temporelle dit comment les deux partent côte à côte. Vérifiez contre ces chaînes littérales, sans supposer d’avance qu’un outil aval assemblera tout seul un nom de colonne approchant sur le même champ. Si SlateX Description et SlateX Comments portent le préfixe du nom du produit, c’est que ces deux cellules remplissent notre propre contenu, qui ne doit pas passer pour la sémantique standard d’autrui.

Qui est une ligne : numéro de carte, forme littérale et numéro compté par le logiciel sont trois choses distinctes

Tape livre le numéro de carte recopié sur le plateau tel qu’il est, à une condition : que la chaîne entière soit lettres et chiffres ASCII. Ce qui passe part seulement en majuscules et se coupe à 31 caractères ; si le moindre autre caractère s’y glisse, chinois, espace ou trait d’union, la cellule reste vide de bout en bout, parce que nous ne pêchons pas des lettres dans un nom de carte pour livrer un numéro que vous n’avez jamais écrit. La majuscule a une raison : si la casse se divise sur une même carte, elle devient trois cartes en aval, et appels par lots, rappels et feuilles de montage ne concordent plus nulle part. Camroll livre ce même numéro de carte, et cette cellule aussi exige l’ASCII sur toute la chaîne : un nom de carte portant des caractères non latins laisse la cellule vide, et le littéral ne vit que dans le CSV et dans le PDF. Reel # s’énonce dans le contrat comme un champ numérique : dès qu’une lettre entre dans le numéro de carte, la cellule reste vide ; nous n’effaçons pas le préfixe pour fabriquer un faux qui ressemble à un numéro.

Un troisième objet ressemble aussi à une référence : le numéro d’affichage compté par le logiciel lui-même, une lettre de caméra suivie d’un incrément à trois chiffres. Dans le CSV, il est posé à côté du numéro de carte recopié, séparés en Reel et Camera Card, pour que le lecteur distingue ce qui fut recopié de ce que le logiciel a ordonné. Un numéro dérivé ne correspond à aucune carte physique : il ne permet pas de retrouver le média source.

Name se tient sous les mêmes deux mesures : 31 caractères et ASCII. Il fabrique le nom déterministe avec le numéro de bobine et le numéro de clip de la caméra portée par cette ligne, et il ne retombe sur un nom que la prise a déjà — numéro de scène, de plan, de prise — que lorsqu’aucune ligne de caméra ne porte cette prise : la même pour une même ligne à chaque exportation, sans aucune promesse que deux lignes portent des noms différents. Le numéro de prise est rempli à la main, et l’identité se vérifie ligne par ligne — numéro de scène, de plan, de prise, plus la caméra en multi-caméras. C’est un identifiant généré, pas le nom que vous avez écrit sur papier au plateau.

Position temporelle : l’entrée comme la sortie ne reconnaissent que ce qui a été lu sur le plateau

Start prend le timecode de point d’entrée relevé pour cette prise : la valeur vraie du point d’entrée tient dans cette case, et il n’existe pas de seconde colonne de repli. End prend le point de sortie tenu dans la base. Le point de sortie arrive dans la base par deux chemins : la chaîne d’enregistrement capte, à l’instant où l’on appelle la coupure, la lecture affichée à l’écran, et le logiciel l’écrit dans la base à ce moment-là ; de plus, les pages de création et de modification de la fiche de prise ont chacune une case « sortie », où la scripte recopie à la main ce qu’elle voit sur l’écran de la machine. Aucun des deux chemins parcouru, cellule vide — nous ne le recalculons pas par entrée plus durée, ce serait faire passer un résultat calculé pour la lecture originale sur l’écran de la caméra. La cellule de sortie du CSV suit la même provenance et la même mesure. Une case vide se montre sur la feuille de réconciliation de fin de journée sous TC_OUT_MISSING, avec ce critère : point d’entrée présent, point de sortie absent. Il faut quelqu’un pour revenir à la fiche caméra, ou se remettre devant l’écran de la machine, et le recopier.

Duration n’est plus le nombre de secondes annoncé par la scripte. Cette colonne est l’intervalle exact en images entre les deux lectures d’entrée et de sortie, hors image de queue, et c’est pourquoi elle vaut End − Start ; si l’une des deux lectures manque, la cellule se livre vide. La Durée de la scène que la scripte remplit elle-même — combien de temps l’action a réellement duré sur cette prise, pré-roll, clapette et réalisateur qui lance avant tout compris là-dedans — part dans la dernière colonne, SlateX Set Time, et se livre à côté de Duration. Que les deux nombres divergent n’est pas une erreur, c’est l’état normal du plateau : ils ne mesurent pas le même morceau. La feuille de réconciliation marque ce cas sous DURATION_MISMATCH pour qu’un humain y jette un œil, et ne change la valeur d’aucune cellule. FPS n’a de valeur que si la ligne elle-même porte une déclaration de cadence : pas de déclaration, pas de nombre. Cette colonne ne montre jamais une cadence que cette machine n’a pas annoncée.

Le point-virgule ne suit que les déclarations. La colonne TC Mode ne peut porter qu’un seul jeton, DF ; une case vide signifie l’absence de déclaration de perte d’images, ce qui n’est pas « pas de perte d’images ». Seules les lignes déclarant DF écrivent Start, End et Duration en forme à points-virgules. C’est une convention d’affichage propre à SlateX, écrite mot pour mot dans l’en-tête du fichier ; ce n’est l’exigence d’aucun standard, donc ne tenez pas le point-virgule pour le signe universel de « cette ligne est en perte d’images ». Le timecode son se livre à l’identique : on juge la forme, on ne rogne aucune position d’image.

Dans cet ALE, une valeur manquante n’a qu’une seule forme : le vide

Toute cellule dont le timecode n’a pas été relevé, ou dont la chaîne ne passe pas le contrôle de forme ou de plage, se livre en chaîne vide. 00:00:00:00 ne paraîtra plus dans ce fichier. Le défaut de cette suite de zéros n’était pas d’être fausse, mais d’avoir l’air légale : le destinataire ne pouvait plus distinguer un vrai point zéro de plateau d’un zéro bourré — cette voie a donc été entièrement retirée. Une valeur manquante est vide ; et un vide demande de distinguer deux choses : rien n’a été relevé, ou ce qui a été relevé n’est pas en ASCII. C’est exactement là où tombent les colonnes de texte libre.

Source File Name et Source File sont des colonnes présentes ; leur valeur arrive par deux chemins : recopiées sur le plateau, ou l’application remplit ces mêmes cases lors de l’import des médias depuis un fichier, sans écraser ce qui avait déjà été recopié à la main ; aucun des deux, cellule vide, et nous ne devinons pas les chemins. VFX_Count est de même une colonne sans champ de saisie manuelle : seuls les projets de démonstration fournis apportent une valeur ; une prise créée sur le plateau reste donc vide. Soundroll livre le numéro de bobine tenu dans le registre du rapport son par ce même filtre Tape : la valeur ne sort que si elle est entièrement en lettres et chiffres ASCII ; en son absence, vide, sans faire avancer le numéro compté par le logiciel à sa place. L’ALE tout entier n’accepte que l’ASCII, mais ce sont deux critères distincts, pas une seule règle. Le texte libre destiné à la lecture — description, notes de prise, notes caméra, réalisateur, unité — est d’abord ramené en ASCII lorsque seul le graphème change : accents, guillemets typographiques et tirets, ponctuation pleine chasse sont ramenés, et les retours à la ligne comme les tabulations avant l’écriture sont compressés en espaces. Seul ce qui reste non latin après ce ramené livre la cellule entièrement vide. Les cellules d’index qui reconnaissent la source — numéro de carte, numéro de scène, nom de fichier, chemin — ne sont jamais ramenées : cette cellule doit porter la chose telle que recopiée, donc une valeur non ASCII s’y livre vide. Une note chinoise est donc, dans cette pièce, une cellule blanche, tandis qu’une note allemande accentuée part ramenée ; le texte mot à mot reste, lui, dans le CSV et dans le PDF.

L’état de chaque ligne est écrit dans le fichier

Rating livre le texte du marquage de plateau — la famille Circle, Keep, Hold, N/G — et reste vide si la prise n’a jamais été classée ; Circled take livre TRUE ou FALSE. Le destinataire peut donc lire depuis l’ALE elle-même dans quel état une prise a été marquée et si elle a été entourée, sans revenir demander à la scripte.

Tracks a quatre formes, et non « si ce n’est pas MOS, c’est du son synchro » : V est une prise MOS, A1A2 une wild track, VA1A2 du son synchro ; une ligne sans aucun fait de son laisse la cellule vide, nous ne mettons pas de son synchro par défaut. Les littéraux s’écrivent d’un seul tenant ; la forme espacée V A1 A2 n’existe pas.

Ce que la feuille de réconciliation de fin de journée est, et ce qu’elle n’est pas

Une exportation d’une seule journée peut joindre une Reconcile_*.csv. Cette feuille ne juge qu’une page, la nôtre : ce qui manque, ce qui se contredit elle-même. Quatorze jetons, chacun pour une seule chose — CARD_MISSING, SOURCE_MISSING, SOURCE_DUP, SOUND_ROLL_MISSING, SOUND_TC_MISSING, MOS_VS_SOUND, MOS_VS_WILD, TC_MODE_UNDECLARED, TC_SOURCE_UNDECLARED, TC_EPOCH_MIXED, DURATION_MISMATCH, TC_IN_MISSING, TC_OUT_MISSING, DAY_MISSING. Parmi eux, SOURCE_DUP, MOS_VS_SOUND, MOS_VS_WILD, DURATION_MISMATCH et TC_EPOCH_MIXED hissent la ligne entière en « conflit », les autres tombent en « manquant », et « concordent » ne s’écrit que si ni l’un ni l’autre n’est là. DURATION_MISMATCH compare les deux mesures, Durée de la scène contre Durée TC, et ne décide pas qui s’est trompé. La feuille marque seulement : elle ne touche à aucune valeur d’aucune ligne, et ne couvre pas le chiffre de l’un par celui de l’autre.

« concordent » sur la feuille n’admet qu’une lecture : nos propres critères n’ont rien trouvé. Cela ne veut pas dire que deux services aient confirmé l’accord.

Il faut dire sa frontière nettement : cette feuille ne lit ni la fiche caméra, ni le rapport son. L’en-tête porte deux colonnes « numéro de carte (fiche caméra) » et « numéro de bobine son », mais leurs valeurs viennent de la fiche que vous avez recopiée dans notre logiciel, non des rapports originaux des deux services. DAY_MISSING dit que cette fiche, actuellement, n’appartient à aucun jour de tournage : la prise n’est pas perdue et part comme les autres dans le package complet, mais numéro de jour, date, unité et réalisateur portent le vide, et c’est ce jeton seul qui le montre. Ce qui est payé, c’est le dossier de fin de journée du jour même, pas la perte des données. Une absence, elle, ne sera pas nommée : les cellules vidées parce que le texte n’est pas en ASCII — la base tient une valeur, donc aucun jeton ne s’allume, et pour ces colonnes on ne contrôle que contre ce que vous avez vous-même recopié.

Contrôler avec son propre modèle d’importation

Ce qui précède est une liste de contrôle, non une norme du secteur, et elle ne prédit pas comment un système de réception interprétera chaque colonne. Son seul but : poser les endroits contrôlables, pour que le destinataire sache où revenir à la source. Avant toute livraison, le destinataire doit repasser la fiche point par point avec son propre modèle d’importation : le contrôle reste entre les mains du lecteur.

Quand la vérification échoue, ne pas mêler les trois traitements

Renvoyer. Quand un champ d’identité ou de temps contredit les médias ou les relevés de plateau, et que la fiche originale reste traçable, renvoyez au générateur le soin de corriger la source et de régénérer — la réception ne garde alors aucune version retouchée à la main et dépourvue de provenance.

Compléter à la main. Complétez seulement quand l’écart est mince, que la source est claire et que chaque modification peut se rattacher à un média ou à une fiche précise, en gardant la justification à côté. Ne bouchez pas une cellule vide par une supposition, et ne fabriquez pas un nombre pour l’End laissé vide.

Tenir pour simple référence. Quand la provenance ne peut être confirmée, ou que vous n’avez pas vérifié comment l’outil aval traite ce fichier, bornez-le à l’usage de référence, sans lui faire porter des décisions qui exigent un rapprochement exact.

FAQ

00:00:00:00 vaut-il un vrai point zéro ?

On ne reverra plus cette suite de zéros. Les valeurs manquantes se livrent en chaînes vides : une cellule vide, on la lit d’abord comme « non relevée » — les colonnes de texte libre seules font exception : là la valeur est bien relevée, mais n’étant pas en ASCII, elle ne peut pas sortir ; le littéral est dans le CSV.

Pourquoi une même prise occupe-t-elle plusieurs lignes ?

L’ALE est généré ligne par ligne à partir des caméras. Un même Scene et un même Take rattachés à quatre caméras donnent quatre lignes : vérifiez par Camera, ne comptez pas les lignes en prises. Sans aucune information caméra relevée, une ligne sort quand même.

Peut-on utiliser End pour le rapprochement des médias ?

Regardez d’abord si elle a une valeur. Le point de sortie note la valeur lue à cet instant sur le plateau : la chaîne d’enregistrement la capte à l’arrêt, et la scripte peut aussi la recopier à la main sur l’écran ; lue, elle existe, aucun des deux chemins parcouru, la cellule reste vide, et nous ne l’inférons pas non plus de l’entrée plus la durée. Même avec une valeur, cela reste une lecture à vérifier contre les médias : contrôlez le fichier réel avec votre propre modèle d’importation, et cette page ne promet pas qu’un import aligne quoi que ce soit.

Un timecode à points-virgules est-il le signe universel de la perte d’images ?

Non. Seules les lignes dont TC Mode porte DF écrivent la forme à points-virgules ; c’est une convention d’affichage propre à SlateX. Une case vide veut dire absence de déclaration de perte d’images, pas « pas de perte d’images ».

Si la feuille écrit « concordent », les deux services se sont-ils accordés ?

Non. Cette feuille ne lit que notre propre page, et « concordent » veut dire que nos critères n’ont rien trouvé. La fiche caméra et le rapport son ne sont pas dans sa portée de lecture.


Axiom One LLC — SlateX