{"id":571,"date":"2024-10-14T03:27:58","date_gmt":"2024-10-14T01:27:58","guid":{"rendered":"https:\/\/lucasgoret.com\/?page_id=571"},"modified":"2026-09-07T00:39:16","modified_gmt":"2026-09-06T22:39:16","slug":"2-2","status":"publish","type":"page","link":"https:\/\/lucasgoret.com\/index.php\/2-2\/","title":{"rendered":""},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"571\" class=\"elementor elementor-571\">\n\t\t\t\t<div class=\"elementor-element elementor-element-16fdeb7 e-flex e-con-boxed e-con e-parent\" data-id=\"16fdeb7\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e9b0b3f elementor-widget elementor-widget-html\" data-id=\"e9b0b3f\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>\n    \/* Force le fond en blanc et la typo en noir uniquement sur cette page *\/\n    body, \n    .elementor-page, \n    .elementor-body {\n        background-color: #ffffff !important;\n        background: #ffffff !important;\n    }\n\n    \/* Force la couleur du texte et des titres *\/\n    body, \n    p, \n    h1, h2, h3, h4, h5, h6, \n    span, \n    div {\n        color: #000000 !important;\n    }\n\n    \/* Force la couleur du texte des boutons en blanc *\/\n    .elementor-button, \n    .elementor-button-text, \n    a.elementor-button {\n        color: #ffffff !important;\n    }\n<\/style>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1fe5b88 e-flex e-con-boxed e-con e-parent\" data-id=\"1fe5b88\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-02a3ee1 e-con-full e-flex e-con e-child\" data-id=\"02a3ee1\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-82fb432 e-con-full e-flex e-con e-child\" data-id=\"82fb432\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-70ffbde e-con-full e-flex e-con e-child\" data-id=\"70ffbde\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-571eab4 e-grid e-con-full e-con e-child\" data-id=\"571eab4\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-d22e3fe e-con-full e-flex e-con e-child\" data-id=\"d22e3fe\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ccf8849 elementor-align-right elementor-widget__width-initial elementor-widget elementor-widget-button\" data-id=\"ccf8849\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/lucasgoret.com\/index.php\/sounddesign\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">INITIATION Sound Design<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-573b049 e-con-full e-flex e-con e-child\" data-id=\"573b049\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-b205b25 e-con-full e-flex e-con e-child\" data-id=\"b205b25\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-056a61c elementor-align-justify elementor-widget__width-inherit elementor-widget elementor-widget-button\" data-id=\"056a61c\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/lucasgoret.com\/index.php\/2-2\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">AUDITION Forme d'onde<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-04a6176 e-con-full e-flex e-con e-child\" data-id=\"04a6176\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2a21de5 elementor-align-justify elementor-widget__width-inherit elementor-widget elementor-widget-button\" data-id=\"2a21de5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/lucasgoret.com\/index.php\/audition-forme-donde\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">AUDITION Multipiste<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-78648ca e-con-full e-flex e-con e-child\" data-id=\"78648ca\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-cd6e213 elementor-align-justify elementor-widget__width-inherit elementor-widget elementor-widget-button\" data-id=\"cd6e213\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/lucasgoret.com\/index.php\/premierepro\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">PREMIERE PRO Mixage<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-9435f24 e-con-full e-flex e-con e-child\" data-id=\"9435f24\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d3c6e31 elementor-align-justify elementor-widget__width-inherit elementor-widget elementor-widget-button\" data-id=\"d3c6e31\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/lucasgoret.com\/index.php\/enregistrement\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">L'ENREGISTREMENT Prise de son<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-bd3911f e-con-full e-flex e-con e-child\" data-id=\"bd3911f\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6ed7f40 elementor-align-justify elementor-widget__width-inherit elementor-widget elementor-widget-button\" data-id=\"6ed7f40\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/lucasgoret.com\/index.php\/audio-branding\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">AUDIO BRANDING <\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-d67fe60 e-con-full e-flex e-con e-child\" data-id=\"d67fe60\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6513f3b elementor-align-justify elementor-widget__width-inherit elementor-widget elementor-widget-button\" data-id=\"6513f3b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/lucasgoret.com\/index.php\/exercices\/\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">EXERCICES Astuces<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-726d7112 e-flex e-con-boxed e-con e-parent\" data-id=\"726d7112\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-67c8d94f e-con-full e-flex e-con e-child\" data-id=\"67c8d94f\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6103bf2e elementor-widget elementor-widget-spacer\" data-id=\"6103bf2e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4ceca9f9 elementor-widget elementor-widget-heading\" data-id=\"4ceca9f9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">ADOBE AUDITION<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-458c102b elementor-widget elementor-widget-heading\" data-id=\"458c102b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h1 class=\"elementor-heading-title elementor-size-default\">FONCTIONS DE BASE<\/h1>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2f131739 elementor-widget elementor-widget-spacer\" data-id=\"2f131739\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-78ad7319 elementor-widget elementor-widget-heading\" data-id=\"78ad7319\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">\nMODE FORME D\u2019ONDE<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-3dc64851 e-flex e-con-boxed e-con e-parent\" data-id=\"3dc64851\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-28a3bcf5 elementor-widget elementor-widget-spacer\" data-id=\"28a3bcf5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-721f5e8e e-flex e-con-boxed e-con e-parent\" data-id=\"721f5e8e\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-29bd92fb elementor-widget elementor-widget-image\" data-id=\"29bd92fb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img fetchpriority=\"high\" decoding=\"async\" width=\"1920\" height=\"1186\" src=\"https:\/\/lucasgoret.com\/wp-content\/uploads\/2024\/10\/forme-d_onde_2.jpg\" class=\"attachment-full size-full wp-image-457\" alt=\"\" srcset=\"https:\/\/lucasgoret.com\/wp-content\/uploads\/2024\/10\/forme-d_onde_2.jpg 1920w, https:\/\/lucasgoret.com\/wp-content\/uploads\/2024\/10\/forme-d_onde_2-300x185.jpg 300w, https:\/\/lucasgoret.com\/wp-content\/uploads\/2024\/10\/forme-d_onde_2-1024x633.jpg 1024w, https:\/\/lucasgoret.com\/wp-content\/uploads\/2024\/10\/forme-d_onde_2-768x474.jpg 768w, https:\/\/lucasgoret.com\/wp-content\/uploads\/2024\/10\/forme-d_onde_2-1536x949.jpg 1536w\" sizes=\"(max-width: 1920px) 100vw, 1920px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-f1f0926 e-flex e-con-boxed e-con e-parent\" data-id=\"f1f0926\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1e3e2b1 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"1e3e2b1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-e503a27 e-flex e-con-boxed e-con e-parent\" data-id=\"e503a27\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-880cf2f e-grid e-con-full e-con e-child\" data-id=\"880cf2f\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-bb8d984 elementor-widget elementor-widget-text-editor\" data-id=\"bb8d984\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"et_pb_module et_pb_text et_pb_text_3 et_pb_text_align_left et_pb_bg_layout_light\"><div class=\"et_pb_text_inner\"><div class=\"et_pb_module et_pb_text et_pb_text_35 et_pb_text_align_left et_pb_bg_layout_light\"><div class=\"et_pb_text_inner\"><div class=\"et_pb_row et_pb_row_23\"><div class=\"et_pb_column et_pb_column_4_4 et_pb_column_33 et_pb_css_mix_blend_mode_passthrough et-last-child\"><div class=\"et_pb_module et_pb_text et_pb_text_42 et_pb_text_align_left et_pb_bg_layout_light\"><div class=\"et_pb_text_inner\"><h2><b>PR\u00c9AMBULE :<\/b><\/h2><h2><b> LA PHYSIQUE DU SON<\/b><\/h2><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-1a2d9e5 elementor-widget elementor-widget-video\" data-id=\"1a2d9e5\" data-element_type=\"widget\" data-e-type=\"widget\" data-settings=\"{&quot;youtube_url&quot;:&quot;https:\\\/\\\/www.youtube.com\\\/watch?v=uw5xK0mCeYE&quot;,&quot;video_type&quot;:&quot;youtube&quot;,&quot;controls&quot;:&quot;yes&quot;}\" data-widget_type=\"video.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-wrapper elementor-open-inline\">\n\t\t\t<div class=\"elementor-video\"><\/div>\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-382c581 e-flex e-con-boxed e-con e-parent\" data-id=\"382c581\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d4bf34a elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"d4bf34a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-5f36e06 e-flex e-con-boxed e-con e-parent\" data-id=\"5f36e06\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-081ab60 elementor-widget elementor-widget-html\" data-id=\"081ab60\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<!DOCTYPE html>\n<html lang=\"fr\">\n<head>\n<meta charset=\"UTF-8\">\n<meta name=\"viewport\" content=\"width=device-width,initial-scale=1.0\">\n\n<title>Outil d'analyse<\/title>\n\n<style>\n\n:root{\n  --bg:#080b10;\n  --panel:#10151d;\n  --panel2:#171d27;\n  --border:#283240;\n  --text:#edf2f7;\n  --muted:#7f8b9b;\n  --cyan:#55d6ff;\n  --green:#62e6a7;\n  --yellow:#ffd166;\n  --orange:#ff9f43;\n  --red:#ff4d5e;\n}\n\n*{\n  box-sizing:border-box;\n}\n\nhtml,\nbody{\n  margin:0;\n  min-height:100%;\n  background:var(--bg) !important;\n  font-family:\n    Inter,\n    system-ui,\n    -apple-system,\n    BlinkMacSystemFont,\n    \"Segoe UI\",\n    sans-serif;\n}\n\nbody{\n  padding:0;\n  background:var(--bg) !important;\n  color:var(--text) !important;\n}\n\n.lab{\n  width:100%;\n  max-width:1500px;\n  margin:auto;\n  padding:24px;\n  background:var(--bg) !important;\n  color:var(--text) !important;\n}\n\nheader{\n  display:flex;\n  justify-content:space-between;\n  align-items:flex-end;\n  margin-bottom:24px;\n}\n\nh1{\n  margin:0;\n  font-size:25px;\n  letter-spacing:-.04em;\n}\n\n.subtitle{\n  font-size:12px;\n  margin-top:5px;\n}\n\n.status{\n  display:flex;\n  align-items:center;\n  gap:8px;\n  font-size:11px;\n}\n\n.statusDot{\n  width:9px;\n  height:9px;\n  border-radius:50%;\n  background:var(--red);\n  box-shadow:\n    0 0 10px rgba(255,77,94,.35);\n  transition:\n    background .15s ease,\n    box-shadow .15s ease;\n}\n\n.statusDot.active{\n  background:var(--green);\n  box-shadow:\n    0 0 12px var(--green);\n}\n\n.layout{\n  display:grid;\n  grid-template-columns:\n    360px\n    minmax(0,1fr);\n  gap:16px;\n}\n\n.panel{\n  background:var(--panel);\n  border:1px solid var(--border);\n  border-radius:12px;\n  padding:16px;\n}\n\n.controls{\n  display:flex;\n  flex-direction:column;\n  gap:18px;\n}\n\n.section{\n  border-top:1px solid var(--border);\n  padding-top:16px;\n}\n\n.section:first-child{\n  border-top:0;\n  padding-top:0;\n}\n\n.sectionTitle{\n  font-size:10px;\n  text-transform:uppercase;\n  letter-spacing:.13em;\n  margin-bottom:11px;\n}\n\nlabel{\n  display:flex;\n  justify-content:space-between;\n  align-items:center;\n  font-size:12px;\n  margin-bottom:6px;\n}\n\n.value{\n  font-variant-numeric:tabular-nums;\n}\n\nselect,\nbutton,\n.fileButton{\n  width:100%;\n  border:1px solid var(--border);\n  background:var(--panel2);\n  border-radius:7px;\n  padding:9px;\n  font:inherit;\n  font-size:12px;\n  cursor:pointer;\n}\n\nselect:hover,\nbutton:hover,\n.fileButton:hover{\n  border-color:var(--cyan);\n}\n\nbutton.primary{\n  background:var(--cyan);\n  border-color:var(--cyan);\n  font-weight:700;\n}\n\ninput[type=\"range\"]{\n  width:100%;\n  accent-color:var(--cyan);\n}\n\n.harmonics{\n  display:flex;\n  flex-direction:column;\n  gap:8px;\n}\n\n.harmonic{\n  display:grid;\n  grid-template-columns:\n    32px\n    1fr\n    45px;\n  gap:8px;\n  align-items:center;\n  font-size:11px;\n}\n\n.harmonicName{\n  font-weight:600;\n}\n\n.harmonicValue{\n  text-align:right;\n}\n\n.samples{\n  display:flex;\n  flex-direction:column;\n  gap:5px;\n  max-height:330px;\n  overflow:auto;\n}\n\n.sample{\n  border:1px solid var(--border);\n  background:var(--panel2);\n  border-radius:6px;\n  padding:8px 9px;\n  cursor:pointer;\n  display:flex;\n  justify-content:space-between;\n  align-items:center;\n  font-size:11px;\n}\n\n.sample:hover{\n  border-color:var(--cyan);\n}\n\n.sample.active{\n  border-color:var(--green);\n}\n\n.sample small{\n  color:var(--muted);\n}\n\n.fileInput{\n  display:none;\n}\n\n.explanation{\n  border-left:2px solid var(--cyan);\n  padding-left:10px;\n  color:var(--muted);\n  font-size:11px;\n  line-height:1.55;\n}\n\n.visuals{\n  display:flex;\n  flex-direction:column;\n  gap:14px;\n  min-width:0;\n}\n\n.visual{\n  background:#05080d;\n  border:1px solid var(--border);\n  border-radius:10px;\n  overflow:hidden;\n}\n\n.visualHead{\n  height:38px;\n  display:flex;\n  justify-content:space-between;\n  align-items:center;\n  padding:0 12px;\n  border-bottom:1px solid var(--border);\n  font-size:10px;\n  letter-spacing:.08em;\n}\n\n.visualHead .right{\n  color:var(--muted);\n  letter-spacing:0;\n}\n\ncanvas{\n  display:block;\n  width:100% !important;\n  height:230px;\n}\n\n.smallCanvas canvas{\n  height:185px;\n}\n\n.spectrogramWrapper{\n  display:grid;\n  grid-template-columns:\n    58px\n    minmax(0,1fr);\n  background:#020509;\n}\n\n.spectrogramYAxis{\n  position:relative;\n  height:380px;\n  border-right:1px solid #1a232d;\n  color:#718091;\n  font-size:9px;\n  user-select:none;\n}\n\n.spectrogramYAxis span{\n  position:absolute;\n  right:8px;\n  transform:translateY(-50%);\n  white-space:nowrap;\n}\n\n.spectrogramYAxis .top{\n  top:4px;\n  transform:none;\n}\n\n.spectrogramYAxis .bottom{\n  bottom:4px;\n  transform:none;\n}\n\n.spectrogramMain{\n  min-width:0;\n  overflow:hidden;\n}\n\n#spectrogram{\n  width:100% !important;\n  height:380px !important;\n}\n\n.spectrogramTime{\n  height:24px;\n  position:relative;\n  border-top:1px solid #1a232d;\n  color:#718091;\n  font-size:9px;\n}\n\n.spectrogramTime span{\n  position:absolute;\n  top:6px;\n  white-space:nowrap;\n}\n\n.lab,\n.lab *,\n.lab *::before,\n.lab *::after{\n  color:#ffffff !important;\n}\n\n.lab h1,\n.lab .subtitle{\n  color:#ffffff !important;\n}\n\n.lab .status,\n.lab .sectionTitle,\n.lab .harmonicValue,\n.lab .sample small,\n.lab .explanation,\n.lab .visualHead .right,\n.lab .spectrogramYAxis,\n.lab .spectrogramTime{\n  color:#7f8b9b !important;\n}\n\n.lab .value{\n  color:#55d6ff !important;\n}\n\n.lab .harmonicName{\n  color:#ffd166 !important;\n}\n\n.lab .sample.active{\n  color:#62e6a7 !important;\n}\n\n.lab input,\n.lab select,\n.lab button,\n.lab option,\n.lab textarea{\n  color:#ffffff !important;\n}\n\n.lab button.primary{\n  color:#061018 !important;\n}\n\n.lab input::placeholder,\n.lab textarea::placeholder{\n  color:#ffffff !important;\n  opacity:.7;\n}\n\n@media(max-width:900px){\n\n  .lab{\n    padding:12px;\n  }\n\n  .layout{\n    grid-template-columns:1fr;\n  }\n\n}\n\n<\/style>\n<\/head>\n\n<body>\n\n<div class=\"lab\">\n\n<header>\n\n  <div>\n\n    <h1>\n      Outil d'analyse\n    <\/h1>\n\n    <div class=\"subtitle\">\n      Physique du son \u00b7 fr\u00e9quence \u00b7 harmoniques \u00b7 FFT \u00b7 filtrage\n    <\/div>\n\n  <\/div>\n\n  <div class=\"status\">\n\n    <span\n      class=\"statusDot\"\n      id=\"statusDot\"\n    ><\/span>\n\n    <span id=\"status\">\n      Audio arr\u00eat\u00e9\n    <\/span>\n\n  <\/div>\n\n<\/header>\n\n<div class=\"layout\">\n\n<aside class=\"panel controls\">\n\n<div class=\"section\">\n\n  <div class=\"sectionTitle\">\n    Source\n  <\/div>\n\n  <label>\n    Type\n  <\/label>\n\n  <select id=\"sourceType\">\n\n    <option value=\"oscillator\">\n      Oscillateur\n    <\/option>\n\n    <option value=\"sample\">\n      Sample\n    <\/option>\n\n  <\/select>\n\n  <div id=\"oscillatorPanel\">\n\n    <br>\n\n    <label>\n      Forme d'onde\n    <\/label>\n\n    <select id=\"waveform\">\n\n      <option value=\"sine\">\n        Sinuso\u00efde\n      <\/option>\n\n      <option value=\"square\">\n        Carr\u00e9e\n      <\/option>\n\n      <option value=\"triangle\">\n        Triangle\n      <\/option>\n\n      <option value=\"sawtooth\">\n        Dent de scie\n      <\/option>\n\n    <\/select>\n\n    <br>\n\n    <label>\n\n      Fr\u00e9quence\n\n      <span\n        class=\"value\"\n        id=\"frequencyValue\"\n      >\n        440 Hz\n      <\/span>\n\n    <\/label>\n\n    <input\n      id=\"frequency\"\n      type=\"range\"\n      min=\"20\"\n      max=\"20000\"\n      step=\"1\"\n      value=\"440\"\n    >\n\n    <br>\n\n    <label>\n\n      Amplitude\n\n      <span\n        class=\"value\"\n        id=\"amplitudeValue\"\n      >\n        0.50\n      <\/span>\n\n    <\/label>\n\n    <input\n      id=\"amplitude\"\n      type=\"range\"\n      min=\"0\"\n      max=\"1\"\n      step=\"0.01\"\n      value=\"0.5\"\n    >\n\n  <\/div>\n\n  <div\n    id=\"samplePanel\"\n    style=\"display:none\"\n  >\n\n    <br>\n\n    <label>\n      Samples\n    <\/label>\n\n    <div\n      class=\"samples\"\n      id=\"sampleList\"\n    ><\/div>\n\n    <br>\n\n    <label\n      class=\"fileButton\"\n      for=\"fileInput\"\n      style=\"\n        text-align:center;\n        justify-content:center;\n      \"\n    >\n      + Charger un fichier audio\n    <\/label>\n\n    <input\n      class=\"fileInput\"\n      id=\"fileInput\"\n      type=\"file\"\n      accept=\"audio\/*\"\n    >\n\n  <\/div>\n\n  <br>\n\n  <button\n    class=\"primary\"\n    id=\"playButton\"\n  >\n    \u25b6 D\u00e9marrer\n  <\/button>\n\n<\/div>\n\n<div class=\"section\">\n\n  <div class=\"sectionTitle\">\n    Harmoniques \u2014 synth\u00e8se additive\n  <\/div>\n\n  <div\n    class=\"harmonics\"\n    id=\"harmonics\"\n  ><\/div>\n\n<\/div>\n\n<div class=\"section\">\n\n  <div class=\"sectionTitle\">\n    Filtre\n  <\/div>\n\n  <label>\n    Type\n  <\/label>\n\n  <select id=\"filterType\">\n\n    <option value=\"off\">\n      D\u00e9sactiv\u00e9\n    <\/option>\n\n    <option value=\"lowpass\">\n      Passe-bas\n    <\/option>\n\n    <option value=\"highpass\">\n      Passe-haut\n    <\/option>\n\n    <option value=\"bandpass\">\n      Passe-bande\n    <\/option>\n\n    <option value=\"notch\">\n      Coupe-bande\n    <\/option>\n\n  <\/select>\n\n  <br>\n\n  <label>\n\n    Fr\u00e9quence\n\n    <span\n      class=\"value\"\n      id=\"cutoffValue\"\n    >\n      1200 Hz\n    <\/span>\n\n  <\/label>\n\n  <input\n    id=\"cutoff\"\n    type=\"range\"\n    min=\"20\"\n    max=\"20000\"\n    step=\"1\"\n    value=\"1200\"\n  >\n\n  <br>\n\n  <label>\n\n    Gain\n\n    <span\n      class=\"value\"\n      id=\"filterGainValue\"\n    >\n      0 dB\n    <\/span>\n\n  <\/label>\n\n  <input\n    id=\"filterGain\"\n    type=\"range\"\n    min=\"-24\"\n    max=\"24\"\n    step=\"0.1\"\n    value=\"0\"\n  >\n\n  <br>\n\n  <label>\n\n    R\u00e9sonance\n\n    <span\n      class=\"value\"\n      id=\"qValue\"\n    >\n      1.0 Q\n    <\/span>\n\n  <\/label>\n\n  <input\n    id=\"q\"\n    type=\"range\"\n    min=\"0.1\"\n    max=\"20\"\n    step=\"0.1\"\n    value=\"1\"\n  >\n\n<\/div>\n\n<div class=\"explanation\">\n\n  Le signal affich\u00e9 dans les analyseurs est le signal\n  r\u00e9ellement envoy\u00e9 aux haut-parleurs, apr\u00e8s le filtre.\n\n  Dans le spectrogramme :\n  horizontal = temps,\n  vertical = fr\u00e9quence,\n  couleur = amplitude.\n\n<\/div>\n\n<\/aside>\n\n<main class=\"visuals\">\n\n<div class=\"visual\">\n\n  <div class=\"visualHead\">\n\n    <span>\n      OSCILLOSCOPE\n    <\/span>\n\n    <span class=\"right\">\n      signal apr\u00e8s filtre\n    <\/span>\n\n  <\/div>\n\n  <canvas id=\"scope\"><\/canvas>\n\n<\/div>\n\n<div class=\"visual smallCanvas\">\n\n  <div class=\"visualHead\">\n\n    <span>\n      SPECTRE \/ FFT\n    <\/span>\n\n    <span class=\"right\">\n      amplitude \u2192 fr\u00e9quence\n    <\/span>\n\n  <\/div>\n\n  <canvas id=\"spectrum\"><\/canvas>\n\n<\/div>\n\n<div class=\"visual smallCanvas\">\n\n  <div class=\"visualHead\">\n\n    <span>\n      R\u00c9PONSE DU FILTRE\n    <\/span>\n\n    <span\n      class=\"right\"\n      id=\"filterInfo\"\n    >\n      Filtre d\u00e9sactiv\u00e9\n    <\/span>\n\n  <\/div>\n\n  <canvas id=\"filterCanvas\"><\/canvas>\n\n<\/div>\n\n<div class=\"visual\">\n\n  <div class=\"visualHead\">\n\n    <span>\n      SPECTROGRAMME\n    <\/span>\n\n    <span class=\"right\">\n      temps \u2192\n    <\/span>\n\n  <\/div>\n\n  <div class=\"spectrogramWrapper\">\n\n    <div class=\"spectrogramYAxis\">\n\n      <span class=\"top\">\n        20 kHz\n      <\/span>\n\n      <span style=\"top:18%\">\n        10 kHz\n      <\/span>\n\n      <span style=\"top:36%\">\n        5 kHz\n      <\/span>\n\n      <span style=\"top:54%\">\n        2 kHz\n      <\/span>\n\n      <span style=\"top:72%\">\n        500 Hz\n      <\/span>\n\n      <span style=\"top:88%\">\n        100 Hz\n      <\/span>\n\n      <span class=\"bottom\">\n        20 Hz\n      <\/span>\n\n    <\/div>\n\n    <div class=\"spectrogramMain\">\n\n      <canvas id=\"spectrogram\"><\/canvas>\n\n      <div class=\"spectrogramTime\">\n\n        <span style=\"left:0\">\n          0 s\n        <\/span>\n\n        <span style=\"left:25%\">\n          2 s\n        <\/span>\n\n        <span style=\"left:50%\">\n          4 s\n        <\/span>\n\n        <span style=\"left:75%\">\n          6 s\n        <\/span>\n\n        <span style=\"right:0\">\n          8 s\n        <\/span>\n\n      <\/div>\n\n    <\/div>\n\n  <\/div>\n\n<\/div>\n\n<\/main>\n\n<\/div>\n\n<\/div>\n\n<script>\n\n\/* =========================================================\n   SAMPLES\n   URLs EXACTES FOURNIES\n========================================================= *\/\n\nconst SAMPLE_FILES = {\n\n  ballon:{\n    name:\"Ballon\",\n    file:\"https:\/\/lucasgoret.com\/wp-content\/uploads\/2026\/09\/Ballon.flac\"\n  },\n\n  voiture:{\n    name:\"Voiture\",\n    file:\"https:\/\/lucasgoret.com\/wp-content\/uploads\/2026\/09\/Voiture.wav\"\n  },\n\n  cloche:{\n    name:\"Cloche\",\n    file:\"https:\/\/lucasgoret.com\/wp-content\/uploads\/2026\/09\/Cloche.wav\"\n  },\n\n  voixFemme:{\n    name:\"Voix femme\",\n    file:\"https:\/\/lucasgoret.com\/wp-content\/uploads\/2026\/09\/Voix-femme.mp3\"\n  },\n\n  voixHomme:{\n    name:\"Voix homme\",\n    file:\"https:\/\/lucasgoret.com\/wp-content\/uploads\/2026\/09\/Voix-homme.wav\"\n  },\n\n  modem:{\n    name:\"Modem\",\n    file:\"https:\/\/lucasgoret.com\/wp-content\/uploads\/2026\/09\/Modem.mp3\"\n  },\n\n  violon:{\n    name:\"Violon\",\n    file:\"https:\/\/lucasgoret.com\/wp-content\/uploads\/2026\/09\/Violon.wav\"\n  },\n\n  guitare:{\n    name:\"Guitare\",\n    file:\"https:\/\/lucasgoret.com\/wp-content\/uploads\/2026\/09\/Guitare.mp3\"\n  },\n\n  trombone:{\n    name:\"Trombone\",\n    file:\"https:\/\/lucasgoret.com\/wp-content\/uploads\/2026\/09\/Trombone.wav\"\n  },\n\n  flute:{\n    name:\"Fl\u00fbte\",\n    file:\"https:\/\/lucasgoret.com\/wp-content\/uploads\/2026\/09\/Flute.wav\"\n  },\n\n  vagues:{\n    name:\"Vagues\",\n    file:\"https:\/\/lucasgoret.com\/wp-content\/uploads\/2026\/09\/Vagues.mp3\"\n  },\n\n  oiseaux:{\n    name:\"Oiseaux\",\n    file:\"https:\/\/lucasgoret.com\/wp-content\/uploads\/2026\/09\/Oiseaux.mp3\"\n  }\n\n};\n\n\n\/* =========================================================\n   AUDIO\n========================================================= *\/\n\nlet audioContext=null;\n\nlet masterGain=null;\n\nlet filterNode=null;\n\nlet filterStage2=null;\n\nlet bandpassStage2=null;\n\nlet filterGainNode=null;\n\nlet analyser=null;\n\nlet oscillators=[];\n\nlet oscillatorGains=[];\n\nlet sampleSource=null;\n\nlet sampleBuffer=null;\n\nlet selectedSampleUrl=null;\n\nlet selectedSampleName=null;\n\nlet isPlaying=false;\n\n\n\/* =========================================================\n   VISUALISATION\n========================================================= *\/\n\nlet animationFrame=null;\n\nlet scopeData=null;\n\nlet spectrumData=null;\n\nlet spectrogramImage=null;\n\nlet spectrogramWidth=0;\n\nlet spectrogramHeight=0;\n\n\n\/* =========================================================\n   DOM\n========================================================= *\/\n\nconst sourceType=\n  document.getElementById(\n    \"sourceType\"\n  );\n\nconst oscillatorPanel=\n  document.getElementById(\n    \"oscillatorPanel\"\n  );\n\nconst samplePanel=\n  document.getElementById(\n    \"samplePanel\"\n  );\n\nconst waveform=\n  document.getElementById(\n    \"waveform\"\n  );\n\nconst frequency=\n  document.getElementById(\n    \"frequency\"\n  );\n\nconst amplitude=\n  document.getElementById(\n    \"amplitude\"\n  );\n\nconst filterType=\n  document.getElementById(\n    \"filterType\"\n  );\n\nconst cutoff=\n  document.getElementById(\n    \"cutoff\"\n  );\n\nconst filterGain=\n  document.getElementById(\n    \"filterGain\"\n  );\n\nconst q=\n  document.getElementById(\n    \"q\"\n  );\n\nconst playButton=\n  document.getElementById(\n    \"playButton\"\n  );\n\nconst status=\n  document.getElementById(\n    \"status\"\n  );\n\nconst statusDot=\n  document.getElementById(\n    \"statusDot\"\n  );\n\n\n\/* =========================================================\n   STATUS\n========================================================= *\/\n\nfunction setAudioStatus(\n  active,\n  text\n){\n\n  status.textContent=text;\n\n  if(active){\n\n    statusDot.classList.add(\n      \"active\"\n    );\n\n  }else{\n\n    statusDot.classList.remove(\n      \"active\"\n    );\n\n  }\n\n}\n\n\n\/* =========================================================\n   HARMONIQUES\n========================================================= *\/\n\nconst harmonicContainer=\n  document.getElementById(\n    \"harmonics\"\n  );\n\nconst harmonicSliders=[];\n\n\nfor(\n  let i=1;\n  i<=8;\n  i++\n){\n\n  const row=\n    document.createElement(\n      \"div\"\n    );\n\n  row.className=\n    \"harmonic\";\n\n\n  row.innerHTML=`\n\n    <span class=\"harmonicName\">\n      H${i}\n    <\/span>\n\n    <input\n      type=\"range\"\n      min=\"0\"\n      max=\"1\"\n      step=\"0.01\"\n      value=\"${i===1?1:0}\"\n    >\n\n    <span class=\"harmonicValue\">\n      ${i===1?\"100%\":\"0%\"}\n    <\/span>\n\n  `;\n\n\n  harmonicContainer.appendChild(\n    row\n  );\n\n\n  const slider=\n    row.querySelector(\n      \"input\"\n    );\n\n  const value=\n    row.querySelector(\n      \".harmonicValue\"\n    );\n\n\n  harmonicSliders.push(\n    slider\n  );\n\n\n  slider.addEventListener(\n    \"input\",\n    ()=>{\n\n      value.textContent=\n        Math.round(\n          Number(\n            slider.value\n          )*100\n        )+\"%\";\n\n\n      updateOscillatorHarmonics();\n\n    }\n  );\n\n}\n\n\n\/* =========================================================\n   SAMPLES UI\n========================================================= *\/\n\nconst sampleList=\n  document.getElementById(\n    \"sampleList\"\n  );\n\n\nObject.entries(\n  SAMPLE_FILES\n).forEach(\n  ([id,sample])=>{\n\n    const element=\n      document.createElement(\n        \"div\"\n      );\n\n\n    element.className=\n      \"sample\";\n\n\n    element.innerHTML=`\n\n      <span>\n        ${sample.name}\n      <\/span>\n\n      <small>\n        sample\n      <\/small>\n\n    `;\n\n\n    element.addEventListener(\n      \"click\",\n      async()=>{\n\n        document\n          .querySelectorAll(\n            \".sample\"\n          )\n          .forEach(\n            x=>\n              x.classList.remove(\n                \"active\"\n              )\n          );\n\n\n        element.classList.add(\n          \"active\"\n        );\n\n\n        await loadSampleFile(\n          sample.file,\n          sample.name\n        );\n\n      }\n    );\n\n\n    sampleList.appendChild(\n      element\n    );\n\n  }\n);\n\n\n\/* =========================================================\n   SOURCE\n========================================================= *\/\n\nsourceType.addEventListener(\n  \"change\",\n  ()=>{\n\n    const isSample=\n      sourceType.value===\"sample\";\n\n\n    oscillatorPanel.style.display=\n      isSample\n        ?\"none\"\n        :\"block\";\n\n\n    samplePanel.style.display=\n      isSample\n        ?\"block\"\n        :\"none\";\n\n  }\n);\n\n\n\/* =========================================================\n   AUDIO CONTEXT\n========================================================= *\/\n\nfunction createContext(){\n\n  if(!audioContext){\n\n    audioContext=\n      new(\n        window.AudioContext ||\n        window.webkitAudioContext\n      )();\n\n  }\n\n}\n\n\n\/* =========================================================\n   AUDIO GRAPH\n========================================================= *\/\n\nfunction createGraph(){\n\n  createContext();\n\n\n  masterGain=\n    audioContext.createGain();\n\n\n  masterGain.gain.value=\n    Number(\n      amplitude.value\n    );\n\n\n  filterNode=\n    audioContext.createBiquadFilter();\n\n\n  filterStage2=\n    audioContext.createBiquadFilter();\n\n\n  bandpassStage2=\n    audioContext.createBiquadFilter();\n\n\n  filterGainNode=\n    audioContext.createGain();\n\n\n  analyser=\n    audioContext.createAnalyser();\n\n\n  analyser.fftSize=\n    16384;\n\n\n  analyser.smoothingTimeConstant=\n    0.05;\n\n\n  updateFilter();\n\n}\n\n\n\/* =========================================================\n   FILTRE\n========================================================= *\/\n\nfunction updateFilter(){\n\n  if(!filterNode || !audioContext)\n    return;\n\n\n  const type=\n    filterType.value;\n\n\n  const f=\n    Number(\n      cutoff.value\n    );\n\n\n  const gain=\n    Number(\n      filterGain.value\n    );\n\n\n  const resonance=\n    Number(\n      q.value\n    );\n\n\n  document.getElementById(\n    \"cutoffValue\"\n  ).textContent=\n    f+\" Hz\";\n\n\n  document.getElementById(\n    \"filterGainValue\"\n  ).textContent=\n    (gain>=0?\"+\":\"\")+\n    gain.toFixed(1)+\n    \" dB\";\n\n\n  document.getElementById(\n    \"qValue\"\n  ).textContent=\n    resonance.toFixed(1)+\n    \" Q\";\n\n\n  try{\n    masterGain.disconnect();\n  }catch(e){}\n\n\n  try{\n    filterNode.disconnect();\n  }catch(e){}\n\n\n  try{\n    filterStage2.disconnect();\n  }catch(e){}\n\n\n  try{\n    bandpassStage2.disconnect();\n  }catch(e){}\n\n\n  try{\n    filterGainNode.disconnect();\n  }catch(e){}\n\n\n  const safeFrequency=\n    Math.min(\n      f,\n      audioContext.sampleRate\/2-1\n    );\n\n\n  if(type===\"off\"){\n\n    filterNode.type=\n      \"lowpass\";\n\n\n    filterNode.frequency.value=\n      audioContext.sampleRate\/2-1;\n\n\n    filterNode.Q.value=\n      0.0001;\n\n\n    masterGain.connect(\n      filterNode\n    );\n\n\n    filterNode.connect(\n      filterGainNode\n    );\n\n\n    document.getElementById(\n      \"filterInfo\"\n    ).textContent=\n      \"Filtre d\u00e9sactiv\u00e9\";\n\n  }\n\n\n  else if(type===\"bandpass\"){\n\n    filterNode.type=\n      \"bandpass\";\n\n\n    filterNode.frequency.value=\n      safeFrequency;\n\n\n    filterNode.Q.value=\n      resonance;\n\n\n    bandpassStage2.type=\n      \"bandpass\";\n\n\n    bandpassStage2.frequency.value=\n      safeFrequency;\n\n\n    bandpassStage2.Q.value=\n      resonance;\n\n\n    masterGain.connect(\n      filterNode\n    );\n\n\n    filterNode.connect(\n      bandpassStage2\n    );\n\n\n    bandpassStage2.connect(\n      filterGainNode\n    );\n\n\n    document.getElementById(\n      \"filterInfo\"\n    ).textContent=\n      \"Passe-bande raide \u00b7 \"+\n      f+\n      \" Hz \u00b7 Q \"+\n      resonance.toFixed(1);\n\n  }\n\n\n  else{\n\n    filterNode.type=\n      type;\n\n\n    filterNode.frequency.value=\n      safeFrequency;\n\n\n    filterNode.Q.value=\n      resonance;\n\n\n    filterStage2.type=\n      type;\n\n\n    filterStage2.frequency.value=\n      safeFrequency;\n\n\n    filterStage2.Q.value=\n      resonance;\n\n\n    masterGain.connect(\n      filterNode\n    );\n\n\n    filterNode.connect(\n      filterStage2\n    );\n\n\n    filterStage2.connect(\n      filterGainNode\n    );\n\n\n    const label=\n      filterType\n        .options[\n          filterType.selectedIndex\n        ]\n        .text;\n\n\n    document.getElementById(\n      \"filterInfo\"\n    ).textContent=\n      label+\n      \" \u00b7 pente 24 dB\/oct \u00b7 \"+\n      f+\n      \" Hz \u00b7 Q \"+\n      resonance.toFixed(1);\n\n  }\n\n\n  filterGainNode.gain.value=\n    Math.pow(\n      10,\n      gain\/20\n    );\n\n\n  filterGainNode.connect(\n    analyser\n  );\n\n\n  analyser.connect(\n    audioContext.destination\n  );\n\n\n  updateFilterVisual();\n\n}\n\n\n\/* =========================================================\n   OSCILLATEURS\n========================================================= *\/\n\nfunction createAdditiveOscillators(){\n\n  oscillators=[];\n\n  oscillatorGains=[];\n\n\n  for(\n    let i=1;\n    i<=8;\n    i++\n  ){\n\n    const osc=\n      audioContext.createOscillator();\n\n\n    const gain=\n      audioContext.createGain();\n\n\n    osc.type=\n      waveform.value;\n\n\n    osc.frequency.value=\n      Math.min(\n        Number(\n          frequency.value\n        )*i,\n        audioContext.sampleRate\/2-1\n      );\n\n\n    gain.gain.value=\n      Number(\n        harmonicSliders[i-1].value\n      );\n\n\n    osc.connect(\n      gain\n    );\n\n\n    gain.connect(\n      masterGain\n    );\n\n\n    oscillators.push(\n      osc\n    );\n\n\n    oscillatorGains.push(\n      gain\n    );\n\n  }\n\n\n  oscillators.forEach(\n    osc=>\n      osc.start()\n  );\n\n}\n\n\n\/* =========================================================\n   UPDATE HARMONIQUES\n========================================================= *\/\n\nfunction updateOscillatorHarmonics(){\n\n  if(!audioContext)\n    return;\n\n\n  if(\n    sourceType.value!==\"oscillator\"\n  )\n    return;\n\n\n  const now=\n    audioContext.currentTime;\n\n\n  for(\n    let i=0;\n    i<8;\n    i++\n  ){\n\n    if(\n      oscillatorGains[i]\n    ){\n\n      oscillatorGains[i]\n        .gain\n        .setTargetAtTime(\n          Number(\n            harmonicSliders[i].value\n          ),\n          now,\n          0.01\n        );\n\n    }\n\n\n    if(\n      oscillators[i]\n    ){\n\n      oscillators[i]\n        .frequency\n        .setTargetAtTime(\n          Math.min(\n            Number(\n              frequency.value\n            )*(i+1),\n            audioContext.sampleRate\/2-1\n          ),\n          now,\n          0.01\n        );\n\n    }\n\n  }\n\n}\n\n\n\/* =========================================================\n   START\n========================================================= *\/\n\nasync function startAudio(){\n\n  createGraph();\n\n\n  await audioContext.resume();\n\n\n  if(\n    sourceType.value===\"oscillator\"\n  ){\n\n    createAdditiveOscillators();\n\n  }\n\n  else{\n\n    if(!sampleBuffer){\n\n      setAudioStatus(\n        false,\n        \"Choisis un sample\"\n      );\n\n      return;\n\n    }\n\n\n    sampleSource=\n      audioContext.createBufferSource();\n\n\n    sampleSource.buffer=\n      sampleBuffer;\n\n\n    sampleSource.loop=true;\n\n\n    sampleSource.connect(\n      masterGain\n    );\n\n\n    sampleSource.onended=()=>{\n      if(isPlaying){\n        isPlaying=false;\n        playButton.textContent=\"\u25b6 D\u00e9marrer\";\n        setAudioStatus(false,\"Audio arr\u00eat\u00e9\");\n      }\n    };\n\n\n    sampleSource.start();\n\n  }\n\n\n  isPlaying=true;\n\n\n  playButton.textContent=\n    \"\u25a0 Arr\u00eater\";\n\n\n  setAudioStatus(\n    true,\n    sourceType.value===\"sample\"\n      ?selectedSampleName+\" \u00b7 Audio actif\"\n      :\"Audio actif\"\n  );\n\n\n  startVisualisation();\n\n}\n\n\n\/* =========================================================\n   STOP\n========================================================= *\/\n\nasync function stopAudio(){\n\n  stopVisualisation();\n\n\n  oscillators.forEach(\n    osc=>{\n\n      try{\n        osc.stop();\n      }\n      catch(e){}\n\n    }\n  );\n\n\n  oscillators=[];\n\n  oscillatorGains=[];\n\n\n  if(sampleSource){\n\n    try{\n      sampleSource.stop();\n    }\n    catch(e){}\n\n    sampleSource.disconnect();\n\n    sampleSource=null;\n\n  }\n\n\n  if(audioContext){\n\n    try{\n      await audioContext.close();\n    }\n    catch(e){}\n\n  }\n\n\n  audioContext=null;\n\n  masterGain=null;\n\n  filterNode=null;\n\n  filterStage2=null;\n\n  bandpassStage2=null;\n\n  filterGainNode=null;\n\n  analyser=null;\n\n  isPlaying=false;\n\n\n  playButton.textContent=\n    \"\u25b6 D\u00e9marrer\";\n\n\n  setAudioStatus(\n    false,\n    \"Audio arr\u00eat\u00e9\"\n  );\n\n\n  clearSpectrogram();\n\n}\n\n\n\/* =========================================================\n   PLAY BUTTON\n========================================================= *\/\n\nplayButton.addEventListener(\n  \"click\",\n  async()=>{\n\n    if(isPlaying){\n\n      await stopAudio();\n\n    }\n\n    else{\n\n      await startAudio();\n\n    }\n\n  }\n);\n\n\n\/* =========================================================\n   FREQUENCE\n========================================================= *\/\n\nfrequency.addEventListener(\n  \"input\",\n  ()=>{\n\n    document.getElementById(\n      \"frequencyValue\"\n    ).textContent=\n      frequency.value+\n      \" Hz\";\n\n\n    if(!audioContext)\n      return;\n\n\n    const now=\n      audioContext.currentTime;\n\n\n    oscillators.forEach(\n      (osc,i)=>{\n\n        osc.frequency\n          .setTargetAtTime(\n            Math.min(\n              Number(\n                frequency.value\n              )*(i+1),\n              audioContext.sampleRate\/2-1\n            ),\n            now,\n            0.01\n          );\n\n      }\n\n    );\n\n  }\n);\n\n\n\/* =========================================================\n   WAVEFORM\n========================================================= *\/\n\nwaveform.addEventListener(\n  \"change\",\n  ()=>{\n\n    oscillators.forEach(\n      osc=>\n        osc.type=\n          waveform.value\n    );\n\n  }\n);\n\n\n\/* =========================================================\n   AMPLITUDE\n========================================================= *\/\n\namplitude.addEventListener(\n  \"input\",\n  ()=>{\n\n    document.getElementById(\n      \"amplitudeValue\"\n    ).textContent=\n      Number(\n        amplitude.value\n      ).toFixed(2);\n\n\n    if(masterGain){\n\n      masterGain.gain.setTargetAtTime(\n        Number(\n          amplitude.value\n        ),\n        audioContext.currentTime,\n        0.01\n      );\n\n    }\n\n  }\n);\n\n\n\/* =========================================================\n   FILTRE EVENTS\n========================================================= *\/\n\nfilterType.addEventListener(\n  \"change\",\n  updateFilter\n);\n\ncutoff.addEventListener(\n  \"input\",\n  updateFilter\n);\n\nfilterGain.addEventListener(\n  \"input\",\n  updateFilter\n);\n\nq.addEventListener(\n  \"input\",\n  updateFilter\n);\n\n\n\/* =========================================================\n   FICHIER AUDIO LOCAL\n========================================================= *\/\n\ndocument\n  .getElementById(\n    \"fileInput\"\n  )\n  .addEventListener(\n    \"change\",\n    async event=>{\n\n      const file=\n        event.target.files[0];\n\n\n      if(!file)\n        return;\n\n\n      try{\n\n        createContext();\n\n\n        const arrayBuffer=\n          await file.arrayBuffer();\n\n\n        sampleBuffer=\n          await audioContext.decodeAudioData(\n            arrayBuffer\n          );\n\n\n        selectedSampleUrl=null;\n\n        selectedSampleName=\n          file.name;\n\n\n        sourceType.value=\n          \"sample\";\n\n\n        oscillatorPanel.style.display=\n          \"none\";\n\n\n        samplePanel.style.display=\n          \"block\";\n\n\n        setAudioStatus(\n          false,\n          \"Sample charg\u00e9 : \"+\n          file.name\n        );\n\n\n        if(isPlaying){\n\n          await stopAudio();\n\n          await startAudio();\n\n        }\n\n      }\n\n      catch(error){\n\n        console.error(error);\n\n        setAudioStatus(\n          false,\n          \"Impossible de charger le fichier\"\n        );\n\n      }\n\n    }\n  );\n\n\n\/* =========================================================\n   SAMPLE DISTANT\n========================================================= *\/\n\nasync function loadSampleFile(\n  url,\n  name\n){\n\n  try{\n\n    \/*\n     * Si un audio tourne d\u00e9j\u00e0, on l'arr\u00eate proprement\n     * avant de recr\u00e9er le contexte.\n     *\/\n\n    if(isPlaying){\n\n      await stopAudio();\n\n    }\n\n\n    createContext();\n\n\n    setAudioStatus(\n      false,\n      \"Chargement : \"+name\n    );\n\n\n    const response=\n      await fetch(\n        url,\n        {\n          method:\"GET\",\n          mode:\"cors\",\n          cache:\"no-store\"\n        }\n      );\n\n\n    if(!response.ok){\n\n      throw new Error(\n        \"HTTP \"+\n        response.status+\n        \" \u2014 \"+\n        response.statusText\n      );\n\n    }\n\n\n    const data=\n      await response.arrayBuffer();\n\n\n    sampleBuffer=\n      await audioContext.decodeAudioData(\n        data\n      );\n\n\n    selectedSampleUrl=\n      url;\n\n\n    selectedSampleName=\n      name;\n\n\n    sourceType.value=\n      \"sample\";\n\n\n    oscillatorPanel.style.display=\n      \"none\";\n\n\n    samplePanel.style.display=\n      \"block\";\n\n\n    setAudioStatus(\n      false,\n      name+\" charg\u00e9\"\n    );\n\n\n    \/*\n     * Le sample est seulement charg\u00e9 ici.\n     * Il sera ensuite envoy\u00e9 dans la m\u00eame cha\u00eene\n     * audio que l'oscillateur lorsqu'on clique\n     * sur D\u00e9marrer.\n     *\/\n\n  }\n\n  catch(error){\n\n    console.error(\n      \"Erreur de chargement du sample :\",\n      error\n    );\n\n\n    sampleBuffer=null;\n\n\n    setAudioStatus(\n      false,\n      \"Impossible de charger le sample\"\n    );\n\n  }\n\n}\n\n\n\/* =========================================================\n   CANVAS\n========================================================= *\/\n\nconst scope=\n  document.getElementById(\n    \"scope\"\n  );\n\nconst scopeCtx=\n  scope.getContext(\n    \"2d\"\n  );\n\n\nconst spectrum=\n  document.getElementById(\n    \"spectrum\"\n  );\n\nconst spectrumCtx=\n  spectrum.getContext(\n    \"2d\"\n  );\n\n\nconst filterCanvas=\n  document.getElementById(\n    \"filterCanvas\"\n  );\n\nconst filterCtx=\n  filterCanvas.getContext(\n    \"2d\"\n  );\n\n\nconst spectrogram=\n  document.getElementById(\n    \"spectrogram\"\n  );\n\nconst spectrogramCtx=\n  spectrogram.getContext(\n    \"2d\"\n  );\n\n\nfunction setupCanvas(canvas){\n\n  const rect=\n    canvas.getBoundingClientRect();\n\n\n  const dpr=\n    window.devicePixelRatio ||\n    1;\n\n\n  canvas.width=\n    Math.max(\n      1,\n      Math.floor(\n        rect.width*dpr\n      )\n    );\n\n\n  canvas.height=\n    Math.max(\n      1,\n      Math.floor(\n        rect.height*dpr\n      )\n    );\n\n\n  const ctx=\n    canvas.getContext(\n      \"2d\"\n    );\n\n\n  ctx.setTransform(\n    dpr,\n    0,\n    0,\n    dpr,\n    0,\n    0\n  );\n\n}\n\n\nfunction setupAllCanvases(){\n\n  setupCanvas(scope);\n\n  setupCanvas(spectrum);\n\n  setupCanvas(filterCanvas);\n\n  setupCanvas(spectrogram);\n\n\n  spectrogramWidth=\n    spectrogram.clientWidth;\n\n\n  spectrogramHeight=\n    spectrogram.clientHeight;\n\n}\n\n\nwindow.addEventListener(\n  \"resize\",\n  ()=>{\n    setupAllCanvases();\n    clearSpectrogram();\n  }\n);\n\nwindow.addEventListener(\n  \"DOMContentLoaded\",\n  setupAllCanvases\n);\n\nsetupAllCanvases();\n\n\n\/* =========================================================\n   VISUALISATION \u2014 OUTILS\n========================================================= *\/\n\nfunction drawGrid(\n  ctx,\n  width,\n  height,\n  horizontal=4,\n  vertical=8\n){\n\n  ctx.strokeStyle=\n    \"rgba(255,255,255,.07)\";\n\n  ctx.lineWidth=1;\n\n\n  for(\n    let i=1;\n    i<horizontal;\n    i++\n  ){\n\n    const y=\n      height*i\/horizontal;\n\n\n    ctx.beginPath();\n\n    ctx.moveTo(\n      0,\n      y\n    );\n\n    ctx.lineTo(\n      width,\n      y\n    );\n\n    ctx.stroke();\n\n  }\n\n\n  for(\n    let i=1;\n    i<vertical;\n    i++\n  ){\n\n    const x=\n      width*i\/vertical;\n\n\n    ctx.beginPath();\n\n    ctx.moveTo(\n      x,\n      0\n    );\n\n    ctx.lineTo(\n      x,\n      height\n    );\n\n    ctx.stroke();\n\n  }\n\n}\n\n\n\/* =========================================================\n   OSCILLOSCOPE\n========================================================= *\/\n\nfunction drawScope(){\n\n  const width=\n    scope.clientWidth;\n\n  const height=\n    scope.clientHeight;\n\n\n  scopeCtx.clearRect(\n    0,\n    0,\n    width,\n    height\n  );\n\n\n  scopeCtx.fillStyle=\n    \"#05080d\";\n\n  scopeCtx.fillRect(\n    0,\n    0,\n    width,\n    height\n  );\n\n\n  drawGrid(\n    scopeCtx,\n    width,\n    height,\n    4,\n    8\n  );\n\n\n  \/*\n   * Ligne centrale 0\n   *\/\n\n  scopeCtx.strokeStyle=\n    \"rgba(85,214,255,.25)\";\n\n  scopeCtx.beginPath();\n\n  scopeCtx.moveTo(\n    0,\n    height\/2\n  );\n\n  scopeCtx.lineTo(\n    width,\n    height\/2\n  );\n\n  scopeCtx.stroke();\n\n\n  if(!analyser){\n\n    return;\n\n  }\n\n\n  if(!scopeData){\n\n    scopeData=\n      new Uint8Array(\n        analyser.fftSize\n      );\n\n  }\n\n\n  analyser.getByteTimeDomainData(\n    scopeData\n  );\n\n\n  scopeCtx.strokeStyle=\n    \"#55d6ff\";\n\n  scopeCtx.lineWidth=1.5;\n\n  scopeCtx.beginPath();\n\n\n  const sliceWidth=\n    width\/\n    scopeData.length;\n\n\n  let x=0;\n\n\n  for(\n    let i=0;\n    i<scopeData.length;\n    i++\n  ){\n\n    const v=\n      scopeData[i]\/\n      128.0;\n\n\n    const y=\n      v*\n      height\/2;\n\n\n    if(i===0){\n\n      scopeCtx.moveTo(\n        x,\n        y\n      );\n\n    }\n\n    else{\n\n      scopeCtx.lineTo(\n        x,\n        y\n      );\n\n    }\n\n\n    x+=sliceWidth;\n\n  }\n\n\n  scopeCtx.stroke();\n\n}\n\n\n\/* =========================================================\n   SPECTRE \/ FFT\n========================================================= *\/\n\nfunction drawSpectrum(){\n\n  const width=\n    spectrum.clientWidth;\n\n  const height=\n    spectrum.clientHeight;\n\n\n  spectrumCtx.clearRect(\n    0,\n    0,\n    width,\n    height\n  );\n\n\n  spectrumCtx.fillStyle=\n    \"#05080d\";\n\n  spectrumCtx.fillRect(\n    0,\n    0,\n    width,\n    height\n  );\n\n\n  drawGrid(\n    spectrumCtx,\n    width,\n    height,\n    4,\n    10\n  );\n\n\n  if(!analyser){\n\n    return;\n\n  }\n\n\n  if(!spectrumData){\n\n    spectrumData=\n      new Uint8Array(\n        analyser.frequencyBinCount\n      );\n\n  }\n\n\n  analyser.getByteFrequencyData(\n    spectrumData\n  );\n\n\n  spectrumCtx.beginPath();\n\n\n  const gradient=\n    spectrumCtx.createLinearGradient(\n      0,\n      height,\n      0,\n      0\n    );\n\n\n  gradient.addColorStop(\n    0,\n    \"#55d6ff\"\n  );\n\n\n  gradient.addColorStop(\n    .55,\n    \"#62e6a7\"\n  );\n\n\n  gradient.addColorStop(\n    1,\n    \"#ffd166\"\n  );\n\n\n  spectrumCtx.strokeStyle=\n    gradient;\n\n  spectrumCtx.lineWidth=1.5;\n\n\n  \/*\n   * \u00c9chelle logarithmique de fr\u00e9quence.\n   * C'est beaucoup plus lisible pour un analyseur\n   * audio r\u00e9el que l'\u00e9chelle lin\u00e9aire.\n   *\/\n\n  const nyquist=\n    audioContext.sampleRate\/2;\n\n\n  let started=false;\n\n\n  for(\n    let i=1;\n    i<spectrumData.length;\n    i++\n  ){\n\n    const freq=\n      i\/\n      spectrumData.length*\n      nyquist;\n\n\n    if(freq<20)\n      continue;\n\n\n    const logMin=\n      Math.log10(20);\n\n    const logMax=\n      Math.log10(\n        Math.min(\n          20000,\n          nyquist\n        )\n      );\n\n\n    const x=\n      (\n        Math.log10(freq)-\n        logMin\n      )\/\n      (\n        logMax-\n        logMin\n      )*\n      width;\n\n\n    const magnitude=\n      spectrumData[i]\/\n      255;\n\n\n    const y=\n      height-\n      magnitude*\n      (height-4);\n\n\n    if(!started){\n\n      spectrumCtx.moveTo(\n        x,\n        y\n      );\n\n      started=true;\n\n    }\n\n    else{\n\n      spectrumCtx.lineTo(\n        x,\n        y\n      );\n\n    }\n\n  }\n\n\n  spectrumCtx.stroke();\n\n\n  \/*\n   * Axe fr\u00e9quence minimal discret\n   *\/\n\n  spectrumCtx.fillStyle=\n    \"#718091\";\n\n  spectrumCtx.font=\n    \"9px system-ui\";\n\n  const labels=[\n    20,\n    100,\n    500,\n    1000,\n    2000,\n    5000,\n    10000,\n    20000\n  ];\n\n\n  labels.forEach(\n    f=>{\n\n      if(f>nyquist)\n        return;\n\n\n      const logMin=\n        Math.log10(20);\n\n      const logMax=\n        Math.log10(\n          Math.min(\n            20000,\n            nyquist\n          )\n        );\n\n\n      const x=\n        (\n          Math.log10(f)-\n          logMin\n        )\/\n        (\n          logMax-\n          logMin\n        )*\n        width;\n\n\n      spectrumCtx.fillText(\n        f>=1000\n          ?(f\/1000)+\"k\"\n          :f+\"\",\n        Math.max(\n          0,\n          Math.min(\n            width-25,\n            x-8\n          )\n        ),\n        height-5\n      );\n\n    }\n  );\n\n}\n\n\n\/* =========================================================\n   R\u00c9PONSE DU FILTRE\n========================================================= *\/\n\nfunction updateFilterVisual(){\n\n  const width=\n    filterCanvas.clientWidth;\n\n  const height=\n    filterCanvas.clientHeight;\n\n\n  filterCtx.clearRect(\n    0,\n    0,\n    width,\n    height\n  );\n\n\n  filterCtx.fillStyle=\n    \"#05080d\";\n\n  filterCtx.fillRect(\n    0,\n    0,\n    width,\n    height\n  );\n\n\n  drawGrid(\n    filterCtx,\n    width,\n    height,\n    4,\n    10\n  );\n\n\n  if(!audioContext || !filterNode){\n\n    drawFlatFilterLine(\n      width,\n      height\n    );\n\n    return;\n\n  }\n\n\n  const frequencies=\n    new Float32Array(512);\n\n  const magnitudes=\n    new Float32Array(512);\n\n  const phases=\n    new Float32Array(512);\n\n\n  const nyquist=\n    audioContext.sampleRate\/2;\n\n\n  const maxFreq=\n    Math.min(\n      20000,\n      nyquist-1\n    );\n\n\n  const minFreq=20;\n\n\n  for(\n    let i=0;\n    i<frequencies.length;\n    i++\n  ){\n\n    frequencies[i]=\n      minFreq*\n      Math.pow(\n        maxFreq\/minFreq,\n        i\/(frequencies.length-1)\n      );\n\n  }\n\n\n  try{\n\n    filterNode.getFrequencyResponse(\n      frequencies,\n      magnitudes,\n      phases\n    );\n\n  }\n\n  catch(e){\n\n    drawFlatFilterLine(\n      width,\n      height\n    );\n\n    return;\n\n  }\n\n\n  filterCtx.beginPath();\n\n  filterCtx.strokeStyle=\n    \"#ff9f43\";\n\n  filterCtx.lineWidth=1.5;\n\n\n  for(\n    let i=0;\n    i<magnitudes.length;\n    i++\n  ){\n\n    const x=\n      i\/\n      (magnitudes.length-1)*\n      width;\n\n\n    const db=\n      20*\n      Math.log10(\n        Math.max(\n          magnitudes[i],\n          0.00001\n        )\n      );\n\n\n    \/*\n     * Affichage de +12 dB \u00e0 -60 dB.\n     *\/\n\n    const normalized=\n      (\n        db+60\n      )\/\n      72;\n\n\n    const y=\n      height-\n      Math.max(\n        0,\n        Math.min(\n          1,\n          normalized\n        )\n      )*\n      height;\n\n\n    if(i===0){\n\n      filterCtx.moveTo(\n        x,\n        y\n      );\n\n    }\n\n    else{\n\n      filterCtx.lineTo(\n        x,\n        y\n      );\n\n    }\n\n  }\n\n\n  filterCtx.stroke();\n\n\n  filterCtx.fillStyle=\n    \"#718091\";\n\n  filterCtx.font=\n    \"9px system-ui\";\n\n\n  filterCtx.fillText(\n    \"+12 dB\",\n    5,\n    11\n  );\n\n\n  filterCtx.fillText(\n    \"0 dB\",\n    5,\n    height\/2\n  );\n\n\n  filterCtx.fillText(\n    \"-60 dB\",\n    5,\n    height-5\n  );\n\n\n  \/*\n   * Ligne verticale de fr\u00e9quence de coupure.\n   *\/\n\n  const f=\n    Number(\n      cutoff.value\n    );\n\n\n  const logMin=\n    Math.log10(20);\n\n  const logMax=\n    Math.log10(maxFreq);\n\n\n  const x=\n    (\n      Math.log10(\n        Math.max(\n          20,\n          Math.min(\n            maxFreq,\n            f\n          )\n        )\n      )-\n      logMin\n    )\/\n    (\n      logMax-logMin\n    )*\n    width;\n\n\n  filterCtx.strokeStyle=\n    \"rgba(85,214,255,.55)\";\n\n  filterCtx.setLineDash(\n    [4,4]\n  );\n\n\n  filterCtx.beginPath();\n\n  filterCtx.moveTo(\n    x,\n    0\n  );\n\n  filterCtx.lineTo(\n    x,\n    height\n  );\n\n  filterCtx.stroke();\n\n  filterCtx.setLineDash([]);\n\n\n  filterCtx.fillStyle=\n    \"#55d6ff\";\n\n  filterCtx.fillText(\n    f+\" Hz\",\n    Math.min(\n      width-55,\n      Math.max(\n        3,\n        x+4\n      )\n    ),\n    12\n  );\n\n}\n\n\nfunction drawFlatFilterLine(\n  width,\n  height\n){\n\n  filterCtx.strokeStyle=\n    \"#62e6a7\";\n\n  filterCtx.lineWidth=1.5;\n\n  filterCtx.beginPath();\n\n  filterCtx.moveTo(\n    0,\n    height\/2\n  );\n\n  filterCtx.lineTo(\n    width,\n    height\/2\n  );\n\n  filterCtx.stroke();\n\n}\n\n\n\/* =========================================================\n   SPECTROGRAMME\n========================================================= *\/\n\nfunction clearSpectrogram(){\n\n  spectrogramCtx.clearRect(\n    0,\n    0,\n    spectrogram.clientWidth,\n    spectrogram.clientHeight\n  );\n\n}\n\n\nfunction drawSpectrogram(){\n\n  const width=\n    spectrogram.clientWidth;\n\n  const height=\n    spectrogram.clientHeight;\n\n\n  if(!analyser)\n    return;\n\n\n  if(!spectrumData){\n\n    spectrumData=\n      new Uint8Array(\n        analyser.frequencyBinCount\n      );\n\n  }\n\n\n  analyser.getByteFrequencyData(\n    spectrumData\n  );\n\n\n  \/*\n   * On d\u00e9cale l'image existante d'un pixel\n   * vers la gauche.\n   *\/\n\n  const dpr=\n    window.devicePixelRatio ||\n    1;\n\n\n  const pixelWidth=\n    spectrogram.width;\n\n  const pixelHeight=\n    spectrogram.height;\n\n\n  if(\n    pixelWidth<=0 ||\n    pixelHeight<=0\n  )\n    return;\n\n\n  \/*\n   * Le canvas utilise un transform DPR pour les\n   * autres dessins. Pour le spectrogramme, on\n   * travaille directement en pixels du canvas.\n   *\/\n\n  const oldTransform=\n    spectrogramCtx.getTransform();\n\n\n  spectrogramCtx.setTransform(\n    1,\n    0,\n    0,\n    1,\n    0,\n    0\n  );\n\n\n  try{\n\n    spectrogramCtx.drawImage(\n      spectrogram,\n      1,\n      0,\n      pixelWidth-1,\n      pixelHeight,\n      0,\n      0,\n      pixelWidth-1,\n      pixelHeight\n    );\n\n  }\n  catch(e){}\n\n\n  const nyquist=\n    audioContext.sampleRate\/2;\n\n\n  const maxFreq=\n    Math.min(\n      20000,\n      nyquist\n    );\n\n\n  \/*\n   * Colonne actuelle.\n   *\/\n\n  for(\n    let y=0;\n    y<pixelHeight;\n    y++\n  ){\n\n    \/*\n     * \u00c9chelle logarithmique verticale.\n     * Haut = hautes fr\u00e9quences.\n     * Bas = basses fr\u00e9quences.\n     *\/\n\n    const normalized=\n      y\/\n      (pixelHeight-1);\n\n\n    const logMax=\n      Math.log10(\n        maxFreq\n      );\n\n\n    const logMin=\n      Math.log10(20);\n\n\n    const frequencyAtY=\n      Math.pow(\n        10,\n        logMax-\n        normalized*\n        (logMax-logMin)\n      );\n\n\n    const bin=\n      Math.floor(\n        frequencyAtY\/\n        nyquist*\n        spectrumData.length\n      );\n\n\n    const value=\n      spectrumData[\n        Math.max(\n          0,\n          Math.min(\n            spectrumData.length-1,\n            bin\n          )\n        )\n      ];\n\n\n    const intensity=\n      value\/255;\n\n\n    spectrogramCtx.fillStyle=\n      spectrogramColor(\n        intensity\n      );\n\n\n    spectrogramCtx.fillRect(\n      pixelWidth-2,\n      y,\n      2,\n      1\n    );\n\n  }\n\n\n  spectrogramCtx.setTransform(\n    oldTransform\n  );\n\n}\n\n\nfunction spectrogramColor(\n  value\n){\n\n  \/*\n   * Palette sombre :\n   * noir \u2192 bleu \u2192 cyan \u2192 vert \u2192 jaune \u2192 rouge\n   *\/\n\n  const v=\n    Math.max(\n      0,\n      Math.min(\n        1,\n        value\n      )\n    );\n\n\n  if(v<.15){\n\n    const t=\n      v\/.15;\n\n\n    return `rgb(\n      ${Math.round(2+5*t)},\n      ${Math.round(5+15*t)},\n      ${Math.round(12+45*t)}\n    )`;\n\n  }\n\n\n  if(v<.40){\n\n    const t=\n      (v-.15)\/.25;\n\n\n    return `rgb(\n      ${Math.round(7+5*t)},\n      ${Math.round(20+120*t)},\n      ${Math.round(57+150*t)}\n    )`;\n\n  }\n\n\n  if(v<.65){\n\n    const t=\n      (v-.40)\/.25;\n\n\n    return `rgb(\n      ${Math.round(12+60*t)},\n      ${Math.round(140+80*t)},\n      ${Math.round(207-110*t)}\n    )`;\n\n  }\n\n\n  if(v<.82){\n\n    const t=\n      (v-.65)\/.17;\n\n\n    return `rgb(\n      ${Math.round(72+170*t)},\n      ${Math.round(220+15*t)},\n      ${Math.round(97-75*t)}\n    )`;\n\n  }\n\n\n  const t=\n    (v-.82)\/.18;\n\n\n  return `rgb(\n    ${Math.round(242+13*t)},\n    ${Math.round(235-170*t)},\n    ${Math.round(22-15*t)}\n  )`;\n\n}\n\n\n\/* =========================================================\n   BOUCLE VISUELLE\n========================================================= *\/\n\nfunction startVisualisation(){\n\n  stopVisualisation();\n\n\n  scopeData=null;\n\n  spectrumData=null;\n\n\n  function frame(){\n\n    if(!isPlaying){\n\n      return;\n\n    }\n\n\n    drawScope();\n\n    drawSpectrum();\n\n    drawSpectrogram();\n\n\n    animationFrame=\n      requestAnimationFrame(\n        frame\n      );\n\n  }\n\n\n  frame();\n\n}\n\n\nfunction stopVisualisation(){\n\n  if(animationFrame){\n\n    cancelAnimationFrame(\n      animationFrame\n    );\n\n    animationFrame=null;\n\n  }\n\n\n  scopeData=null;\n\n  spectrumData=null;\n\n}\n\n\n\/* =========================================================\n   INITIALISATION VISUELLE\n========================================================= *\/\n\nclearSpectrogram();\n\nupdateFilterVisual();\n\n<\/script>\n\n<\/body>\n<\/html>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-ddad772 e-flex e-con-boxed e-con e-parent\" data-id=\"ddad772\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-525656a elementor-widget elementor-widget-html\" data-id=\"525656a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<style>\n\/* =========================================================\n   VOIR LE SON \u2014 CSS ISOL\u00c9 POUR WIDGET HTML ELEMENTOR\n   ========================================================= *\/\n.sound-lab,\n.sound-lab * {\n  box-sizing: border-box;\n}\n\n.sound-lab {\n  --bg: #000;\n  --panel: #080808;\n  --panel2: #0d0d0d;\n  --line: #242424;\n  --line2: #444;\n  --fg: #fff;\n  --dim: #777;\n\n  width: 100%;\n  max-width: 100%;\n  min-width: 0;\n  min-height: 100vh;\n  margin: 0;\n  padding: 0;\n  overflow-x: hidden;\n  background: var(--bg) !important;\n  color: var(--fg) !important;\n  font-family: Arial, Helvetica, sans-serif !important;\n  -webkit-text-fill-color: initial;\n}\n\n.sound-lab button,\n.sound-lab input,\n.sound-lab select {\n  font: inherit;\n}\n\n.sound-lab header,\n.sound-lab main,\n.sound-lab footer {\n  width: 100%;\n  max-width: 1380px;\n  min-width: 0;\n  margin-left: auto;\n  margin-right: auto;\n  padding-left: 12px;\n  padding-right: 12px;\n}\n\n.sound-lab header {\n  padding: 42px 0 28px;\n}\n\n.sound-lab .kicker,\n.sound-lab .num,\n.sound-lab .label,\n.sound-lab .status,\n.sound-lab button,\n.sound-lab select {\n  font-size: 10px;\n  letter-spacing: .11em;\n  text-transform: uppercase;\n}\n\n.sound-lab h1 {\n  margin: 0;\n  color: #fff !important;\n  font-size: clamp(38px, 6vw, 76px);\n  font-weight: 300;\n  line-height: 1;\n  letter-spacing: -.06em;\n}\n\n.sound-lab header p {\n  max-width: 760px;\n  margin: 15px 0 0;\n  color: #aaa !important;\n  font-size: 13px;\n  line-height: 1.6;\n}\n\n.sound-lab main {\n  display: grid;\n  gap: 16px;\n}\n\n.sound-lab .card {\n  background: var(--panel) !important;\n  border: 1px solid var(--line) !important;\n  border-radius: 10px;\n  overflow: hidden;\n  min-width: 0;\n  max-width: 100%;\n}\n\n.sound-lab .cardhead {\n  display: grid;\n  grid-template-columns: minmax(0, .7fr) minmax(0, 1.3fr);\n  gap: 28px;\n  padding: 18px 20px;\n  border-bottom: 1px solid var(--line);\n}\n\n.sound-lab .num {\n  color: #888 !important;\n}\n\n.sound-lab .title {\n  margin-top: 5px;\n  color: #fff !important;\n  font-size: 19px;\n}\n\n.sound-lab .desc {\n  max-width: 700px;\n  color: #999 !important;\n  font-size: 12px;\n  line-height: 1.55;\n}\n\n.sound-lab .body {\n  padding: 14px;\n  min-width: 0;\n  max-width: 100%;\n  overflow: hidden;\n}\n\n.sound-lab canvas {\n  display: block;\n  width: 100%;\n  max-width: 100%;\n  min-width: 0;\n  height: auto;\n  background: #000 !important;\n  border: 1px solid #181818;\n  border-radius: 6px;\n}\n\n.sound-lab .controls {\n  display: grid;\n  grid-template-columns: repeat(auto-fit, minmax(min(170px, 100%), 1fr));\n  gap: 8px;\n  margin-top: 8px;\n}\n\n.sound-lab .control {\n  min-width: 0;\n  overflow: hidden;\n  background: var(--panel2) !important;\n  border: 1px solid #1c1c1c !important;\n  border-radius: 6px;\n  padding: 10px;\n}\n\n.sound-lab .label {\n  display: flex;\n  justify-content: space-between;\n  gap: 8px;\n  margin-bottom: 8px;\n  color: #aaa !important;\n}\n\n.sound-lab .value {\n  color: #fff !important;\n  font-variant-numeric: tabular-nums;\n}\n\n.sound-lab input[type=\"range\"] {\n  width: 100%;\n  accent-color: #fff;\n  cursor: pointer;\n}\n\n.sound-lab select,\n.sound-lab button {\n  width: 100%;\n  padding: 8px;\n  background: #000 !important;\n  border: 1px solid var(--line2) !important;\n  border-radius: 5px;\n  outline: none;\n  color: #fff !important;\n  -webkit-text-fill-color: #fff !important;\n  box-shadow: none !important;\n}\n\n.sound-lab select option {\n  background: #000;\n  color: #fff;\n}\n\n.sound-lab button {\n  cursor: pointer;\n}\n\n.sound-lab button:hover {\n  border-color: #fff !important;\n}\n\n.sound-lab button.active {\n  background: #fff !important;\n  border-color: #fff !important;\n  color: #000 !important;\n  -webkit-text-fill-color: #000 !important;\n}\n\n.sound-lab .actions {\n  display: flex;\n  gap: 7px;\n  flex-wrap: wrap;\n  margin-top: 8px;\n}\n\n.sound-lab .actions button {\n  width: auto;\n  min-width: 100px;\n}\n\n.sound-lab .status {\n  margin-top: 8px;\n  color: #777 !important;\n}\n\n.sound-lab .status.on {\n  color: #fff !important;\n}\n\n.sound-lab .grid2 {\n  display: grid;\n  min-width: 0;\n  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);\n  gap: 8px;\n}\n\n.sound-lab .smallnote {\n  color: #777 !important;\n  font-size: 10px;\n  line-height: 1.5;\n}\n\n.sound-lab .harmonics {\n  display: grid;\n  gap: 5px;\n  margin-top: 8px;\n}\n\n.sound-lab .hrow {\n  display: grid;\n  grid-template-columns: 34px 1fr 72px;\n  gap: 8px;\n  align-items: center;\n  padding: 7px;\n  background: #0d0d0d !important;\n  border: 1px solid #181818 !important;\n  border-radius: 5px;\n}\n\n.sound-lab .hrow span {\n  color: #888 !important;\n  font-size: 10px;\n}\n\n.sound-lab .hrow .hf {\n  text-align: right;\n  font-variant-numeric: tabular-nums;\n}\n\n.sound-lab .adsr {\n  display: grid;\n  grid-template-columns: repeat(4, 1fr);\n  gap: 8px;\n  margin-top: 8px;\n}\n\n.sound-lab .big {\n  margin-bottom: 6px;\n  color: #fff !important;\n  font-size: 18px;\n  font-variant-numeric: tabular-nums;\n}\n\n.sound-lab .space {\n  display: flex;\n  gap: 12px;\n  align-items: center;\n  margin-top: 8px;\n  padding: 10px;\n  border: 1px solid #1c1c1c;\n  border-radius: 6px;\n}\n\n.sound-lab .spacekey {\n  display: grid;\n  place-items: center;\n  min-width: 210px;\n  height: 42px;\n  border: 1px solid #444;\n  border-radius: 5px;\n  color: #777 !important;\n  font-size: 10px;\n  letter-spacing: .12em;\n}\n\n.sound-lab .spacekey.pressed {\n  background: #fff !important;\n  border-color: #fff !important;\n  color: #000 !important;\n  -webkit-text-fill-color: #000 !important;\n}\n\n.sound-lab footer {\n  display: flex;\n  justify-content: space-between;\n  margin-top: 32px;\n  padding: 14px 0 28px;\n  border-top: 1px solid var(--line);\n  color: #666 !important;\n  font-size: 10px;\n  letter-spacing: .1em;\n  text-transform: uppercase;\n}\n\n.sound-lab footer span {\n  color: inherit !important;\n}\n\n@media (max-width: 900px) {\n  .sound-lab .cardhead,\n  .sound-lab .grid2 {\n    grid-template-columns: 1fr;\n  }\n\n  .sound-lab .adsr {\n    grid-template-columns: 1fr 1fr;\n  }\n\n  .sound-lab .space {\n    flex-direction: column;\n    align-items: stretch;\n  }\n\n  .sound-lab .spacekey {\n    min-width: 0;\n  }\n}\n\n@media (max-width: 560px) {\n  .sound-lab header { padding-top: 24px; }\n  .sound-lab .cardhead { padding: 14px; gap: 10px; }\n  .sound-lab .body { padding: 10px; }\n  .sound-lab .adsr { grid-template-columns: 1fr; }\n  .sound-lab .hrow { grid-template-columns: 30px minmax(0,1fr) 58px; }\n  .sound-lab .actions button { flex: 1 1 120px; min-width: 0; }\n}\n<\/style>\n\n<div class=\"sound-lab\" data-vls-root>\n<header>\n  <div class=\"kicker\">Laboratoire du son<\/div>\n  <h1>Voir le son.<\/h1>\n  <p>Quatre exp\u00e9riences interactives pour relier repr\u00e9sentation visuelle, ph\u00e9nom\u00e8nes physiques et perception auditive. Un seul son \u00e0 la fois : chaque nouvelle exp\u00e9rience coupe automatiquement la pr\u00e9c\u00e9dente.<\/p>\n<\/header>\n\n<main>\n<section class=\"card\">\n  <div class=\"cardhead\"><div><div class=\"num\">01 \/ PROPAGATION<\/div><div class=\"title\">Compression \u00b7 rar\u00e9faction<\/div><\/div><div class=\"desc\">Une onde sonore longitudinale fait osciller localement les particules d'air autour de leur position d'\u00e9quilibre. La fr\u00e9quence agit sur la cadence et sur la longueur d'onde.<\/div><\/div>\n  <div class=\"body\">\n    <canvas id=\"prop\" width=\"1400\" height=\"350\"><\/canvas>\n    <div class=\"controls\">\n      <div class=\"control\"><div class=\"label\">Fr\u00e9quence <span class=\"value\" id=\"pfv\"><\/span><\/div><input id=\"pf\" type=\"range\" min=\"60\" max=\"900\" value=\"294\"><\/div>\n      <div class=\"control\"><div class=\"label\">Amplitude <span class=\"value\" id=\"pav\"><\/span><\/div><input id=\"pa\" type=\"range\" min=\".05\" max=\"1\" step=\".01\" value=\".65\"><\/div>\n    <\/div>\n    <div class=\"actions\"><button id=\"pplay\">\u25b6 Play<\/button><button id=\"pstop\">\u25a0 Stop<\/button><\/div>\n    <div class=\"status\" id=\"ps\">Arr\u00eat\u00e9<\/div>\n  <\/div>\n<\/section>\n\n<section class=\"card\">\n  <div class=\"cardhead\"><div><div class=\"num\">02 \/ SALLE<\/div><div class=\"title\">R\u00e9flexion \u00b7 diffusion \u00b7 absorption<\/div><\/div><div class=\"desc\">Une source est entendue par un auditeur \u00e0 droite. Les murs produisent des r\u00e9flexions pr\u00e9coces puis une r\u00e9verb\u00e9ration; leur mat\u00e9riau r\u00e8gle l\u2019absorption. L\u2019objet peut masquer le trajet direct et ajouter une r\u00e9flexion.<\/div><\/div>\n  <div class=\"body\">\n    <canvas id=\"room\" width=\"1400\" height=\"500\"><\/canvas>\n    <div class=\"controls\">\n      <div class=\"control\"><div class=\"label\">Taille <span class=\"value\" id=\"rsv\"><\/span><\/div><input id=\"rsize\" type=\"range\" min=\".6\" max=\"1.8\" step=\".01\" value=\"1\"><\/div>\n      <div class=\"control\"><div class=\"label\">Mat\u00e9riau<\/div><select id=\"mat\"><option value=\"foam\">Mousse absorbante<\/option><option value=\"wood\">Bois<\/option><option value=\"concrete\" selected>B\u00e9ton<\/option><option value=\"glass\">Verre<\/option><\/select><\/div>\n      <div class=\"control\"><div class=\"label\">Source <span class=\"value\" id=\"rfv\"><\/span><\/div><input id=\"rf\" type=\"range\" min=\"80\" max=\"1000\" value=\"220\"><\/div>\n      <div class=\"control\"><div class=\"label\">Niveau <span class=\"value\" id=\"rvv\"><\/span><\/div><input id=\"rv\" type=\"range\" min=\"0\" max=\"1\" step=\".01\" value=\".55\"><\/div>\n    <\/div>\n    <div class=\"controls\">\n      <div class=\"control\"><div class=\"label\">Objet <span class=\"value\" id=\"objstate\">PR\u00c9SENT<\/span><\/div><button id=\"obj\" class=\"active\">Objet pr\u00e9sent<\/button><\/div>\n      <div class=\"control\"><div class=\"label\">Position X <span class=\"value\" id=\"oxv\"><\/span><\/div><input id=\"ox\" type=\"range\" min=\".25\" max=\".85\" step=\".01\" value=\".55\"><\/div>\n      <div class=\"control\"><div class=\"label\">Position Y <span class=\"value\" id=\"oyv\"><\/span><\/div><input id=\"oy\" type=\"range\" min=\".2\" max=\".8\" step=\".01\" value=\".50\"><\/div>\n      <div class=\"control\"><div class=\"label\">Taille objet <span class=\"value\" id=\"osv\"><\/span><\/div><input id=\"os\" type=\"range\" min=\".04\" max=\".22\" step=\".01\" value=\".10\"><\/div>\n    <\/div>\n    <div class=\"actions\"><button id=\"rplay\">\u25b6 Play<\/button><button id=\"rstop\">\u25a0 Stop<\/button><\/div>\n    <div class=\"status\" id=\"rs\">Arr\u00eat\u00e9<\/div>\n    <div class=\"smallnote\">Lecture : trait plein = trajet direct, traits fins = premi\u00e8res r\u00e9flexions sur les murs, pointill\u00e9s = trajet via l\u2019objet. L\u2019auditeur est fixe \u00e0 droite. Changez une seule variable \u00e0 la fois pour entendre clairement son effet.<\/div>\n  <\/div>\n<\/section>\n\n<section class=\"card\">\n  <div class=\"cardhead\"><div><div class=\"num\">03 \/ MODES PROPRES<\/div><div class=\"title\">Corde \u00b7 harmoniques \u00b7 Chladni<\/div><\/div><div class=\"desc\">Les tirettes r\u00e8glent r\u00e9ellement huit composantes sinuso\u00efdales. La corde affiche leur superposition et la plaque calcule un champ modal simplifi\u00e9 pour rendre visibles les lignes nodales.<\/div><\/div>\n  <div class=\"body\">\n    <div class=\"grid2\"><canvas id=\"string\" width=\"900\" height=\"280\"><\/canvas><canvas id=\"chladni\" width=\"900\" height=\"280\"><\/canvas><\/div>\n    <div class=\"controls\">\n      <div class=\"control\"><div class=\"label\">Fondamentale <span class=\"value\" id=\"fv\"><\/span><\/div><input id=\"fund\" type=\"range\" min=\"70\" max=\"500\" value=\"294\"><\/div>\n      <div class=\"control\"><div class=\"label\">Niveau global <span class=\"value\" id=\"hv\"><\/span><\/div><input id=\"hvol\" type=\"range\" min=\"0\" max=\"1\" step=\".01\" value=\".30\"><\/div>\n    <\/div>\n    <div class=\"harmonics\" id=\"vls-harmonics\"><\/div>\n    <div class=\"actions\"><button id=\"hplay\">\u25b6 Play<\/button><button id=\"hstop\">\u25a0 Stop<\/button><\/div>\n    <div class=\"status\" id=\"hs\">Arr\u00eat\u00e9<\/div>\n  <\/div>\n<\/section>\n\n<section class=\"card\">\n  <div class=\"cardhead\"><div><div class=\"num\">04 \/ ENVELOPPE<\/div><div class=\"title\">ADSR<\/div><\/div><div class=\"desc\">Une source p\u00e9riodique passe dans une enveloppe d'amplitude. Testez l'attaque, le decay, le sustain et le release au clic, puis armez la barre espace pour jouer comme avec une touche de clavier ma\u00eetre.<\/div><\/div>\n  <div class=\"body\">\n    <canvas id=\"adsr\" width=\"1400\" height=\"350\"><\/canvas>\n    <div class=\"adsr\">\n      <div class=\"control\"><div class=\"label\">Attack<\/div><div class=\"big\" id=\"av\"><\/div><input id=\"attack\" type=\"range\" min=\".005\" max=\"3\" step=\".005\" value=\".10\"><\/div>\n      <div class=\"control\"><div class=\"label\">Decay<\/div><div class=\"big\" id=\"dv\"><\/div><input id=\"decay\" type=\"range\" min=\".005\" max=\"3\" step=\".005\" value=\".30\"><\/div>\n      <div class=\"control\"><div class=\"label\">Sustain<\/div><div class=\"big\" id=\"sv\"><\/div><input id=\"sustain\" type=\"range\" min=\"0\" max=\"1\" step=\".01\" value=\".70\"><\/div>\n      <div class=\"control\"><div class=\"label\">Release<\/div><div class=\"big\" id=\"relv\"><\/div><input id=\"release\" type=\"range\" min=\".005\" max=\"5\" step=\".005\" value=\".50\"><\/div>\n    <\/div>\n    <div class=\"controls\">\n      <div class=\"control\"><div class=\"label\">Forme d'onde<\/div><select id=\"wave\"><option value=\"sine\">Sinuso\u00efde<\/option><option value=\"triangle\">Triangle<\/option><option value=\"square\">Carr\u00e9e<\/option><option value=\"sawtooth\">Dent de scie<\/option><\/select><\/div>\n      <div class=\"control\"><div class=\"label\">Fr\u00e9quence <span class=\"value\" id=\"afv\"><\/span><\/div><input id=\"af\" type=\"range\" min=\"60\" max=\"1200\" value=\"294\"><\/div>\n      <div class=\"control\"><div class=\"label\">Niveau <span class=\"value\" id=\"alv\"><\/span><\/div><input id=\"al\" type=\"range\" min=\".02\" max=\".5\" step=\".01\" value=\".20\"><\/div>\n    <\/div>\n    <div class=\"actions\"><button id=\"arm\">\u25c9 Armer espace<\/button><button id=\"atest\">\u25b6 Test<\/button><button id=\"astop\">\u25a0 Stop<\/button><\/div>\n    <div class=\"space\"><div class=\"spacekey\" id=\"spacekey\">BARRE ESPACE<\/div><div class=\"smallnote\" id=\"spacestatus\">Barre espace d\u00e9sarm\u00e9e.<\/div><\/div>\n    <div class=\"status\" id=\"as\">Arr\u00eat\u00e9<\/div>\n  <\/div>\n<\/section>\n<\/main>\n\n<footer><span>Laboratoire du son<\/span><span>Web Audio \u00b7 autonome<\/span><\/footer>\n<\/div>\n\n<script>\n(function(){\n\"use strict\";\n\nconst root = document.querySelector(\".sound-lab[data-vls-root]\");\nif (!root) return;\n\n\/* ---------- AUDIO GLOBAL ---------- *\/\nlet ctx=null, active=null;\nconst $=id=>root.querySelector(\"#\" + CSS.escape(id));\nfunction audio(){\n  if(!ctx) ctx=new (window.AudioContext||window.webkitAudioContext)();\n  if(ctx.state===\"suspended\") ctx.resume();\n  return ctx;\n}\nfunction stopAll(except){\n  if(except!==\"prop\") stopProp();\n  if(except!==\"room\") stopRoom();\n  if(except!==\"harm\") stopHarm();\n  if(except!==\"adsr\") releaseADSR(true);\n}\nfunction status(id,text,on=false){$(id).textContent=text;$(id).classList.toggle(\"on\",on)}\nfunction fmt(n,d=2){return Number(n).toFixed(d)}\ndocument.addEventListener(\"pointerdown\",()=>{if(ctx&&ctx.state===\"suspended\")ctx.resume()},{passive:true});\n\n\/* ---------- 01 PROPAGATION ---------- *\/\nconst pc=$(\"prop\"), px=pc.getContext(\"2d\"), pf=$(\"pf\"), pa=$(\"pa\");\nlet po=null,pg=null,pan=null;\nfunction propLabels(){$(\"pfv\").textContent=Math.round(pf.value)+\" Hz\";$(\"pav\").textContent=Math.round(pa.value*100)+\"%\"}\nfunction startProp(){\n  stopAll(\"prop\"); const c=audio();\n  po=c.createOscillator();pg=c.createGain();pan=c.createAnalyser();\n  po.type=\"sine\";po.frequency.value=+pf.value;pg.gain.value=+pa.value*.14;\n  pan.fftSize=1024;po.connect(pg).connect(pan).connect(c.destination);po.start();active=\"prop\";\n  status(\"ps\",\"En cours \u2014 \"+Math.round(pf.value)+\" Hz\",true);\n}\nfunction stopProp(){if(po){try{po.stop()}catch(e){}try{po.disconnect()}catch(e){}}po=null;pg=null;pan=null;if(active===\"prop\")active=null;status(\"ps\",\"Arr\u00eat\u00e9\")}\npf.oninput=()=>{propLabels();if(po)po.frequency.setTargetAtTime(+pf.value,ctx.currentTime,.015)}\npa.oninput=()=>{propLabels();if(pg)pg.gain.setTargetAtTime(+pa.value*.14,ctx.currentTime,.015)}\n$(\"pplay\").onclick=startProp;$(\"pstop\").onclick=stopProp;propLabels();\n\nfunction drawProp(t){\n  const w=pc.width,h=pc.height;px.fillStyle=\"#000\";px.fillRect(0,0,w,h);\n  const f=+pf.value,a=+pa.value,tt=t*.001;\n  const cy=h*.55, rows=7, cols=76, left=55, right=w-55, span=right-left;\n  \/\/ Repr\u00e9sentation p\u00e9dagogique : plusieurs rang\u00e9es de petites mol\u00e9cules,\n  \/\/ d\u00e9plac\u00e9es longitudinalement. La densit\u00e9 apparente r\u00e9v\u00e8le compression et rar\u00e9faction.\n  const cycles=1.2+(f-60)\/(900-60)*4.8, k=2*Math.PI*cycles\/span;\n  px.strokeStyle=\"#181818\";px.beginPath();px.moveTo(left,cy);px.lineTo(right,cy);px.stroke();\n  for(let r=0;r<rows;r++){\n    const y=cy+(r-(rows-1)\/2)*24;\n    for(let i=0;i<cols;i++){\n      const base=left+i*span\/(cols-1);\n      const phase=k*base-2*Math.PI*f*tt*.0012;\n      const s=Math.sin(phase);\n      const disp=s*a*15;\n      const localDensity=.5+.5*Math.cos(phase);\n      const rad=2.5+1.7*localDensity*a;\n      const alpha=.34+.66*localDensity;\n      px.fillStyle=`rgba(255,255,255,${alpha})`;px.beginPath();px.arc(base+disp,y,rad,0,Math.PI*2);px.fill();\n    }\n  }\n  \/\/ Courbe de r\u00e9f\u00e9rence de pression\/densit\u00e9 au-dessus des mol\u00e9cules.\n  px.beginPath();\n  for(let x=left;x<=right;x+=3){const phase=k*x-2*Math.PI*f*tt*.0012,y=cy-105-Math.sin(phase)*a*38;x===left?px.moveTo(x,y):px.lineTo(x,y)}\n  px.strokeStyle=\"#fff\";px.lineWidth=1.5;px.stroke();\n  px.fillStyle=\"#fff\";px.globalAlpha=.62;px.font=\"11px Arial\";px.fillText(\"COMPRESSION\",left,27);px.fillText(\"RAR\u00c9FACTION\",right-105,27);\n  px.globalAlpha=1;px.font=\"12px Arial\";px.fillText(\"mol\u00e9cules d'air\",left,cy+105);\n  if(pan){const d=new Uint8Array(pan.fftSize);pan.getByteTimeDomainData(d);px.beginPath();for(let i=0;i<d.length;i++){const x=left+i\/(d.length-1)*span,y=h-28+(d[i]-128)*.18;i?px.lineTo(x,y):px.moveTo(x,y)}px.strokeStyle=\"#555\";px.stroke()}\n  requestAnimationFrame(drawProp)\n}requestAnimationFrame(drawProp);\n\n\/* ---------- 02 ROOM ---------- *\/\nconst rc=$(\"room\"),rx=rc.getContext(\"2d\"),rsize=$(\"rsize\"),mat=$(\"mat\"),rf=$(\"rf\"),rv=$(\"rv\");\nconst ox=$(\"ox\"),oy=$(\"oy\"),os=$(\"os\"),obj=$(\"obj\");\n\n\/* Coefficients volontairement simplifi\u00e9s et p\u00e9dagogiques :\n   abs = absorption large bande approximative ; refl = \u00e9nergie r\u00e9fl\u00e9chie. *\/\nconst materials={\n  foam:{abs:.78,refl:.22,diff:.55,name:\"MOUSSE\"},\n  wood:{abs:.24,refl:.76,diff:.30,name:\"BOIS\"},\n  concrete:{abs:.06,refl:.94,diff:.12,name:\"B\u00c9TON\"},\n  glass:{abs:.08,refl:.92,diff:.08,name:\"VERRE\"}\n};\n\nconst listener={x:.86,y:.50};\nlet objectPresent=true;\nlet ro=null,rm=null,ran=null,rMaster=null,rNodes=[];\nlet roomRebuildTimer=null;\n\nfunction roomLabels(){\n  $(\"rsv\").textContent=Math.round(+rsize.value*100)+\"%\";\n  $(\"rfv\").textContent=Math.round(rf.value)+\" Hz\";\n  $(\"rvv\").textContent=Math.round(rv.value*100)+\"%\";\n  $(\"oxv\").textContent=Math.round(ox.value*100)+\"%\";\n  $(\"oyv\").textContent=Math.round(oy.value*100)+\"%\";\n  $(\"osv\").textContent=Math.round(os.value*100)+\"%\";\n}\n\nfunction roomGeometry(){\n  const size=+rsize.value;\n  return {L:9*size,W:5.5*size,H:2.8*size};\n}\n\nfunction lineHitsObject(){\n  if(!objectPresent) return false;\n  const sx=.14,sy=.50,lx=listener.x,ly=listener.y;\n  const px=+ox.value,py=+oy.value;\n  const radius=+os.value*.58;\n  const vx=lx-sx,vy=ly-sy,wx=px-sx,wy=py-sy;\n  const vv=vx*vx+vy*vy;\n  const u=Math.max(0,Math.min(1,(wx*vx+wy*vy)\/vv));\n  const cx=sx+u*vx,cy=sy+u*vy;\n  return Math.hypot(px-cx,py-cy)<radius;\n}\n\nfunction makeRoomImpulse(c,rt60,preDelay,brightness){\n  const length=Math.max(256,Math.floor(c.sampleRate*(preDelay+rt60)));\n  const b=c.createBuffer(2,length,c.sampleRate);\n  const pre=Math.floor(preDelay*c.sampleRate);\n  for(let ch=0;ch<2;ch++){\n    const d=b.getChannelData(ch);\n    let lp=0;\n    for(let i=pre;i<length;i++){\n      const t=(i-pre)\/c.sampleRate;\n      const env=Math.pow(10,-3*t\/Math.max(.08,rt60));\n      const noise=Math.random()*2-1;\n      lp += (noise-lp)*brightness;\n      d[i]=lp*env*.62;\n    }\n  }\n  return b;\n}\n\nfunction firstReflectionData(){\n  const g=roomGeometry(),sx=.14*g.L,sy=.50*g.W,lx=listener.x*g.L,ly=listener.y*g.W;\n  \/\/ Image-source method in 2D for the four room boundaries.\n  const walls=[\n    {name:\"haut\",img:[sx,-sy],axis:\"y\",v:0},\n    {name:\"bas\",img:[sx,2*g.W-sy],axis:\"y\",v:g.W},\n    {name:\"gauche\",img:[-sx,sy],axis:\"x\",v:0},\n    {name:\"droite\",img:[2*g.L-sx,sy],axis:\"x\",v:g.L}\n  ];\n  return walls.map(w=>{\n    const ix=w.img[0],iy=w.img[1];\n    let px,py,u;\n    if(w.axis===\"y\"){\n      u=(w.v-iy)\/(ly-iy); px=ix+u*(lx-ix); py=w.v;\n    }else{\n      u=(w.v-ix)\/(lx-ix); px=w.v; py=iy+u*(ly-iy);\n    }\n    const d=Math.hypot(px-sx,py-sy)+Math.hypot(lx-px,ly-py);\n    return {name:w.name,px:px\/g.L,py:py\/g.W,d};\n  });\n}\n\nfunction buildRoomAudio(){\n  const c=audio(),m=materials[mat.value],g=roomGeometry();\n  const V=g.L*g.W*g.H,S=2*(g.L*g.W+g.L*g.H+g.W*g.H);\n  \/\/ Sabine-like decay, intentionally exaggerated but bounded for teaching.\n  const sabine=.161*V\/Math.max(.15,m.abs*S);\n  const rt60=Math.max(.18,Math.min(4.2,sabine*.92));\n  const preDelay=Math.max(.006,Math.min(.065,(g.L*.42)\/343));\n  const occluded=lineHitsObject();\n\n  ro=c.createOscillator(); ro.type=\"sine\"; ro.frequency.value=+rf.value;\n  rm=c.createGain(); rm.gain.value=+rv.value*.30;\n  ran=c.createAnalyser(); ran.fftSize=1024;\n  rMaster=c.createGain(); rMaster.gain.value=1;\n  ro.connect(rm);\n\n  \/\/ Direct sound to the listener. Occlusion is intentionally obvious.\n  const directDelay=c.createDelay(1),directGain=c.createGain();\n  const directDistance=Math.hypot((listener.x-.14)*g.L,(listener.y-.50)*g.W);\n  directDelay.delayTime.value=directDistance\/343;\n  directGain.gain.value=occluded ? .24 : .82;\n  rm.connect(directDelay).connect(directGain).connect(ran);\n  rNodes.push(directDelay,directGain);\n\n  \/\/ Four first-order wall reflections using image-source path lengths.\n  firstReflectionData().forEach((r,i)=>{\n    const dl=c.createDelay(1),gn=c.createGain();\n    dl.delayTime.value=Math.min(.35,r.d\/343);\n    const distanceLoss=1\/(1+r.d*.055);\n    gn.gain.value=m.refl*(.20-i*.012)*distanceLoss;\n    rm.connect(dl).connect(gn).connect(ran);\n    rNodes.push(dl,gn);\n  });\n\n  \/\/ Reflection\/diffraction caricature around the obstacle.\n  if(objectPresent){\n    const objx=+ox.value*g.L,objy=+oy.value*g.W;\n    const sx=.14*g.L,sy=.5*g.W,lx=listener.x*g.L,ly=listener.y*g.W;\n    const dObj=Math.hypot(objx-sx,objy-sy)+Math.hypot(lx-objx,ly-objy);\n    const dl=c.createDelay(1),gn=c.createGain(),lp=c.createBiquadFilter();\n    dl.delayTime.value=Math.min(.35,dObj\/343);\n    lp.type=\"lowpass\"; lp.frequency.value=occluded?1100:2600; lp.Q.value=.35;\n    gn.gain.value=(.055+.16*+os.value)*(occluded?1.15:.65);\n    rm.connect(dl).connect(lp).connect(gn).connect(ran);\n    rNodes.push(dl,lp,gn);\n  }\n\n  \/\/ Late room field: one simple convolver. Bigger\/harder room = longer\/brighter tail.\n  const lateDelay=c.createDelay(1),conv=c.createConvolver(),wet=c.createGain();\n  lateDelay.delayTime.value=preDelay;\n  conv.buffer=makeRoomImpulse(c,rt60,0,Math.max(.035,.18-m.abs*.14));\n  wet.gain.value=.10 + m.refl*.34;\n  rm.connect(lateDelay).connect(conv).connect(wet).connect(ran);\n  rNodes.push(lateDelay,conv,wet);\n\n  ran.connect(rMaster).connect(c.destination);\n  ro.start(); active=\"room\";\n  status(\"rs\",`En cours \u2014 RT60 \u2248 ${fmt(rt60,2)} s \u00b7 ${occluded?\"objet masque le direct\":\"trajet direct libre\"}`,true);\n}\n\nfunction startRoom(){stopAll(\"room\");rNodes=[];buildRoomAudio()}\nfunction stopRoom(){\n  if(ro){try{ro.stop()}catch(e){} try{ro.disconnect()}catch(e){}}\n  [rm,ran,rMaster,...rNodes].forEach(n=>{if(n&&n.disconnect)try{n.disconnect()}catch(e){}});\n  ro=rm=ran=rMaster=null;rNodes=[];\n  if(active===\"room\")active=null;\n  status(\"rs\",\"Arr\u00eat\u00e9\");\n}\nfunction scheduleRoomRebuild(){\n  if(!ro) return;\n  clearTimeout(roomRebuildTimer);\n  roomRebuildTimer=setTimeout(()=>{ if(ro) startRoom(); },120);\n}\n\nrsize.addEventListener(\"input\",()=>{roomLabels();scheduleRoomRebuild()});\nmat.onchange=()=>{roomLabels();scheduleRoomRebuild()};\nrf.oninput=()=>{roomLabels();if(ro&&ctx)ro.frequency.setTargetAtTime(+rf.value,ctx.currentTime,.02)};\nrv.oninput=()=>{roomLabels();if(rm&&ctx)rm.gain.setTargetAtTime(+rv.value*.30,ctx.currentTime,.02)};\n[ox,oy,os].forEach(e=>e.addEventListener(\"input\",()=>{roomLabels();scheduleRoomRebuild()}));\nobj.onclick=()=>{objectPresent=!objectPresent;obj.classList.toggle(\"active\",objectPresent);obj.textContent=objectPresent?\"Objet pr\u00e9sent\":\"Objet retir\u00e9\";$(\"objstate\").textContent=objectPresent?\"PR\u00c9SENT\":\"ABSENT\";scheduleRoomRebuild()};\n$(\"rplay\").onclick=startRoom;$(\"rstop\").onclick=stopRoom;roomLabels();\n\nfunction drawEar(x,y,scale=1){\n  rx.save();rx.translate(x,y);rx.scale(scale,scale);rx.strokeStyle=\"#fff\";rx.lineWidth=2;\n  rx.beginPath();rx.arc(0,0,11,-Math.PI*.72,Math.PI*.72);rx.stroke();\n  rx.beginPath();rx.arc(2,0,5,-Math.PI*.62,Math.PI*.62);rx.stroke();\n  rx.beginPath();rx.moveTo(7,8);rx.quadraticCurveTo(12,13,5,17);rx.stroke();rx.restore();\n}\n\nfunction drawPath(points,alpha=.48,dash=[]){\n  rx.save();rx.strokeStyle=`rgba(255,255,255,${alpha})`;rx.lineWidth=1.35;rx.setLineDash(dash);rx.beginPath();\n  points.forEach((p,i)=>i?rx.lineTo(p[0],p[1]):rx.moveTo(p[0],p[1]));rx.stroke();rx.restore();\n}\n\nfunction drawRoom(){\n  const w=rc.width,h=rc.height;rx.fillStyle=\"#000\";rx.fillRect(0,0,w,h);\n  const size=+rsize.value,m=materials[mat.value];\n  const marginX=100,marginY=64,roomW=w-marginX*2,roomH=h-125;\n  const scale=Math.max(.62,Math.min(1,.66+size*.22));\n  const rwpx=roomW*scale,rhpx=roomH*scale,mx=(w-rwpx)\/2,my=55+(roomH-rhpx)\/2;\n  const toPx=(nx,ny)=>[mx+rwpx*nx,my+rhpx*ny];\n  const S=toPx(.14,.50),L=toPx(listener.x,listener.y),O=toPx(+ox.value,+oy.value);\n\n  rx.strokeStyle=`rgba(255,255,255,${.22+m.refl*.65})`;rx.lineWidth=6;rx.strokeRect(mx,my,rwpx,rhpx);\n  rx.fillStyle=\"#fff\";rx.globalAlpha=.55;rx.font=\"11px Arial\";rx.fillText(\"TAILLE \u00d7\"+fmt(size,2),mx,my-17);\n  rx.fillText(`${m.name} \u00b7 absorption ${Math.round(m.abs*100)}%`,mx,h-13);rx.globalAlpha=1;\n\n  \/\/ Direct path and first wall reflections are always visible, even before Play.\n  drawPath([S,L],lineHitsObject()?.20:.72,lineHitsObject()?[5,6]:[]);\n  firstReflectionData().forEach((r,i)=>drawPath([S,toPx(r.px,r.py),L],.32-i*.035,[5,5]));\n  if(objectPresent) drawPath([S,O,L],.28,[2,6]);\n\n  \/\/ Source.\n  rx.fillStyle=\"#fff\";rx.beginPath();rx.arc(S[0],S[1],8,0,Math.PI*2);rx.fill();rx.font=\"10px Arial\";rx.fillText(\"SOURCE\",S[0]-20,S[1]-15);\n\n  \/\/ Listener fixed on the right.\n  drawEar(L[0],L[1],1.15);rx.fillStyle=\"#fff\";rx.font=\"10px Arial\";rx.fillText(\"AUDITEUR\",L[0]-28,L[1]-24);\n\n  if(objectPresent){\n    const s=Math.min(rwpx,rhpx)*+os.value*.42;\n    rx.strokeStyle=\"#fff\";rx.lineWidth=2;rx.strokeRect(O[0]-s,O[1]-s,s*2,s*2);rx.fillStyle=\"#aaa\";rx.fillText(\"OBJET\",O[0]-s,O[1]-s-7);\n    if(lineHitsObject()){rx.fillStyle=\"#fff\";rx.globalAlpha=.7;rx.fillText(\"MASQUE LE DIRECT\",O[0]-44,O[1]+s+18);rx.globalAlpha=1;}\n  }\n\n  if(ran){\n    const d=new Uint8Array(ran.fftSize);ran.getByteTimeDomainData(d);rx.beginPath();\n    for(let i=0;i<d.length;i++){const x=mx+i\/(d.length-1)*rwpx,y=h-35+(d[i]-128)*.20;i?rx.lineTo(x,y):rx.moveTo(x,y)}\n    rx.strokeStyle=\"#555\";rx.lineWidth=1;rx.stroke();\n  }\n  requestAnimationFrame(drawRoom);\n}\nrequestAnimationFrame(drawRoom);\n\n\/* ---------- 03 HARMONIQUES ---------- *\/\nconst sc=$(\"string\"),sx2=sc.getContext(\"2d\"),cc=$(\"chladni\"),cx=cc.getContext(\"2d\"),fund=$(\"fund\"),hvol=$(\"hvol\"),hc=$(\"vls-harmonics\");\nconst levels=[1,0,0,0,0,0,0,0], ho=[],hg=[];let hm=null,han=null;\nfor(let i=0;i<8;i++){const row=document.createElement(\"div\");row.className=\"hrow\";row.innerHTML=`<span>H${i+1}<\/span><input type=\"range\" min=\"0\" max=\"1\" step=\".01\" value=\"${levels[i]}\" data-h=\"${i}\"><span class=\"hf\" id=\"hf${i}\"><\/span>`;hc.appendChild(row)}\nfunction harmLabels(){$(\"fv\").textContent=Math.round(fund.value)+\" Hz\";$(\"hv\").textContent=Math.round(hvol.value*100)+\"%\";root.querySelectorAll(\"[data-h]\").forEach((e,i)=>$(\"hf\"+i).textContent=Math.round(+fund.value*(i+1))+\" Hz\")}\nfunction startHarm(){stopAll(\"harm\");const c=audio();hm=c.createGain();hm.gain.value=+hvol.value*.13;han=c.createAnalyser();han.fftSize=1024;hm.connect(han).connect(c.destination);\n  root.querySelectorAll(\"[data-h]\").forEach((e,i)=>{const o=c.createOscillator(),g=c.createGain();o.type=\"sine\";o.frequency.value=+fund.value*(i+1);g.gain.value=+e.value;o.connect(g).connect(hm);o.start();ho[i]=o;hg[i]=g});active=\"harm\";status(\"hs\",\"En cours \u2014 fondamentale \"+Math.round(fund.value)+\" Hz\",true)}\nfunction stopHarm(){ho.forEach(o=>{if(o)try{o.stop()}catch(e){}});ho.fill(null);hg.forEach(g=>{if(g)try{g.disconnect()}catch(e){}});hg.fill(null);[hm,han].forEach(n=>{if(n)try{n.disconnect()}catch(e){}});hm=han=null;if(active===\"harm\")active=null;status(\"hs\",\"Arr\u00eat\u00e9\")}\nfund.oninput=()=>{harmLabels();if(ho.length)ho.forEach((o,i)=>{if(o)o.frequency.setTargetAtTime(+fund.value*(i+1),ctx.currentTime,.015)})}\nhvol.oninput=()=>{harmLabels();if(hm)hm.gain.setTargetAtTime(+hvol.value*.13,ctx.currentTime,.015)}\nroot.addEventListener(\"input\",e=>{if(e.target.matches(\"[data-h]\")){const i=+e.target.dataset.h;if(hg[i]&&ctx)hg[i].gain.setTargetAtTime(+e.target.value,ctx.currentTime,.015)}})\n$(\"hplay\").onclick=startHarm;$(\"hstop\").onclick=stopHarm;harmLabels();\n\nfunction drawString(t){\n  const w=sc.width,h=sc.height,c=h*.57, lev=[...root.querySelectorAll(\"[data-h]\")].map(e=>+e.value);\n  sx2.fillStyle=\"#000\";sx2.fillRect(0,0,w,h);sx2.strokeStyle=\"#181818\";sx2.beginPath();sx2.moveTo(0,c);sx2.lineTo(w,c);sx2.stroke();\n  sx2.beginPath();for(let x=0;x<=w;x++){let y=0;lev.forEach((a,i)=>y+=a*Math.sin(2*Math.PI*(i+1)*x\/w));let amp=han?55:38;let py=c-y*amp*(.92+.08*Math.sin(t*.006));x?sx2.lineTo(x,py):sx2.moveTo(x,py)}sx2.strokeStyle=\"#fff\";sx2.lineWidth=2;sx2.stroke();\n  sx2.fillStyle=\"#777\";sx2.font=\"11px Arial\";sx2.fillText(\"CORDE \u2014 superposition des modes\",16,20);requestAnimationFrame(drawString)\n}requestAnimationFrame(drawString);\n\nfunction drawChladni(){\n  const w=cc.width,h=cc.height,lev=[...root.querySelectorAll(\"[data-h]\")].map(e=>+e.value),img=cx.createImageData(w,h);\n  for(let y=0;y<h;y+=3)for(let x=0;x<w;x+=3){const nx=x\/w*2-1,ny=y\/h*2-1;let field=0;\n    lev.forEach((a,i)=>{if(a<.001)return;const n=i+1;field+=a*Math.cos(n*Math.PI*nx)*Math.cos((n+1)*Math.PI*ny)});\n    const b=Math.abs(field)<.045?255:0;for(let yy=0;yy<3&&y+yy<h;yy++)for(let xx=0;xx<3&&x+xx<w;xx++){const k=((y+yy)*w+x+xx)*4;img.data[k]=img.data[k+1]=img.data[k+2]=b;img.data[k+3]=255}\n  }\n  cx.putImageData(img,0,0);cx.fillStyle=\"#777\";cx.font=\"11px Arial\";cx.fillText(\"PLAQUE DE CHLADNI \u2014 LIGNES NODALES\",16,20);requestAnimationFrame(drawChladni)\n}requestAnimationFrame(drawChladni);\n\n\/* ---------- 04 ADSR ---------- *\/\nconst ac=$(\"adsr\"),ax=$(\"adsr\").getContext(\"2d\"),attack=$(\"attack\"),decay=$(\"decay\"),sustain=$(\"sustain\"),release=$(\"release\"),wave=$(\"wave\"),af=$(\"af\"),al=$(\"al\");\nlet ao=null,ag=null,aan=null,adsrDown=false,armed=false,releaseTimer=null;\nfunction adsrLabels(){$(\"av\").textContent=fmt(attack.value)+\" s\";$(\"dv\").textContent=fmt(decay.value)+\" s\";$(\"sv\").textContent=Math.round(sustain.value*100)+\"%\";$(\"relv\").textContent=fmt(release.value)+\" s\";$(\"afv\").textContent=Math.round(af.value)+\" Hz\";$(\"alv\").textContent=Math.round(+al.value*100)+\"%\"}\n[attack,decay,sustain,release,af,al,wave].forEach(e=>e.addEventListener(\"input\",adsrLabels));adsrLabels();\nfunction envelopeVoice(){\n  stopAll(\"adsr\");const c=audio();ao=c.createOscillator();ag=c.createGain();aan=c.createAnalyser();aan.fftSize=1024;\n  ao.type=wave.value;ao.frequency.value=+af.value;ao.connect(ag).connect(aan).connect(c.destination);\n  const now=c.currentTime,A=+attack.value,D=+decay.value,S=+sustain.value,V=+al.value;\n  ag.gain.cancelScheduledValues(now);ag.gain.setValueAtTime(0,now);ag.gain.linearRampToValueAtTime(V,now+A);ag.gain.linearRampToValueAtTime(V*S,now+A+D);\n  ao.start();adsrDown=true;active=\"adsr\";status(\"as\",\"En cours \u2014 appui \/ maintien\",true);$(\"spacekey\").classList.add(\"pressed\")\n}\nfunction releaseADSR(silent=false){\n  if(!ao||!ctx){adsrDown=false;return}\n  const now=ctx.currentTime,R=+release.value;\n  ag.gain.cancelScheduledValues(now);ag.gain.setValueAtTime(Math.max(0,ag.gain.value),now);ag.gain.linearRampToValueAtTime(0,now+R);\n  try{ao.stop(now+R+.03)}catch(e){}const old=ao;setTimeout(()=>{try{old.disconnect()}catch(e){}},(R+.1)*1000);\n  ao=null;ag=null;aan=null;adsrDown=false;$(\"spacekey\").classList.remove(\"pressed\");if(active===\"adsr\")active=null;if(!silent)status(\"as\",\"Arr\u00eat\u00e9\")\n}\nfunction testADSR(){envelopeVoice();clearTimeout(releaseTimer);releaseTimer=setTimeout(()=>releaseADSR(false),(+attack.value+ +decay.value+ .55)*1000)}\n$(\"atest\").onclick=testADSR;$(\"astop\").onclick=()=>releaseADSR(false);\nfunction pressSpace(e){if(!armed||e.repeat)return;if(e.code===\"Space\"){e.preventDefault();if(!adsrDown)envelopeVoice()}}\nfunction releaseSpace(e){if(!armed)return;if(e.code===\"Space\"){e.preventDefault();if(adsrDown)releaseADSR(false)}}\nwindow.addEventListener(\"keydown\",pressSpace);window.addEventListener(\"keyup\",releaseSpace);\n$(\"arm\").onclick=()=>{armed=!armed;$(\"arm\").classList.toggle(\"active\",armed);$(\"spacestatus\").textContent=armed?\"Barre espace arm\u00e9e : appuyer \/ maintenir \/ rel\u00e2cher.\":\"Barre espace d\u00e9sarm\u00e9e.\";if(!armed&&adsrDown)releaseADSR(false)};\nfunction drawADSR(){\n  const w=ac.width,h=ac.height;ax.fillStyle=\"#000\";ax.fillRect(0,0,w,h);\n  const A=+attack.value,D=+decay.value,S=+sustain.value,R=+release.value,total=A+D+1.2+R,base=h-48,top=48;\n  ax.strokeStyle=\"#181818\";ax.beginPath();ax.moveTo(40,base);ax.lineTo(w-40,base);ax.stroke();\n  const pts=[[0,0],[A,1],[A+D,S],[A+D+1.2,S],[total,0]];\n  ax.beginPath();pts.forEach((p,i)=>{const x=40+p[0]\/total*(w-80),y=base-p[1]*(base-top);i?ax.lineTo(x,y):ax.moveTo(x,y)});ax.strokeStyle=\"#fff\";ax.lineWidth=2;ax.stroke();\n  if(adsrDown&&aan){const d=new Uint8Array(aan.fftSize);aan.getByteTimeDomainData(d);ax.beginPath();for(let i=0;i<d.length;i++){const x=40+i\/(d.length-1)*(w-80),y=top+55+(d[i]-128)*.28;i?ax.lineTo(x,y):ax.moveTo(x,y)}ax.strokeStyle=\"#555\";ax.stroke()}\n  ax.fillStyle=\"#777\";ax.font=\"11px Arial\";ax.fillText(\"A\",40+A\/total*(w-80)-3,base+22);ax.fillText(\"D\",40+(A+D)\/total*(w-80)-3,base+22);ax.fillText(\"S\",40+(A+D+.6)\/total*(w-80),base+22);ax.fillText(\"R\",w-65,base+22);\n  ax.fillStyle=\"#fff\";ax.globalAlpha=.55;ax.fillText(\"ENVELOPPE D'AMPLITUDE\",16,20);ax.globalAlpha=1;requestAnimationFrame(drawADSR)\n}requestAnimationFrame(drawADSR);\n})();\n<\/script>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-afecefe e-flex e-con-boxed e-con e-parent\" data-id=\"afecefe\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5cb782a elementor-widget elementor-widget-spacer\" data-id=\"5cb782a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-3399454 e-flex e-con-boxed e-con e-parent\" data-id=\"3399454\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-610060d4 e-flex e-con-boxed e-con e-parent\" data-id=\"610060d4\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1f0ae42a elementor-align-center elementor-widget elementor-widget-button\" data-id=\"1f0ae42a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"button.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"elementor-button-wrapper\">\n\t\t\t\t\t<a class=\"elementor-button elementor-button-link elementor-size-sm\" href=\"https:\/\/drive.google.com\/drive\/folders\/1iOrkK8T2OkeSOGHev9TimXXT0LSQrOtl?usp=drive_link\">\n\t\t\t\t\t\t<span class=\"elementor-button-content-wrapper\">\n\t\t\t\t\t\t\t\t\t<span class=\"elementor-button-text\">T\u00e9l\u00e9chargez les sons<\/span>\n\t\t\t\t\t<\/span>\n\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-614c636 elementor-widget elementor-widget-spacer\" data-id=\"614c636\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1a554dc8 e-flex e-con-boxed e-con e-parent\" data-id=\"1a554dc8\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-186815b5 elementor-widget elementor-widget-text-editor\" data-id=\"186815b5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"et_pb_module et_pb_text et_pb_text_3 et_pb_text_align_left et_pb_bg_layout_light\"><div class=\"et_pb_text_inner\"><p>Notez que l\u2019\u00e9dition en mode forme d\u2019onde est <strong><em>destructive<\/em><\/strong>. Toute modification du fichier sera permanente une fois le fichier sauvegard\u00e9. Il faut donc au pr\u00e9alable faire une sauvegarde de tous les fichiers audio avant de commencer \u00e0 les manipuler.<\/p><\/div><\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-e39a814 e-flex e-con-boxed e-con e-parent\" data-id=\"e39a814\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-786be20 elementor-widget elementor-widget-spacer\" data-id=\"786be20\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6b4424ed elementor-widget elementor-widget-text-editor\" data-id=\"6b4424ed\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"et_pb_module et_pb_text et_pb_text_3 et_pb_text_align_left et_pb_bg_layout_light\"><div class=\"et_pb_text_inner\"><p><strong>Ouverture de fichier :\u00a0<\/strong>glisser et d\u00e9poser un fichier audio dans la fen\u00eatre principale.<\/p><p><strong>Lecture :\u00a0<\/strong>barre d\u2019espace.<\/p><p><strong>Zoom :\u00a0<\/strong>molette de la souris sur les graduations en haut et en bas.<\/p><p><strong>S\u00e9lection :\u00a0<\/strong>cliquer et glisser sur la forme d\u2019onde. On peut ensuite supprimer, copier \/ coller, appliquer un effet, ajuster le volume, etc, uniquement sur cette portion.<\/p><p><strong>4\u00a0Lecture en boucle\u00a0<\/strong><strong>\u00a0:\u00a0<\/strong>ctrl + L. Lecture en boucle de la portion s\u00e9lectionn\u00e9e.<\/p><p><strong>5\u00a0Ignorer la s\u00e9lection\u00a0<\/strong><strong>\u00a0:\u00a0<\/strong>lecture de tout le son sauf la portion s\u00e9lectionn\u00e9e.<\/p><p><strong>1\u00a0Outils\u00a0<\/strong><strong>\u00a0:<\/strong><\/p><ul><li>s\u00e9lection temporelle (T) : permet de s\u00e9lectionner une partie du son.<\/li><li>rectangle de s\u00e9lection (E) : s\u00e9lectionne une portion rectangulaire *<\/li><li>lasso (D) : permet de dessiner un contour de forme et en faire une s\u00e9lection *<\/li><li>pinceau (P) : permet de dessiner une forme avec un pinceau plus ou moins \u00e9pais *<\/li><\/ul><p>*: uniquement sur le sonogramme.<\/p><\/div><\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-44432f25 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"44432f25\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-2a552284 elementor-widget elementor-widget-spacer\" data-id=\"2a552284\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-67da6987 elementor-widget elementor-widget-heading\" data-id=\"67da6987\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">FONCTIONS DE VOLUME<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-49d7b0c1 elementor-widget elementor-widget-text-editor\" data-id=\"49d7b0c1\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"et_pb_module et_pb_text et_pb_text_3 et_pb_text_align_left et_pb_bg_layout_light\"><div class=\"et_pb_text_inner\"><p><strong>3\u00a0R\u00e9glage du volume\u00a0<\/strong><strong>:\u00a0<\/strong>cliquer et glisser vers le haut ou la bas.<\/p><p><strong>2\u00a0Fondu entrant \/ sortant (fade in\/out)\u00a0<\/strong><strong>\u00a0:\u00a0<\/strong>glisser le petit carr\u00e9 vers la gauche \/ droite pour la dur\u00e9e, haut \/ bas pour la forme de la courbe.<\/p><p><strong>Normalisation<\/strong>\u00a0: (<em>Effets &gt; amplitude et compression &gt; normaliser<\/em>) le volume g\u00e9n\u00e9ral sera modifi\u00e9 pour que le pic (ou cr\u00eate) le plus fort atteigne un seuil d\u00e9fini. \u21d2 Voir la section\u00a0<a href=\"https:\/\/denizfisek.com\/audition-1\/#effets\">effets<\/a><\/p><\/div><\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8c4fb06 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"8c4fb06\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4490f933 elementor-widget elementor-widget-spacer\" data-id=\"4490f933\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7ac7891 elementor-widget elementor-widget-heading\" data-id=\"7ac7891\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">FONCTIONS D\u2019\u00c9DITION\n\n<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-11454c9d elementor-widget elementor-widget-text-editor\" data-id=\"11454c9d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"et_pb_module et_pb_text et_pb_text_3 et_pb_text_align_left et_pb_bg_layout_light\"><div class=\"et_pb_text_inner\"><p><strong>Copier :\u00a0<\/strong>ctrl + C<\/p><p><strong>Couper :\u00a0<\/strong>ctrl + X<\/p><p><strong>Coller :\u00a0<\/strong>ctrl + V<\/p><p><strong>Mixer et coller :\u00a0<\/strong>maj + ctrl + V. Une fen\u00eatre s\u2019ouvre avec plusieurs options, notamment le type de collage :<\/p><ul><li>Ins\u00e9rer :\u00a0colle \u00e0 l\u2019emplacement du curseur et d\u00e9cale le reste du son.<\/li><li>Superposer : colle en m\u00e9langeant les deux sons<\/li><li>Remplacer : colle et \u00e9crase le son d\u2019origine (comme un ctrl + V normal)<\/li><li>Moduler : permet d\u2019obtenir un r\u00e9sultat int\u00e9ressant. Comme \u00ab\u00a0superposer\u00a0\u00bb mais les donn\u00e9es sont multipli\u00e9es au lieu d\u2019\u00eatre additionn\u00e9es.<\/li><li>R\u00e9glage des volumes du son existant et du son \u00e0 coller.<\/li><li>Coller et boucler (x fois)<\/li><\/ul><p><strong>Recadrage :\u00a0<\/strong>ctrl + T. Garde la s\u00e9lection et supprime le reste.<\/p><\/div><\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-5ab49408 e-flex e-con-boxed e-con e-parent\" data-id=\"5ab49408\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-283d1730 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"283d1730\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6b24aa7b elementor-widget elementor-widget-spacer\" data-id=\"6b24aa7b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-bfb021e elementor-widget elementor-widget-heading\" data-id=\"bfb021e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">ASTUCES PRATIQUES\n\n<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7988ae9d elementor-widget elementor-widget-text-editor\" data-id=\"7988ae9d\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"et_pb_module et_pb_text et_pb_text_3 et_pb_text_align_left et_pb_bg_layout_light\"><div class=\"et_pb_text_inner\"><p><strong>Au premier lancement de Audition, voici quelques actions \u00e0 effectuer :<\/strong><\/p><ul><li>Dans Windows,\u00a0<em>Panneau de configuration Son,\u00a0<\/em>onglet\u00a0<em>Lecture<\/em>\u00a0: double cliquer sur la sortie audio utilis\u00e9. Onglet\u00a0<em>Statistiques avanc\u00e9es<\/em>, d\u00e9cocher les options d\u2019am\u00e9lioration du son.<\/li><li>aller dans :\u00a0<em>Pr\u00e9f\u00e9rences &gt; Cache de m\u00e9dia et de disque<\/em>. D\u00e9cocher \u00ab\u00a0enregistrer les fichiers .pkf\u00a0\u00bb. Les fichiers mettront un peu plus de temps \u00e0 s\u2019ouvrir mais le dossier de travail sera moins encombr\u00e9.<\/li><li>aller dans :\u00a0<em>Pr\u00e9f\u00e9rences &gt; Clips multipistes<\/em>. Cocher\u00a0<em>Synchroniser les clips avec l\u2019\u00e9diteur\u00a0forme d\u2019onde, Fondu crois\u00e9 automatique, Mettre \u00e0 l\u2019\u00e9chelle l\u2019onde de forme.\u00a0<\/em>D\u00e9cocher\u00a0<em>Utiliser le code temporel incorpor\u00e9.<\/em><\/li><li>afficher le rack d\u2019effets dans :\u00a0<em>Fen\u00eatre &gt; Rack d\u2019effets<\/em><\/li><li>masquer le panneau \u00ab\u00a0audio essentiel\u00a0\u00bb dans :\u00a0<em>Fen\u00eatre &gt; Audio essentiel<\/em><\/li><\/ul><p><strong>Quelques trucs pratiques :<\/strong><\/p><ul><li>Maj + X : modifie le comportement de la barre de lecture (soit elle reprend l\u00e0 o\u00f9 elle s\u2019\u00e9tait arr\u00eat\u00e9e, soit elle repart de l\u00e0 o\u00f9 on l\u2019a lanc\u00e9e).<\/li><li>Il est possible (et recommand\u00e9) d\u2019enregistrer des actions favorites. Pour cela, afficher le panneau favoris :\u00a0<em>Fen\u00eatre &gt; Favoris<\/em>. Puis, comme une action Photoshop, commencer \u00e0 enregistrer une manipulation en appuyant sur le bouton rouge d\u2019enregistrement. Une fois termin\u00e9, appuyer sur stop puis nommer le favori.<\/li><\/ul><\/div><\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-2c8336ac e-flex e-con-boxed e-con e-parent\" data-id=\"2c8336ac\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-20bc4930 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"20bc4930\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-48bc0cf5 elementor-widget elementor-widget-spacer\" data-id=\"48bc0cf5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-894c5c8 elementor-widget elementor-widget-heading\" data-id=\"894c5c8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">REPR\u00c9SENTATIONS GRAPHIQUES DU SON<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-616dcfad elementor-widget elementor-widget-text-editor\" data-id=\"616dcfad\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"et_pb_module et_pb_text et_pb_text_3 et_pb_text_align_left et_pb_bg_layout_light\"><div class=\"et_pb_text_inner\"><p>Il existe trois possibilit\u00e9s de repr\u00e9sentations graphiques du son : la forme d\u2019onde, le spectre et le spectrogramme (ou sonogramme).<\/p><\/div><\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-3862854e e-flex e-con-boxed e-con e-parent\" data-id=\"3862854e\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-530d3223 e-con-full e-flex e-con e-child\" data-id=\"530d3223\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-695a3eb0 elementor-widget elementor-widget-text-editor\" data-id=\"695a3eb0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"et_pb_module et_pb_text et_pb_text_3 et_pb_text_align_left et_pb_bg_layout_light\"><div class=\"et_pb_text_inner\"><p><strong>La forme d\u2019onde<\/strong><\/p><p>C\u2019est une image fixe qui nous indique les variations d\u2019amplitude sur une dur\u00e9e. Le temps est indiqu\u00e9 sur l\u2019axe horizontal, l\u2019amplitude (ou volume) sur l\u2019axe vertical.<\/p><p>On peut voir en un coup d\u2019oeil les parties du son qui sont plus fortes que les autres.<\/p><p>Sur un son st\u00e9r\u00e9o, il y aura 2 formes, canal droit et canal gauche. Un son mono aura donc une seule forme.<\/p><\/div><\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1209e530 e-con-full e-flex e-con e-child\" data-id=\"1209e530\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5312a7f3 elementor-widget elementor-widget-image\" data-id=\"5312a7f3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"800\" height=\"449\" src=\"https:\/\/lucasgoret.com\/wp-content\/uploads\/2024\/10\/formedonde-1024x575.jpg\" class=\"attachment-large size-large wp-image-475\" alt=\"\" srcset=\"https:\/\/lucasgoret.com\/wp-content\/uploads\/2024\/10\/formedonde-1024x575.jpg 1024w, https:\/\/lucasgoret.com\/wp-content\/uploads\/2024\/10\/formedonde-300x168.jpg 300w, https:\/\/lucasgoret.com\/wp-content\/uploads\/2024\/10\/formedonde-768x431.jpg 768w, https:\/\/lucasgoret.com\/wp-content\/uploads\/2024\/10\/formedonde-1536x863.jpg 1536w, https:\/\/lucasgoret.com\/wp-content\/uploads\/2024\/10\/formedonde.jpg 1859w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-5d211625 e-flex e-con-boxed e-con e-parent\" data-id=\"5d211625\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-15ba7d1e e-con-full e-flex e-con e-child\" data-id=\"15ba7d1e\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5b0387ab elementor-widget elementor-widget-text-editor\" data-id=\"5b0387ab\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"et_pb_module et_pb_text et_pb_text_3 et_pb_text_align_left et_pb_bg_layout_light\"><div class=\"et_pb_text_inner\"><p><strong>Le spectre<\/strong><\/p><p>Le spectre est une repr\u00e9sentation anim\u00e9e du son. Il indique, en temps r\u00e9el lors de la lecture, les variations d\u2019amplitude des fr\u00e9quences.<\/p><p>Sur l\u2019axe horizontal sont repr\u00e9sent\u00e9es les fr\u00e9quences (graves \u00e0 gauche, aig\u00fces \u00e0 droite), sur l\u2019axe vertical l\u2019amplitude. Cela nous permet de voir s\u2019il y a des fr\u00e9quences plus fortes que d\u2019autres et au besoin de r\u00e9\u00e9quilibrer gr\u00e2ce \u00e0 l\u2019\u00e9galiseur.<\/p><\/div><\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-2f8d8dc6 e-con-full e-flex e-con e-child\" data-id=\"2f8d8dc6\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5086a750 elementor-widget elementor-widget-image\" data-id=\"5086a750\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img decoding=\"async\" width=\"512\" height=\"288\" src=\"https:\/\/lucasgoret.com\/wp-content\/uploads\/2024\/10\/jazz3.gif\" class=\"attachment-large size-large wp-image-476\" alt=\"\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-6b3dbcef e-flex e-con-boxed e-con e-parent\" data-id=\"6b3dbcef\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-16b7df7b e-con-full e-flex e-con e-child\" data-id=\"16b7df7b\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-527daefe elementor-widget elementor-widget-text-editor\" data-id=\"527daefe\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"et_pb_module et_pb_text et_pb_text_3 et_pb_text_align_left et_pb_bg_layout_light\"><div class=\"et_pb_text_inner\"><p><strong>La forme d\u2019onde<\/strong><\/p><p>C\u2019est une image fixe qui nous indique les variations d\u2019amplitude sur une dur\u00e9e. Le temps est indiqu\u00e9 sur l\u2019axe horizontal, l\u2019amplitude (ou volume) sur l\u2019axe vertical.<\/p><p>On peut voir en un coup d\u2019oeil les parties du son qui sont plus fortes que les autres.<\/p><p>Sur un son st\u00e9r\u00e9o, il y aura 2 formes, canal droit et canal gauche. Un son mono aura donc une seule forme.<\/p><\/div><\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-7ef23567 e-con-full e-flex e-con e-child\" data-id=\"7ef23567\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1926e25b elementor-widget elementor-widget-image\" data-id=\"1926e25b\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"451\" src=\"https:\/\/lucasgoret.com\/wp-content\/uploads\/2024\/10\/spec-piano-1024x577.jpg\" class=\"attachment-large size-large wp-image-477\" alt=\"\" srcset=\"https:\/\/lucasgoret.com\/wp-content\/uploads\/2024\/10\/spec-piano-1024x577.jpg 1024w, https:\/\/lucasgoret.com\/wp-content\/uploads\/2024\/10\/spec-piano-300x169.jpg 300w, https:\/\/lucasgoret.com\/wp-content\/uploads\/2024\/10\/spec-piano-768x433.jpg 768w, https:\/\/lucasgoret.com\/wp-content\/uploads\/2024\/10\/spec-piano.jpg 1323w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-71ba13ee e-flex e-con-boxed e-con e-parent\" data-id=\"71ba13ee\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-3b157586 e-con-full e-flex e-con e-child\" data-id=\"3b157586\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1d05ec84 elementor-widget elementor-widget-spacer\" data-id=\"1d05ec84\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-77f322dd e-flex e-con-boxed e-con e-parent\" data-id=\"77f322dd\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-248b5f03 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"248b5f03\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c654f19 elementor-widget elementor-widget-heading\" data-id=\"c654f19\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">EFFETS<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-c2ed477 elementor-widget elementor-widget-text-editor\" data-id=\"c2ed477\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"et_pb_module et_pb_text et_pb_text_3 et_pb_text_align_left et_pb_bg_layout_light\"><div class=\"et_pb_text_inner\"><p>En mode forme d\u2019onde, nous allons appliquer uniquement des effets de base, notamment les op\u00e9rations de nettoyage, les ajustements de volume et normalisation, de lecture invers\u00e9e et de time-stretch, \u00e9ventuellement de l\u2019\u00e9galisation.<\/p><p>Il y a deux mani\u00e8res d\u2019appliquer les effets :<\/p><ul><li>Via le menu effets : les effets sont appliqu\u00e9s les un apr\u00e8s les autres, en mode destructif.\u00a0<strong>Certains effets s\u2019appliquent uniquement de cette mani\u00e8re, notamment la normalisation, le time-stretch, la lecture invers\u00e9e\u2026 On va donc appliquer ces effets en premier.<\/strong><\/li><li>Via le rack d\u2019effets : ici on a plus de contr\u00f4le sur les effets. Ils sont individuellement d\u00e9sactivables et modifiables sans destruction du son. Quand on est satisfait, il faut\u00a0<strong>appliquer l\u2019effet<\/strong>\u00a0ou les effets sur le son (il y a alors destruction). (\u21d2 voir les\u00a0<a href=\"https:\/\/denizfisek.com\/audition-2\/#effets\">effets en mode multipiste<\/a>)<\/li><\/ul><\/div><\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-4773596f e-flex e-con-boxed e-con e-parent\" data-id=\"4773596f\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-6cda86c e-con-full e-flex e-con e-child\" data-id=\"6cda86c\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-24b35a26 elementor-widget elementor-widget-image\" data-id=\"24b35a26\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"394\" height=\"540\" src=\"https:\/\/lucasgoret.com\/wp-content\/uploads\/2024\/10\/rack_FX.jpg\" class=\"attachment-large size-large wp-image-504\" alt=\"\" srcset=\"https:\/\/lucasgoret.com\/wp-content\/uploads\/2024\/10\/rack_FX.jpg 394w, https:\/\/lucasgoret.com\/wp-content\/uploads\/2024\/10\/rack_FX-219x300.jpg 219w\" sizes=\"(max-width: 394px) 100vw, 394px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-3e3649a6 e-con-full e-flex e-con e-child\" data-id=\"3e3649a6\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1ef98748 elementor-widget elementor-widget-text-editor\" data-id=\"1ef98748\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"et_pb_module et_pb_text et_pb_text_3 et_pb_text_align_left et_pb_bg_layout_light\"><div class=\"et_pb_text_inner\"><p>1\u00a0S\u00e9lection du module d\u2019effet. Une fen\u00eatre appara\u00eet avec les r\u00e9glages sp\u00e9cifiques \u00e0 l\u2019effet.<\/p><p>2\u00a0En double-cliquant sur le nom du module, on ouvre ses r\u00e9glages.<\/p><p>3\u00a0Activation \/ d\u00e9sactivation du module.<\/p><p>4\u00a0Activation \/ d\u00e9sactivation de\u00a0<strong>tous<\/strong>\u00a0les modules du rack.<\/p><p>5\u00a0R\u00e9gler la quantit\u00e9 globale d\u2019effet que l\u2019on d\u00e9sire sur le son (dry\/wet).<\/p><p>6\u00a0Cliquer pour appliquer d\u00e9finitivement les effets sur le fichier audio. On peut choisir si on veut appliquer sur tout le fichier ou juste une partie s\u00e9lectionn\u00e9e.<\/p><p>7\u00a0Ici on peut sauvegarder \/ ouvrir les r\u00e9glages.<\/p><\/div><\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-497ac08b e-flex e-con-boxed e-con e-parent\" data-id=\"497ac08b\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2a75ceed elementor-widget elementor-widget-spacer\" data-id=\"2a75ceed\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-67bd90cb elementor-widget elementor-widget-heading\" data-id=\"67bd90cb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h3 class=\"elementor-heading-title elementor-size-default\">QUELQUES EFFETS DE BASE<\/h3>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-77ca77da elementor-widget elementor-widget-spacer\" data-id=\"77ca77da\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-2865bd4 e-flex e-con-boxed e-con e-parent\" data-id=\"2865bd4\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-5baa8cc9 e-con-full e-flex e-con e-child\" data-id=\"5baa8cc9\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ee3c8a elementor-widget elementor-widget-image\" data-id=\"ee3c8a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"373\" src=\"https:\/\/lucasgoret.com\/wp-content\/uploads\/2024\/10\/normaliser.jpg\" class=\"attachment-large size-large wp-image-508\" alt=\"\" srcset=\"https:\/\/lucasgoret.com\/wp-content\/uploads\/2024\/10\/normaliser.jpg 814w, https:\/\/lucasgoret.com\/wp-content\/uploads\/2024\/10\/normaliser-300x140.jpg 300w, https:\/\/lucasgoret.com\/wp-content\/uploads\/2024\/10\/normaliser-768x359.jpg 768w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-3037068d e-con-full e-flex e-con e-child\" data-id=\"3037068d\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-58b0f1f6 elementor-widget elementor-widget-text-editor\" data-id=\"58b0f1f6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"et_pb_module et_pb_text et_pb_text_3 et_pb_text_align_left et_pb_bg_layout_light\"><div class=\"et_pb_text_inner\"><p><strong>Normalisation<\/strong>\u00a0:\u00a0<em>Effets &gt; Amplitude et compression &gt; Normaliser<\/em>. Le volume g\u00e9n\u00e9ral sera modifi\u00e9 pour que le pic (ou cr\u00eate) le plus fort atteigne un seuil d\u00e9fini.<\/p><p>\u21d2 La premi\u00e8re chose \u00e0 faire quand on ouvre un fichier audio est de r\u00e9gler son volume. Id\u00e9alement, le volume maximum doit se situer entre\u00a0<strong>-12 dB et -6 dB<\/strong>. Cela nous laisse de la marge pour le mixage final avec les autres sons.<\/p><\/div><\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-7bd7c91 e-flex e-con-boxed e-con e-parent\" data-id=\"7bd7c91\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-23dfac43 elementor-widget elementor-widget-text-editor\" data-id=\"23dfac43\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"et_pb_module et_pb_text et_pb_text_3 et_pb_text_align_left et_pb_bg_layout_light\"><div class=\"et_pb_text_inner\"><p><strong>Pitch :\u00a0<\/strong><em>(Effets &gt; Temps et hauteur de ton &gt; Transpositeur)\u00a0<\/em>permet de modifier la hauteur sans modifier la vitesse de lecture. Se r\u00e8gle en demi-tons.<\/p><p><strong>Time-stretch :<\/strong>\u00a0<em>(Effets &gt; Temps et hauteur de ton &gt; Expansion et compression)<\/em>\u00a0permet de ralentir ou acc\u00e9l\u00e9rer le son, en modifiant\u00a0<strong>ou pas\u00a0<\/strong>la hauteur (cocher (ou pas) \u00ab\u00a0verrouiller l\u2019expansion et la transposition\u00a0\u00bb).<\/p><p><strong>Lecture invers\u00e9e :\u00a0<\/strong><em>(Effets &gt; Retourner. Et non pas\u00a0<strong>inverser<\/strong>, ce qui va inverser la phase, ce qui est tout \u00e0 fait autre chose)\u00a0<\/em>permet de lire un son \u00e0 l\u2019envers.<\/p><\/div><\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7adb7e7a elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"7adb7e7a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-64880ac4 elementor-widget elementor-widget-spacer\" data-id=\"64880ac4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1f6fbc06 e-flex e-con-boxed e-con e-parent\" data-id=\"1f6fbc06\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-475b7225 elementor-widget elementor-widget-heading\" data-id=\"475b7225\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">\u00c9GALISATION<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-62c08dc9 elementor-widget elementor-widget-text-editor\" data-id=\"62c08dc9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"et_pb_module et_pb_text et_pb_text_3 et_pb_text_align_left et_pb_bg_layout_light\"><div class=\"et_pb_text_inner\"><p>L\u2019\u00e9galisateur (ou equalizer ou EQ) est un outil permettant d\u2019att\u00e9nuer ou amplifier des fr\u00e9quences ou plages de fr\u00e9quences pr\u00e9cises. Il existe plusieurs types d\u2019\u00e9galiseurs.<\/p><\/div><\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-2572a684 e-flex e-con-boxed e-con e-parent\" data-id=\"2572a684\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-8136db9 e-con-full e-flex e-con e-child\" data-id=\"8136db9\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-37109b80 elementor-widget elementor-widget-text-editor\" data-id=\"37109b80\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"et_pb_module et_pb_text et_pb_text_3 et_pb_text_align_left et_pb_bg_layout_light\"><div class=\"et_pb_text_inner\"><p><strong>Egaliseur param\u00e9trique<\/strong><\/p><p><em>Effets &gt; Filtre et Egaliseur &gt; Egaliseur param\u00e9trique<\/em><\/p><p>Cet effet permet une correction pr\u00e9cise des fr\u00e9quences. Par exemple, correctement r\u00e9gl\u00e9, il peut permettre d\u2019\u00e9liminer un sifflement qui se serait gliss\u00e9 dans l\u2019enregistrement, ou simuler l&#8217;acoustique particuli\u00e8re d&#8217;un t\u00e9l\u00e9phone sur une voix&#8230; Cet effet est r\u00e9guli\u00e8rement utilis\u00e9 pour le nettoyage, le mixage et le sound design.<\/p><\/div><\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-6fe1a486 e-con-full e-flex e-con e-child\" data-id=\"6fe1a486\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5d64ebf6 elementor-widget elementor-widget-image\" data-id=\"5d64ebf6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"522\" src=\"https:\/\/lucasgoret.com\/wp-content\/uploads\/2024\/10\/EQ-param-1024x668.jpg\" class=\"attachment-large size-large wp-image-509\" alt=\"\" srcset=\"https:\/\/lucasgoret.com\/wp-content\/uploads\/2024\/10\/EQ-param-1024x668.jpg 1024w, https:\/\/lucasgoret.com\/wp-content\/uploads\/2024\/10\/EQ-param-300x196.jpg 300w, https:\/\/lucasgoret.com\/wp-content\/uploads\/2024\/10\/EQ-param-768x501.jpg 768w, https:\/\/lucasgoret.com\/wp-content\/uploads\/2024\/10\/EQ-param-1536x1001.jpg 1536w, https:\/\/lucasgoret.com\/wp-content\/uploads\/2024\/10\/EQ-param.jpg 1672w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-5b5f70b0 e-flex e-con-boxed e-con e-parent\" data-id=\"5b5f70b0\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ee386b8 elementor-widget elementor-widget-spacer\" data-id=\"ee386b8\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-63c65773 e-flex e-con-boxed e-con e-parent\" data-id=\"63c65773\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-16670e7f e-con-full e-flex e-con e-child\" data-id=\"16670e7f\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-61e2eed4 elementor-widget elementor-widget-text-editor\" data-id=\"61e2eed4\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"et_pb_module et_pb_text et_pb_text_3 et_pb_text_align_left et_pb_bg_layout_light\"><div class=\"et_pb_text_inner\"><p><strong>\u00c9galiseur graphique<\/strong><\/p><p><em>Effets &gt; Filtre et \u00e9galiseur &gt; Egaliseur graphique<\/em><\/p><p>Cet \u00e9galiseur est compos\u00e9 de plusieurs faders correspondant chacun \u00e0 une plage de fr\u00e9quences. Au gauche les graves, au milieu les m\u00e9diums et \u00e0 droite les aigus. On peut voir en un coup d\u2019oeil la fa\u00e7on dont le son est modifi\u00e9. Ici, c\u2019est un \u00e9galiseur \u00e0 10 bandes, on peut en avoir \u00e0 30 bandes voire plus, ce qui permet encore plus de pr\u00e9cision.<\/p><\/div><\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-282f99a3 e-con-full e-flex e-con e-child\" data-id=\"282f99a3\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-62f89a87 elementor-widget elementor-widget-image\" data-id=\"62f89a87\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"709\" src=\"https:\/\/lucasgoret.com\/wp-content\/uploads\/2024\/10\/eq-graphique-1024x908.jpg\" class=\"attachment-large size-large wp-image-514\" alt=\"\" srcset=\"https:\/\/lucasgoret.com\/wp-content\/uploads\/2024\/10\/eq-graphique-1024x908.jpg 1024w, https:\/\/lucasgoret.com\/wp-content\/uploads\/2024\/10\/eq-graphique-300x266.jpg 300w, https:\/\/lucasgoret.com\/wp-content\/uploads\/2024\/10\/eq-graphique-768x681.jpg 768w, https:\/\/lucasgoret.com\/wp-content\/uploads\/2024\/10\/eq-graphique.jpg 1056w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-5beae8df e-flex e-con-boxed e-con e-parent\" data-id=\"5beae8df\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2e9ab19e elementor-widget elementor-widget-spacer\" data-id=\"2e9ab19e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-77393195 e-flex e-con-boxed e-con e-parent\" data-id=\"77393195\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4e8ba126 elementor-widget elementor-widget-text-editor\" data-id=\"4e8ba126\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"et_pb_module et_pb_text et_pb_text_3 et_pb_text_align_left et_pb_bg_layout_light\"><div class=\"et_pb_text_inner\"><p><strong>Filtre<\/strong><\/p><p>Le filtre permet de r\u00e9duire ou supprimer toute une partie des fr\u00e9quences du signal audio.<\/p><\/div><\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-636f2707 e-flex e-con-boxed e-con e-parent\" data-id=\"636f2707\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-48e89491 e-con-full e-flex e-con e-child\" data-id=\"48e89491\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-36d705ff elementor-widget elementor-widget-text-editor\" data-id=\"36d705ff\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"et_pb_module et_pb_text et_pb_text_3 et_pb_text_align_left et_pb_bg_layout_light\"><div class=\"et_pb_text_inner\"><p><strong>Filtre passe-haut<\/strong><\/p><p><em>Bouton \u2018HP\u2019 sur l\u2019\u00e9galiseur param\u00e9trique<\/em><\/p><p>Ne laisse entendre que le signal\u00a0<strong><em>au dessus<\/em><\/strong>\u00a0d\u2019une certaine limite de fr\u00e9quences (laisse passer le haut du spectre). S\u2019utilise par exemple pour imiter un son de t\u00e9l\u00e9phone, o\u00f9 il n\u2019y a aucune basse fr\u00e9quence.<\/p><\/div><\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-7791d94c e-con-full e-flex e-con e-child\" data-id=\"7791d94c\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-37fa5d93 elementor-widget elementor-widget-text-editor\" data-id=\"37fa5d93\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"et_pb_module et_pb_text et_pb_text_3 et_pb_text_align_left et_pb_bg_layout_light\"><div class=\"et_pb_text_inner\"><div class=\"et_pb_module et_pb_text et_pb_text_32  et_pb_text_align_left et_pb_bg_layout_light\"><div class=\"et_pb_text_inner\"><p><strong>Filtre passe-bas<\/strong><\/p><p><em>Bouton \u2018PB\u2019 sur l\u2019\u00e9galiseur param\u00e9trique<\/em><\/p><p>Ne laisse entendre que le signal\u00a0<strong><em>en-dessous<\/em><\/strong>\u00a0d\u2019une certaine limite de fr\u00e9quences (laisse passer le bas du spectre). S\u2019utilise par exemple pour imiter le son d\u2019une boite de nuit en sous-sol, ou un sous-marin.<\/p><\/div><\/div><\/div><\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-522b1437 e-con-full e-flex e-con e-child\" data-id=\"522b1437\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-6da65a10 elementor-widget elementor-widget-text-editor\" data-id=\"6da65a10\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"et_pb_module et_pb_text et_pb_text_3 et_pb_text_align_left et_pb_bg_layout_light\"><div class=\"et_pb_text_inner\"><p><strong>Filtre passe-bande<\/strong><\/p><p>Ne laisse entendre que le signal\u00a0<strong><em>entre deux fr\u00e9quences d\u00e9finies<\/em><\/strong>\u00a0(laisse passer une bande de fr\u00e9quences). S\u2019utilise par exemple pour imiter le son d\u2019une radio, qui n\u2019aura ni de fr\u00e9quences basses ni aig\u00fces.<\/p><\/div><\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1751b951 e-con-full e-flex e-con e-child\" data-id=\"1751b951\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5cad09be elementor-widget elementor-widget-image\" data-id=\"5cad09be\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"522\" src=\"https:\/\/lucasgoret.com\/wp-content\/uploads\/2024\/10\/passe-haut-1024x668.jpg\" class=\"attachment-large size-large wp-image-515\" alt=\"\" srcset=\"https:\/\/lucasgoret.com\/wp-content\/uploads\/2024\/10\/passe-haut-1024x668.jpg 1024w, https:\/\/lucasgoret.com\/wp-content\/uploads\/2024\/10\/passe-haut-300x196.jpg 300w, https:\/\/lucasgoret.com\/wp-content\/uploads\/2024\/10\/passe-haut-768x501.jpg 768w, https:\/\/lucasgoret.com\/wp-content\/uploads\/2024\/10\/passe-haut-1536x1001.jpg 1536w, https:\/\/lucasgoret.com\/wp-content\/uploads\/2024\/10\/passe-haut.jpg 1672w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-77d0b18c e-con-full e-flex e-con e-child\" data-id=\"77d0b18c\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-23ce86d3 elementor-widget elementor-widget-image\" data-id=\"23ce86d3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"522\" src=\"https:\/\/lucasgoret.com\/wp-content\/uploads\/2024\/10\/passe-bas-1024x668.jpg\" class=\"attachment-large size-large wp-image-516\" alt=\"\" srcset=\"https:\/\/lucasgoret.com\/wp-content\/uploads\/2024\/10\/passe-bas-1024x668.jpg 1024w, https:\/\/lucasgoret.com\/wp-content\/uploads\/2024\/10\/passe-bas-300x196.jpg 300w, https:\/\/lucasgoret.com\/wp-content\/uploads\/2024\/10\/passe-bas-768x501.jpg 768w, https:\/\/lucasgoret.com\/wp-content\/uploads\/2024\/10\/passe-bas-1536x1001.jpg 1536w, https:\/\/lucasgoret.com\/wp-content\/uploads\/2024\/10\/passe-bas.jpg 1672w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-e5a5693 e-con-full e-flex e-con e-child\" data-id=\"e5a5693\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-85f7241 elementor-widget elementor-widget-image\" data-id=\"85f7241\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"522\" src=\"https:\/\/lucasgoret.com\/wp-content\/uploads\/2024\/10\/passe-bande-1024x668.jpg\" class=\"attachment-large size-large wp-image-517\" alt=\"\" srcset=\"https:\/\/lucasgoret.com\/wp-content\/uploads\/2024\/10\/passe-bande-1024x668.jpg 1024w, https:\/\/lucasgoret.com\/wp-content\/uploads\/2024\/10\/passe-bande-300x196.jpg 300w, https:\/\/lucasgoret.com\/wp-content\/uploads\/2024\/10\/passe-bande-768x501.jpg 768w, https:\/\/lucasgoret.com\/wp-content\/uploads\/2024\/10\/passe-bande-1536x1001.jpg 1536w, https:\/\/lucasgoret.com\/wp-content\/uploads\/2024\/10\/passe-bande.jpg 1672w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-5040c79c e-flex e-con-boxed e-con e-parent\" data-id=\"5040c79c\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-20bdf660 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"20bdf660\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-6135e668 elementor-widget elementor-widget-spacer\" data-id=\"6135e668\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-34764cb5 elementor-widget elementor-widget-heading\" data-id=\"34764cb5\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">REUSSIR UNE PRISE DE SON DE VOIX<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-20e0ded elementor-widget elementor-widget-text-editor\" data-id=\"20e0ded\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"et_pb_module et_pb_text et_pb_text_3 et_pb_text_align_left et_pb_bg_layout_light\"><div class=\"et_pb_text_inner\"><div class=\"et_pb_module et_pb_text et_pb_text_35 et_pb_text_align_left et_pb_bg_layout_light\"><div class=\"et_pb_text_inner\"><h5><strong>L\u2019enregistrement<\/strong><\/h5><p>La qualit\u00e9 finale de notre son va beaucoup d\u00e9pendre des conditions d\u2019enregistrement.<\/p><\/div><\/div><div class=\"et_pb_module et_pb_text et_pb_text_36 et_pb_text_align_left et_pb_bg_layout_light\"><div class=\"et_pb_text_inner\"><p><b>Il faut savoir que la qualit\u00e9 finale ne sera jamais sup\u00e9rieur au plus m\u00e9diocre des \u00e9quipements dans la chaine de production. C\u2019est \u00e0 dire qu\u2019on a beau avoir un microphone \u00e0 2000\u20ac, des enceintes de studio professionnelles, et le meilleur com\u00e9dien de voix-off du pays, si on a une carte son de qualit\u00e9 moyenne, la qualit\u00e9 finale du son ne d\u00e9passera pas la qualit\u00e9 de la carte son.<\/b><\/p><\/div><\/div><div class=\"et_pb_module et_pb_text et_pb_text_37 et_pb_text_align_left et_pb_bg_layout_light\"><div class=\"et_pb_text_inner\"><p>Voici quelques astuces pour enregistrer sa voix pour un rendu raisonnable chez soi avec un t\u00e9l\u00e9phone et les moyens du bord.<\/p><ul><li>Pr\u00e9parez bien votre texte. Il vaut mieux enregistrer toutes les voix en une seule session, pour limiter les risques d\u2019incoh\u00e9rence. Si vous re-enregistrez un bout de texte plus tard, il se peut que vous n\u2019ayez pas exactement la m\u00eame position, et cela risque de s\u2019entendre dans le r\u00e9sultat final.<\/li><li>Choisissez une pi\u00e8ce de taille moyenne, plut\u00f4t bien meubl\u00e9e, et avec le moins de r\u00e9verb\u00e9rations possible. Comparez la \u00ab\u00a0qualit\u00e9\u00a0\u00bb des diff\u00e9rentes pi\u00e8ces chez vous en vous pla\u00e7ant au centre, en claquant fort dans les mains et en \u00e9coutant la raisonnance qui reste. Vous remarquerez probablement qu\u2019une de vos pi\u00e8ces raisonne moins que les autres. Une pi\u00e8ce de taille moyenne qui contient un canap\u00e9 et des \u00e9tag\u00e8res de livre aura probablement un meilleur son que les autres.<\/li><li>Placez vous de mani\u00e8re \u00e0 avoir une \u00e9tag\u00e8re de livres dans le dos.<\/li><li>Devant vous, suspendez une couette, un tapis ou un matelas, perpendiculaire au sol, et \u00e0 environ 1 m\u00e8tre de votre visage.<\/li><li>Tenez votre t\u00e9l\u00e9phone \u00e0 20-30 cm de votre bouche.<\/li><li>Le microphone ne doit pas \u00eatre dirig\u00e9 directement vers votre bouche, essayez diff\u00e9rent angles.<\/li><li>Si votre application d\u2019enregistrement vous permet de r\u00e9gler le volume d\u2019entr\u00e9e, r\u00e9glez le de fa\u00e7on convenable.<\/li><li>Toujours faire quelques essais d\u2019enregistrement avant de lancer l\u2019enregistrement final.<\/li><li>Compter jusqu\u2019\u00e0 3 dans sa t\u00eate apr\u00e8s avoir lancer l\u2019enregistrement et avant de le couper. Cela nous laisse une marge de s\u00e9curit\u00e9 que l\u2019on pourra nettoyer plus tard.<\/li><\/ul><\/div><\/div><div class=\"et_pb_module et_pb_text et_pb_text_38 et_pb_text_align_left et_pb_bg_layout_light\"><div class=\"et_pb_text_inner\"><h5><strong>Nettoyage du son dans Adobe Audition<\/strong><\/h5><ul><li>Une fois le son import\u00e9, observer la forme d\u2019onde. Visuellement, rep\u00e9rez les anomalies : une toux, un souffle, une porte qui claque au loin. Supprimez tous les sons parasites, les silences au d\u00e9but et \u00e0 la fin, les \u00e9ventuels silences entre les interventions de voix.<\/li><li>Il y aura peut-\u00eatre un buzz ou un bourdonnement. Souvent cela est d\u00fb \u00e0 un son parasite dans la pi\u00e8ce (clim, VMC, frigo\u2026) mais peut \u00e9galement venir de l\u2019appareil enregistreur. Dans ce cas, on va utiliser l\u2019effet\u00a0<em>r\u00e9duction du bruit<\/em>\u00a0:\u00a0<em>Effets &gt; R\u00e9duction \/ restauration du bruit &gt; R\u00e9duction du bruit (processus)<\/em><\/li><\/ul><\/div><\/div><\/div><\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-69c6ed09 e-flex e-con-boxed e-con e-parent\" data-id=\"69c6ed09\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-24efdde9 elementor-widget elementor-widget-spacer\" data-id=\"24efdde9\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-307137ad e-flex e-con-boxed e-con e-parent\" data-id=\"307137ad\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-547c997 elementor-widget elementor-widget-text-editor\" data-id=\"547c997\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"et_pb_module et_pb_text et_pb_text_3 et_pb_text_align_left et_pb_bg_layout_light\"><div class=\"et_pb_text_inner\"><div class=\"et_pb_module et_pb_text et_pb_text_35 et_pb_text_align_left et_pb_bg_layout_light\"><div class=\"et_pb_text_inner\"><h5><strong>Nettoyage du son dans Adobe Audition<\/strong><\/h5><p>\u00a0<\/p><ul><li>Une fois le son import\u00e9, observer la forme d\u2019onde. Visuellement, rep\u00e9rez les anomalies : une toux, un souffle, une porte qui claque au loin. Supprimez tous les sons parasites, les silences au d\u00e9but et \u00e0 la fin, les \u00e9ventuels silences entre les interventions de voix.<\/li><li>Il y aura peut-\u00eatre un buzz ou un bourdonnement. Souvent cela est d\u00fb \u00e0 un son parasite dans la pi\u00e8ce (clim, VMC, frigo\u2026) mais peut \u00e9galement venir de l\u2019appareil enregistreur. Dans ce cas, on va utiliser l\u2019effet\u00a0<em>r\u00e9duction du bruit<\/em>\u00a0:\u00a0<em>Effets &gt; R\u00e9duction \/ restauration du bruit &gt; R\u00e9duction du bruit (processus)<\/em><\/li><\/ul><\/div><\/div><\/div><\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-7c2fb24a elementor-widget elementor-widget-image\" data-id=\"7c2fb24a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"825\" src=\"https:\/\/lucasgoret.com\/wp-content\/uploads\/2024\/10\/reduction_bruit_1-993x1024.png\" class=\"attachment-large size-large wp-image-518\" alt=\"\" srcset=\"https:\/\/lucasgoret.com\/wp-content\/uploads\/2024\/10\/reduction_bruit_1-993x1024.png 993w, https:\/\/lucasgoret.com\/wp-content\/uploads\/2024\/10\/reduction_bruit_1-291x300.png 291w, https:\/\/lucasgoret.com\/wp-content\/uploads\/2024\/10\/reduction_bruit_1-768x792.png 768w, https:\/\/lucasgoret.com\/wp-content\/uploads\/2024\/10\/reduction_bruit_1.png 1472w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-781f1fa elementor-widget elementor-widget-spacer\" data-id=\"781f1fa\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-729e294d e-flex e-con-boxed e-con e-parent\" data-id=\"729e294d\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4214d530 elementor-widget elementor-widget-text-editor\" data-id=\"4214d530\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"et_pb_module et_pb_text et_pb_text_3 et_pb_text_align_left et_pb_bg_layout_light\"><div class=\"et_pb_text_inner\"><div class=\"et_pb_module et_pb_text et_pb_text_35 et_pb_text_align_left et_pb_bg_layout_light\"><div class=\"et_pb_text_inner\"><p><strong>Lire l\u2019alerte affich\u00e9e<\/strong>\u00a0: elle explique comment faire. En gros, on s\u00e9lectionne une partie du son contenant uniquement le bruit que l\u2019on veut \u00e9liminer, et Audition analyse ce bout de bruit pour ensuite proposer une r\u00e9duction, voire \u00e9limination de ce bruit. S\u00e9lectionner, sur la forme d\u2019onde, une portion du son qui ne contient\u00a0<strong>QUE<\/strong>\u00a0le bruit que l\u2019on veut \u00e9liminer et cliquer sur \u00ab\u00a0Capturer l\u2019impression du bruit\u00a0\u00bb.<\/p><p>Audition va analyser le bruit et nous proposer un graphique avec des particules qui repr\u00e9sentent le bruit d\u00e9tect\u00e9.\u00a0<strong>Ajuster la ligne bleue<\/strong>\u00a0pour grossi\u00e8rement suivre la forme des particules.<\/p><\/div><\/div><\/div><\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-5b30f718 elementor-widget elementor-widget-image\" data-id=\"5b30f718\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"800\" height=\"829\" src=\"https:\/\/lucasgoret.com\/wp-content\/uploads\/2024\/10\/reduction_bruit_2-988x1024.png\" class=\"attachment-large size-large wp-image-526\" alt=\"\" srcset=\"https:\/\/lucasgoret.com\/wp-content\/uploads\/2024\/10\/reduction_bruit_2-988x1024.png 988w, https:\/\/lucasgoret.com\/wp-content\/uploads\/2024\/10\/reduction_bruit_2-289x300.png 289w, https:\/\/lucasgoret.com\/wp-content\/uploads\/2024\/10\/reduction_bruit_2-768x796.png 768w, https:\/\/lucasgoret.com\/wp-content\/uploads\/2024\/10\/reduction_bruit_2.png 1468w\" sizes=\"(max-width: 800px) 100vw, 800px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-8f625e6 elementor-widget elementor-widget-spacer\" data-id=\"8f625e6\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-57c0adcb elementor-widget elementor-widget-text-editor\" data-id=\"57c0adcb\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"et_pb_module et_pb_text et_pb_text_3 et_pb_text_align_left et_pb_bg_layout_light\"><div class=\"et_pb_text_inner\"><div class=\"et_pb_module et_pb_text et_pb_text_35 et_pb_text_align_left et_pb_bg_layout_light\"><div class=\"et_pb_text_inner\"><div class=\"et_pb_row et_pb_row_22\"><div class=\"et_pb_column et_pb_column_4_4 et_pb_column_32 et_pb_css_mix_blend_mode_passthrough et-last-child\"><div class=\"et_pb_module et_pb_text et_pb_text_41 et_pb_text_align_left et_pb_bg_layout_light\"><div class=\"et_pb_text_inner\"><p>Avant d\u2019appliquer l\u2019effet, ne pas oublier de cliquer sur \u00ab\u00a0s\u00e9lectionner le fichier entier\u00a0\u00bb, ou faire ctrl-A (cmd-A sur Mac).<span style=\"font-size: 1rem;\">\u00a0<\/span><\/p><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-306178f9 e-flex e-con-boxed e-con e-parent\" data-id=\"306178f9\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-7435c253 elementor-widget elementor-widget-spacer\" data-id=\"7435c253\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-6ffce05e e-flex e-con-boxed e-con e-parent\" data-id=\"6ffce05e\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2adf6fb7 elementor-widget elementor-widget-text-editor\" data-id=\"2adf6fb7\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"et_pb_module et_pb_text et_pb_text_3 et_pb_text_align_left et_pb_bg_layout_light\"><div class=\"et_pb_text_inner\"><div class=\"et_pb_module et_pb_text et_pb_text_35 et_pb_text_align_left et_pb_bg_layout_light\"><div class=\"et_pb_text_inner\"><div class=\"et_pb_row et_pb_row_23\"><div class=\"et_pb_column et_pb_column_4_4 et_pb_column_33 et_pb_css_mix_blend_mode_passthrough et-last-child\"><div class=\"et_pb_module et_pb_text et_pb_text_42 et_pb_text_align_left et_pb_bg_layout_light\"><div class=\"et_pb_text_inner\"><h5><strong>Am\u00e9lioration du son dans Adobe Audition<\/strong><\/h5><ul><li>S\u2019il y a de la reverb g\u00e9nante dans la prise de son, on peut utiliser l\u2019effet\u00a0<em>Effet &gt; R\u00e9duction \/ restauration du bruit &gt; DeReverb.\u00a0<\/em><strong>Attention au dosage<\/strong>\u00a0de cet effet, qui peut vite d\u00e9naturer la voix et la rendre robotique \/ digitale\/ moche.<\/li><li>Pour r\u00e9duire la dynamique et avoir une voix homog\u00e8ne avec un volume constant, utiliser un\u00a0<strong>compresseur<\/strong>. R\u00e9gler le gain de sortie pour que notre voix se situe entre -12 et -9 dB.<\/li><li>Utiliser \u00e9ventuellement un\u00a0<strong>\u00e9galiseur<\/strong>\u00a0pour, d\u2019une part, couper les fr\u00e9quences en dessous de 200 Hz (qui n\u2019\u00e9xistent pas naturellement dans la voix mais pourraient contenir des sons parasites) et d\u2019autre part, peaufiner les fr\u00e9quences qui \u00ab\u00a0flattent\u00a0\u00bb la voix que l\u2019on travail. Ces r\u00e9glages seront diff\u00e9rents selon les voix.<\/li><li>Ne pas h\u00e9siter \u00e0 utiliser les\u00a0<strong>presets de l\u2019\u00e9galiseur param\u00e9trique<\/strong>, notamment celui qui s\u2019appelle \u00ab\u00a0exhausteur vocal\u00a0\u00bb.<\/li><li>Vous pouvez aussi essayer\u00a0<em>Effets &gt; Sp\u00e9cial &gt; Exhausteur vocal.\u00a0<\/em><\/li><\/ul><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-715b2147 e-flex e-con-boxed e-con e-parent\" data-id=\"715b2147\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-ec3daac elementor-widget elementor-widget-text-editor\" data-id=\"ec3daac\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"et_pb_module et_pb_text et_pb_text_3 et_pb_text_align_left et_pb_bg_layout_light\"><div class=\"et_pb_text_inner\"><div class=\"et_pb_module et_pb_text et_pb_text_35 et_pb_text_align_left et_pb_bg_layout_light\"><div class=\"et_pb_text_inner\"><div class=\"et_pb_row et_pb_row_22\"><div class=\"et_pb_column et_pb_column_4_4 et_pb_column_32 et_pb_css_mix_blend_mode_passthrough et-last-child\"><div class=\"et_pb_module et_pb_text et_pb_text_41 et_pb_text_align_left et_pb_bg_layout_light\"><div class=\"et_pb_text_inner\"><div class=\"et_pb_row et_pb_row_24\"><div class=\"et_pb_column et_pb_column_4_4 et_pb_column_34 et_pb_css_mix_blend_mode_passthrough et-last-child\"><div class=\"et_pb_module et_pb_text et_pb_text_43 et_pb_text_align_left et_pb_bg_layout_light\"><div class=\"et_pb_text_inner\"><p>A ce stade, votre son devrait \u00eatre plus propre. Il existe cependant 2 autres m\u00e9thodes pour nettoyer une voix :<\/p><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-53e1a03e e-flex e-con-boxed e-con e-parent\" data-id=\"53e1a03e\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-56b07283 elementor-widget elementor-widget-text-editor\" data-id=\"56b07283\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"et_pb_module et_pb_text et_pb_text_3 et_pb_text_align_left et_pb_bg_layout_light\"><div class=\"et_pb_text_inner\"><div class=\"et_pb_module et_pb_text et_pb_text_35 et_pb_text_align_left et_pb_bg_layout_light\"><div class=\"et_pb_text_inner\"><div class=\"et_pb_row et_pb_row_23\"><div class=\"et_pb_column et_pb_column_4_4 et_pb_column_33 et_pb_css_mix_blend_mode_passthrough et-last-child\"><div class=\"et_pb_module et_pb_text et_pb_text_42 et_pb_text_align_left et_pb_bg_layout_light\"><div class=\"et_pb_text_inner\"><p><strong>Le panneau Audio Essentiel<\/strong><\/p><p>Afficher le panneau ici :\u00a0<em>Fen\u00eatre &gt; Audio essentiel<\/em><\/p><p><strong>Ce panneau est disponible uniquement en mode multipiste<\/strong><\/p><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-10c30a04 e-flex e-con-boxed e-con e-parent\" data-id=\"10c30a04\" data-element_type=\"container\" data-e-type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-2f0940f3 e-con-full e-flex e-con e-child\" data-id=\"2f0940f3\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4a116c17 elementor-widget elementor-widget-image\" data-id=\"4a116c17\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"image.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<img loading=\"lazy\" decoding=\"async\" width=\"630\" height=\"772\" src=\"https:\/\/lucasgoret.com\/wp-content\/uploads\/2024\/10\/audio-essentiel.png\" class=\"attachment-large size-large wp-image-534\" alt=\"\" srcset=\"https:\/\/lucasgoret.com\/wp-content\/uploads\/2024\/10\/audio-essentiel.png 630w, https:\/\/lucasgoret.com\/wp-content\/uploads\/2024\/10\/audio-essentiel-245x300.png 245w\" sizes=\"(max-width: 630px) 100vw, 630px\" \/>\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-5c075412 e-con-full e-flex e-con e-child\" data-id=\"5c075412\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-2688f79e elementor-widget elementor-widget-text-editor\" data-id=\"2688f79e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"et_pb_module et_pb_text et_pb_text_3 et_pb_text_align_left et_pb_bg_layout_light\"><div class=\"et_pb_text_inner\"><div class=\"et_pb_module et_pb_text et_pb_text_35 et_pb_text_align_left et_pb_bg_layout_light\"><div class=\"et_pb_text_inner\"><div class=\"et_pb_row et_pb_row_23\"><div class=\"et_pb_column et_pb_column_4_4 et_pb_column_33 et_pb_css_mix_blend_mode_passthrough et-last-child\"><div class=\"et_pb_module et_pb_text et_pb_text_42 et_pb_text_align_left et_pb_bg_layout_light\"><div class=\"et_pb_text_inner\"><p>Ce panneau nous permet d\u2019appliquer des effets et des traitements rapides en fonction des r\u00f4les de chaque clip.<\/p><p>On s\u00e9lectionne un clip, puis on s\u00e9lectionne, dans le panneau Audio essentiel, ce \u00e0 quoi correspond le clip : dialogue, musique, effets sonores (bruitages et sound design) et ambiance.<\/p><p>Audition nous propose ensuite divers effets d\u00e9di\u00e9s \u00e0 chaque cat\u00e9gorie de son, avec des presets appropri\u00e9s.<\/p><p>\u00a0<\/p><p>Bien que cette m\u00e9thode soit tr\u00e8s simple et convienne \u00e0 la plupart des utilisations communes, nous n\u2019avons pas toujours le r\u00e9glage id\u00e9al que l\u2019on voudrait. Il convient alors d\u2019utiliser les m\u00e9thodes \u00ab\u00a0manuelles\u00a0\u00bb : les effets que l\u2019on va r\u00e9gler nous m\u00eame.<\/p><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-78728b02 e-flex e-con-boxed e-con e-parent\" data-id=\"78728b02\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-208436e3 elementor-widget-divider--view-line elementor-widget elementor-widget-divider\" data-id=\"208436e3\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"divider.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-divider\">\n\t\t\t<span class=\"elementor-divider-separator\">\n\t\t\t\t\t\t<\/span>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-47eca792 e-flex e-con-boxed e-con e-parent\" data-id=\"47eca792\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-122986e elementor-widget elementor-widget-spacer\" data-id=\"122986e\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-176fa831 elementor-widget elementor-widget-heading\" data-id=\"176fa831\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"heading.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t<h2 class=\"elementor-heading-title elementor-size-default\">LIENS<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-325ba97a e-flex e-con-boxed e-con e-parent\" data-id=\"325ba97a\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t<div class=\"elementor-element elementor-element-37274c89 e-con-full e-flex e-con e-child\" data-id=\"37274c89\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-74043989 elementor-widget elementor-widget-text-editor\" data-id=\"74043989\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"et_pb_module et_pb_text et_pb_text_3 et_pb_text_align_left et_pb_bg_layout_light\"><div class=\"et_pb_text_inner\"><div class=\"et_pb_module et_pb_text et_pb_text_35 et_pb_text_align_left et_pb_bg_layout_light\"><div class=\"et_pb_text_inner\"><div class=\"et_pb_row et_pb_row_23\"><div class=\"et_pb_column et_pb_column_4_4 et_pb_column_33 et_pb_css_mix_blend_mode_passthrough et-last-child\"><div class=\"et_pb_module et_pb_text et_pb_text_42 et_pb_text_align_left et_pb_bg_layout_light\"><div class=\"et_pb_text_inner\"><h5 style=\"text-align: center;\"><strong>Banques de son gratuites<\/strong><\/h5><p style=\"text-align: center;\"><a href=\"https:\/\/freesound.org\/\">Freesound<\/a><\/p><p style=\"text-align: center;\"><a href=\"https:\/\/lasonotheque.org\/\">La sonoth\u00e8que<\/a><\/p><p style=\"text-align: center;\"><a href=\"https:\/\/quicksounds.com\/\">Quick sounds<\/a><\/p><p style=\"text-align: center;\"><a href=\"https:\/\/sound-effects.bbcrewind.co.uk\/\">Banque de la BBC<\/a><\/p><p style=\"text-align: center;\"><a href=\"https:\/\/www.universal-soundbank.com\/\">Universal soundbank<\/a><\/p><p style=\"text-align: center;\"><a href=\"https:\/\/www.saturax.fr\/blog\/liste-meilleures-banques-de-son-gratuit-libre-de-droit\/\">20 autres banques<\/a><\/p><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-1f33a8d7 e-con-full e-flex e-con e-child\" data-id=\"1f33a8d7\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1577d206 elementor-widget elementor-widget-text-editor\" data-id=\"1577d206\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"et_pb_module et_pb_text et_pb_text_3 et_pb_text_align_left et_pb_bg_layout_light\"><div class=\"et_pb_text_inner\"><div class=\"et_pb_module et_pb_text et_pb_text_35 et_pb_text_align_left et_pb_bg_layout_light\"><div class=\"et_pb_text_inner\"><div class=\"et_pb_row et_pb_row_23\"><div class=\"et_pb_column et_pb_column_4_4 et_pb_column_33 et_pb_css_mix_blend_mode_passthrough et-last-child\"><div class=\"et_pb_module et_pb_text et_pb_text_42 et_pb_text_align_left et_pb_bg_layout_light\"><div class=\"et_pb_text_inner\"><h5 style=\"text-align: center;\"><strong>Musiques libres de droits (sous conditions)<\/strong><\/h5><p style=\"text-align: center;\"><span style=\"text-decoration: underline;\">Toujours v\u00e9rifier les licences\u00a0<\/span><\/p><p style=\"text-align: center;\"><a href=\"https:\/\/studio.youtube.com\">Youtube Studio<\/a><\/p><p style=\"text-align: center;\"><a href=\"https:\/\/pixabay.com\/music\/\">Pixabay<\/a><\/p><p style=\"text-align: center;\"><a href=\"https:\/\/freepd.com\/\">FreePD<\/a><\/p><p style=\"text-align: center;\"><a href=\"https:\/\/musopen.org\/fr\/\">Musopen<\/a><\/p><p style=\"text-align: center;\"><a href=\"https:\/\/www.auboutdufil.com\/index.php?license=CC-BY\">Au bout du fil<\/a><\/p><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-781debf6 e-flex e-con-boxed e-con e-parent\" data-id=\"781debf6\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-3ebb846a elementor-widget elementor-widget-text-editor\" data-id=\"3ebb846a\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"et_pb_module et_pb_text et_pb_text_3 et_pb_text_align_left et_pb_bg_layout_light\"><div class=\"et_pb_text_inner\"><div class=\"et_pb_module et_pb_text et_pb_text_35 et_pb_text_align_left et_pb_bg_layout_light\"><div class=\"et_pb_text_inner\"><div class=\"et_pb_row et_pb_row_23\"><div class=\"et_pb_column et_pb_column_4_4 et_pb_column_33 et_pb_css_mix_blend_mode_passthrough et-last-child\"><div class=\"et_pb_module et_pb_text et_pb_text_42 et_pb_text_align_left et_pb_bg_layout_light\"><div class=\"et_pb_text_inner\"><p>On trouve \u00e9galement des tonnes de sons sur YouTube. Les sons peuvent \u00eatre tl\u00e9charg\u00e9s avec un outil en ligne, par exemple\u00a0<a href=\"https:\/\/www.converto.io\/fr66\/?\" target=\"_blank\" rel=\"noopener\">converto.io.<\/a><\/p><p>Dans la mesure du possible, faire les recherches en anglais pour plus de r\u00e9sultats.<\/p><p>Utiliser les termes vu dans le \u00ab\u00a0vocabulaire du sound design\u00a0\u00bb, essayer en ajoutant les termes \u00ab\u00a0SFX\u00a0\u00bb ou \u00ab\u00a0cinematic\u00a0\u00bb pour tout ce qui est sound design, et \u00ab\u00a0foley\u00a0\u00bb pour tout ce qui est bruitage (ex: \u00ab\u00a0cinematic deep impact\u00a0\u00bb, \u00ab\u00a0heavy boot foley\u00a0\u00bb, \u00ab\u00a0small explosion SFX\u00a0\u00bb).<\/p><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4e7f6c0 elementor-widget elementor-widget-text-editor\" data-id=\"4e7f6c0\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"text-editor.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t\t\t<div class=\"et_pb_module et_pb_text et_pb_text_3 et_pb_text_align_left et_pb_bg_layout_light\"><div class=\"et_pb_text_inner\"><div class=\"et_pb_module et_pb_text et_pb_text_35 et_pb_text_align_left et_pb_bg_layout_light\"><div class=\"et_pb_text_inner\"><div class=\"et_pb_row et_pb_row_23\"><div class=\"et_pb_column et_pb_column_4_4 et_pb_column_33 et_pb_css_mix_blend_mode_passthrough et-last-child\"><div class=\"et_pb_module et_pb_text et_pb_text_42 et_pb_text_align_left et_pb_bg_layout_light\"><div class=\"et_pb_text_inner\"><h5 style=\"text-align: center;\">IA de Adobe pour le nettoyage des voix :<\/h5><p style=\"text-align: center;\"><a href=\"https:\/\/podcast.adobe.com\/enhance\" target=\"_blank\" rel=\"noopener\">https:\/\/podcast.adobe.com\/enhance<\/a><\/p><\/div><\/div><\/div><\/div><\/div><\/div><\/div><\/div>\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-cb827ab e-flex e-con-boxed e-con e-parent\" data-id=\"cb827ab\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-c7a36ea elementor-widget elementor-widget-spacer\" data-id=\"c7a36ea\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"spacer.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-spacer\">\n\t\t\t<div class=\"elementor-spacer-inner\"><\/div>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-982c692 e-grid e-con-boxed e-con e-parent\" data-id=\"982c692\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-df1f530 elementor-view-default elementor-widget elementor-widget-icon\" data-id=\"df1f530\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-wrapper\">\n\t\t\t<a class=\"elementor-icon\" href=\"https:\/\/lucasgoret.com\/index.php\/sounddesign\/\">\n\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-arrow-alt-circle-left\" viewBox=\"0 0 512 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M256 504C119 504 8 393 8 256S119 8 256 8s248 111 248 248-111 248-248 248zm116-292H256v-70.9c0-10.7-13-16.1-20.5-8.5L121.2 247.5c-4.7 4.7-4.7 12.2 0 16.9l114.3 114.9c7.6 7.6 20.5 2.2 20.5-8.5V300h116c6.6 0 12-5.4 12-12v-64c0-6.6-5.4-12-12-12z\"><\/path><\/svg>\t\t\t<\/a>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-4d0b756 elementor-view-default elementor-widget elementor-widget-icon\" data-id=\"4d0b756\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"icon.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-icon-wrapper\">\n\t\t\t<a class=\"elementor-icon\" href=\"https:\/\/lucasgoret.com\/index.php\/audition-forme-donde\/\">\n\t\t\t<svg aria-hidden=\"true\" class=\"e-font-icon-svg e-fas-arrow-alt-circle-right\" viewBox=\"0 0 512 512\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\"><path d=\"M256 8c137 0 248 111 248 248S393 504 256 504 8 393 8 256 119 8 256 8zM140 300h116v70.9c0 10.7 13 16.1 20.5 8.5l114.3-114.9c4.7-4.7 4.7-12.2 0-16.9l-114.3-115c-7.6-7.6-20.5-2.2-20.5 8.5V212H140c-6.6 0-12 5.4-12 12v64c0 6.6 5.4 12 12 12z\"><\/path><\/svg>\t\t\t<\/a>\n\t\t<\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>INITIATION Sound Design AUDITION Forme d&#8217;onde AUDITION Multipiste PREMIERE PRO Mixage L&#8217;ENREGISTREMENT Prise de son AUDIO BRANDING EXERCICES Astuces ADOBE AUDITION FONCTIONS DE BASE MODE FORME D\u2019ONDE PR\u00c9AMBULE : LA PHYSIQUE DU SON https:\/\/www.youtube.com\/watch?v=uw5xK0mCeYE Outil d&#8217;analyse Outil d&#8217;analyse Physique du son \u00b7 fr\u00e9quence \u00b7 harmoniques \u00b7 FFT \u00b7 filtrage Audio arr\u00eat\u00e9 Source Type Oscillateur Sample [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"footnotes":""},"class_list":["post-571","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/lucasgoret.com\/index.php\/wp-json\/wp\/v2\/pages\/571","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/lucasgoret.com\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/lucasgoret.com\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/lucasgoret.com\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/lucasgoret.com\/index.php\/wp-json\/wp\/v2\/comments?post=571"}],"version-history":[{"count":131,"href":"https:\/\/lucasgoret.com\/index.php\/wp-json\/wp\/v2\/pages\/571\/revisions"}],"predecessor-version":[{"id":3259,"href":"https:\/\/lucasgoret.com\/index.php\/wp-json\/wp\/v2\/pages\/571\/revisions\/3259"}],"wp:attachment":[{"href":"https:\/\/lucasgoret.com\/index.php\/wp-json\/wp\/v2\/media?parent=571"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}