{"id":40393,"date":"2015-11-26T16:44:43","date_gmt":"2015-11-26T16:44:43","guid":{"rendered":"https:\/\/wordpress.org\/plugins-wp\/wavesurfer-wp\/"},"modified":"2026-02-04T18:02:53","modified_gmt":"2026-02-04T18:02:53","slug":"wavesurfer-wp","status":"publish","type":"plugin","link":"https:\/\/szl.wordpress.org\/plugins\/wavesurfer-wp\/","author":13133064,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_crdt_document":"","version":"2.8.4","stable_tag":"trunk","tested":"5.4.19","requires":"4.0","requires_php":"","requires_plugins":null,"header_name":"WaveSurfer-WP","header_author":"X-Raym","header_description":"","assets_banners_color":"e0e3ee","last_updated":"2026-02-04 18:02:53","external_support_url":"","external_repository_url":"","donate_link":"https:\/\/www.extremraym.com\/en\/donation\/","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/wavesurfer-wp\/","header_author_uri":"https:\/\/www.extremraym.com\/en\/wavesurfer-wp","rating":5,"author_block_rating":0,"active_installs":400,"downloads":21977,"num_ratings":11,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"X-Raym","date":"2015-11-27 02:44:59"},"1.1.0":{"tag":"1.1.0","author":"X-Raym","date":"2015-11-30 16:10:27"},"2.0.0":{"tag":"2.0.0","author":"X-Raym","date":"2015-12-30 02:14:26"},"2.1.0":{"tag":"2.1.0","author":"X-Raym","date":"2016-01-03 11:12:26"},"2.1.1":{"tag":"2.1.1","author":"X-Raym","date":"2016-01-03 23:04:03"},"2.1.2":{"tag":"2.1.2","author":"X-Raym","date":"2016-01-06 00:17:33"},"2.1.3":{"tag":"2.1.3","author":"X-Raym","date":"2016-02-23 23:10:30"},"2.2":{"tag":"2.2","author":"X-Raym","date":"2016-03-16 13:54:56"},"2.3":{"tag":"2.3","author":"X-Raym","date":"2016-03-20 22:31:08"},"2.3.1":{"tag":"2.3.1","author":"X-Raym","date":"2016-03-23 13:28:47"},"2.5":{"tag":"2.5","author":"X-Raym","date":"2016-10-11 13:13:02"},"2.5.1":{"tag":"2.5.1","author":"X-Raym","date":"2016-10-17 20:28:18"},"2.5.2":{"tag":"2.5.2","author":"X-Raym","date":"2016-10-19 18:15:31"},"2.5.3":{"tag":"2.5.3","author":"X-Raym","date":"2016-10-21 14:57:33"},"2.6":{"tag":"2.6","author":"X-Raym","date":"2016-10-24 14:30:31"},"2.6.1":{"tag":"2.6.1","author":"X-Raym","date":"2016-10-31 12:22:48"},"2.6.2":{"tag":"2.6.2","author":"X-Raym","date":"2016-11-22 01:00:10"},"2.6.3":{"tag":"2.6.3","author":"X-Raym","date":"2016-11-28 23:58:08"},"2.6.4":{"tag":"2.6.4","author":"X-Raym","date":"2016-12-21 17:32:36"},"2.7":{"tag":"2.7","author":"X-Raym","date":"2017-01-20 01:06:49"},"2.7.1":{"tag":"2.7.1","author":"X-Raym","date":"2017-01-27 11:54:10"},"2.7.2":{"tag":"2.7.2","author":"X-Raym","date":"2017-04-14 18:12:42"},"2.7.3":{"tag":"2.7.3","author":"X-Raym","date":"2017-05-09 17:36:35"},"2.7.4":{"tag":"2.7.4","author":"X-Raym","date":"2017-05-16 14:50:15"},"2.7.5":{"tag":"2.7.5","author":"X-Raym","date":"2017-05-16 21:31:38"},"2.8":{"tag":"2.8","author":"X-Raym","date":"2020-06-22 09:09:40"},"2.8.1":{"tag":"2.8.1","author":"X-Raym","date":"2020-06-22 09:09:40"},"2.8.2":{"tag":"2.8.2","author":"X-Raym","date":"2020-06-28 18:24:53"},"2.8.3":{"tag":"2.8.3","author":"X-Raym","date":"2020-08-01 14:32:50"},"2.8.4":{"tag":"2.8.4","author":"X-Raym","date":"2026-02-04 18:02:53"}},"upgrade_notice":{"2.8.3 (2020-08-01)":"<ul>\n<li>Update dependencies (Wavesurfer 4.0.1 #1990 bug fix)<\/li>\n<\/ul>","2.8.2 (2020-06-28)":"<ul>\n<li>Update dependencies (Wavesurfer 4.0.1)<\/li>\n<\/ul>","2.8.1 (2020-06-22)":"<ul>\n<li>Update dependencies( Wavesurfer 4.0.0)<\/li>\n<\/ul>","2.8 (2018-12-30)":"<ul>\n<li>Update dependencies (Wavesurfer 2.1.1)<\/li>\n<\/ul>","2.7.5 (2017-05-16)":"<ul>\n<li>Prevent some errors with AJAX init<\/li>\n<\/ul>","2.7.4 (2017-05-16)":"<ul>\n<li>Support arrays of IDs for playlist shortcode<\/li>\n<\/ul>","2.7.3 (2017-04-18)":"<ul>\n<li>Filters: better logic.<\/li>\n<li>Scripts: dependencies minification. Dev versions could be loaded thanks to WordPress SCRIPT_DEBUG variable.<\/li>\n<li>Better compatibility with AJAX<\/li>\n<\/ul>","2.7.2 (2017-04-14)":"<ul>\n<li>Continuous shortcode attribute for playlist support for the premium add-on<\/li>\n<\/ul>","2.7.1 (2017-01-27)":"<ul>\n<li>Better internal hook names<\/li>\n<\/ul>","2.7 (2017-01-19)":"<ul>\n<li>Add sound duration, title (fallback to post title), thumbnail and artist in playlist tracks<\/li>\n<li>Fix &#039;default&#039; shortcode attribute behavior for playlists<\/li>\n<li>MultiSite friendly<\/li>\n<li>Notices fixes<\/li>\n<li>Small styles enhancements<\/li>\n<li>Possibility to enqueue\/dequeue a custom icons font (default is enqueue)<\/li>\n<\/ul>","2.6.4 (2016-12-21)":"<ul>\n<li>Updated styles for WaveSurfer-WP-Premium interactive markers system<\/li>\n<\/ul>","2.6.3 (2016-11-29)":"<p>AJAX Page loading compatibility is back.\nJavaScript hook for custom WaveSurfer-WP player initialization<\/p>","2.6.2 (2016-11-22)":"<p>Fixed Playlist behavior and PHP warning error if only one id was set.<\/p>","2.6.1 (2016-10-31)":"<p>Fixed one attachment playlist shortocde PHP warning error.<\/p>","2.6 (2016-10-24)":"<p>Added new filters for bulk adding shortcode attributes or waveform data. Code examples on the plugin WordPress page.<\/p>","2.5.3":"<p>Optimizations for WaveSurfer-WP Premium<\/p>","2.5.2":"<p>Performance: Don&#039;t load audio unless play is clicked (waveforms are still drawn at page ready)<\/p>","2.5.1":"<p>Fixed playlist with one file only issue.<\/p>","2.5":"<p>Updated for WaveSurfer-WP Premium add-on. Possible regression for website which features ajax page transition (need testing).<\/p>","2.3.1":"<p>Player can now be translated<\/p>","2.3":"<p>Play one player pause the others, better resources loading, few other enhancements.<\/p>","2.2":"<p>Fixes, enhancements, possibility to play while file is loading, and Height attribute<\/p>","2.1.2":"<p>AJAX pages loading compatible<\/p>","2.1.1":"<p>Src attribute in audio shortcode is now valid<\/p>","2.1.0":"<p>Playlist shortcode support<\/p>","2.0.0":"<p>New WebAudio rendering for better performance<\/p>","1.0.0":"<p>Initial release.<\/p>"},"ratings":{"1":0,"2":0,"3":0,"4":0,"5":"11"},"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":1295137,"resolution":"128x128","location":"assets","locale":""}},"assets_banners":{"banner-772x250.png":{"filename":"banner-772x250.png","revision":1295137,"resolution":"772x250","location":"assets","locale":""}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0","1.1.0","2.0.0","2.1.0","2.1.1","2.1.2","2.1.3","2.2","2.3","2.3.1","2.5","2.5.1","2.5.2","2.5.3","2.6","2.6.1","2.6.2","2.6.3","2.6.4","2.7","2.7.1","2.7.2","2.7.3","2.7.4","2.7.5","2.8","2.8.1","2.8.2","2.8.3","2.8.4"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":1295255,"resolution":"1","location":"assets","locale":""},"screenshot-2.png":{"filename":"screenshot-2.png","revision":1295255,"resolution":"2","location":"assets","locale":""},"screenshot-3.png":{"filename":"screenshot-3.png","revision":1297480,"resolution":"3","location":"assets","locale":""}},"screenshots":{"1":"Front-End Settings Page","2":"Back-End Settings Page","3":"Mute, Loop and Download buttons with the Flat Icons Style"},"jetpack_post_was_ever_published":false},"plugin_section":[],"plugin_tags":[452,84,444,18208,64207],"plugin_category":[50],"plugin_contributors":[87845],"plugin_business_model":[],"class_list":["post-40393","plugin","type-plugin","status-publish","hentry","plugin_tags-audio","plugin_tags-media","plugin_tags-player","plugin_tags-visualization","plugin_tags-waveform","plugin_category-media","plugin_contributors-x-raym","plugin_committers-x-raym"],"banners":{"banner":"https:\/\/ps.w.org\/wavesurfer-wp\/assets\/banner-772x250.png?rev=1295137","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/wavesurfer-wp\/assets\/icon-128x128.png?rev=1295137","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/wavesurfer-wp\/assets\/screenshot-1.png?rev=1295255","caption":"Front-End Settings Page"},{"src":"https:\/\/ps.w.org\/wavesurfer-wp\/assets\/screenshot-2.png?rev=1295255","caption":"Back-End Settings Page"},{"src":"https:\/\/ps.w.org\/wavesurfer-wp\/assets\/screenshot-3.png?rev=1297480","caption":"Mute, Loop and Download buttons with the Flat Icons Style"}],"raw_content":"<!--section=description-->\n<p>This plugin replaces the default WordPress audio player with a player capable of displaying audio waveforms. It can display a mix of the different audio channels (for podcast, radio replays, e-learning, music), or all channels simultaneously (for sound tutorial, sounds-packs showcases, audio products demo etc...), which is its main purpose.<\/p>\n\n<p>By working with the default audio\/playlist shortcode, you have great advantages:<\/p>\n\n<ul>\n<li>It works with all your previous posts<\/li>\n<li>You still have the default player in the Visual Editor (not just shortcode)<\/li>\n<li>It supports every audio format supported by WordPress (wav, ogg, mp3, m4a).<\/li>\n<li>Safe deactivation: if you deactivate the plugin, your shortcode will fallback to the WordPress default audio player.<\/li>\n<\/ul>\n\n<p>Global colors and style settings can be overridden locally by dedicated shortcode attributes.<\/p>\n\n<ul>\n<li><code>progress_color=\"purple\"<\/code><\/li>\n<li><code>wave_color=\"#FF0000\"<\/code><\/li>\n<li><code>cursor_color=\"#FF0000\"<\/code><\/li>\n<li><code>height=\"128\"<\/code><\/li>\n<li><code>bar_width=\"0\"<\/code><\/li>\n<\/ul>\n\n<p>Also, there is some attributes accessible at shortcode level:<\/p>\n\n<ul>\n<li><code>mute_button=\"true\"<\/code><\/li>\n<li><code>loop_button=\"true\"<\/code><\/li>\n<li><code>download_button=\"true\"<\/code><\/li>\n<li><code>split_channels=\"true\"<\/code><\/li>\n<li><code>player=\"default\"<\/code><\/li>\n<\/ul>\n\n<p>For more advanced customization, with a custom <a href=\"http:\/\/www.wpbeginner.com\/beginners-guide\/what-why-and-how-tos-of-creating-a-site-specific-wordpress-plugin\/\">site-plugin<\/a>, you can:<\/p>\n\n<ul>\n<li>add shortcode attributes conditionally with the filter <code>wavesurfer_wp_shortcode_attributes<\/code>.<\/li>\n<li>use the <code>wavesurfer_wp_shortcode_data<\/code> filter if you want to add custom waveform data attributes.<\/li>\n<li>use the <code>wavesurfer-wp-init<\/code> JavaScript event handler to render the player on custom events, like after click on a button. See examples on the <a href=\"https:\/\/github.com\/X-Raym\/wavesurfer-wp-init\">WaveSurfer-WP-Init<\/a> GitHub repository.<\/li>\n<\/ul>\n\n<p>Check this <a href=\"https:\/\/gist.github.com\/X-Raym\/5c388e6554b30ca6a56646fb8d96d17f\">Gist<\/a> for demos of how to use the filters.<\/p>\n\n<p>Extra features :<\/p>\n\n<ul>\n<li>Pressing play on a player automatically set all the others on the same page to pause.<\/li>\n<li>AJAX Page loading compatibility<\/li>\n<li>MultiSite Friendly<\/li>\n<\/ul>\n\n<p>The default style requires some icons of <a href=\"https:\/\/fortawesome.github.io\/\">Font-Awesome 1.0<\/a>. These are included in the plugin as a small custom font. Because this icon-font is already used in a lot of themes and plugins, you can deactivate this custom font if needed.<\/p>\n\n<p>You can deactivate the default WaveSurder-WP theme, and use your own theme style. I strongly encourage you to do that as custom CSS is the only way to make it fit your theme perfectly. There is a lot of dedicated CSS selectors for that. You can take one of the included theme as reference.\nThis will allow you to have more control on icons, responsivity, mouse hover behavior etc...<\/p>\n\n<p><a href=\"https:\/\/www.extremraym.com\/en\/wavesurfer-wp\">More Infos &amp; Demos<\/a><\/p>\n\n<p>You can contribute by to WaveSurfer-WP development on <a href=\"https:\/\/github.com\/x-raym\/wavesurfer-wp\">GitHub<\/a><\/p>\n\n<p>Themes and Translations are welcome !<\/p>\n\n<p>Optimization trick: if you only use this plugin on a couple of pages, I invite you to use a plugin like <a href=\"https:\/\/wordpress.org\/plugins\/plugin-organizer\/\">Plugin Organizer<\/a> or <a href=\"http:\/\/tomasz-dobrzynski.com\/wordpress-gonzales\">Gonzales<\/a> to globally deactivate the plugin or its style, and make it load resources only on pages which need it.\nNo need for that on the back-end, only for front-end.<\/p>\n\n<p>This player doesn't have and will not have Like Button, Sharing Button, Play count and Download count.\nIf you are looking for a WordPress player with such Social Features and advanced statistics like <a href=\"http:\/\/www.soundcloud.com\">SoundCloud<\/a> or <a href=\"http:\/\/www.hearthis.at\">Hearthis.at<\/a>, take a look at <a href=\"http:\/\/codecanyon.net\/item\/zoomsounds-neat-html5-audio-player\/4525354\">ZoomSounds<\/a>.\nFor other advanced WordPress integration of wavesurfer-js, you can check <a href=\"http:\/\/codecanyon.net\/item\/waveplayer-a-wordpress-audio-player\/14349799\">WavePlayer<\/a> by luigipulcini or <a href=\"https:\/\/codecanyon.net\/item\/wavesurfer-plus-mp3-player-module-for-gmedia-plugin\/19242349\">WaveSurfer-Plus<\/a> by GalleryCreator.<\/p>\n\n<p>Contrary to the other WordPress plugin based on wavesurfer-js, wavesurfer-js hasn't been modified in this plugin. This means that you can extend feature of this plugin using the wavesurfer-js <a href=\"http:\/\/wavesurfer-js.org\/\">methods<\/a>, and that updates from the wavesurfer-js community will be pushed in WaveSurfer-WP regularly.<\/p>\n\n<p>WordPress 5 and Guteberg: Inserting <code>[audio]<\/code> with Gutenberg doesn't bring the <code>[audio]<\/code> shortcode as it use to be. As this plugin is designed to hook the audio shortcode, you can use the generic shortcode block in gutenberg to manually write your shortcode, or use the classic editor.<\/p>\n\n<h4>WaveSurfer-WP Premium Add-on<\/h4>\n\n<p>A premium add-on is available to add extra features to WaveSurfer-WP.<\/p>\n\n<ul>\n<li><p>Cache Peaks File\nThis add-on creates and loads peaks from small files, containing peaks values. No need to wait for the full audio to be decoded to display its waveform.<\/p><\/li>\n<li><p>Markers System\nYou can add custom clickable element on your pages to seek WaveSurfer-WP player to a desired position. Can be useful for adding marks, chapters, and it can even be used for <a href=\"https:\/\/www.extremraym.com\/en\/wavesurfer-wp-markers\">interactive audio transcripts<\/a>!<\/p><\/li>\n<li><p>Plug and Play\nThese extra features are packed as an add-on. No need to delete and replace the original plugin. You will still be able to benefit from translations made by the community. Also, the core is still open source, to allow contribution.<\/p><\/li>\n<li><p>TimeLine Plugin\nWhen activated thanks to a shortcode attribute, a customizable time ruler will appear below your waveform.<\/p><\/li>\n<\/ul>\n\n<p>You can buy it from the official <a href=\"https:\/\/www.extremraym.com\/en\/downloads\/wavesurfer-wp-premium\">product page<\/a>.\nThanks for considering this way to support WaveSurfer-WP !<\/p>\n\n<h3>Additional Infos<\/h3>\n\n<p>It is a port for WordPress of <a href=\"http:\/\/wavesurfer-js.org\/\">WaveSurfer-js<\/a> by katspaugh.<\/p>\n\n<p>It also contains <a href=\"http:\/\/danml.com\/download.html\">Download-js<\/a> by dandavis.<\/p>\n\n<h3>Donators<\/h3>\n\n<p>Thanks to our generous donators for supporting this plugin development !<\/p>\n\n<ol>\n<li><a href=\"http:\/\/signaltonoize.com\/\">SignalToNoize.com<\/a><\/li>\n<li><a href=\"http:\/\/theopod.com\">hawthonn<\/a><\/li>\n<li><a href=\"http:\/\/soundpacks.com\">Rob<\/a><\/li>\n<li><a href=\"http:\/\/robertgetzner.com\/\">Robert Getzener<\/a><\/li>\n<\/ol>\n\n<p>Do you want to contribute or sponsor one particular feature ? See you on the <a href=\"https:\/\/www.extremraym.com\/en\/donation\/\">donation page<\/a>. Thanks !<\/p>\n\n<!--section=installation-->\n<p>For an automatic installation through WordPress:<\/p>\n\n<ol>\n<li>Go to the <em>Add New<\/em> plugins screen in your WordPress admin area<\/li>\n<li>Search for <em>WaveSurfer-WP<\/em><\/li>\n<li>Click <em>Install Now<\/em> and activate the plugin<\/li>\n<\/ol>\n\n<p>For a manual installation via FTP:<\/p>\n\n<ol>\n<li>Upload the <code>wavesurfer-wp<\/code> directory to the <code>\/wp-content\/plugins\/<\/code> directory<\/li>\n<li>Activate the plugin through the <em>Plugins<\/em> screen in your WordPress admin area<\/li>\n<\/ol>\n\n<p>To upload the plugin through WordPress, instead of FTP:<\/p>\n\n<ol>\n<li>Upload the downloaded zip file on the Add New* plugins screen (see the <em>Upload<\/em> tab) in your WordPress admin area and activate.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"the%20buttons%20appear%20but%20not%20the%20waveform\"><h3>The buttons appear but not the Waveform<\/h3><\/dt>\n<dd><p>Shortcode are interpreted but there is problem for loading the file.<\/p>\n\n<p>I\/ The most common error is that the file is hosted on a CDN that isn't set to allow the kind of requests made by WaveSurfer-js.<\/p>\n\n<p>So, you can choose one of these solutions :<\/p>\n\n<ul>\n<li>Deactivate WaveSurfer for this particular instance using player=\"default\" in the shortcode<\/li>\n<li>Go to your CDN settings panel and allow Access-Control-Allow-Origin for XMLHttpRequest<\/li>\n<li>Host your file on your main server<\/li>\n<\/ul>\n\n<p>II\/ This problem may also occurs if your file is not supported by your browser.<\/p>\n\n<p>Some audio formats \/ browsers combo are not possible. This cannot be fixed by our side. (For ex, wav 24 bits in FireFox).\nConvert the file to a more web-friendly format and try again.<\/p>\n\n<p>III\/ Also, check that your file is accessible via http (aka, check if the link is valid).<\/p>\n\n<p>Please report other problems on the support forum.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.8.4 (2026-02-04)<\/h4>\n\n<ul>\n<li>Sanitize links in shortcode attributes<\/li>\n<\/ul>\n\n<h4>2.8.3 (2020-08-01)<\/h4>\n\n<ul>\n<li>Update dependencies (Wavesurfer 4.0.1 #1990 bug fix)<\/li>\n<\/ul>\n\n<h4>2.8.2 (2020-06-28)<\/h4>\n\n<ul>\n<li>Update dependencies (Wavesurfer 4.0.1)<\/li>\n<\/ul>\n\n<h4>2.8.1 (2020-06-22)<\/h4>\n\n<ul>\n<li>Update dependencies (Wavesurfer 4.0.0)<\/li>\n<\/ul>\n\n<h4>2.8 (2018-12-30)<\/h4>\n\n<ul>\n<li>Update dependencies (Wavesurfer 2.1.1)<\/li>\n<\/ul>\n\n<h4>2.7.5 (2017-05-16)<\/h4>\n\n<ul>\n<li>Prevent some errors with AJAX init<\/li>\n<\/ul>\n\n<h4>2.7.4 (2017-05-16)<\/h4>\n\n<ul>\n<li>Support arrays of IDs for playlist shortcode<\/li>\n<\/ul>\n\n<h4>2.7.3 (2017-04-18)<\/h4>\n\n<ul>\n<li>Filters: better logic.<\/li>\n<li>Scripts: dependencies minification. Dev versions can be loaded thanks to WordPress SCRIPT_DEBUG variable.<\/li>\n<li>Better compatibility with AJAX<\/li>\n<\/ul>\n\n<h4>2.7.2 (2017-04-14)<\/h4>\n\n<ul>\n<li>Continuous shortcode attribute for playlist support for the premium add-on<\/li>\n<\/ul>\n\n<h4>2.7.1 (2017-01-27)<\/h4>\n\n<ul>\n<li>Better internal hook names<\/li>\n<\/ul>\n\n<h4>2.7 (2017-01-19)<\/h4>\n\n<ul>\n<li>Add sound duration, title (fallback to post title), thumbnail and artist in playlist tracks<\/li>\n<li>Fix 'default' shortcode attribute behavior for playlists<\/li>\n<li>MultiSite friendly<\/li>\n<li>Notices fixes<\/li>\n<li>Small styles enhancements<\/li>\n<li>Possibility to enqueue\/dequeue a custom icons font (default is enqueue)<\/li>\n<\/ul>\n\n<h4>2.6.4 (2016-12-21)<\/h4>\n\n<ul>\n<li>Updated styles for WaveSurfer-WP-Premium interactive markers system<\/li>\n<\/ul>\n\n<h4>2.6.3 (2016-11-29)<\/h4>\n\n<ul>\n<li>AJAX Page loading compatibility is back<\/li>\n<li>JavaScript hook for custom WaveSurfer-WP player initialization<\/li>\n<\/ul>\n\n<h4>2.6.2 (2016-11-22)<\/h4>\n\n<ul>\n<li>Fixed Playlist behavior.<\/li>\n<li>Back to wavesurfer-js original fork.<\/li>\n<li>Fixed playlist with one file only warning error.<\/li>\n<\/ul>\n\n<h4>2.6.1 (2016-10-31)<\/h4>\n\n<ul>\n<li>Fixed one attachment playlist shortcode PHP warning error.<\/li>\n<\/ul>\n\n<h4>2.6 (2016-10-24)<\/h4>\n\n<ul>\n<li>Added new filters for bulk adding shortcode attributes or waveform data.<\/li>\n<\/ul>\n\n<h4>2.5.3 (2016-10-22)<\/h4>\n\n<ul>\n<li>Optimizations for WaveSurfer-WP Premium<\/li>\n<\/ul>\n\n<h4>2.5.2 (2016-10-19)<\/h4>\n\n<ul>\n<li>Performance: Don't load audio unless play is clicked (waveforms are still drawn at page ready)<\/li>\n<\/ul>\n\n<h4>2.5.1 (2016-10-17)<\/h4>\n\n<ul>\n<li>Fixed playlist with one file only issue.<\/li>\n<\/ul>\n\n<h4>2.5 (2016-10-07)<\/h4>\n\n<ul>\n<li>Updated for WaveSurfer-WP Premium add-on<\/li>\n<li>Better localization domain name<\/li>\n<li>Update wavesurfer-js with custom version<\/li>\n<li>Various enhancements<\/li>\n<\/ul>\n\n<h4>2.3.1 (2016-03-23)<\/h4>\n\n<ul>\n<li>Player can now be translated<\/li>\n<\/ul>\n\n<h4>2.3 (2016-03-20)<\/h4>\n\n<ul>\n<li>Play one player pause the others<\/li>\n<li>Scripts only loaded when shortcode is present<\/li>\n<li>Loop button on playlist now works as expected<\/li>\n<li>\"Resume\" instead of \"Play\" for paused players<\/li>\n<\/ul>\n\n<h4>2.2 (2016-03-15)<\/h4>\n\n<ul>\n<li>Backend: to back MediaElement instead of WebAudio, which make it possible to play while file is loading. No progress bar while loading needed anymore, and maybe less restrictions with CDN.<\/li>\n<li>height shortcode and setting<\/li>\n<li>Play\/Pause button is now only Play or Pause according to its state. Same for Mute button and Loop buttons, with Unmute and Unloop, for better accessibility.<\/li>\n<li>Prevent z-index error in style<\/li>\n<li>Prevent max-width canvas error<\/li>\n<li>Script init optimization<\/li>\n<li>WaveSurfer-js 1.0.58 from 2016-02-28<\/li>\n<\/ul>\n\n<h4>2.1.3 (2016-02-23)<\/h4>\n\n<ul>\n<li>Fix double slash in URL (thanks to Glen Rowell)<\/li>\n<\/ul>\n\n<h4>2.1.2 (2016-01-05)<\/h4>\n\n<ul>\n<li>AJAX pages loading compatible<\/li>\n<li>Few HTML optimizations<\/li>\n<\/ul>\n\n<h4>2.1.1 (2016-01-03)<\/h4>\n\n<ul>\n<li>Src attribute in audio shortcode is now valid<\/li>\n<\/ul>\n\n<h4>2.1.0 (2016-01-03)<\/h4>\n\n<ul>\n<li>Playlist shortcode support<\/li>\n<li>Responsive waveform<\/li>\n<li>Deleted Lang Packs (now hosted by WordPress.org)<\/li>\n<\/ul>\n\n<h4>2.0.0 (2015-12-29)<\/h4>\n\n<ul>\n<li>New WebAudio rendering for better performance<\/li>\n<li>wavesurfer.js 1.0.48<\/li>\n<\/ul>\n\n<h4>1.1.0 (2015-11-30)<\/h4>\n\n<ul>\n<li>Cursor Color setting and shortcode<\/li>\n<li>Download Button shortcode<\/li>\n<li>Loop Button shortcode<\/li>\n<li>Mute Button shortcode<\/li>\n<li>Flat Icons theme<\/li>\n<li>Play\/Pause buttons have merged<\/li>\n<\/ul>\n\n<h4>1.0.0 (2015-11-24)<\/h4>\n\n<ul>\n<li>First release.<\/li>\n<\/ul>","raw_excerpt":"Customizable HTML5 Audio controller with waveform preview (mixed or split channels), using WordPress native audio and playlist shortcode.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/40393","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=40393"}],"author":[{"embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/x-raym"}],"wp:attachment":[{"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=40393"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=40393"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=40393"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=40393"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=40393"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/szl.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=40393"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}