{"id":366193,"date":"2026-09-17T08:44:49","date_gmt":"2026-09-17T08:44:49","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/choir-rehearsal\/"},"modified":"2026-09-17T12:41:28","modified_gmt":"2026-09-17T12:41:28","slug":"compath-choir-rehearsal","status":"publish","type":"plugin","link":"https:\/\/mg.wordpress.org\/plugins\/compath-choir-rehearsal\/","author":23562913,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.4.55","stable_tag":"0.4.55","tested":"7.1.1","requires":"6.4","requires_php":"8.0","requires_plugins":null,"header_name":"Compath Choir Rehearsal","header_author":"Compath O\u00dc","header_description":"Private rehearsal library for choirs: songs, voice parts, audio tracks, and a sticky player.","assets_banners_color":"0e7de1","last_updated":"2026-09-17 12:41:28","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/rehearsal.compath.ee","header_author_uri":"https:\/\/compath.ee","rating":0,"author_block_rating":0,"active_installs":0,"downloads":49,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"0.4.52":{"tag":"0.4.52","author":"compath","date":"2026-09-17 08:44:27","revision":3699832},"0.4.54":{"tag":"0.4.54","author":"compath","date":"2026-09-17 11:59:03","revision":3700224},"0.4.55":{"tag":"0.4.55","author":"compath","date":"2026-09-17 12:41:28","revision":3700300}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3700040,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3699936,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3700040,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3699936,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3699936,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["0.4.52","0.4.54","0.4.55"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[],"plugin_tags":[452,75670,218,281227,281228],"plugin_category":[50],"plugin_contributors":[281229],"plugin_business_model":[],"class_list":["post-366193","plugin","type-plugin","status-publish","hentry","plugin_tags-audio","plugin_tags-choir","plugin_tags-music","plugin_tags-rehearsal","plugin_tags-voice-parts","plugin_category-media","plugin_contributors-compath","plugin_committers-compath"],"banners":{"banner":"https:\/\/ps.w.org\/compath-choir-rehearsal\/assets\/banner-772x250.png?rev=3699936","banner_2x":"https:\/\/ps.w.org\/compath-choir-rehearsal\/assets\/banner-1544x500.png?rev=3699936","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/compath-choir-rehearsal\/assets\/icon.svg?rev=3700040","icon":"https:\/\/ps.w.org\/compath-choir-rehearsal\/assets\/icon.svg?rev=3700040","icon_2x":false,"generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Choir Rehearsal helps choir members learn new pieces by voice part.<\/p>\n\n<ul>\n<li>Create songs and attach unlimited voice tracks<\/li>\n<li>Built-in voice list: backing track, bass, baritone, tenor, alto, soprano, other<\/li>\n<li>Upload MP3\/WAV files from the Media Library<\/li>\n<li>Attach a PDF score per song with page-by-page viewer<\/li>\n<li>Frontend song list at <code>\/rehearsal\/<\/code><\/li>\n<li>Sticky HTML5 player at the bottom of the page<\/li>\n<li>Optional login-only access<\/li>\n<li>REST API and MCP abilities for automation<\/li>\n<\/ul>\n\n<h3>External services<\/h3>\n\n<p>This plugin does not require external services to work. Song data, audio, and PDF scores stay on your WordPress site.<\/p>\n\n<p>Optional documentation link in Settings may open <a href=\"https:\/\/rehearsal.compath.ee\/\">rehearsal.compath.ee<\/a> (Compath O\u00dc) for help and changelog. No site or user data is sent unless you open that page in your browser.<\/p>\n\n<p>PDF viewing uses <strong>Mozilla PDF.js<\/strong> bundled inside the plugin (Apache-2.0). No PDF.js CDN calls are made.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/compath-choir-rehearsal<\/code><\/li>\n<li>Activate the plugin through the 'Plugins' menu in WordPress<\/li>\n<li>Go to <strong>Choir Rehearsal \u2192 Add Song<\/strong><\/li>\n<li>Add voice tracks and upload audio files<\/li>\n<li>Share <code>\/rehearsal\/<\/code> with logged-in singers<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"who%20can%20view%20rehearsal%20pages%3F\"><h3>Who can view rehearsal pages?<\/h3><\/dt>\n<dd><p>By default only logged-in users can view <code>\/rehearsal\/<\/code>. Change this under <strong>Choir Rehearsal \u2192 Settings<\/strong>.<\/p><\/dd>\n<dt id=\"can%20i%20embed%20the%20song%20list%20in%20a%20page%3F\"><h3>Can I embed the song list in a page?<\/h3><\/dt>\n<dd><p>Yes. Use the shortcode <code>[choir_rehearsal]<\/code>.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>0.4.55<\/h4>\n\n<ul>\n<li>Fix blank PDF canvas in the song editor when SoftMe metabox width is 0<\/li>\n<li>Defer PDF.js paint until the viewer has a usable layout width<\/li>\n<\/ul>\n\n<h4>0.4.54<\/h4>\n\n<ul>\n<li>Song editor embedded PDF preview available in Lite and Pro<\/li>\n<li>SoftMe\/Softica sticky player icon and editor PDF visibility fixes from 0.4.53<\/li>\n<\/ul>\n\n<h4>0.4.53<\/h4>\n\n<ul>\n<li>Theme-proof sticky player piano and close icons (SoftMe\/Softica button color overrides)<\/li>\n<li>Editor PDF: re-render when metabox becomes visible; refresh on postbox toggle<\/li>\n<\/ul>\n\n<h4>0.4.52<\/h4>\n\n<ul>\n<li>Fix duplicate Lite notice when only one folder exists: repair ghost\/duplicate rows in active_plugins<\/li>\n<li>Migration wizard: show active_plugins Lite entries and one-click repair<\/li>\n<\/ul>\n\n<h4>0.4.51<\/h4>\n\n<ul>\n<li>WordPress.org: full feature set in catalog build (no Lite track cap, mic recording, search, editor Play\/PDF gates)<\/li>\n<li>WordPress.org: remove global sanitize_title filter; song slugs only via wp_insert_post_data \/ save_post<\/li>\n<li>WordPress.org readme: external services limited to optional documentation link and bundled PDF.js<\/li>\n<\/ul>\n\n<h4>0.4.50<\/h4>\n\n<ul>\n<li>Universal install\/replace: upload or update replaces choir-rehearsal\/ or compath-choir-rehearsal\/ instead of adding a second copy<\/li>\n<li>After install, extra Lite folders are removed automatically (songs stay in the database)<\/li>\n<li>Fix update check on older installs: merge all update sources and pick the highest version (avoids stale 0.4.21 from main-branch update.json)<\/li>\n<li>Check for updates redirects to Plugins when an update is available; clearer notice when the server reports an older version than installed<\/li>\n<\/ul>\n\n<h4>0.4.49<\/h4>\n\n<ul>\n<li>Migration wizard: detect duplicate Lite folders, keep one, deactivate\/delete extras without deleting songs<\/li>\n<li>Dual-load copy can open the wizard even when an older Lite loaded first<\/li>\n<\/ul>\n\n<h4>0.4.48<\/h4>\n\n<ul>\n<li>Updates\/uploads stay in the already-installed plugin folder (stops a second Lite copy after upgrade)<\/li>\n<li>Duplicate-plugin notice lists active Lite paths<\/li>\n<\/ul>\n\n<h4>0.4.47<\/h4>\n\n<ul>\n<li>GitHub zip again installs into folder <code>choir-rehearsal\/<\/code> (fixes duplicate plugin after upload on existing sites)<\/li>\n<\/ul>\n\n<h4>0.4.46<\/h4>\n\n<ul>\n<li>Align text domain with WordPress.org slug (<code>compath-choir-rehearsal<\/code>)<\/li>\n<\/ul>\n\n<h4>0.4.45<\/h4>\n\n<ul>\n<li>Pro: Export\/Import song library backup (ZIP)<\/li>\n<li>Pro: Fix activation fatal when backup file missing or duplicate Lite slug listed as dependency<\/li>\n<li>Clearer duplicate-plugin admin notice<\/li>\n<\/ul>\n\n<h4>0.4.44<\/h4>\n\n<ul>\n<li>Fix piano keys sticking visually after press on the public song player<\/li>\n<\/ul>\n\n<h4>0.4.43<\/h4>\n\n<ul>\n<li>Fix: activating beside an old choir-rehearsal folder no longer fatals; shows an admin notice instead<\/li>\n<li>Keep only one plugin copy active (prefer folder compath-choir-rehearsal)<\/li>\n<\/ul>\n\n<h4>0.4.42<\/h4>\n\n<ul>\n<li>Fix: replace wp_dropdown_pages with an escaped custom select (Plugin Check)<\/li>\n<\/ul>\n\n<h4>0.4.41<\/h4>\n\n<ul>\n<li>Fix: remaining Plugin Check issues (wp_dropdown_pages escaping, login redirect nonce)<\/li>\n<\/ul>\n\n<h4>0.4.40<\/h4>\n\n<ul>\n<li>Fix: Plugin Check errors (escaping, translators comments, wp_delete_file)<\/li>\n<li>Fix: Plugin Check warnings (sanitization, prefixed uninstall vars, textdomain)<\/li>\n<\/ul>\n\n<h4>0.4.39<\/h4>\n\n<ul>\n<li>Brand: plugin renamed to Compath Choir Rehearsal (slug compath-choir-rehearsal) for WordPress.org<\/li>\n<li>Package folder and GitHub release zip use compath-choir-rehearsal<\/li>\n<\/ul>\n\n<h4>0.4.38<\/h4>\n\n<ul>\n<li>Fix: mobile fullscreen PDF close (X) appears above sticky player and recording dock<\/li>\n<li>Fullscreen PDF toolbar includes a Close control for reliable exit on small screens<\/li>\n<\/ul>\n\n<h4>0.4.37<\/h4>\n\n<ul>\n<li>Fix: PDF page navigation works again (same-size pages were skipped by render guard)<\/li>\n<\/ul>\n\n<h4>0.4.36<\/h4>\n\n<ul>\n<li>Fix: desktop scrubber works for microphone WebM recordings (Chrome Infinity duration)<\/li>\n<li>New mic uploads are converted to WAV when needed so seeking works reliably<\/li>\n<\/ul>\n\n<h4>0.4.35<\/h4>\n\n<ul>\n<li>Fix: song page \/ editor freeze caused by recording-dock body class observer<\/li>\n<li>PDF viewer skips redundant re-renders that could lock the UI<\/li>\n<\/ul>\n\n<h4>0.4.34<\/h4>\n\n<ul>\n<li>Mobile: floating recording bar (record \/ pause \/ stop \/ cancel) above the player when controls scroll away or PDF is expanded<\/li>\n<li>Mic recording supports pause and resume from the same take<\/li>\n<\/ul>\n\n<h4>0.4.33<\/h4>\n\n<ul>\n<li>Recording: larger piano and metronome icons<\/li>\n<li>Sticky player: metronome only in mic recording (removed from player bar)<\/li>\n<li>Sticky player: remove white frame around waveform scrubber on the public song page<\/li>\n<li>Song view: reliable X control to exit expanded PDF<\/li>\n<\/ul>\n\n<h4>0.4.32<\/h4>\n\n<ul>\n<li>Sticky player and song editor: metronome panel with tempo slider (40\u2013208 BPM)<\/li>\n<li>Recording row: Start \/ piano \/ metronome at 70% \/ 15% \/ 15%<\/li>\n<\/ul>\n\n<h4>0.4.31<\/h4>\n\n<ul>\n<li>Sticky player: hide track title on waveform; time + close sit to the right of scrubber<\/li>\n<\/ul>\n\n<h4>0.4.30<\/h4>\n\n<ul>\n<li>Song editor: piano icon beside Start recording (70% \/ 30% row)<\/li>\n<\/ul>\n\n<h4>0.4.29<\/h4>\n\n<ul>\n<li>Sticky player: open a scrollable 2-octave Web Audio piano above the player<\/li>\n<\/ul>\n\n<h4>0.4.28<\/h4>\n\n<ul>\n<li>Sticky player: waveform only behind scrubber (no white seek track)<\/li>\n<li>PDF expand fits page to screen width; expand toggles to matching X control<\/li>\n<li>Pinch-zoom keeps the chosen scale instead of snapping to 100%<\/li>\n<\/ul>\n\n<h4>0.4.27<\/h4>\n\n<ul>\n<li>Sticky player: waveform is the scrubber background (compact single-row bar)<\/li>\n<\/ul>\n\n<h4>0.4.26<\/h4>\n\n<ul>\n<li>Song editor: show track waveform instead of the audio filename<\/li>\n<li>Sticky player: waveform under the seek bar<\/li>\n<\/ul>\n\n<h4>0.4.25<\/h4>\n\n<ul>\n<li>Voice tracks show a blue waveform from the track name to Play\/Upload<\/li>\n<li>Waveforms are generated from each track\u2019s audio file in the browser<\/li>\n<\/ul>\n\n<h4>0.4.24<\/h4>\n\n<ul>\n<li>Play buttons always blue with white icon\/text (theme-proof)<\/li>\n<li>PDF: full-screen expand with close control; sticky player stays visible below<\/li>\n<li>PDF: pinch-to-zoom (and Ctrl\/trackpad zoom)<\/li>\n<\/ul>\n\n<h4>0.4.23<\/h4>\n\n<ul>\n<li>WordPress.org package: remove GitHub updater file entirely (Plugin Check)<\/li>\n<li>readme.txt: Tested up to 7.1<\/li>\n<\/ul>\n\n<h4>0.4.22<\/h4>\n\n<ul>\n<li>WordPress.org ready: disable GitHub self-updater in .org packages<\/li>\n<li>Bundle PDF.js locally (no third-party CDN for scripts)<\/li>\n<li>Settings: WordPress.org builds show \u201cUpdates via WordPress.org\u201d<\/li>\n<li>Document external Pro storefront link in readme<\/li>\n<\/ul>\n\n<h4>0.4.21<\/h4>\n\n<ul>\n<li>Fix: updater treats non-2xx GitHub API responses as failures (rate limits no longer look like empty release lists)<\/li>\n<li>Fix: durable update.json fallback via GitHub release asset (\/releases\/latest\/download\/update.json)<\/li>\n<li>Settings: Check for plugin updates redirects back with clear notices (available \/ up to date \/ failed)<\/li>\n<li>Settings: show last update-check result under Plugin version<\/li>\n<\/ul>\n\n<h4>0.4.20<\/h4>\n\n<ul>\n<li>Fix: PDF score preview no longer blanks in the song editor after the form loads<\/li>\n<li>PDF.js loads without credentials first (avoids hung credentialed fetches in wp-admin)<\/li>\n<li>Song save no longer deletes an attached PDF when the metabox field is missing or mime is unexpected<\/li>\n<\/ul>\n\n<h4>0.4.19<\/h4>\n\n<ul>\n<li>Share: one-tap copy link with on-screen confirmation (no dual public\/private menu)<\/li>\n<li>Fix mobile Share toast so it stays on screen<\/li>\n<li>Song editor: fix Play icon (large white triangle in blue circle)<\/li>\n<\/ul>\n\n<h4>0.4.18<\/h4>\n\n<ul>\n<li>Song permalinks: auto-transliterate any language title to a Latin slug<\/li>\n<li>Fix permalink editing so custom slugs save correctly<\/li>\n<li>Migrate existing non-Latin song URLs on upgrade<\/li>\n<\/ul>\n\n<h4>0.4.17<\/h4>\n\n<ul>\n<li>Song page: Share icon to copy public or private song links<\/li>\n<\/ul>\n\n<h4>0.4.16<\/h4>\n\n<ul>\n<li>Make public control on the song editor card (icon on mobile)<\/li>\n<li>Guests can browse and listen to public songs without signing in<\/li>\n<li>Private songs still require login when that setting is enabled<\/li>\n<\/ul>\n\n<h4>0.4.15<\/h4>\n\n<ul>\n<li>Song editor matches the public song card: embedded PDF with swipe page turns<\/li>\n<li>Voice track rows use listen-style layout with Upload \/ Record \/ Play icon buttons<\/li>\n<li>Removed the unreliable floating PDF panel<\/li>\n<\/ul>\n\n<h4>0.4.14<\/h4>\n\n<ul>\n<li>Sticky player: close (\u00d7) button on the right \u2014 hides the player so mobile Update \/ content is reachable<\/li>\n<li>Pro: PDF icon after song titles that have an attached score<\/li>\n<\/ul>\n\n<h4>0.4.13<\/h4>\n\n<ul>\n<li>Mobile song editor: keep \u201cBack to song list\u201d at the top (visible with sticky player)<\/li>\n<li>Pro: View PDF floating panel in the song editor so you can record while reading the score<\/li>\n<\/ul>\n\n<h4>0.4.12<\/h4>\n\n<ul>\n<li>Song editor Play preview is Pro-only<\/li>\n<li>Pro benefits copy mentions editor Play everywhere relevant<\/li>\n<\/ul>\n\n<h4>0.4.11<\/h4>\n\n<ul>\n<li>Song editor: Play button on voice tracks opens the sticky player<\/li>\n<\/ul>\n\n<h4>0.4.10<\/h4>\n\n<ul>\n<li>Demo song titles use zero-padded numbers (Demo Song 01, 02, \u2026) so A\u2013Z sort stays in order<\/li>\n<\/ul>\n\n<h4>0.4.9<\/h4>\n\n<ul>\n<li>Load demo songs creates 25 songs so library pagination (20 per page) appears after one click<\/li>\n<\/ul>\n\n<h4>0.4.8<\/h4>\n\n<ul>\n<li>Settings: Load demo songs (10 songs \u00d7 4 tracks with demo voice audio)<\/li>\n<li>Settings: Delete all songs with Yes\/No confirmation (removes tracks, media, songs)<\/li>\n<\/ul>\n\n<h4>0.4.7<\/h4>\n\n<ul>\n<li>Pro search: match Cyrillic and other Unicode song titles (not only Latin)<\/li>\n<\/ul>\n\n<h4>0.4.6<\/h4>\n\n<ul>\n<li>Fix double \u201cUpdate now\u201d: clear update cache after upgrade and compare version from disk<\/li>\n<\/ul>\n\n<h4>0.4.5<\/h4>\n\n<ul>\n<li>Remove License key field from Lite settings (licensing belongs in Pro add-on)<\/li>\n<\/ul>\n\n<h4>0.4.4<\/h4>\n\n<ul>\n<li>Buy Pro links to https:\/\/shop.compath.ee\/products\/choir-rehearsal-pro\/<\/li>\n<\/ul>\n\n<h4>0.4.3<\/h4>\n\n<ul>\n<li>Lite: Buy Pro button on Settings, Plugins list, and editor toolbar<\/li>\n<li>Documented Lite \u2192 Pro add-on install (do not replace Lite)<\/li>\n<\/ul>\n\n<h4>0.4.2<\/h4>\n\n<ul>\n<li>Song list pagination (20 songs per page) for large libraries<\/li>\n<li>Pro search spans the full library while browsing stays paginated<\/li>\n<li>Mobile: search field spans full width above the song list<\/li>\n<\/ul>\n\n<h4>0.4.1<\/h4>\n\n<ul>\n<li>Pro: search songs by title in the rehearsal library list<\/li>\n<\/ul>\n\n<h4>0.4.0<\/h4>\n\n<ul>\n<li>Lite edition: up to 4 voice tracks per song, no microphone recording<\/li>\n<li>Pro edition via separate Choir Rehearsal Pro add-on plugin<\/li>\n<li>Edition label and upgrade link in Settings<\/li>\n<\/ul>\n\n<h4>0.3.11<\/h4>\n\n<ul>\n<li>Mobile-friendly sticky player: wider controls, large play button, seek bar<\/li>\n<\/ul>\n\n<h4>0.3.10<\/h4>\n\n<ul>\n<li>Plugin author shown as Compath O\u00dc (was Cappella Veneta in older builds)<\/li>\n<\/ul>\n\n<h4>0.3.9<\/h4>\n\n<ul>\n<li>Product page URL set to rehearsal.compath.ee<\/li>\n<\/ul>\n\n<h4>0.3.8<\/h4>\n\n<ul>\n<li>Product documentation page (order, install, pricing, changelog)<\/li>\n<li>Documentation link on Settings page<\/li>\n<\/ul>\n\n<h4>0.3.7<\/h4>\n\n<ul>\n<li>Fix desktop layout: Publish sidebar no longer overlaps song title<\/li>\n<\/ul>\n\n<h4>0.3.6<\/h4>\n\n<ul>\n<li>Fix: song title field visible again on edit screen<\/li>\n<\/ul>\n\n<h4>0.3.5<\/h4>\n\n<ul>\n<li>Mobile song editor: Back to song list button (top and sticky footer)<\/li>\n<\/ul>\n\n<h4>0.3.4<\/h4>\n\n<ul>\n<li>Simplified song editor: title, PDF score, and voice tracks only<\/li>\n<li>Removed WordPress content editor and extra meta boxes<\/li>\n<li>Mobile: main fields first, sticky Save\/Publish bar at bottom<\/li>\n<\/ul>\n\n<h4>0.3.3<\/h4>\n\n<ul>\n<li>Mobile-friendly admin layout for voice tracks (compact select and buttons)<\/li>\n<\/ul>\n\n<h4>0.3.2<\/h4>\n\n<ul>\n<li>Fix microphone recording upload (video\/webm and file type validation)<\/li>\n<li>Show specific server error when upload fails<\/li>\n<\/ul>\n\n<h4>0.3.1<\/h4>\n\n<ul>\n<li>Show installed plugin version on the Settings page<\/li>\n<\/ul>\n\n<h4>0.3.0<\/h4>\n\n<ul>\n<li>Record voice tracks from microphone in the song editor (MediaRecorder API)<\/li>\n<li>Recordings upload directly to the WordPress Media Library<\/li>\n<\/ul>\n\n<h4>0.2.6<\/h4>\n\n<ul>\n<li>Fix duplicated login form caused by multiple [choir_rehearsal] shortcodes on the page<\/li>\n<\/ul>\n\n<h4>0.2.5<\/h4>\n\n<ul>\n<li>Fix critical error after v0.2.4 upgrade<\/li>\n<\/ul>\n\n<h4>0.2.4<\/h4>\n\n<ul>\n<li>Rehearsal library now uses a standard WordPress page with [choir_rehearsal] shortcode<\/li>\n<li>Auto-creates \/rehearsal\/ page and refreshes permalinks on upgrade<\/li>\n<li>Settings: choose rehearsal page and add it to WP menus<\/li>\n<\/ul>\n\n<h4>0.2.3<\/h4>\n\n<ul>\n<li>Fix GitHub update check (repository URL encoding returned 404)<\/li>\n<li>Fallback update metadata from update.json in the repository<\/li>\n<li>\"Check for updates now\" button in settings<\/li>\n<\/ul>\n\n<h4>0.2.2<\/h4>\n\n<ul>\n<li>Frontend login screen on rehearsal pages instead of redirect to wp-login.php<\/li>\n<li>Role-based toolbar: editors manage songs, singers view and listen only<\/li>\n<\/ul>\n\n<h4>0.2.1<\/h4>\n\n<ul>\n<li>WordPress-native plugin updates via GitHub Releases or custom JSON URL<\/li>\n<\/ul>\n\n<h4>0.2.0<\/h4>\n\n<ul>\n<li>PDF sheet music attachment per song<\/li>\n<li>PDF viewer with previous\/next page controls on song pages<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>Initial release: songs, tracks, sticky player, REST API, MCP abilities.<\/li>\n<\/ul>","raw_excerpt":"Private rehearsal library for choirs: songs, voice tracks, sticky player.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/mg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/366193","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/mg.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/mg.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=366193"}],"author":[{"embeddable":true,"href":"https:\/\/mg.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/compath"}],"wp:attachment":[{"href":"https:\/\/mg.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=366193"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/mg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=366193"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/mg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=366193"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/mg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=366193"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/mg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=366193"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/mg.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=366193"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}