feat: implemented v1 audio-to-midi conversion (polyphonic only, algorithm-based)

This commit is contained in:
Xiaohan-Tian
2026-07-06 22:56:22 -07:00
parent f4e22e50a4
commit 5aa74e61a8
18 changed files with 1518 additions and 17 deletions
+14
View File
@@ -190,6 +190,7 @@ export const frFrMessages: TranslationMessages = {
'dialog.title.tempoDetection': 'Détection du tempo',
'dialog.title.applyTempo': 'Appliquer le tempo',
'dialog.title.chordDetection': 'Détection d\'accords',
'dialog.title.audioToMidi': 'Convertir en MIDI',
'dialog.title.input': 'Saisie',
'dialog.title.confirm': 'Confirmation',
'dialog.close': 'Fermer la boîte de dialogue',
@@ -200,6 +201,7 @@ export const frFrMessages: TranslationMessages = {
'dialog.chordHint.audio': 'L\'analyse d\'accords reste expérimentale. Le contenu harmonique, la densité de l\'arrangement et les matériaux riches en transitoires peuvent affecter la précision. Pour de meilleurs résultats, commencez avec les réglages par défaut puis affinez la sensibilité et la stabilité jusqu\'à ce que l\'harmonie détectée corresponde à la phrase musicale.',
'dialog.chordHint.midi': 'L\'analyse d\'accords reste expérimentale. La densité des voicings, les chevauchements et les notes d\'ornement peuvent influencer le résultat. Pour des étiquettes d\'accord plus fiables, partez des réglages par défaut puis ajustez la suppression des notes courtes et le focus harmonique selon le rôle musical du passage.',
'dialog.chordHint.tempo': 'L\'analyse du tempo reste expérimentale. Le rubato, les transitoires clairsemées et les couches de percussions peuvent réduire la précision. Commencez avec la plage de BPM par défaut, puis resserrez la fenêtre d\'analyse vers la zone de tempo la plus plausible si le premier résultat n\'est pas convaincant musicalement.',
'dialog.audioToMidiHint': 'La conversion audio-vers-MIDI reste expérimentale. Pour de meilleurs résultats, passez en vue spectrogramme, ajustez Floor jusqu\'à ne laisser visibles que les vraies notes et à faire disparaître autant que possible les hauteurs fantômes, puis activez Utiliser le Floor dB actuel avant la conversion.',
'dialog.sourceHint.kgone': 'Pour des étiquettes d\'accord plus fiables, analysez de préférence un stem où les voix et les percussions ont été atténuées ou retirées. Si l\'intégration du serveur K.G.One Music Studio est disponible, lancez Separator avec le modèle "Vocal, Drums, Bass, Guitar, Piano, and Others" et utilisez de préférence le stem Piano ou Others.',
'dialog.sourceHint.local': 'Pour des étiquettes d\'accord plus fiables, analysez de préférence un stem où les voix et les percussions ont été atténuées ou retirées. Si vous utilisez le séparateur local, choisissez le modèle "Vocal, Drums, Bass, and Others" et analysez le stem Others.',
'dialog.label.sensitivity': 'Sensibilité',
@@ -216,7 +218,18 @@ export const frFrMessages: TranslationMessages = {
'dialog.label.minimumBpm': 'BPM minimum',
'dialog.label.maximumBpm': 'BPM maximum',
'dialog.label.autoAlignRegionToBeat': 'Aligner automatiquement la région sur le temps',
'dialog.label.monophonicOnly': 'Monophonique uniquement (v1)',
'dialog.label.useCurrentFloorDb': 'Utiliser le Floor dB actuel',
'dialog.label.manualFloorDb': 'Floor dB manuel',
'dialog.label.pitchRange': 'Plage de hauteurs',
'dialog.label.quantizeNoteStart': 'Quantifier le début des notes',
'dialog.label.quantizeNoteLength': 'Quantifier la durée des notes',
'dialog.label.convertLoopRangeOnly': 'Convertir uniquement l\'audio dans la plage de boucle',
'dialog.label.groupAdjacentPitchesToHighest': 'Regrouper les hauteurs adjacentes vers le bin le plus fort',
'dialog.label.targetTrack': 'Piste MIDI cible',
'dialog.to': 'à',
'dialog.message.chordDetection': 'Ajustez les réglages de détection d\'accords audio avant le traitement.',
'dialog.message.audioToMidi': 'Ajustez les réglages de conversion audio-vers-MIDI avant le traitement.',
'dialog.message.tempoDetection': 'Ajustez les réglages de détection du tempo audio avant le traitement.',
'dialog.message.tempoApply': 'Tempo détecté : {bpm} BPM. Choisissez comment l\'appliquer.\n\nMettre à jour le tempo courant modifie le tempo actif à l\'emplacement de ce clip. Insérer un changement de tempo ajoute une nouvelle région de tempo à la mesure la plus proche avant le début du clip.',
'dialog.action.updateCurrentTempo': 'Mettre à jour le tempo courant',
@@ -332,6 +345,7 @@ export const frFrMessages: TranslationMessages = {
'pianoRoll.detectingChords': 'Détection des accords...',
'pianoRoll.detectTempo': 'Détecter le tempo...',
'pianoRoll.detectingTempo': 'Détection du tempo...',
'pianoRoll.convertToMidi': 'Convertir en MIDI...',
'toolbar.export.kgstudio': 'Exporter au format KGStudio',
'toolbar.export.midi': 'Exporter au format MIDI',
'toolbar.export.wav': 'Exporter en WAV',