feat: décompte 3-2-1 visible avant l'enregistrement d'une prise - #54
Merged
Conversation
Deux fonctionnalités :
1. Déplacements sur la timeline
- molette = défilement temporel, Ctrl+molette = zoom centré sur le curseur
(helper partagé TimelineWheel, branché sur la bande et la forme d'onde) ;
- Home/Fin = début/fin, ↑/↓ = réplique précédente/suivante.
2. Enregistrement de prises de doublage par bloc
- capture micro WASAPI via NAudio (MicRecorder), WAV 16-bit ;
- pré-roll de 3 s servant de décompte : la lecture repart 3 s avant le bloc,
l'audio n'est conservé qu'à partir du début du bloc (trim calé sur l'horloge) ;
- lecture des prises positionnées à block.StartTime (TakeMixer), volume suivant
la piste « Voix », virtualisation des players ;
- champ DialogueBlock.AudioFile (rétro-compatible, omis du JSON si null) ;
- UI : section Enregistrement dans le panneau d'édition (sélecteur de micro,
bouton ●/■, écouter/supprimer la prise) ; raccourci R, Espace stoppe la prise.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Le pré-roll de 3 s existait mais rien ne le signalait : on ajoute un overlay de compte à rebours centré sur la vidéo. Pendant que le curseur approche du bloc, l'overlay ambre affiche les secondes restantes (3, 2, 1) ; au début du bloc il bascule en « ● REC » rouge et la conservation de l'audio démarre. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Le décompte démarrait depuis la position courante du curseur car la lecture était lancée avant que le MediaElement n'ait appliqué le saut vers « début − 3 s ». On ajoute une phase d'armement : on attend que le saut se pose (tolérance 0,15 s, garde-fou 1,5 s) avant de lancer la lecture. Le curseur part alors pile à 3 s du bloc et le décompte fait un vrai 3 → 2 → 1. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Quand le bloc est à moins de 3 s du début, il n'y a pas assez de vidéo avant lui pour un vrai pré-roll. On garantit désormais un décompte complet en deux temps : maintien du curseur en pause au début pendant les secondes manquantes (horloge murale), puis lecture qui rejoint le bloc (horloge vidéo). Le décompte fait toujours 3 → 2 → 1, et l'enregistrement démarre pile au début du bloc. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…début) Pour un bloc proche du début, le curseur restait figé pendant le décompte : le bloc, déjà collé à la ligne de synchro, ne « venait » pas. On alimente désormais la bande avec un temps virtuel allant de « début − 3 s » (souvent négatif) jusqu'au bloc : le bloc défile visiblement vers la ligne rouge sur les 3 s entières, même sans vidéo avant lui. Le timecode reste sur le temps vidéo réel. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Suite de #53 (qui n'avait été mergée qu'avec le 1er commit). Ajoute le décompte d'enregistrement, absent de
main.Décompte avant enregistrement
Vérification
dotnet buildRelease : OK (0/0).🤖 Generated with Claude Code