{"product_id":"cd-e-gmuetlichi-rundi","title":"CD «E gmüetlichi Rundi»","description":"\u003cp\u003e\u003cmeta charset=\"utf-8\"\u003e\u003cem\u003eÄchti, handgmachti Ländlermusig:\u003cspan\u003e \u003c\/span\u003e\u003c\/em\u003e\u003cspan\u003eDie vier befreundeten Jungformationen \u003c\/span\u003e\u003cstrong\u003eEcho vom Tüetlisberg\u003c\/strong\u003e\u003cspan\u003e, das \u003c\/span\u003e\u003cstrong\u003eLändlertrio Bruno, Patrick und Marlen\u003c\/strong\u003e\u003cspan\u003e, das \u003c\/span\u003e\u003cstrong\u003eLändlerquartett Bertschinger-Zemp\u003c\/strong\u003e\u003cspan\u003e sowie das Handorgelduo \u003c\/span\u003e\u003cstrong\u003eÄcht Heimelig\u003c\/strong\u003e\u003cspan\u003e lieben die alte Musik von früher. Genau dieser bodenständige Stil haben sie nun gemeinsam auf einem Tonträger verewigt. Das Besondere: Die Aufnahmen sind authentisch und unverfälscht – beim Hören hat man das Gefühl, selbst ein Teil der gemütlichen Runde zu sein! Initiant ist Patrick Bertschinger, eine aufsteigende Kapazität der traditionellen Schweizer Volksmusikszene, welcher in allen vier Formationen mitwirkt. Viel Spass mit dieser wunderbaren CD!\u003c\/span\u003e\u003c\/p\u003e\n\n\u003cdiv id=\"cd-player\"\u003e\n  \u003cbutton class=\"cd-toggle\" type=\"button\" aria-expanded=\"false\" aria-controls=\"cd-content\"\u003e\n    \u003cspan class=\"cd-heading\"\u003e\n      \u003cspan class=\"cd-title\"\u003e🎵 Hörproben\u003c\/span\u003e\n      \u003cspan class=\"cd-description\"\u003e\n        Höre in die Titel der CD hinein.\n      \u003c\/span\u003e\n    \u003c\/span\u003e\n\n    \u003csvg class=\"cd-chevron\" viewbox=\"0 0 24 24\" width=\"16\" height=\"16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" aria-hidden=\"true\"\u003e\n      \u003cpath d=\"m6 9 6 6 6-6\"\u003e\u003c\/path\u003e\n    \u003c\/svg\u003e\n  \u003c\/button\u003e\n\n  \u003cdiv id=\"cd-content\" class=\"cd-content\" hidden\u003e\n    \u003cdiv class=\"cd-tracks\"\u003e\u003c\/div\u003e\n  \u003c\/div\u003e\n\u003c\/div\u003e\n\n\u003cstyle\u003e\n\/* Äussere Box – neutrales Hellgrau *\/\n#cd-player {\n  font-family: inherit;\n  display: block !important;\n  height: auto !important;\n  min-height: 0 !important;\n  max-height: none !important;\n  margin: 8px 0 !important;\n  padding: 10px 12px !important;\n  background: #F7F7F7;\n  border: 1px solid #E5E5E5;\n  border-radius: 12px;\n  color: #292929;\n}\n\n#cd-player * {\n  box-sizing: border-box;\n}\n\n\/* Aufklappbarer Titel *\/\n#cd-player .cd-toggle {\n  appearance: none;\n  -webkit-appearance: none;\n  display: flex !important;\n  flex-direction: row !important;\n  align-items: center !important;\n  justify-content: space-between !important;\n  gap: 10px !important;\n  width: 100% !important;\n  height: auto !important;\n  min-height: 0 !important;\n  max-height: none !important;\n  margin: 0 !important;\n  padding: 0 !important;\n  border: 0 !important;\n  border-radius: 0 !important;\n  background: transparent !important;\n  box-shadow: none !important;\n  color: inherit !important;\n  text-align: left !important;\n  cursor: pointer;\n  text-transform: none !important;\n  letter-spacing: normal !important;\n  line-height: normal !important;\n}\n\n\/* Titel und Beschreibung *\/\n#cd-player .cd-heading {\n  display: flex !important;\n  flex-direction: column !important;\n  align-items: flex-start !important;\n  justify-content: center !important;\n  gap: 2px !important;\n  width: auto !important;\n  min-width: 0;\n  height: auto !important;\n  min-height: 0 !important;\n  margin: 0 !important;\n  padding: 0 !important;\n}\n\n\/* Titel fett *\/\n#cd-player .cd-title {\n  display: block !important;\n  font-size: 16px !important;\n  font-weight: 700 !important;\n  line-height: 1.2 !important;\n  letter-spacing: 0 !important;\n  text-transform: none !important;\n  margin: 0 !important;\n  padding: 0 !important;\n}\n\n#cd-player .cd-description {\n  display: block !important;\n  font-size: 12px !important;\n  font-weight: 400 !important;\n  line-height: 1.3 !important;\n  color: #777777 !important;\n  margin: 0 !important;\n  padding: 0 !important;\n}\n\n\/* Aufklapp-Pfeil *\/\n#cd-player .cd-chevron {\n  display: block !important;\n  flex: 0 0 16px !important;\n  width: 16px !important;\n  height: 16px !important;\n  min-width: 16px !important;\n  min-height: 16px !important;\n  margin: 0 !important;\n  padding: 0 !important;\n  transition: transform 0.25s ease;\n}\n\n#cd-player .cd-toggle[aria-expanded=\"true\"] .cd-chevron {\n  transform: rotate(180deg);\n}\n\n\/* Aufgeklappter Inhalt *\/\n#cd-player .cd-content {\n  padding-top: 12px;\n}\n\n#cd-player .cd-content[hidden] {\n  display: none !important;\n}\n\n\/* Einzelne Hörproben *\/\n#cd-player .track {\n  background: #FFFFFF;\n  border: 1px solid #EAEAEA;\n  border-radius: 9px;\n  padding: 10px 12px;\n  margin-bottom: 7px;\n}\n\n#cd-player .track:last-child {\n  margin-bottom: 0;\n}\n\n#cd-player .track-title {\n  font-size: 14px;\n  font-weight: 600;\n  line-height: 1.35;\n  margin-bottom: 7px;\n}\n\n\/* Audio-Player – neutrales Grau *\/\n#cd-player .player-bar {\n  display: flex !important;\n  flex-direction: row !important;\n  align-items: center !important;\n  gap: 11px;\n  height: 36px;\n  min-height: 36px;\n  padding: 0 12px;\n  background: #F0F0F0;\n  border-radius: 999px;\n}\n\n\/* Play-Button *\/\n#cd-player .play {\n  appearance: none;\n  -webkit-appearance: none;\n  display: flex !important;\n  align-items: center !important;\n  justify-content: center !important;\n  position: static !important;\n  transform: none !important;\n  flex: 0 0 20px;\n  width: 20px;\n  height: 20px;\n  min-width: 20px;\n  min-height: 20px;\n  margin: 0 !important;\n  padding: 0 !important;\n  border: none !important;\n  border-radius: 0 !important;\n  background: transparent !important;\n  box-shadow: none !important;\n  line-height: 1 !important;\n  color: #292929;\n  cursor: pointer;\n}\n\n#cd-player .play:hover {\n  opacity: 0.6;\n}\n\n\/* Play- und Pause-Icons *\/\n#cd-player .play svg {\n  display: block !important;\n  position: static !important;\n  width: 16px;\n  height: 16px;\n  min-width: 16px;\n  min-height: 16px;\n  margin: 0 !important;\n  padding: 0 !important;\n  transform: none !important;\n  fill: currentColor;\n}\n\n\/* Zeitanzeige *\/\n#cd-player .time {\n  font-size: 11px;\n  font-weight: 400;\n  color: #444444;\n  white-space: nowrap;\n  font-variant-numeric: tabular-nums;\n  flex-shrink: 0;\n}\n\n#cd-player .separator {\n  color: #AAAAAA;\n  margin: 0 3px;\n}\n\n\/* Fortschrittsbalken *\/\n#cd-player .progress {\n  -webkit-appearance: none;\n  appearance: none;\n  flex: 1;\n  width: 100%;\n  min-width: 0;\n  height: 3px;\n  margin: 0;\n  padding: 0;\n  border: none;\n  border-radius: 10px;\n  outline: none;\n  cursor: pointer;\n  background: linear-gradient(\n    to right,\n    #292929 0%,\n    #292929 var(--progress, 0%),\n    #C9C9C9 var(--progress, 0%),\n    #C9C9C9 100%\n  );\n}\n\n#cd-player .progress::-webkit-slider-thumb {\n  -webkit-appearance: none;\n  appearance: none;\n  width: 9px;\n  height: 9px;\n  border-radius: 50%;\n  background: #292929;\n  opacity: 0;\n}\n\n#cd-player .progress:hover::-webkit-slider-thumb,\n#cd-player .progress:focus-visible::-webkit-slider-thumb {\n  opacity: 1;\n}\n\n#cd-player .progress::-moz-range-thumb {\n  width: 9px;\n  height: 9px;\n  border: none;\n  border-radius: 50%;\n  background: #292929;\n}\n\n#cd-player audio {\n  display: none !important;\n}\n\n\/* Tastaturbedienung *\/\n#cd-player .play:focus-visible,\n#cd-player .progress:focus-visible,\n#cd-player .cd-toggle:focus-visible {\n  outline: 2px solid #777777;\n  outline-offset: 3px;\n}\n\n\/* Mobile *\/\n@media (max-width: 600px) {\n  #cd-player {\n    padding: 9px 11px !important;\n    border-radius: 11px;\n  }\n\n  #cd-player .cd-title {\n    font-size: 15px !important;\n    font-weight: 700 !important;\n  }\n\n  #cd-player .cd-description {\n    font-size: 11px !important;\n  }\n\n  #cd-player .cd-content {\n    padding-top: 11px;\n  }\n\n  #cd-player .track {\n    padding: 9px 10px;\n    margin-bottom: 6px;\n  }\n\n  #cd-player .track-title {\n    font-size: 12px;\n    margin-bottom: 6px;\n  }\n\n  #cd-player .player-bar {\n    height: 34px;\n    min-height: 34px;\n    padding: 0 11px;\n    gap: 9px;\n  }\n\n  #cd-player .play svg {\n    width: 15px;\n    height: 15px;\n    min-width: 15px;\n    min-height: 15px;\n  }\n}\n\u003c\/style\u003e\n\n\u003cscript\u003e\n(function () {\n  var root = document.getElementById('cd-player');\n\n  if (!root || root.dataset.ready) return;\n  root.dataset.ready = '1';\n\n  var toggle = root.querySelector('.cd-toggle');\n  var content = root.querySelector('.cd-content');\n  var container = root.querySelector('.cd-tracks');\n  var previewLimit = 30;\n\n  \/* Alle 22 Hörproben in der richtigen Reihenfolge *\/\n  var songs = [\n    [\n      'Nach Bürgler-Rickenbacher Art',\n      '01_-_Nach_Buergler-Rickenbacher_Art.mp3',\n      '1791810542'\n    ],\n    [\n      'Erinnerung an Paul Zahnd',\n      '02_-_Erinnerung_an_Paul_Zahnd.mp3',\n      '1791810541'\n    ],\n    [\n      'Dr Schütze-Bärti',\n      '03_-_Dr_Schuetze-Baerti.mp3',\n      '1791810541'\n    ],\n    [\n      'Uf dr Fafleralp',\n      '04_-_Uf_dr_Fafleralp.mp3',\n      '1791810542'\n    ],\n    [\n      'Wysel gib em nu es Stümpeli',\n      '05_-_Wysel_gib_em_nu_es_Stuempeli.mp3',\n      '1791810542'\n    ],\n    [\n      'Mazurka-Liebe',\n      '06_-_Mazurka-Liebe.mp3',\n      '1791810542'\n    ],\n    [\n      'De Halbwiener-Fan',\n      '07_-_De_Halbwiener-Fan.mp3',\n      '1791810540'\n    ],\n    [\n      'Am Engstlig Dorfet',\n      '08_-_Am_Engstlig_Dorfet.mp3',\n      '1791810542'\n    ],\n    [\n      'Adj Uof Rindlisbacher',\n      '09_-_Adj_Uof_Rindlisbacher.mp3',\n      '1791810542'\n    ],\n    [\n      'Dr Junior',\n      '10_-_Dr_Junior.mp3',\n      '1791810542'\n    ],\n    [\n      'Für e Vater Zwahle',\n      '11_-_Fuer_e_Vater_Zwahle.mp3',\n      '1791810541'\n    ],\n    [\n      'Im Bären z Bunschen',\n      '12_-_Im_Baeren_z_Bunschen.mp3',\n      '1791810540'\n    ],\n    [\n      \"Luschtig tönt's vom Gygebank\",\n      '13_-_Luschtig_toent_s_vom_Gygebank.mp3',\n      '1791810542'\n    ],\n    [\n      'Blick auf Sarnersee',\n      '14_-_Blick_auf_Sarnersee.mp3',\n      '1791810541'\n    ],\n    [\n      'Musige mit z Musers',\n      '15_-_Musige_mit_z_Musers.mp3',\n      '1791810542'\n    ],\n    [\n      'Heiweh-Oberländer',\n      '16_-_Heiweh-Oberlaender.mp3',\n      '1791810541'\n    ],\n    [\n      'Am Märchelauf',\n      '17_-_Am_Maarchelauf.mp3',\n      '1791810541'\n    ],\n    [\n      'Uf der Südelhöchi',\n      '18_-_Uf_der_Suedelhoechi.mp3',\n      '1791810542'\n    ],\n    [\n      'Am Hinter-Burgseeli',\n      '19_-_Am_Hinter-Burgseeli.mp3',\n      '1791810542'\n    ],\n    [\n      'Bürgenstock Polka',\n      '20_-_Buergenstock_Polka.mp3',\n      '1791810542'\n    ],\n    [\n      'Schottisch-Stümpäli',\n      '21_-_Schottisch-Stuempaeli.mp3',\n      '1791810541'\n    ],\n    [\n      'Geissä-Stümpäli',\n      '22_-_Geissae-Stuempaeli.mp3',\n      '1791810541'\n    ]\n  ];\n\n  var baseUrl =\n    'https:\/\/cdn.shopify.com\/s\/files\/1\/1069\/6628\/6673\/files\/';\n\n  var playIcon =\n    '\u003csvg viewBox=\"0 0 24 24\" aria-hidden=\"true\"\u003e' +\n    '\u003cpath d=\"M8 5.5a1 1 0 0 1 1.5-.86l10 6.5' +\n    'a1 1 0 0 1 0 1.72l-10 6.5' +\n    'A1 1 0 0 1 8 18.5z\"\/\u003e' +\n    '\u003c\/svg\u003e';\n\n  var pauseIcon =\n    '\u003csvg viewBox=\"0 0 24 24\" aria-hidden=\"true\"\u003e' +\n    '\u003crect x=\"6\" y=\"4\" width=\"4\" height=\"16\" rx=\"1\"\/\u003e' +\n    '\u003crect x=\"14\" y=\"4\" width=\"4\" height=\"16\" rx=\"1\"\/\u003e' +\n    '\u003c\/svg\u003e';\n\n  \/* Player für jeden Titel erstellen *\/\n  songs.forEach(function (song, index) {\n    var track = document.createElement('div');\n    track.className = 'track';\n\n    var number = String(index + 1).padStart(2, '0');\n\n    var title = document.createElement('div');\n    title.className = 'track-title';\n    title.textContent = number + ' · ' + song[0];\n\n    var player = document.createElement('div');\n    player.className = 'player-bar';\n\n    var button = document.createElement('button');\n    button.type = 'button';\n    button.className = 'play';\n    button.innerHTML = playIcon;\n    button.setAttribute(\n      'aria-label',\n      song[0] + ' abspielen'\n    );\n\n    var time = document.createElement('span');\n    time.className = 'time';\n\n    var current = document.createElement('span');\n    current.className = 'current';\n    current.textContent = '0:00';\n\n    var separator = document.createElement('span');\n    separator.className = 'separator';\n    separator.textContent = '\/';\n\n    var duration = document.createElement('span');\n    duration.className = 'duration';\n    duration.textContent = '0:30';\n\n    time.appendChild(current);\n    time.appendChild(separator);\n    time.appendChild(duration);\n\n    var bar = document.createElement('input');\n    bar.type = 'range';\n    bar.className = 'progress';\n    bar.min = '0';\n    bar.max = '100';\n    bar.value = '0';\n    bar.step = '0.1';\n    bar.setAttribute(\n      'aria-label',\n      'Fortschritt: ' + song[0]\n    );\n\n    var audio = document.createElement('audio');\n    audio.preload = 'metadata';\n    audio.src = baseUrl + song[1] + '?v=' + song[2];\n\n    player.appendChild(button);\n    player.appendChild(time);\n    player.appendChild(bar);\n\n    track.appendChild(title);\n    track.appendChild(player);\n    track.appendChild(audio);\n\n    container.appendChild(track);\n  });\n\n  var tracks = Array.from(\n    root.querySelectorAll('.track')\n  );\n\n  function formatTime(value) {\n    if (!Number.isFinite(value)) return '0:00';\n\n    var seconds = Math.floor(value);\n\n    return Math.floor(seconds \/ 60) + ':' +\n      String(seconds % 60).padStart(2, '0');\n  }\n\n  \/* Box öffnen und schliessen *\/\n  toggle.addEventListener('click', function () {\n    var isOpen =\n      toggle.getAttribute('aria-expanded') === 'true';\n\n    toggle.setAttribute(\n      'aria-expanded',\n      String(!isOpen)\n    );\n\n    content.hidden = isOpen;\n\n    if (isOpen) {\n      tracks.forEach(function (track) {\n        track.querySelector('audio').pause();\n      });\n    }\n  });\n\n  \/* Audio-Player steuern *\/\n  tracks.forEach(function (track) {\n    var audio = track.querySelector('audio');\n    var button = track.querySelector('.play');\n    var bar = track.querySelector('.progress');\n    var current = track.querySelector('.current');\n    var duration = track.querySelector('.duration');\n    var titleText =\n      track.querySelector('.track-title').textContent.trim();\n\n    var maxDuration = previewLimit;\n\n    function updateProgress() {\n      var position = Math.min(\n        audio.currentTime || 0,\n        maxDuration\n      );\n\n      var percent = maxDuration \u003e 0\n        ? position \/ maxDuration * 100\n        : 0;\n\n      bar.value = percent;\n      bar.style.setProperty(\n        '--progress',\n        percent + '%'\n      );\n\n      current.textContent = formatTime(position);\n    }\n\n    function updateDuration() {\n      maxDuration =\n        Number.isFinite(audio.duration) \u0026\u0026\n        audio.duration \u003e 0\n          ? Math.min(audio.duration, previewLimit)\n          : previewLimit;\n\n      duration.textContent = formatTime(maxDuration);\n      updateProgress();\n    }\n\n    button.addEventListener('click', function () {\n      if (audio.paused) {\n        tracks.forEach(function (other) {\n          if (other !== track) {\n            other.querySelector('audio').pause();\n          }\n        });\n\n        if (audio.currentTime \u003e= maxDuration) {\n          audio.currentTime = 0;\n        }\n\n        var result = audio.play();\n\n        if (result \u0026\u0026 typeof result.catch === 'function') {\n          result.catch(function () {\n            button.innerHTML = playIcon;\n            button.setAttribute(\n              'aria-label',\n              titleText + ' abspielen'\n            );\n          });\n        }\n      } else {\n        audio.pause();\n      }\n    });\n\n    audio.addEventListener('play', function () {\n      tracks.forEach(function (other) {\n        if (other !== track) {\n          other.querySelector('audio').pause();\n        }\n      });\n\n      button.innerHTML = pauseIcon;\n      button.setAttribute(\n        'aria-label',\n        titleText + ' pausieren'\n      );\n    });\n\n    audio.addEventListener('pause', function () {\n      button.innerHTML = playIcon;\n      button.setAttribute(\n        'aria-label',\n        titleText + ' abspielen'\n      );\n    });\n\n    audio.addEventListener('loadedmetadata', updateDuration);\n    audio.addEventListener('durationchange', updateDuration);\n\n    audio.addEventListener('timeupdate', function () {\n      if (audio.currentTime \u003e= maxDuration) {\n        audio.pause();\n        audio.currentTime = maxDuration;\n      }\n\n      updateProgress();\n    });\n\n    audio.addEventListener('ended', function () {\n      audio.currentTime = 0;\n      updateProgress();\n    });\n\n    bar.addEventListener('input', function () {\n      if (maxDuration \u003e 0) {\n        audio.currentTime = Math.min(\n          Number(bar.value) \/ 100 * maxDuration,\n          maxDuration\n        );\n\n        updateProgress();\n      }\n    });\n\n    updateProgress();\n  });\n})();\n\u003c\/script\u003e","brand":"LAEMU","offers":[{"title":"Default Title","offer_id":54991641739601,"sku":null,"price":27.5,"currency_code":"CHF","in_stock":true}],"thumbnail_url":"\/\/cdn.shopify.com\/s\/files\/1\/1069\/6628\/6673\/files\/E-gmuetlichi-Rundi_Cover_Web-1200x1200px.jpg?v=1790328777","url":"https:\/\/shop.laemu.ch\/products\/cd-e-gmuetlichi-rundi","provider":"LAEMU","version":"1.0","type":"link"}