=== The Studio Player ===
Contributors: peterrahe
Donate link: https://studioplayer.de/donate
Tags: studioplayer, audio player, A/B audio comparison, studio, A/B comparison
Requires at least: 6.0
Tested up to: 7.0
Stable tag: 0.9.68
Requires PHP: 7.4
License: GPLv2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html

Showcase your mixes and masters with seamless switching between two variants (A/B audio comparison). Pro version available.


== Description ==

**The Studio Player – Sync by Design**  
Portfolio and A/B comparison player for studios and producers – stream your work **sample-accurate and lossless** in up to 44.1 kHz / 16-bit. The free version includes the core player, playlist builder, multichannel FLAC muxer/uploader and support for waveform playback when waveform data is available.

The plugin features an integrated **Muxer-Uploader** in the WordPress admin. You simply drag and drop your stereo WAV files, and the plugin automatically encodes and combines them into a single, **efficient multichannel lossless FLAC streaming file**. This ensures perfect synchronization and reduces server requests and client CPU usage.




**Key Features:**

*   **Seamless A/B comparison:** Switch instantly between two synchronized audio variants.
*   **Lossless audio:** Stream your tracks in up to 44.1 kHz / 16-bit lossless quality.
*   **Streaming engine:** Built-in multichannel FLAC streaming with adaptive buffering optimized for desktop and mobile networks.
*   **Integrated Muxer-Uploader:** Encode and upload your audio files directly from the WordPress admin.
*   **Waveform support:** Display existing waveform data in the player.
*   **Template design system:** Use Magic Palette and Color Probe to match the player design to your site in seconds.
*   **Shortcode integration:** Embed players anywhere with a single generated shortcode.


**Pro Version Features:**

*   **Seamless A/B/C/D comparison:** Switch between up to four synchronized audio variants instantly.
*   **High-res audio engine:** Encode and play back audio in 48 kHz / 24-bit quality.
*   **Waveform generation:** Generate waveform JSON data for new tracks and rebuild waveform data for existing audio files.
*   **Recovery tools:** Reconnect media files on disk with their entries in the Media Library.
*   **Advanced workflow tools:** Extend your production workflow with additional studio-oriented tools and utilities.

**Live Demo:**
Check out the player and test the entire backend with real data on: <https://demo.studioplayer.de>

== Free and Pro ==

The free version of The Studio Player includes the full player, the playlist editor, the FLAC muxer/uploader, integrity checks and optional sample content. It works completely on its own and does not expire.

The free plugin core remains fully functional without Freemius license activation or Freemius connect opt-in.

Optionally, ready-made sample playlists and media can be downloaded from our server studioplayer.de so you can test the plugin immediately with real data.

A separate Pro add-on unlocks an advanced audio engine and tools like data recovery, waveform JSON generation and waveform rebuild utilities. Those Pro features are implemented in a separate premium-only integration, not as disabled code inside the free plugin.

A dedicated Tools page provides recovery, waveform rebuild and integrity utilities to keep existing Studio Player libraries healthy over time.

Players are built as dedicated “Player-Builder” entries (custom post type), so you can create multiple independent players with their own templates and designs.

== Installation ==

1.  Download and install the plugin.
2.  Activate the plugin.
3.  Optional: follow the onboarding wizard.
4.  Or go directly to **The Studio Player > Muxer-Uploader** in the WordPress admin.
5.  Encode and upload your WAV files to create a muxed multichannel FLAC file.
6.  Craft a playlist with metadata, cover art and player design in the **Player-Builder** graphical interface – integrate the design into your site with the Color Probe and Magic Palette tools.
7.  Save the player and copy the generated shortcode to embed the player onto your site. (All parameters are stored in the database – no additional coding required.)



== Frequently Asked Questions ==

= What audio formats are supported? =
The muxer accepts standard stereo `.wav` files at 44.1 kHz / 16-bit (or 48 kHz / 24-bit in the Pro version). 
The output is a highly efficient streaming FLAC file containing all variants.
The player switches sample-accurately between the channel pairs (variants).

= Does it work on mobile? =
Yes, the player templates are responsive and touch-friendly. 
Thanks to adaptive streaming it works well on mobile devices – even on very slow networks.
The WordPress admin views are also optimized for mobile so you can make small changes on the go.

= How do I upgrade to Pro? =
You can find the Pro version here:
<https://studioplayer.de>
Or on the license page in the WordPress admin.
Freemius Inc. provides the SDK for license management services and acts as our worldwide reseller.

= What happens on uninstall? =
The plugin offers an option to remove its uploaded FLAC files and settings on uninstall. By default, media files remain in your uploads folder so you do not accidentally lose audio data.

== Screenshots ==

1.  **Muxer Interface** - The admin interface for combining and uploading audio variants as lossless multichannel FLAC.
2.  **Player-Builder** - Backend for composing playlists and designing Player.
3.  **Player View** - The default player with waveform visualization.

== Security ==

The Studio Player secures its admin AJAX endpoints with nonces, strict capability checks and sanitized input (titles, filenames, subdirectories, JSON payloads) before storing anything.

The playlist REST API follows WordPress visibility rules (published playlists are public, drafts/private playlists only for users who can edit them) and restricts audio attachments to FLAC/WAV via extension and MIME allowlists.

The streaming engine uses signed, time-limited URLs, directory protection, safe path checks and IP-based rate limiting, and loads player templates only from sanitized slugs in fixed directories with a guarded fallback so broken templates show a safe error UI instead of causing a fatal error.

== Remote Content & Privacy ==

The Studio Player can optionally load helper content from <https://studioplayer.de> – onboarding, banners, documentation and the changelog – in your WordPress admin area only.

Remote content loading is strictly opt-in and can be turned off at any time in the plugin settings. No tracking pixels or analytics scripts are injected, no listening or playback data from your visitors is sent to us, and all remote responses are cleaned down to basic, safe HTML before being displayed.

Remote admin content is loaded from our own service at https://studioplayer.de.

The plugin can also optionally download ready-made sample playlists and media from studioplayer.de when an administrator starts the sample data import. This is only used to let you test the plugin immediately with real data.

The sample import is started manually by an administrator, stores the downloaded files temporarily in the WordPress uploads directory, and does not transmit visitor playback data to our server.

For legal information and details about data processing, please see:
– Imprint & legal: https://studioplayer.de/imprint/
– Privacy Policy: https://studioplayer.de/imprint/#privacy

License and account management for the separate Pro add-on are handled by Freemius. Their legal documents are available at:
– Terms of Service: https://freemius.com/terms/
– Privacy Policy: https://freemius.com/privacy/


== Third-Party Code & Source Information ==

All PHP files and all custom CSS and JavaScript files authored by us are included in human-readable form.
We do not minify or obfuscate our own code.
Player UI styles are provided through regular CSS files.
Any bundled third-party compiled assets are listed separately below together with their public source references.

This plugin bundles and uses the following third-party libraries and services:

* Freemius SDK  
  License: GPLv2 or later  
  Provider: Freemius Inc. (handling license management and payments)

* libflac.js (v5.4.0)  
  License: MIT  
  Copyright (c) 2014-2020 DFKI GmbH  
  This library is included in compiled form (asm.js / WASM); its full source code and build instructions are available at <https://github.com/mmig/libflac.js>.  
  The full license text can be found in the assets/libs/libflac/ directory.

* libFLAC & libogg  
  License: BSD 3-Clause  
  Copyright (c) 2000-2025 Xiph.Org Foundation
  <https://www.xiph.org/>

== Changelog ==

= 0.9.61 =
* RC 2 | fixes for better WordPress.org compliance

= 0.9.60 =
* RC 1 | ready for review


== Upgrade Notice ==
