{"id":1974,"date":"2025-04-22T15:11:50","date_gmt":"2025-04-22T15:11:50","guid":{"rendered":"https:\/\/diverse.anderskisling.dk\/?page_id=1974"},"modified":"2025-07-26T21:55:13","modified_gmt":"2025-07-26T21:55:13","slug":"mixer1","status":"publish","type":"page","link":"https:\/\/diverse.anderskisling.dk\/index.php\/mixer1\/","title":{"rendered":"mixer1"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"1974\" class=\"elementor elementor-1974\">\n\t\t\t\t<div class=\"elementor-element elementor-element-db36e2f e-flex e-con-boxed e-con e-parent\" data-id=\"db36e2f\" data-element_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-945ff7a elementor-widget elementor-widget-heading\" data-id=\"945ff7a\" data-element_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\">8-Channel  Audio  Mixer<\/h2>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<div class=\"elementor-element elementor-element-f671ccb elementor-widget elementor-widget-heading\" data-id=\"f671ccb\" data-element_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\"> \u00a9 Anders Kisling 2025<\/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-c78e484 e-flex e-con-boxed e-con e-parent\" data-id=\"c78e484\" data-element_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-7581573 e-con-full e-flex e-con e-child\" data-id=\"7581573\" data-element_type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-c5a0657 e-grid e-con-full e-con e-child\" data-id=\"c5a0657\" data-element_type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-cb082e3 e-con-full e-flex e-con e-child\" data-id=\"cb082e3\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-a1f877b e-con-full e-flex e-con e-child\" data-id=\"a1f877b\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-43737be elementor-widget elementor-widget-spacer\" data-id=\"43737be\" data-element_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-c00e03c elementor-widget elementor-widget-text-editor\" data-id=\"c00e03c\" data-element_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<p>Drums<\/p>\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-5896a77 elementor-widget elementor-widget-spacer\" data-id=\"5896a77\" data-element_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<\/div>\n\t\t<div class=\"elementor-element elementor-element-b6ae34e e-con-full e-flex e-con e-child\" data-id=\"b6ae34e\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-58b599e e-con-full e-flex e-con e-child\" data-id=\"58b599e\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1cfcf51 elementor-widget elementor-widget-spacer\" data-id=\"1cfcf51\" data-element_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-99c3164 elementor-widget elementor-widget-text-editor\" data-id=\"99c3164\" data-element_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<p>Bass<\/p>\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-324523c elementor-widget elementor-widget-spacer\" data-id=\"324523c\" data-element_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<\/div>\n\t\t<div class=\"elementor-element elementor-element-1f3c4f8 e-con-full e-flex e-con e-child\" data-id=\"1f3c4f8\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-cf56502 e-con-full e-flex e-con e-child\" data-id=\"cf56502\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8d2f85e elementor-widget elementor-widget-spacer\" data-id=\"8d2f85e\" data-element_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-80d04a8 elementor-widget elementor-widget-text-editor\" data-id=\"80d04a8\" data-element_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<p>Guitars 1<\/p>\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-ea778c8 elementor-widget elementor-widget-spacer\" data-id=\"ea778c8\" data-element_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<\/div>\n\t\t<div class=\"elementor-element elementor-element-4be1791 e-con-full e-flex e-con e-child\" data-id=\"4be1791\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-48c788c e-con-full e-flex e-con e-child\" data-id=\"48c788c\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-1032552 elementor-widget elementor-widget-spacer\" data-id=\"1032552\" data-element_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-081d53b elementor-widget elementor-widget-text-editor\" data-id=\"081d53b\" data-element_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<p>Dub Gtrs<\/p>\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-e8f708a elementor-widget elementor-widget-spacer\" data-id=\"e8f708a\" data-element_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<\/div>\n\t\t<div class=\"elementor-element elementor-element-b7f870c e-con-full e-flex e-con e-child\" data-id=\"b7f870c\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-3a3cd71 e-con-full e-flex e-con e-child\" data-id=\"3a3cd71\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d8d1393 elementor-widget elementor-widget-spacer\" data-id=\"d8d1393\" data-element_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-0824b20 elementor-widget elementor-widget-text-editor\" data-id=\"0824b20\" data-element_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<p>Hammond<\/p>\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-c15726e elementor-widget elementor-widget-spacer\" data-id=\"c15726e\" data-element_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<\/div>\n\t\t<div class=\"elementor-element elementor-element-d4728cb e-con-full e-flex e-con e-child\" data-id=\"d4728cb\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-c1e58cd e-con-full e-flex e-con e-child\" data-id=\"c1e58cd\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-4bfb362 elementor-widget elementor-widget-spacer\" data-id=\"4bfb362\" data-element_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-e3f5331 elementor-widget elementor-widget-text-editor\" data-id=\"e3f5331\" data-element_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<p>Piano<\/p>\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-0ad07da elementor-widget elementor-widget-spacer\" data-id=\"0ad07da\" data-element_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<\/div>\n\t\t<div class=\"elementor-element elementor-element-859a97e e-con-full e-flex e-con e-child\" data-id=\"859a97e\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-0190d81 e-con-full e-flex e-con e-child\" data-id=\"0190d81\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-d322c66 elementor-widget elementor-widget-spacer\" data-id=\"d322c66\" data-element_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-e779dbc elementor-widget elementor-widget-text-editor\" data-id=\"e779dbc\" data-element_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<p>Lead Vokal<\/p>\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-062bf31 elementor-widget elementor-widget-spacer\" data-id=\"062bf31\" data-element_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<\/div>\n\t\t<div class=\"elementor-element elementor-element-32ff682 e-con-full e-flex e-con e-child\" data-id=\"32ff682\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-7300031 e-con-full e-flex e-con e-child\" data-id=\"7300031\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e08c21c elementor-widget elementor-widget-spacer\" data-id=\"e08c21c\" data-element_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-79c5114 elementor-widget elementor-widget-text-editor\" data-id=\"79c5114\" data-element_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<p>Sang Kor<\/p>\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-df1e531 elementor-widget elementor-widget-spacer\" data-id=\"df1e531\" data-element_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<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-b52d17d e-con-full e-flex e-con e-child\" data-id=\"b52d17d\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;classic&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-471ae96 e-grid e-con-full e-con e-child\" data-id=\"471ae96\" data-element_type=\"container\">\n\t\t<div class=\"elementor-element elementor-element-11cbac0 e-con-full e-flex e-con e-child\" data-id=\"11cbac0\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\">\n\t\t<div class=\"elementor-element elementor-element-2c569b0 e-con-full e-flex e-con e-child\" data-id=\"2c569b0\" data-element_type=\"container\" data-settings=\"{&quot;background_background&quot;:&quot;gradient&quot;}\">\n\t\t\t\t<div class=\"elementor-element elementor-element-e40ee66 elementor-widget elementor-widget-spacer\" data-id=\"e40ee66\" data-element_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-383d2ac elementor-widget elementor-widget-text-editor\" data-id=\"383d2ac\" data-element_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<p>MASTER OUTPUT<\/p>\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-b0a61f4 elementor-widget elementor-widget-spacer\" data-id=\"b0a61f4\" data-element_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<\/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-e3fab31 e-flex e-con-boxed e-con e-parent\" data-id=\"e3fab31\" data-element_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-a076911 elementor-widget elementor-widget-html\" data-id=\"a076911\" data-element_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=\"da\">\n<head>\n    <meta charset=\"UTF-8\">\n    <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n    <title>8-Kanals Musik Mixer<\/title>\n    <style>\n        body {\n            font-family: Arial, sans-serif;\n            background-color: #222;\n            margin: 0;\n            padding: 20px;\n            user-select: none;\n        }\n        \n        .mixer-container {\n            display: flex;\n            justify-content: center;\n            gap: 6px;\n            max-width: 1040px;\n            margin: 0 auto;\n        }\n        \n        .channel {\n            width: 120px;\n            height: 590px;\n            background-size: cover;\n            background-position: center;\n            position: relative;\n            display: flex;\n            flex-direction: column;\n            align-items: center;\n            border: 1px solid #1f1f1f;\n            border-radius: 10px;\n            box-shadow: 0 0 7px 2px #000000a9;\n            color: white;\n        }\n        \n        .master-channel {\n    width: 170px;\n    height: 590px;\n    background-image: url('http:\/\/diverse.anderskisling.dk\/wp-content\/uploads\/2025\/04\/masterkanal-bg-64.jpg');\n    background-size: cover;\n    background-position: center;\n    position: relative;\n    border: 1px solid #1f1f1f;\n    border-radius: 10px;\n    box-shadow: 0 0 7px 2px #000000a9;\n    color: white;\n    display: flex;\n    flex-direction: column;\n    align-items: center;\n}\n        .master-channel .fader-track {\n    background: transparent;\n    border: none;\n}\n.master-fader {\n    position: absolute;\n    width: 115px;\n    height: 72px;\n    background-image: url('http:\/\/diverse.anderskisling.dk\/wp-content\/uploads\/2025\/04\/masterknapx5.png'); \/* Din nye master-fader grafik *\/\n    background-size: cover;\n    left: 50%;\n    transform: translateX(-50%);\n    cursor: pointer;\n    z-index: 10;\n}\n        .pan-section {\n            width: 100%;\n            display: flex;\n            flex-direction: column;\n            align-items: center;\n            padding-top: 20px;\n        }\n        \n        .pan-knob {\n            width: 50px;\n            height: 50px;\n            background: radial-gradient(#474747, #ffffff00);\n            border: 1px solid #1f1f1f;\n            border-radius: 50%;\n            position: relative;\n            cursor: pointer;\n            margin-bottom: 10px;\n        }\n        \n        .pan-indicator {\n            position: absolute;\n            width: 3px;\n            height: 23px;\n            background: white;\n            left: 50%;\n            top: 1px;\n            transform-origin: bottom center;\n            transform: translateX(-50%);\n        }\n        \n        .pan-value {\n            width: 40px;\n            height: 20px;\n            background: #111;\n            border: 1px solid #555;\n            border-radius: 5px;\n            text-align: center;\n            line-height: 20px;\n            font-size: 12px;\n        }\n        \n        .fader-section {\n            flex-grow: 1;\n            width: 100%;\n            display: flex;\n            flex-direction: column;\n            align-items: center;\n            position: relative;\n            margin: 20px 0;\n        }\n        \n        .fader-track {\n            width: 8px;\n            height: 310px;\n            background: black;\n            border-radius: 10px;\n            position: relative;\n        }\n        \n       .vu-meter {\n    position: absolute;\n    bottom: 0;\n    width: 100%;\n    background: linear-gradient(to top, green, yellow 80%, orange 95%);\n    height: 0%;\n    max-height: 100%;\n}\n        \n        .fader {\n            position: absolute;\n            width: 104px;\n            height: 72px;\n            background-image: url('http:\/\/diverse.anderskisling.dk\/wp-content\/uploads\/2025\/04\/faderknap-x5.png');\n            background-size: cover;\n            left: 50%;\n            transform: translateX(-50%);\n            cursor: pointer;\n            z-index: 10;\n        }\n        \n        .volume-value {\n            width: 40px;\n            height: 20px;\n            background: #111;\n            border: 1px solid #555;\n            border-radius: 5px;\n            text-align: center;\n            line-height: 20px;\n            font-size: 12px;\n            margin-top: 20px;\n        }\n        \n        .transport-controls {\n            display: flex;\n            justify-content: center;\n            align-items: center;\n            gap: 10px;\n            margin-top: 20px;\n        }\n        \n.transport-button {\n    display: inline-block;\n    width: 40px;\n    height: 40px;\n    background-size: contain;\n    background-repeat: no-repeat;\n    background-position: center;\n    cursor: pointer;\n    border-radius: 100px;\n    box-shadow: 0 0 5px 2px #0000006E;\n    margin: 0 5px;\n    flex-shrink: 0; \/* Forhindrer at elementet krymper *\/\n}\n\n.transport-button:focus {\n    outline: none;\n}\n\n#rewindBtn {\n    background-image: url('http:\/\/diverse.anderskisling.dk\/wp-content\/uploads\/2025\/04\/rev-passiv.png');\n}\n\n#rewindBtn.active {\n    background-image: url('http:\/\/diverse.anderskisling.dk\/wp-content\/uploads\/2025\/04\/rev-aktiv.png');\n}\n\n#playBtn {\n    background-image: url('http:\/\/diverse.anderskisling.dk\/wp-content\/uploads\/2025\/04\/play-passiv.png');\n}\n\n#playBtn.active {\n    background-image: url('http:\/\/diverse.anderskisling.dk\/wp-content\/uploads\/2025\/04\/play-aktiv.png');\n}\n\n#pauseBtn {\n    background-image: url('http:\/\/diverse.anderskisling.dk\/wp-content\/uploads\/2025\/04\/ny-pause1.png');\n}\n\n#pauseBtn.active {\n    background-image: url('http:\/\/diverse.anderskisling.dk\/wp-content\/uploads\/2025\/04\/ny-pause-aktiv.png');\n}\n\n#forwardBtn {\n    background-image: url('http:\/\/diverse.anderskisling.dk\/wp-content\/uploads\/2025\/04\/fwd-passiv.png');\n}\n\n#forwardBtn.active {\n    background-image: url('http:\/\/diverse.anderskisling.dk\/wp-content\/uploads\/2025\/04\/fwd-aktiv.png');\n}\n\n .seekbar-container {\n            width: 57%;\n            height: 10px;\n            background: #000000;\n            border-radius: 10px;\n            overflow: hidden;\n margin-left: 97px;\n            position: relative;\n        }\n        \n        .seekbar {\n            width: 0%;\n            height: 100%;\n            background: #FF8A00;\n            cursor: pointer;\n        }\n        \n        .vu-meter-master {\n            width: 70%;\n            height: 260px;\n            background: #ffffff00;\n            position: relative;\n            margin-top: 10px;\n            border: 1px solid #ffffff00;\n        }\n        \n        .vu-meter-fill-left, .vu-meter-fill-right {\n            position: absolute;\n            bottom: 0;\n            width: 18%;\n            background: linear-gradient(to top, green, yellow 80%, red 95%);\n            height: 0%;\n        }\n        \n        .vu-meter-fill-left {\n            left: 10%;\n        }\n        \n        .vu-meter-fill-right {\n            right: 10%;\n        }\n        \n        .channel-label {\n    background-color: #1a1a1a;\n    border-radius: 0px 0px 12px 12px; \/*  *\/\n    padding: 2px;\n    width: 60%;\n    text-align: center;\n    margin-bottom: 11px;\n    font-size: 13px;\n    color: #dfdfdf;\n}\n\n        .audio-loading {\n            position: fixed;\n            top: 0;\n            left: 0;\n            right: 0;\n            background-color: rgba(0,0,0,0.8);\n            color: white;\n            padding: 10px;\n            text-align: center;\n            z-index: 1000;\n        }\n        \n        \/* Kontrolknapper styling *\/\n        .control-buttons {\n            display: flex;\n            justify-content: center;\n            gap: 10px;\n            margin-top: 0px;\n            margin-bottom: 20px;\n        }\n        \n        .mute-button, .solo-button {\n            width: 32px;\n            height: 32px;\n            background-color: #3a3a3a;\n            border: 1px solid #1f1f1f;\n            border-radius: 50px;\n            cursor: pointer;\n            display: flex;\n            justify-content: center;\n            align-items: center;\n            font-size: 16px;\n            color: #ffffff;\n            user-select: none;\n        }\n\n         .mute-button.active {\n            background-color: #FF8A00;\n            color: white;\n        }\n        \n        .solo-button.active {\n            background-color: #ff1e00;\n            color: white;\n        }\n.transport-container {\n    background-image: url('http:\/\/diverse.anderskisling.dk\/wp-content\/uploads\/2025\/04\/xyz45.jpg');\n    background-size: cover;\n    background-position: center;\n    border-radius: 11px 11px 40px 40px;\n    padding: 15px;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n    margin: 7px auto;\n    width: 100%;\n    max-width: 1044px;\n    height: auto;\n    min-height: 100px;\n    box-shadow: 0 0 7px 2px #000000a9;\n}\n\n.transport-container .transport-controls {\n    margin: 0;\n    width: 100%;\n    display: grid;\n    grid-template-columns: auto 1fr;\n    gap: 80px;\n    align-items: center;\n}\n\/* Audio Timer styling *\/\n.audio-timer {\n    color: #FF8A00;\n    background-color: #ffffff00;\n    border: 1px solid #ffffff00;\n    border-radius: 6px;\n    padding: 6px 10px;\n    font-family: 'Share Tech Mono', monospace;\nfont-size: 24px;\n    min-width: 110px;\n    text-align: center;\n    margin-right: 40px;\n    display: flex;\n    justify-content: center;\n    align-items: center;\n}\n\n.transport-container .transport-controls {\n    margin: 0;\n    width: 100%;\n    display: grid;\n    grid-template-columns: auto 1fr auto;\n    gap: 20px;\n    align-items: center;\n}\n\/* Ny styling for at gruppere transportknapperne *\/\n.transport-buttons-group {\n    display: flex;\n    gap: 10px;\n    justify-content: flex-start;\n    margin-left: 20px; \/* Juster dette for at flytte knapperne l\u00e6ngere mod venstre *\/\n}\n\n\/* Seekbar container forbliver p\u00e5 h\u00f8jre side *\/\n.transport-controls .seekbar-container {\n    justify-self: stretch;\n    margin-right: 20px; \/* Giver lidt afstand til h\u00f8jre kant *\/\n}\n    <\/style>\n<\/head>\n<body>\n    <div id=\"audioLoading\" class=\"audio-loading\">Loader lydkilder... (0\/8)<\/div>\n    \n    <div class=\"mixer-container\" id=\"mixer\">\n        <!-- Channels -->\n    <\/div>\n    \n<!-- Erstat din nuv\u00e6rende transport-controls section med dette: -->\n<div class=\"transport-container\">\n    <div class=\"transport-controls\">\n        <div class=\"transport-buttons-group\">\n            <div class=\"transport-button\" id=\"rewindBtn\"><\/div>\n            <div class=\"transport-button\" id=\"playBtn\"><\/div>\n            <div class=\"transport-button\" id=\"pauseBtn\"><\/div>\n            <div class=\"transport-button\" id=\"forwardBtn\"><\/div>\n        <\/div>\n        <div class=\"seekbar-container\">\n            <div class=\"seekbar\" id=\"seekbar\"><\/div>\n        <\/div>\n        <div class=\"audio-timer\" id=\"audioTimer\">00:00.00<\/div>\n    <\/div>\n<\/div>\n\n<script>\n        \/\/ Audio files\n        const audioFiles = [\n            \"https:\/\/diverse.anderskisling.dk\/wp-content\/uploads\/2025\/04\/reqm-drums.wav\",\n           \"https:\/\/diverse.anderskisling.dk\/wp-content\/uploads\/2025\/04\/reqm-bass.wav\",\n            \"https:\/\/diverse.anderskisling.dk\/wp-content\/uploads\/2025\/04\/reqm-rytme-gtrs.wav\",\n            \"https:\/\/diverse.anderskisling.dk\/wp-content\/uploads\/2025\/04\/reqm-dub-gtrs.wav\",\n            \"https:\/\/diverse.anderskisling.dk\/wp-content\/uploads\/2025\/04\/reqm-hammond.wav\",\n            \"https:\/\/diverse.anderskisling.dk\/wp-content\/uploads\/2025\/04\/reqm-piano.wav\",\n            \"https:\/\/diverse.anderskisling.dk\/wp-content\/uploads\/2025\/04\/reqm-lead-vox.wav\",\n            \"https:\/\/diverse.anderskisling.dk\/wp-content\/uploads\/2025\/04\/reqm-kor.wav\"\n        ];\n\n        \/\/ Create audio context\n        let audioContext;\n        let masterGainNode;\n        let audioSetupComplete = false;\n        \n        \/\/ Arrays to store all audio elements and their nodes\n        const audioElements = [];\n        const gainNodes = [];\n        const panNodes = [];\n        const analyserNodes = [];\n        const muteStates = new Array(8).fill(false); \/\/ Track mute state for each channel\n        const soloStates = new Array(8).fill(false); \/\/ Track solo state for each channel\n        let masterAnalyser;\n        let masterSplitter;\n        let masterLeftAnalyser;\n        let masterRightAnalyser;\n        \n        \/\/ Loading indicator\n        const loadingIndicator = document.getElementById('audioLoading');\n        let loadedFiles = 0;\n\n        \/\/ Create mixer container\n        const mixerContainer = document.getElementById('mixer');\n\n        \/\/ Create 8 channels\n        for (let i = 0; i < 8; i++) {\n            createChannel(i);\n        }\n\n        \/\/ Create master channel\n        createMasterChannel();\n\n        \/\/ Preload all audio files\n        preloadAudioFiles();\n\n        function preloadAudioFiles() {\n            audioFiles.forEach((file, index) => {\n                const audio = new Audio();\n                audio.addEventListener('canplaythrough', () => {\n                    loadedFiles++;\n                    loadingIndicator.textContent = `Loader lydkilder... (${loadedFiles}\/8)`;\n                    \n                    if (loadedFiles === audioFiles.length) {\n                        loadingIndicator.style.display = 'none';\n                        initializeAudioSystem();\n                    }\n                });\n                audio.addEventListener('error', () => {\n                    console.error(`Fejl ved indl\u00e6sning af lydfil: ${file}`);\n                    loadingIndicator.textContent = `Fejl ved indl\u00e6sning af lydfil: ${file}`;\n                });\n                audio.src = file;\n                audio.preload = 'auto';\n                audio.loop = true;\n                audioElements.push(audio);\n            });\n        }\n\n        \/\/ Initialize audio system after user interaction\n        function initializeAudioSystem() {\n            if (audioSetupComplete) return;\n            \n            try {\n                \/\/ Create audio context\n                const AudioContext = window.AudioContext || window.webkitAudioContext;\n                audioContext = new AudioContext();\n                \n                \/\/ Create master gain node\n                masterGainNode = audioContext.createGain();\n                masterGainNode.gain.value = 0.6; \/\/ Default til 60%\n                \n                \/\/ Create channel splitter for stereo visualization\n                masterSplitter = audioContext.createChannelSplitter(2);\n                masterLeftAnalyser = audioContext.createAnalyser();\n                masterRightAnalyser = audioContext.createAnalyser();\n                masterLeftAnalyser.fftSize = 256;\n                masterRightAnalyser.fftSize = 256;\n                \n                \/\/ Connect master chain\n                masterGainNode.connect(masterSplitter);\n                masterSplitter.connect(masterLeftAnalyser, 0);\n                masterSplitter.connect(masterRightAnalyser, 1);\n                masterGainNode.connect(audioContext.destination);\n                \n                \/\/ Setup audio graph for each channel\n                audioElements.forEach((audio, index) => {\n                    const source = audioContext.createMediaElementSource(audio);\n                    \n                    \/\/ Create pan node\n                    const panNode = audioContext.createStereoPanner();\n                    panNodes.push(panNode);\n                    source.connect(panNode);\n                    \n                    \/\/ Create gain node\n                    const gainNode = audioContext.createGain();\n                    gainNode.gain.value = 0.6; \/\/ Default til 60%\n                    gainNodes.push(gainNode);\n                    panNode.connect(gainNode);\n                    \n                    \/\/ Create analyser node for VU meter\n                    const analyserNode = audioContext.createAnalyser();\n                    analyserNode.fftSize = 32;\n                    gainNode.connect(analyserNode);\n                    analyserNodes.push(analyserNode);\n                    \n                    \/\/ Connect to master\n                    gainNode.connect(masterGainNode);\n                });\n                \n                audioSetupComplete = true;\n                console.log(\"Audio system initialized successfully\");\n                \n                \/\/ Start all VU meter animations\n                startAllVUAnimations();\n                \n            } catch (error) {\n                console.error(\"Error initializing audio system:\", error);\n                loadingIndicator.textContent = `Fejl ved initialisering af lydsystem: ${error.message}`;\n                loadingIndicator.style.display = 'block';\n            }\n        }\n\n        function createChannel(index) {\n            const channel = document.createElement('div');\n            channel.className = 'channel';\n            channel.style.backgroundImage = `url('http:\/\/diverse.anderskisling.dk\/wp-content\/uploads\/2025\/04\/alm-kanal73.jpg')`;\n            \n            \/\/ Channel label\n            const label = document.createElement('div');\n            label.className = 'channel-label';\n            label.textContent = ` ${index + 1}`;\n            channel.appendChild(label);\n            \n            \/\/ Pan section\n            const panSection = document.createElement('div');\n            panSection.className = 'pan-section';\n            \n            const panKnob = document.createElement('div');\n            panKnob.className = 'pan-knob';\n            panKnob.dataset.channelIndex = index;\n            \n            const panIndicator = document.createElement('div');\n            panIndicator.className = 'pan-indicator';\n            panKnob.appendChild(panIndicator);\n            \n            const panValue = document.createElement('div');\n            panValue.className = 'pan-value';\n            panValue.textContent = '0';\n            \n            panSection.appendChild(panKnob);\n            panSection.appendChild(panValue);\n            channel.appendChild(panSection);\n            \n            \/\/ Fader section\n            const faderSection = document.createElement('div');\n            faderSection.className = 'fader-section';\n            \n            const faderTrack = document.createElement('div');\n            faderTrack.className = 'fader-track';\n            \n            const vuMeter = document.createElement('div');\n            vuMeter.className = 'vu-meter';\n            vuMeter.dataset.channelIndex = index;\n            faderTrack.appendChild(vuMeter);\n            \n            const fader = document.createElement('div');\n            fader.className = 'fader';\n            fader.dataset.channelIndex = index;\n            \n            const volumeValue = document.createElement('div');\n            volumeValue.className = 'volume-value';\n            volumeValue.textContent = '60'; \/\/ Default volumen v\u00e6rdi vises som 60\n            \n            faderSection.appendChild(faderTrack);\n            faderSection.appendChild(fader);\n            faderSection.appendChild(volumeValue);\n            channel.appendChild(faderSection);\n            \n            \/\/ Tilf\u00f8j kontrolknapper container\n            const controlButtons = document.createElement('div');\n            controlButtons.className = 'control-buttons';\n            \n            \/\/ Tilf\u00f8j mute knap\n            const muteButton = document.createElement('div');\n            muteButton.className = 'mute-button';\n            muteButton.textContent = 'M';\n            muteButton.dataset.channelIndex = index;\n            muteButton.dataset.muted = 'false';\n            controlButtons.appendChild(muteButton);\n            \n            \/\/ Tilf\u00f8j solo knap\n            const soloButton = document.createElement('div');\n            soloButton.className = 'solo-button';\n            soloButton.textContent = 'S';\n            soloButton.dataset.channelIndex = index;\n            soloButton.dataset.solo = 'false';\n            controlButtons.appendChild(soloButton);\n            \n            channel.appendChild(controlButtons);\n            \n            mixerContainer.appendChild(channel);\n            \n            \/\/ Setup pan knob interaction\n            setupPanKnob(panKnob, panIndicator, panValue, index);\n            \n            \/\/ Setup fader interaction\n            setupFader(fader, volumeValue, vuMeter, index);\n            \n            \/\/ Setup mute button interaction\n            setupMuteButton(muteButton, index);\n            \n            \/\/ Setup solo button interaction\n            setupSoloButton(soloButton, index);\n        }\n\n        function createMasterChannel() {\n            const masterChannel = document.createElement('div');\n            masterChannel.className = 'master-channel';\n            \n            \/\/ Channel label\n            const label = document.createElement('div');\n            label.className = 'channel-label';\n            label.textContent = 'Master';\n            masterChannel.appendChild(label);\n            \n            \/\/ Master VU meter\n            const vuMeter = document.createElement('div');\n            vuMeter.className = 'vu-meter-master';\n            \n            const vuMeterLeft = document.createElement('div');\n            vuMeterLeft.className = 'vu-meter-fill-left';\n            vuMeter.appendChild(vuMeterLeft);\n            \n            const vuMeterRight = document.createElement('div');\n            vuMeterRight.className = 'vu-meter-fill-right';\n            vuMeter.appendChild(vuMeterRight);\n            \n            masterChannel.appendChild(vuMeter);\n            \n            \/\/ Master fader section\n            const faderSection = document.createElement('div');\n            faderSection.className = 'fader-section';\n            \n            const faderTrack = document.createElement('div');\n            faderTrack.className = 'fader-track';\n            \n            const fader = document.createElement('div');\n            fader.className = 'master-fader';\n            \n            const volumeValue = document.createElement('div');\n            volumeValue.className = 'volume-value';\n            volumeValue.textContent = '60'; \/\/ Default volumen v\u00e6rdi vises som 60\n            \n            faderSection.appendChild(faderTrack);\n            faderSection.appendChild(fader);\n            faderSection.appendChild(volumeValue);\n            masterChannel.appendChild(faderSection);\n            \n            mixerContainer.appendChild(masterChannel);\n            \n            \/\/ Setup master fader interaction\n            setupMasterFader(fader, volumeValue, vuMeterLeft, vuMeterRight);\n        }\n        \n        function setupMuteButton(button, index) {\n            button.addEventListener('click', () => {\n                \/\/ Toggle mute state\n                muteStates[index] = !muteStates[index];\n                \n                \/\/ Update button appearance\n                if (muteStates[index]) {\n                    button.classList.add('active');\n                    button.dataset.muted = 'true';\n                } else {\n                    button.classList.remove('active');\n                    button.dataset.muted = 'false';\n                }\n                \n                \/\/ Update channel states based on solo and mute settings\n                updateChannelGainStates();\n                \n                \/\/ Sikrer at lydsystemet er initialiseret ved f\u00f8rste interaktion\n                if (!audioSetupComplete) {\n                    initializeAudioSystem();\n                }\n            });\n        }\n        \n        function setupSoloButton(button, index) {\n            button.addEventListener('click', () => {\n                \/\/ Toggle solo state\n                soloStates[index] = !soloStates[index];\n                \n                \/\/ Update button appearance\n                if (soloStates[index]) {\n                    button.classList.add('active');\n                    button.dataset.solo = 'true';\n                } else {\n                    button.classList.remove('active');\n                    button.dataset.solo = 'false';\n                }\n                \n                \/\/ Update channel states based on solo and mute settings\n                updateChannelGainStates();\n                \n                \/\/ Sikrer at lydsystemet er initialiseret ved f\u00f8rste interaktion\n                if (!audioSetupComplete) {\n                    initializeAudioSystem();\n                }\n            });\n        }\n        \n        function updateChannelGainStates() {\n            if (!audioSetupComplete) return;\n            \n            \/\/ Check if any channel is soloed\n            const isSoloActive = soloStates.some(state => state === true);\n            \n            \/\/ Update each channel's gain based on mute\/solo status\n            gainNodes.forEach((gainNode, i) => {\n                const volumeDisplay = document.querySelectorAll('.volume-value')[i];\n                const volumeValue = parseInt(volumeDisplay.textContent);\n                \n                if (isSoloActive) {\n                    \/\/ Solo mode aktivt - afspil kun soloede kanaler\n                    if (soloStates[i]) {\n                        \/\/ Denne kanal er soloed, s\u00e5 afspil den medmindre den ogs\u00e5 er muted\n                        gainNode.gain.value = muteStates[i] ? 0 : volumeValue \/ 100;\n                    } else {\n                        \/\/ Denne kanal er ikke soloed, s\u00e5 mute den\n                        gainNode.gain.value = 0;\n                    }\n                } else {\n                    \/\/ Ingen solo aktiv - normal funktion med mute knappen\n                    gainNode.gain.value = muteStates[i] ? 0 : volumeValue \/ 100;\n                }\n            });\n        }\n\n        function setupPanKnob(knob, indicator, valueDisplay, index) {\n            let isDragging = false;\n            let startY = 0;\n            let currentValue = 0;\n            \n            knob.addEventListener('mousedown', (e) => {\n                isDragging = true;\n                startY = e.clientY;\n                document.addEventListener('mousemove', handleMouseMove);\n                document.addEventListener('mouseup', () => {\n                    isDragging = false;\n                    document.removeEventListener('mousemove', handleMouseMove);\n                });\n            });\n            \n            function handleMouseMove(e) {\n                if (!isDragging) return;\n                \n                const deltaY = startY - e.clientY;\n                startY = e.clientY;\n                \n                \/\/ Update value based on mouse movement (up = positive, down = negative)\n                currentValue = Math.max(-99, Math.min(99, currentValue + Math.round(deltaY \/ 2)));\n                \n                \/\/ Update display and indicator\n                valueDisplay.textContent = currentValue === 0 ? '0' : (currentValue > 0 ? '+' + currentValue : currentValue);\n                indicator.style.transform = `translateX(-50%) rotate(${currentValue * 1.34}deg)`;\n                \n                \/\/ Update pan value in Web Audio API\n                if (panNodes[index] && audioSetupComplete) {\n                    panNodes[index].pan.value = currentValue \/ 99;\n                }\n            }\n        }\n\n        function setupFader(fader, valueDisplay, vuMeter, index) {\n            let isDragging = false;\n            let startY = 0;\n            \/\/ Beregn default position for 60% volumen (40% fra toppen af tracket)\n            const trackHeight = 256; \/\/ H\u00f8jden af fader-track\n            let top = trackHeight * 0.4; \/\/ 40% fra toppen = 60% volumen\n            \n            \/\/ Funktion til at opdatere faderen visuelt og s\u00e6tte lydv\u00e6rdien\n            function updateFaderPosition() {\n                \/\/ Sikrer at faderen forbliver inden for tracket\n                top = Math.max(0, Math.min(trackHeight, top));\n                fader.style.top = `${top}px`;\n                \n                \/\/ Beregn volumen (0-100) baseret p\u00e5 position (0=top=max volumen, 256=bund=min volumen)\n                const volumeValue = Math.round(((trackHeight - top) \/ trackHeight) * 100);\n                valueDisplay.textContent = volumeValue;\n                \n                \/\/ Opdater gain v\u00e6rdi i Web Audio API, baseret p\u00e5 kanalens mute\/solo status\n                if (gainNodes[index] && audioSetupComplete) {\n                    \/\/ Tjek om solo tilstand er aktiv i systemet\n                    const isSoloActive = soloStates.some(state => state === true);\n                    \n                    if (isSoloActive) {\n                        \/\/ Solo tilstand er aktiv\n                        if (soloStates[index] && !muteStates[index]) {\n                            \/\/ Denne kanal er soloed og ikke muted\n                            gainNodes[index].gain.value = volumeValue \/ 100;\n                        } else {\n                            \/\/ Kanalen er ikke soloed eller er muted\n                            gainNodes[index].gain.value = 0;\n                        }\n                    } else {\n                        \/\/ Normal tilstand - kun mute p\u00e5virker lyden\n                        if (!muteStates[index]) {\n                            gainNodes[index].gain.value = volumeValue \/ 100;\n                        }\n                    }\n                }\n            }\n            \n            \/\/ Initialiser faderen med 60% volumen\n            updateFaderPosition();\n            \n            fader.addEventListener('mousedown', (e) => {\n                isDragging = true;\n                startY = e.clientY;\n                document.addEventListener('mousemove', handleMouseMove);\n                document.addEventListener('mouseup', () => {\n                    isDragging = false;\n                    document.removeEventListener('mousemove', handleMouseMove);\n                });\n                e.preventDefault();\n                \n                \/\/ Sikrer at lydsystemet er initialiseret ved f\u00f8rste interaktion\n                if (!audioSetupComplete) {\n                    initializeAudioSystem();\n                }\n            });\n            \n            function handleMouseMove(e) {\n                if (!isDragging) return;\n                \n                const deltaY = e.clientY - startY;\n                startY = e.clientY;\n                \n                \/\/ Opdater position\n                top += deltaY;\n                updateFaderPosition();\n            }\n        }\n\n        function setupMasterFader(fader, volumeValue, vuMeterLeft, vuMeterRight) {\n            let isDragging = false;\n            let startY = 0;\n            \/\/ Beregn default position for 60% volumen (40% fra toppen af tracket)\n            const trackHeight = 256; \/\/ H\u00f8jden af fader-track\n            let top = trackHeight * 0.4; \/\/ 40% fra toppen = 60% volumen\n            \n            \/\/ Funktion til at opdatere faderen visuelt og s\u00e6tte lydv\u00e6rdien\n            function updateFaderPosition() {\n                \/\/ Sikrer at faderen forbliver inden for tracket\n                top = Math.max(0, Math.min(trackHeight, top));\n                fader.style.top = `${top}px`;\n                \n                \/\/ Beregn volumen (0-100) baseret p\u00e5 position (0=top=max volumen, 256=bund=min volumen)\n                const masterVolume = Math.round(((trackHeight - top) \/ trackHeight) * 100);\n                volumeValue.textContent = masterVolume;\n                \n                \/\/ Opdater master gain v\u00e6rdi i Web Audio API\n                if (masterGainNode && audioSetupComplete) {\n                    masterGainNode.gain.value = masterVolume \/ 100;\n                }\n            }\n            \n            \/\/ Initialiser faderen med 60% volumen\n            updateFaderPosition();\n            \n            fader.addEventListener('mousedown', (e) => {\n                isDragging = true;\n                startY = e.clientY;\n                document.addEventListener('mousemove', handleMouseMove);\n                document.addEventListener('mouseup', () => {\n                    isDragging = false;\n                    document.removeEventListener('mousemove', handleMouseMove);\n                });\n                e.preventDefault();\n                \n                \/\/ Sikrer at lydsystemet er initialiseret ved f\u00f8rste interaktion\n                if (!audioSetupComplete) {\n                    initializeAudioSystem();\n                }\n            });\n            \n            function handleMouseMove(e) {\n                if (!isDragging) return;\n                \n                const deltaY = e.clientY - startY;\n                startY = e.clientY;\n                \n                \/\/ Opdater position\n                top += deltaY;\n                updateFaderPosition();\n            }\n        }\n\n        function startAllVUAnimations() {\n            \/\/ Start individual channel VU animations\n            document.querySelectorAll('.vu-meter').forEach((meter) => {\n                const index = parseInt(meter.dataset.channelIndex);\n                if (analyserNodes[index]) {\n                    animateChannelVU(meter, index);\n                }\n            });\n            \n            \/\/ Start master VU animation\n            const vuMeterLeft = document.querySelector('.vu-meter-fill-left');\n            const vuMeterRight = document.querySelector('.vu-meter-fill-right');\n            if (masterLeftAnalyser && masterRightAnalyser && vuMeterLeft && vuMeterRight) {\n                animateMasterVU(vuMeterLeft, vuMeterRight);\n            }\n        }\n\n        function animateChannelVU(vuMeter, index) {\n            if (!analyserNodes[index] || !audioSetupComplete) return;\n            \n            const bufferLength = analyserNodes[index].frequencyBinCount;\n            const dataArray = new Uint8Array(bufferLength);\n            \n            function animate() {\n                analyserNodes[index].getByteFrequencyData(dataArray);\n                \n                \/\/ Calculate average volume\n                let sum = 0;\n                for (let i = 0; i < bufferLength; i++) {\n                    sum += dataArray[i];\n                }\n                const average = sum \/ bufferLength;\n                \n                \/\/ Update VU meter height\n                vuMeter.style.height = `${(average \/ 256 * 100) * 1.4}%`;\n                \n                requestAnimationFrame(animate);\n            }\n            \n            animate();\n        }\n\n        function animateMasterVU(vuMeterLeft, vuMeterRight) {\n            if (!masterLeftAnalyser || !masterRightAnalyser || !audioSetupComplete) return;\n            \n            const bufferLengthLeft = masterLeftAnalyser.frequencyBinCount;\n            const bufferLengthRight = masterRightAnalyser.frequencyBinCount;\n            const dataArrayLeft = new Uint8Array(bufferLengthLeft);\n            const dataArrayRight = new Uint8Array(bufferLengthRight);\n            \n            function animate() {\n                masterLeftAnalyser.getByteFrequencyData(dataArrayLeft);\n                masterRightAnalyser.getByteFrequencyData(dataArrayRight);\n                \n                \/\/ Calculate average volume for left and right channels\n                let sumLeft = 0;\n                let sumRight = 0;\n                \n                for (let i = 0; i < bufferLengthLeft; i++) {\n                    sumLeft += dataArrayLeft[i];\n                }\n                \n                for (let i = 0; i < bufferLengthRight; i++) {\n                    sumRight += dataArrayRight[i];\n                }\n                \n                const averageLeft = sumLeft \/ bufferLengthLeft;\n                const averageRight = sumRight \/ bufferLengthRight;\n                \n\/\/ Update VU meter heights\n              vuMeterLeft.style.height = `${(averageLeft \/ 256 * 100) * 1.2}%`;\nvuMeterRight.style.height = `${(averageRight \/ 256 * 100) * 1.2}%`;\n                \n                requestAnimationFrame(animate);\n            }\n            \n            animate();\n        }\n\n        \/\/ Transport controls\n        const playBtn = document.getElementById('playBtn');\n        const pauseBtn = document.getElementById('pauseBtn');\n        const rewindBtn = document.getElementById('rewindBtn');\n        const forwardBtn = document.getElementById('forwardBtn');\n        const seekbar = document.getElementById('seekbar');\n        \n        let isPlaying = false;\n        \n        playBtn.addEventListener('click', () => {\n    \/\/ Ensure audio is initialized on first play\n    if (!audioSetupComplete) {\n        initializeAudioSystem();\n    }\n    \n    if (audioSetupComplete) {\n        if (!isPlaying) {\n            \/\/ Start afspilning\n            audioContext.resume().then(() => {\n                audioElements.forEach(audio => {\n                    let playPromise = audio.play();\n                    \n                    if (playPromise !== undefined) {\n                        playPromise.catch(error => {\n                            console.error(\"Afspilningsfejl:\", error);\n                            loadingIndicator.textContent = \"Fejl ved afspilning: \" + error.message;\n                            loadingIndicator.style.display = 'block';\n                            setTimeout(() => {\n                                loadingIndicator.style.display = 'none';\n                            }, 3000);\n                        });\n                    }\n                });\n                isPlaying = true;\n                \n                \/\/ Opdater knappernes udseende\n                playBtn.classList.add('active');\n                pauseBtn.classList.remove('active');\n                \n                updateSeekbar();\n            }).catch(error => {\n                console.error(\"Fejl ved genoptag af AudioContext:\", error);\n            });\n        } else {\n            \/\/ Pause afspilning (g\u00f8r det samme som pause-knappen)\n            audioElements.forEach(audio => {\n                audio.pause();\n            });\n            isPlaying = false;\n            \n            \/\/ Opdater knappernes udseende\n            playBtn.classList.remove('active');\n            pauseBtn.classList.add('active');\n        }\n    }\n});\n\npauseBtn.addEventListener('click', () => {\n    if (isPlaying) {\n        audioElements.forEach(audio => {\n            audio.pause();\n        });\n        isPlaying = false;\n        \n        \/\/ Opdater knappernes udseende\n        playBtn.classList.remove('active');\n        pauseBtn.classList.add('active');\n    }\n});\n\nrewindBtn.addEventListener('click', () => {\n    \/\/ Tilf\u00f8j en kort aktiv effekt\n    rewindBtn.classList.add('active');\n    setTimeout(() => {\n        rewindBtn.classList.remove('active');\n    }, 300);\n    \n    audioElements.forEach(audio => {\n        audio.currentTime = Math.max(0, audio.currentTime - 5);\n    });\n});\n\nforwardBtn.addEventListener('click', () => {\n    \/\/ Tilf\u00f8j en kort aktiv effekt\n    forwardBtn.classList.add('active');\n    setTimeout(() => {\n        forwardBtn.classList.remove('active');\n    }, 300);\n    \n    audioElements.forEach(audio => {\n        audio.currentTime = Math.min(audio.duration || 0, audio.currentTime + 5);\n    });\n});\n\n pauseBtn.addEventListener('click', () => {\n            if (isPlaying) {\n                audioElements.forEach(audio => {\n                    audio.pause();\n                });\n                isPlaying = false;\n            }\n        });\n        \n        rewindBtn.addEventListener('click', () => {\n            audioElements.forEach(audio => {\n                audio.currentTime = Math.max(0, audio.currentTime - 5);\n            });\n        });\n        \n        forwardBtn.addEventListener('click', () => {\n            audioElements.forEach(audio => {\n                audio.currentTime = Math.min(audio.duration || 0, audio.currentTime + 5);\n            });\n        });\n      \/\/ Tilf\u00f8j event listener til mellemrumstasten\ndocument.addEventListener('keydown', function(event) {\n    \/\/ Tjek om det er mellemrumstasten (kode 32)\n    if (event.keyCode === 32 || event.key === ' ') {\n        \/\/ Forhindrer standard adf\u00e6rd (f.eks. scrolling)\n        event.preventDefault();\n        \n        \/\/ Sikrer at lydsystemet er initialiseret\n        if (!audioSetupComplete) {\n            initializeAudioSystem();\n        }\n        \n        if (audioSetupComplete) {\n            if (!isPlaying) {\n                \/\/ Start afspilning\n                audioContext.resume().then(() => {\n                    audioElements.forEach(audio => {\n                        let playPromise = audio.play();\n                        \n                        if (playPromise !== undefined) {\n                            playPromise.catch(error => {\n                                console.error(\"Afspilningsfejl:\", error);\n                                loadingIndicator.textContent = \"Fejl ved afspilning: \" + error.message;\n                                loadingIndicator.style.display = 'block';\n                                setTimeout(() => {\n                                    loadingIndicator.style.display = 'none';\n                                }, 3000);\n                            });\n                        }\n                    });\n                    isPlaying = true;\n                    \n                    \/\/ Opdater knappernes udseende\n                    playBtn.classList.add('active');\n                    pauseBtn.classList.remove('active');\n                    \n                    updateSeekbar();\n                    updateTimer(); \/\/ Tilf\u00f8j dette for at starte timeren\n                }).catch(error => {\n                    console.error(\"Fejl ved genoptag af AudioContext:\", error);\n                });\n            } else {\n                \/\/ Pause afspilning\n                audioElements.forEach(audio => {\n                    audio.pause();\n                });\n                isPlaying = false;\n                \n                \/\/ Opdater knappernes udseende\n                playBtn.classList.remove('active');\n                pauseBtn.classList.add('active');\n            }\n        }\n    }\n});\n        function updateSeekbar() {\n            if (!isPlaying || !audioElements[0]) return;\n            \n            if (audioElements[0].duration) {\n                const progress = (audioElements[0].currentTime \/ audioElements[0].duration) * 100;\n                seekbar.style.width = `${progress}%`;\n            }\n            \n            requestAnimationFrame(updateSeekbar);\n        }\n        \n        \/\/ Handle seekbar click\n        const seekbarContainer = document.querySelector('.seekbar-container');\n        seekbarContainer.addEventListener('click', (e) => {\n            const rect = seekbarContainer.getBoundingClientRect();\n            const clickPosition = (e.clientX - rect.left) \/ rect.width;\n            \n            audioElements.forEach(audio => {\n                if (audio.duration) {\n                    audio.currentTime = clickPosition * audio.duration;\n                }\n            });\n        });\n\n        \/\/ Initialize on any interaction\n        document.addEventListener('click', function initOnInteraction() {\n            if (!audioSetupComplete) {\n                initializeAudioSystem();\n            }\n        }, { once: false });\n        \n        \/\/ Korrekt positionering af fadere \n        window.addEventListener('DOMContentLoaded', () => {\n            \/\/ Vent p\u00e5 at tracket er renderet, og juster derefter faderen\n            setTimeout(() => {\n                const faders = document.querySelectorAll('.fader');\n                const faderTracks = document.querySelectorAll('.fader-track');\n                \n                faders.forEach((fader, index) => {\n                    \/\/ F\u00e5 den aktuelle track h\u00f8jde \n                    const trackHeight = faderTracks[index] ? faderTracks[index].offsetHeight : 256;\n                    \/\/ S\u00e6t faderen til 40% fra toppen (60% volumen)\n                    fader.style.top = trackHeight * 0.4 + 'px';\n                });\n            }, 100);\n        });\n       function updateTimer() {\n    if (!isPlaying || !audioElements[0]) return;\n    \n    const audioTimer = document.getElementById('audioTimer');\n    const currentTime = audioElements[0].currentTime || 0;\n    \n    \/\/ Formatering af tid: minutter:sekunder.hundrededele\n    const minutes = Math.floor(currentTime \/ 60);\n    const seconds = Math.floor(currentTime % 60);\n    const hundredths = Math.floor((currentTime % 1) * 100);\n    \n    \/\/ Format\u00e9r med leading zeros\n    const formattedTime = `${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}.${hundredths.toString().padStart(2, '0')}`;\n    \n    audioTimer.textContent = formattedTime;\n    \n    requestAnimationFrame(updateTimer);\n}\n\n\/\/ Opdater updateSeekbar funktionen for at ogs\u00e5 starte timeren\nfunction updateSeekbar() {\n    if (!isPlaying || !audioElements[0]) return;\n    \n    if (audioElements[0].duration) {\n        const progress = (audioElements[0].currentTime \/ audioElements[0].duration) * 100;\n        seekbar.style.width = `${progress}%`;\n    }\n    \n    requestAnimationFrame(updateSeekbar);\n}\n\n\/\/ Start timeren n\u00e5r afspilningen starter\nplayBtn.addEventListener('click', () => {\n    \/\/ (eksisterende kode for play knappen)\n    \n    \/\/ Tilf\u00f8j dette i din eksisterende play-knap event handler\n    if (isPlaying) {\n        updateTimer();\n    }\n});\n\nif (isPlaying) {\n    updateTimer();\n} \n    <\/script>\n<\/body>\n<\/html>\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>8-Channel Audio Mixer \u00a9 Anders Kisling 2025 Drums Bass Guitars 1 Dub Gtrs Hammond Piano Lead Vokal Sang Kor MASTER OUTPUT 8-Kanals Musik Mixer Loader lydkilder&#8230; (0\/8) 00:00.00<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"inline_featured_image":false,"_kad_post_transparent":"","_kad_post_title":"hide","_kad_post_layout":"fullwidth","_kad_post_sidebar_id":"","_kad_post_content_style":"unboxed","_kad_post_vertical_padding":"hide","_kad_post_feature":"hide","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"footnotes":""},"class_list":["post-1974","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/diverse.anderskisling.dk\/index.php\/wp-json\/wp\/v2\/pages\/1974","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/diverse.anderskisling.dk\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/diverse.anderskisling.dk\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/diverse.anderskisling.dk\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/diverse.anderskisling.dk\/index.php\/wp-json\/wp\/v2\/comments?post=1974"}],"version-history":[{"count":15,"href":"https:\/\/diverse.anderskisling.dk\/index.php\/wp-json\/wp\/v2\/pages\/1974\/revisions"}],"predecessor-version":[{"id":18486,"href":"https:\/\/diverse.anderskisling.dk\/index.php\/wp-json\/wp\/v2\/pages\/1974\/revisions\/18486"}],"wp:attachment":[{"href":"https:\/\/diverse.anderskisling.dk\/index.php\/wp-json\/wp\/v2\/media?parent=1974"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}