прогресс-бар и тд должен быть как у soundcloud - внизу сайта, во всю ширину

		<!-- audio player -->
		<div class="audio-player">
  <div class="audio-player-inner">
    <div class="audio-tracklist">
      <% tracks.forEach((track, index) => { %> 
        <div class="audio-track">
          <div class="audio-track-image">
            <img src="/img/<%= track.image_filename || 'default-track-image.png' %>" alt="<%= track.title %>">
          </div>
          <div class="audio-track-info">
            <h4><%= track.title %></h4> 
            <p class="album-title"><%= track.album_title || "No Album" %></p>
          </div>
          <div class="audio-player-wrapper">
            <button class="audio-player-button" onclick="togglePlay(<%= index %>)">
              <i class="audio-player-icon fa fa-play"></i>
            </button>
            <audio id="audio-<%= index %>" src="/tracks/<%= track.filename %>" ontimeupdate="updateProgress(<%= index %>)"></audio>
            <input type="range" id="progress-bar-<%= index %>" class="progress-bar" value="0" onchange="setProgress(<%= index %>, this.value)">
            <span class="progress-time" id="progress-time-<%= index %>">0:00</span>
          </div>
        </div> 
      <% }); %>
    </div>
  </div>
</div>
<!-- end -->

css:
/* audio player */
.audio-player {
  margin: 50px auto;
  max-width: 800px;
}

.audio-player-inner {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

.audio-tracklist {
  display: flex;
  flex-direction: row;
  justify-content: center;
  align-items: center;
  flex-wrap: nowrap;
  margin: 0;
  padding: 0;
  list-style: none;
}

.audio-track {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  margin-right: 20px;
  margin-bottom: 20px;
  max-width: 300px;
  text-align: center;
  height: auto; 
  position: relative;
}

.audio-track:hover {
  transform: scale(1.05);
}

.audio-track-image {
  width: 100%;
  height: 0;
  padding-bottom: 100%;
  position: relative;
}

.audio-track-image img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  filter: brightness(100%);
  transition: filter 0.3s;
}

.audio-track:hover img {
  filter: brightness(70%);
}

.audio-track-image-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  opacity: 0;
  transition: opacity 0.3s;
  background: rgba(0, 0, 0, 0.5);
}

.audio-track:hover .audio-track-image-overlay {
  opacity: 1;
}

.audio-player-wrapper {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  opacity: 0;
  transition: opacity 0.3s;
}

.audio-track:hover .audio-player-wrapper {
  opacity: 1;
}

.audio-player-progress {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  margin-top: 10px;
  margin-bottom: 5px;
}

.progress-bar {
  width: 100%;
  height: 5px;
  -webkit-appearance: none;
  appearance:none;
  background: #ddd;
  outline: none;
  cursor: pointer;
}

.progress-bar::-webkit-slider-thumb {
  -webkit-appearance: none;
  appearance: none;
  width: 15px;
  height: 15px;
  border-radius: 50%;
  background: #333;
  cursor: pointer;
}

.progress-bar::-moz-range-thumb {
  width: 15px;
  height: 15px;
  border-radius: 50%;
  background: #333;
  cursor: pointer;
}

.progress-time {
  font-size: 12px;
  margin-left: 10px;
  color: #666;
}

.audio-player-controls {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
}

.audio-player-button {
  display: flex;
  justify-content: center;
  align-items: center;
  border: none;
  background: none;
  cursor: pointer;
  margin: 0 auto; /* add this property */
  position: absolute; /* add this property */
  top: 30%; /* add this property */
  left: 50%; /* add this property */
  transform: translate(-50%, -50%); /* add this property */
}

.audio-player-icon {
  font-size: 24px;
  /* font-weight: 900;  */
  color: #fff;
  position: relative;
  
  z-index: 1;
}

.audio-player-button:hover .audio-player-icon {
	
  color: #1DB954;
  
}

.audio-player-button:focus {
	
  outline: none;
}

.audio-player-button:active {
  transform: translateY(1px);
}

@media screen and (max-width: 600px) {
  .audio-track {
    margin: 20px 0;
  }
}
js:
<script>
       function togglePlay(index) {
  const audio = document.getElementById(`audio-${index}`);
  const button = document.querySelector(`.audio-track:nth-child(${index + 1}) .audio-player-button`);
  if (audio.paused) {
    audio.play();
    button.innerHTML = '<i class="audio-player-icon fa fa-pause"></i>';
  } else {
    audio.pause();
    button.innerHTML = '<i class="audio-player-icon fa fa-play"></i>';
  }
}

function setProgress(index, value) {
  const audio = document.getElementById(`audio-${index}`);
  audio.currentTime = (value / 100) * audio.duration;
}

function updateProgress(index) {
  const audio = document.getElementById(`audio-${index}`);
  const progressBar = document.getElementById(`progress-bar-${index}`);
  const progressTime = document.getElementById(`progress-time-${index}`);
  const value = (audio.currentTime / audio.duration) * 100;
  progressBar.value = value;
  const minutes = Math.floor(audio.currentTime / 60);
  const seconds = Math.floor(audio.currentTime % 60).toString().padStart(2, '0');
  progressTime.innerHTML = `${minutes}:${seconds}`;
}
    </script>