{"id":41026,"date":"2025-03-09T16:13:06","date_gmt":"2025-03-09T16:13:06","guid":{"rendered":"https:\/\/new-blog.artlist.io\/blog\/?p=41026"},"modified":"2025-03-11T12:28:19","modified_gmt":"2025-03-11T12:28:19","slug":"spring-sound-effects","status":"publish","type":"post","link":"https:\/\/new-blog.artlist.io\/blog\/spring-sound-effects\/","title":{"rendered":"Bring spring to life with Artlist\u2019s ultimate SFX collection"},"content":{"rendered":"\n<h2 class=\"wp-block-heading\">Fresh sounds for the new season<\/h2>\n\n\n\n<p>Successful filmmakers will tell you that great sound effects are the secret to creating compelling scenes. The best SFX are often used in such subtle ways the viewer doesn\u2019t even notice them, yet they can change the entire mood and direction of a scene.&nbsp;<\/p>\n\n\n\n<p>Sound effects bring visuals to life, add extra layers of depth and realism, and help define a mood, all while progressing the story. Whether it\u2019s the sound of a car hitting the brakes, the creak of a floorboard, or the rustle of a bush, SFX makes everything feel more real. Just try watching a film without any sound effects \u2014 it\u2019ll seem quiet and flat. Watch again with the right background sounds, and the viewing experience transforms completely.&nbsp;<\/p>\n\n\n\n<p>Take <em>A Quiet Place <\/em>(2018), for example, a film about creatures that hunt by sound. The <a href="\&quot;https:\/\/artlist.io\/sfx\&quot;" target=\"_blank\" rel=\"noreferrer noopener\">sound effects<\/a> \u2014 like footsteps, breathing, or a creaking door \u2014 create huge amounts of tension. The strategic use of silence and sound forces the audience to pay attention to every little noise, making the sound effects one of the most important aspects of the film.&nbsp;<\/p>\n\n\n\n<div class=\"b-youtube-embed\" id=\"WR7cc5t7tv8\">\n    <div class=\"play-button\"><\/div>\n            <img decoding=\"async\" src="\&quot;https:\/\/img.youtube.com\/vi\/WR7cc5t7tv8\/maxresdefault.jpg\&quot;" class=\"asset original\" alt=\"Artlist Blog\"\ />\n        <img decoding=\"async\" src="\&quot;https:\/\/img.youtube.com\/vi\/WR7cc5t7tv8\/maxresdefault.jpg\&quot;" class=\"asset desktop\" alt=\"Artlist Blog\"\ />\n        <img decoding=\"async\" src="\&quot;https:\/\/img.youtube.com\/vi\/WR7cc5t7tv8\/maxresdefault.jpg\&quot;" class=\"asset desktop-small\" alt=\"Artlist Blog\"\ />\n        <img decoding=\"async\" src="\&quot;https:\/\/img.youtube.com\/vi\/WR7cc5t7tv8\/maxresdefault.jpg\&quot;" class=\"asset tablet\" alt=\"Artlist Blog\"\ />\n        <img decoding=\"async\" src="\&quot;https:\/\/img.youtube.com\/vi\/WR7cc5t7tv8\/maxresdefault.jpg\&quot;" class=\"asset mobile\" alt=\"Artlist Blog\"\ />\n<\/div>\n\n\n\n\n<p>Seasoned filmmakers understand that sound effects aren\u2019t just background noise \u2014 they\u2019re crucial parts of the emotional experience.&nbsp;<\/p>\n\n\n\n<p>We just released a brand new collection of spring sound effects, just in time for the turn of the season. We\u2019ll break down some of these brand-new SFX and suggest how you can use them to bring your spring films to life and elevate your nature content.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Artlist\u2019s Spring SFX Collection<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">SFX: Into the Bush &#8211; Leaves, Rustling, Light Wind<\/h3>\n\n\n\n<p>Artist: <a href="\&quot;https:\/\/artlist.io\/sfx\/artist\/c%C3%A9line-woodburn\/1632\&quot;" target=\"_blank\" rel=\"noreferrer noopener\">C\u00e9line Woodburn<\/a><\/p>\n\n\n\n<p>This ten-second sound effect shares the sound of a bush rustling, with light wind in the background. This SFX can be used in a range of outdoor scenarios, with the light wind and rustling leaves reminding viewers of the presence of the outdoor environment. This could be powerful when paired with a quiet moment of introspection as a character walks through the woods, almost as if nature itself is offering the soundtrack.<\/p>\n\n\n\n\n    <div class=\"playlist\" id=\"69d07ebeac4f4\"><\/div>\n\n    <script>\n        jQuery(document).ready(function($) {\n\n            if(\"sfx\" == 'songs') {\n                $.ajax({\n                    method: \"POST\",\n                    url: \"https:\/\/search-api.artlist.me\/v1\/graphql\",\n                    contentType: \"application\/json\",\n                    data: JSON.stringify({\n                        query: `query SongList($page: Int!, $songSortType: Int!, $take: Int!, $vocalMenuId: Int!, $categoryIds: [Int], $collectionId: String, $searchTerm: String) {\n                        songList(page: $page, songSortType: $songSortType, take: $take, vocalMenuId: $vocalMenuId, categoryIds: $categoryIds, collectionId: $collectionId, searchTerm: $searchTerm) {\n                          songs {\n                            songId\n                            songName\n                            artistName\n                            isNew\n                            nameForURL\n                            sitePlayableFilePath\n\t\t\t\t\t\t\talbumImageFilePath\n\t\t\t\t\t\t\trelativeUrl\n                          }\n                          totalResults\n                        }\n                    }`,\n                        variables: JSON.stringify({\n                            \"page\": 1,\n                            \"songSortType\": STAFF_PICKS,\n                            \"take\": 1,\n                            \"vocalMenuId\": 1,\n                            \"categoryIds\": null,\n                            \"searchTerm\": \"Into the Bush - Leaves, Rustling, Light Wind\"\n                        }),\n                    })\n                }).done(function(res) {\n                    if (res == '') {\n                        console.log('none');\n                    } else {\n                        console.log('songs list: ', res);\n                        var data = res.data.songList.songs;\n                        if ($(\"#69d07ebeac4f4\").length && data.length > 0) {\n                            createAudioPlayers(data, \"69d07ebeac4f4\");\n                        } else if ($(\"#69d07ebeac4f4\").length && data.length == 0) {\n                            $(\"#69d07ebeac4f4\").empty().append('<div class=\"noSongsError\">No songs were found.<\/div>');\n                        }\n                    }\n                });\n            } else if(\"sfx\" == 'sfx') {\n                $.ajax({\n                    method: \"POST\",\n                    url: \"https:\/\/search-api.artlist.me\/v1\/graphql\",\n                    contentType: \"application\/json\",\n                    data: JSON.stringify({\n                        query: `query SfxList($categoryIds: String!, $page: Float!, $tags: String!, $term: String!, $sortBy: SfxListRequestSortByOptions!) {\n\t\t\t\t\t\t\t\tsfxList(categoryIds: $categoryIds, page: $page, tags: $tags, term: $term, sortBy: $sortBy) {\n\t\t\t\t\t\t\t\t  page\n\t\t\t\t\t\t\t\t  songs {\n\t\t\t\t\t\t\t\t\t  albumImageFilePath\n\t\t\t\t\t\t\t\t\t  artistName\n\t\t\t\t\t\t\t\t\t  isNew\n\t\t\t\t\t\t\t\t\t  nameForURL\n\t\t\t\t\t\t\t\t\t  relativeUrl\n\t\t\t\t\t\t\t\t\t  sitePlayableFilePath        \n\t\t\t\t\t\t\t\t\t  songId \n\t\t\t\t\t\t\t\t\t  songName\n\t\t\t\t\t\t\t\t  }\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}`,\n                        variables: JSON.stringify({\n                            \"categoryIds\": \"\",\n                            \"page\": 1,\n                            \"tags\": \"\",\n                            \"term\": \"Into the Bush - Leaves, Rustling, Light Wind\",\n                            \"sortBy\": \"STAFF_PICKS\"\n                        }),\n                    })\n                }).done(function(res) {\n                    if (res == '') {\n                        console.log('none');\n                    } else {\n                        console.log('sfx list: ', res);\n                        var data = res.data.sfxList.songs;\n                        if ($(\"#69d07ebeac4f4\").length && data.length > 0) {\n                            createAudioPlayers(data, \"69d07ebeac4f4\");\n                        } else if ($(\"#69d07ebeac4f4\").length && data.length == 0) {\n                            $(\"#69d07ebeac4f4\").empty().append('<div class=\"noSongsError\">No songs were found.<\/div>');\n                        }\n                    }\n                });\n            }\n\n            function createAudioPlayers(data, playlistId) {\n                \/\/ main playlist container\n                const playlistContainer = $(\"#\" + playlistId);\n                \/\/ wavesurfers array\n                \/\/ const wavesurfers = [];\n                \/\/ loop over every song returned\n\n                if(!allWavesurfers){\n                    var allWavesurfers = [];\n                }\n                $.each(data, function(index, audio) {\n                    \/\/ if current type is sfx and current looped index is bigger than amount wanted via shortcode - then stop loop (because sfx request doesn't have \"take\" variable)\n                    if(\"sfx\" == 'sfx' && (index + 1) > 1) {\n                        return false;\n                    }\n\n                    \/\/ audio player container\n                    const audioPlayer = $(\"<div>\").addClass(\"audioPlayer\");\n                    \/\/ album image\n                    const audioImage = $(\"<div>\").addClass(\"audioImage\");\n                    audioImage.append('<img decoding=\"async\" src=\"' + audio.albumImageFilePath + '\"\/>');\n                    \/\/ audio controls\n                    const audioControls = $(\"<div>\").addClass(\"audioControls\");\n                    const playPauseButton = $(\"<button>\").addClass(\"playPauseButton\").html('<i class=\"fas fa-play\"><\/i>');\n                    audioControls.append(playPauseButton);\n                    \/\/ song url\n                    var songUrl;\n                    if(\"sfx\" == 'songs') {\n                        songUrl = 'https:\/\/artlist.io\/royalty-free-music\/song\/' + audio.nameForURL + '\/' + audio.songId + '?download=1&utm_source=blog';\n                    } else if(\"sfx\" == 'sfx') {\n                        songUrl = 'https:\/\/artlist.io\/sfx\/track\/' + audio.nameForURL + '\/' + audio.songId + '?download=1&utm_source=blog';\n                    }\n                    \/\/ song name and artist name\n                    const audioNames = $(\"<div>\").addClass(\"audioNames\");\n                    const songName = $(\"<a>\").addClass(\"songName\").attr(\"href\", songUrl).attr(\"target\", \"_blank\").text(audio.songName);\n                    if (audio.isNew) {\n                        songName.append('<span class=\"isNewBadge\">NEW<\/span>');\n                    }\n                    const artistName = $(\"<span>\").addClass(\"artistName\").text(audio.artistName);\n                    audioNames.append(songName, artistName);\n                    \/\/ audio waveform container\n                    const audioWaveform = $(\"<div>\").addClass(\"audioWaveform\");\n                    \/\/ download button\n                    const audioDownload = $(\"<a>\").addClass(\"audioDownload\").attr(\"href\", songUrl).attr(\"target\", \"_blank\").html('<i class=\"icon download medium\"><\/i>');\n\n\n                    \/\/ APPEND ALL ELEMENTS INTO AUDIO PLAYER CONTAINER\n                    audioPlayer.append(audioImage, audioControls, audioNames, audioWaveform, audioDownload);\n\n                    \/\/ append audio player container into main playlist container\n                    playlistContainer.append(audioPlayer);\n\n                    \/* media viewed SEGMENT EVENT *\/\n                    const special_data = getProps();\n\n                    const observer = new IntersectionObserver(entries => {\n                        entries.forEach(entry => {\n                            if (entry.isIntersecting) {\n                                var assetId = audio.songId;\n                                var artist = audio.artistName;\n                                var title = audio.songName;\n                                var asset_type = null;\n                                if(\"sfx\" == 'songs') {\n                                    asset_type = 'song';\n                                } else if(\"sfx\" == 'sfx') {\n                                    asset_type = 'sfx';\n                                }\n                                analytics.track(\"media viewed\", {\n                                    asset_id: assetId || null,\n                                    asset_type: asset_type || null,\n                                    click_source: 'player',\n                                    artist: artist || null,\n                                    title: title || null,\n                                    genre: null,\n                                    ...special_data,\n                                });\n                                observer.unobserve(entry.target);\n                            }\n                        });\n                    }, {\n                        threshold: 0.5\n                    });\n                    observer.observe(audioPlayer[0]);\n\n                    \/\/ check screen size\n                    var mobileScreen = window.matchMedia('(max-width: 767px)');\n                    var waveformHeight = '';\n                    if (mobileScreen.matches) { \/\/ mobile\n                        waveformHeight = 15;\n                    } else { \/\/ desktop\n                        waveformHeight = 40;\n                    }\n\n                    \/\/ create wavesurfer instance\n                    const waveformId = `waveform-${playlistId}-${index}`; \/\/ Generate a unique ID for each waveform\n                    const waveformContainer = $(\"<div>\").attr(\"id\", waveformId).addClass(\"waveformContainer\");\n                    audioWaveform.append(waveformContainer);\n                    const wavesurfer = WaveSurfer.create({\n                        container: `#${waveformId}`,\n                        waveColor: \"#b1b1b1\",\n                        progressColor: \"#171717\",\n                        cursorColor: \"transparent\",\n                        height: waveformHeight,\n                        normalize: true,\n                    });\n                    \/\/ push current wavesurfer into wavesurfers array\n                    \/\/ wavesurfers.push(wavesurfer);\n                    allWavesurfers.push(wavesurfer);\n                    \/\/ load audio file into new wavesurfer\n                    wavesurfer.load(audio.sitePlayableFilePath);\n\n                    \/\/ add event listener to the play\/pause button\n                    playPauseButton.on(\"click\", () => {\n                        if (wavesurfer.isPlaying()) {\n                            wavesurfer.pause();\n                            playPauseButton.html('<i class=\"fas fa-play\"><\/i>');\n\n                            \/* media paused SEGMENT EVENT *\/\n                            var assetId = audio.songId;\n                            var artist = audio.artistName;\n                            var title = audio.songName;\n                            var asset_type = null;\n                            if(\"sfx\" == 'songs') {\n                                asset_type = 'song';\n                            } else if(\"sfx\" == 'sfx') {\n                                asset_type = 'sfx';\n                            }\n                            analytics.track(\"media paused\", {\n                                asset_id: assetId || null,\n                                asset_type: asset_type || null,\n                                click_source: 'player',\n                                artist: artist || null,\n                                title: title || null,\n                                genre: null,\n                                ...special_data,\n                            });\n                        } else {\n                            \/\/ pause all other audios that may be playing\n                            $('.playPauseButton').html('<i class=\"fas fa-play\"><\/i>');\n                            $.each(allWavesurfers, function(index, audio) {\n                                allWavesurfers[index].pause();\n                            });\n                            \/\/ then play current audio\n                            wavesurfer.play();\n                            playPauseButton.html('<i class=\"fas fa-pause\"><\/i>');\n\n                            \/* media played SEGMENT EVENT *\/\n                            var assetId = audio.songId;\n                            var artist = audio.artistName;\n                            var title = audio.songName;\n                            var asset_type = null;\n                            if(\"sfx\" == 'songs') {\n                                asset_type = 'song';\n                            } else if(\"sfx\" == 'sfx') {\n                                asset_type = 'sfx';\n                            }\n                            analytics.track(\"media played\", {\n                                asset_id: assetId || null,\n                                asset_type: asset_type || null,\n                                click_source: 'player',\n                                artist: artist || null,\n                                title: title || null,\n                                genre: null,\n                                ...special_data,\n                            });\n                        }\n                    });\n\n                    \/* media downloaded SEGMENT EVENT *\/\n                    audioDownload.on(\"click\", () => {\n                        var assetId = audio.songId;\n                        var artist = audio.artistName;\n                        var title = audio.songName;\n                        var asset_type = null;\n                        if(\"sfx\" == 'songs') {\n                            asset_type = 'song';\n                        } else if(\"sfx\" == 'sfx') {\n                            asset_type = 'sfx';\n                        }\n                        analytics.track(\"media downloaded\", {\n                            asset_id: assetId || null,\n                            asset_type: asset_type || null,\n                            click_source: 'player',\n                            artist: artist || null,\n                            title: title || null,\n                            genre: null,\n                            ...special_data,\n                        });\n                    });\n\n                    \/\/ add event listener to the click on the wave itself\n                    audioWaveform.on(\"click\", () => {\n                        setTimeout(() => {\n                            if (wavesurfer.isPlaying()) {\n                                wavesurfer.pause();\n                                playPauseButton.html('<i class=\"fas fa-play\"><\/i>');\n                            } else {\n                                \/\/ pause all other audios that may be playing\n                                $('.playPauseButton').html('<i class=\"fas fa-play\"><\/i>');\n                                $.each(allWavesurfers, function(index, audio) {\n                                    allWavesurfers[index].pause();\n                                });\n                                \/\/ then play current audio\n                                wavesurfer.play();\n                                playPauseButton.html('<i class=\"fas fa-pause\"><\/i>');\n                            }\n                        }, \"200\");\n                    });\n\n                });\n            }\n\n        });\n    <\/script>\n\n    \n\n\n\n<h3 class=\"wp-block-heading\">SFX: Nourishing Nature &#8211; Melting Ice, Dripping<\/h3>\n\n\n\n<p>Artist: <a href=\"https:\/\/artlist.io\/sfx\/artist\/nick-mcmahan\/2655\" target=\"_blank\" rel=\"noreferrer noopener\">Nick McMahan<\/a><\/p>\n\n\n\n<p>This one-minute clip of ice dripping could be used in lots of contexts to enhance the narrative of a scene. The melting of ice can be used to symbolize the passage of time, especially during the change of season, and it can show that spring is on its way, acting as a symbol of renewal and change.&nbsp;<\/p>\n\n\n\n\n    <div class=\"playlist\" id=\"69d07ebeac66a\"><\/div>\n\n    <script>\n        jQuery(document).ready(function($) {\n\n            if(\"sfx\" == 'songs') {\n                $.ajax({\n                    method: \"POST\",\n                    url: \"https:\/\/search-api.artlist.me\/v1\/graphql\",\n                    contentType: \"application\/json\",\n                    data: JSON.stringify({\n                        query: `query SongList($page: Int!, $songSortType: Int!, $take: Int!, $vocalMenuId: Int!, $categoryIds: [Int], $collectionId: String, $searchTerm: String) {\n                        songList(page: $page, songSortType: $songSortType, take: $take, vocalMenuId: $vocalMenuId, categoryIds: $categoryIds, collectionId: $collectionId, searchTerm: $searchTerm) {\n                          songs {\n                            songId\n                            songName\n                            artistName\n                            isNew\n                            nameForURL\n                            sitePlayableFilePath\n\t\t\t\t\t\t\talbumImageFilePath\n\t\t\t\t\t\t\trelativeUrl\n                          }\n                          totalResults\n                        }\n                    }`,\n                        variables: JSON.stringify({\n                            \"page\": 1,\n                            \"songSortType\": STAFF_PICKS,\n                            \"take\": 1,\n                            \"vocalMenuId\": 1,\n                            \"categoryIds\": null,\n                            \"searchTerm\": \"Nourishing Nature - Melting Ice, Dripping\"\n                        }),\n                    })\n                }).done(function(res) {\n                    if (res == '') {\n                        console.log('none');\n                    } else {\n                        console.log('songs list: ', res);\n                        var data = res.data.songList.songs;\n                        if ($(\"#69d07ebeac66a\").length && data.length > 0) {\n                            createAudioPlayers(data, \"69d07ebeac66a\");\n                        } else if ($(\"#69d07ebeac66a\").length && data.length == 0) {\n                            $(\"#69d07ebeac66a\").empty().append('<div class=\"noSongsError\">No songs were found.<\/div>');\n                        }\n                    }\n                });\n            } else if(\"sfx\" == 'sfx') {\n                $.ajax({\n                    method: \"POST\",\n                    url: \"https:\/\/search-api.artlist.me\/v1\/graphql\",\n                    contentType: \"application\/json\",\n                    data: JSON.stringify({\n                        query: `query SfxList($categoryIds: String!, $page: Float!, $tags: String!, $term: String!, $sortBy: SfxListRequestSortByOptions!) {\n\t\t\t\t\t\t\t\tsfxList(categoryIds: $categoryIds, page: $page, tags: $tags, term: $term, sortBy: $sortBy) {\n\t\t\t\t\t\t\t\t  page\n\t\t\t\t\t\t\t\t  songs {\n\t\t\t\t\t\t\t\t\t  albumImageFilePath\n\t\t\t\t\t\t\t\t\t  artistName\n\t\t\t\t\t\t\t\t\t  isNew\n\t\t\t\t\t\t\t\t\t  nameForURL\n\t\t\t\t\t\t\t\t\t  relativeUrl\n\t\t\t\t\t\t\t\t\t  sitePlayableFilePath        \n\t\t\t\t\t\t\t\t\t  songId \n\t\t\t\t\t\t\t\t\t  songName\n\t\t\t\t\t\t\t\t  }\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}`,\n                        variables: JSON.stringify({\n                            \"categoryIds\": \"\",\n                            \"page\": 1,\n                            \"tags\": \"\",\n                            \"term\": \"Nourishing Nature - Melting Ice, Dripping\",\n                            \"sortBy\": \"STAFF_PICKS\"\n                        }),\n                    })\n                }).done(function(res) {\n                    if (res == '') {\n                        console.log('none');\n                    } else {\n                        console.log('sfx list: ', res);\n                        var data = res.data.sfxList.songs;\n                        if ($(\"#69d07ebeac66a\").length && data.length > 0) {\n                            createAudioPlayers(data, \"69d07ebeac66a\");\n                        } else if ($(\"#69d07ebeac66a\").length && data.length == 0) {\n                            $(\"#69d07ebeac66a\").empty().append('<div class=\"noSongsError\">No songs were found.<\/div>');\n                        }\n                    }\n                });\n            }\n\n            function createAudioPlayers(data, playlistId) {\n                \/\/ main playlist container\n                const playlistContainer = $(\"#\" + playlistId);\n                \/\/ wavesurfers array\n                \/\/ const wavesurfers = [];\n                \/\/ loop over every song returned\n\n                if(!allWavesurfers){\n                    var allWavesurfers = [];\n                }\n                $.each(data, function(index, audio) {\n                    \/\/ if current type is sfx and current looped index is bigger than amount wanted via shortcode - then stop loop (because sfx request doesn't have \"take\" variable)\n                    if(\"sfx\" == 'sfx' && (index + 1) > 1) {\n                        return false;\n                    }\n\n                    \/\/ audio player container\n                    const audioPlayer = $(\"<div>\").addClass(\"audioPlayer\");\n                    \/\/ album image\n                    const audioImage = $(\"<div>\").addClass(\"audioImage\");\n                    audioImage.append('<img decoding=\"async\" src=\"' + audio.albumImageFilePath + '\"\/>');\n                    \/\/ audio controls\n                    const audioControls = $(\"<div>\").addClass(\"audioControls\");\n                    const playPauseButton = $(\"<button>\").addClass(\"playPauseButton\").html('<i class=\"fas fa-play\"><\/i>');\n                    audioControls.append(playPauseButton);\n                    \/\/ song url\n                    var songUrl;\n                    if(\"sfx\" == 'songs') {\n                        songUrl = 'https:\/\/artlist.io\/royalty-free-music\/song\/' + audio.nameForURL + '\/' + audio.songId + '?download=1&utm_source=blog';\n                    } else if(\"sfx\" == 'sfx') {\n                        songUrl = 'https:\/\/artlist.io\/sfx\/track\/' + audio.nameForURL + '\/' + audio.songId + '?download=1&utm_source=blog';\n                    }\n                    \/\/ song name and artist name\n                    const audioNames = $(\"<div>\").addClass(\"audioNames\");\n                    const songName = $(\"<a>\").addClass(\"songName\").attr(\"href\", songUrl).attr(\"target\", \"_blank\").text(audio.songName);\n                    if (audio.isNew) {\n                        songName.append('<span class=\"isNewBadge\">NEW<\/span>');\n                    }\n                    const artistName = $(\"<span>\").addClass(\"artistName\").text(audio.artistName);\n                    audioNames.append(songName, artistName);\n                    \/\/ audio waveform container\n                    const audioWaveform = $(\"<div>\").addClass(\"audioWaveform\");\n                    \/\/ download button\n                    const audioDownload = $(\"<a>\").addClass(\"audioDownload\").attr(\"href\", songUrl).attr(\"target\", \"_blank\").html('<i class=\"icon download medium\"><\/i>');\n\n\n                    \/\/ APPEND ALL ELEMENTS INTO AUDIO PLAYER CONTAINER\n                    audioPlayer.append(audioImage, audioControls, audioNames, audioWaveform, audioDownload);\n\n                    \/\/ append audio player container into main playlist container\n                    playlistContainer.append(audioPlayer);\n\n                    \/* media viewed SEGMENT EVENT *\/\n                    const special_data = getProps();\n\n                    const observer = new IntersectionObserver(entries => {\n                        entries.forEach(entry => {\n                            if (entry.isIntersecting) {\n                                var assetId = audio.songId;\n                                var artist = audio.artistName;\n                                var title = audio.songName;\n                                var asset_type = null;\n                                if(\"sfx\" == 'songs') {\n                                    asset_type = 'song';\n                                } else if(\"sfx\" == 'sfx') {\n                                    asset_type = 'sfx';\n                                }\n                                analytics.track(\"media viewed\", {\n                                    asset_id: assetId || null,\n                                    asset_type: asset_type || null,\n                                    click_source: 'player',\n                                    artist: artist || null,\n                                    title: title || null,\n                                    genre: null,\n                                    ...special_data,\n                                });\n                                observer.unobserve(entry.target);\n                            }\n                        });\n                    }, {\n                        threshold: 0.5\n                    });\n                    observer.observe(audioPlayer[0]);\n\n                    \/\/ check screen size\n                    var mobileScreen = window.matchMedia('(max-width: 767px)');\n                    var waveformHeight = '';\n                    if (mobileScreen.matches) { \/\/ mobile\n                        waveformHeight = 15;\n                    } else { \/\/ desktop\n                        waveformHeight = 40;\n                    }\n\n                    \/\/ create wavesurfer instance\n                    const waveformId = `waveform-${playlistId}-${index}`; \/\/ Generate a unique ID for each waveform\n                    const waveformContainer = $(\"<div>\").attr(\"id\", waveformId).addClass(\"waveformContainer\");\n                    audioWaveform.append(waveformContainer);\n                    const wavesurfer = WaveSurfer.create({\n                        container: `#${waveformId}`,\n                        waveColor: \"#b1b1b1\",\n                        progressColor: \"#171717\",\n                        cursorColor: \"transparent\",\n                        height: waveformHeight,\n                        normalize: true,\n                    });\n                    \/\/ push current wavesurfer into wavesurfers array\n                    \/\/ wavesurfers.push(wavesurfer);\n                    allWavesurfers.push(wavesurfer);\n                    \/\/ load audio file into new wavesurfer\n                    wavesurfer.load(audio.sitePlayableFilePath);\n\n                    \/\/ add event listener to the play\/pause button\n                    playPauseButton.on(\"click\", () => {\n                        if (wavesurfer.isPlaying()) {\n                            wavesurfer.pause();\n                            playPauseButton.html('<i class=\"fas fa-play\"><\/i>');\n\n                            \/* media paused SEGMENT EVENT *\/\n                            var assetId = audio.songId;\n                            var artist = audio.artistName;\n                            var title = audio.songName;\n                            var asset_type = null;\n                            if(\"sfx\" == 'songs') {\n                                asset_type = 'song';\n                            } else if(\"sfx\" == 'sfx') {\n                                asset_type = 'sfx';\n                            }\n                            analytics.track(\"media paused\", {\n                                asset_id: assetId || null,\n                                asset_type: asset_type || null,\n                                click_source: 'player',\n                                artist: artist || null,\n                                title: title || null,\n                                genre: null,\n                                ...special_data,\n                            });\n                        } else {\n                            \/\/ pause all other audios that may be playing\n                            $('.playPauseButton').html('<i class=\"fas fa-play\"><\/i>');\n                            $.each(allWavesurfers, function(index, audio) {\n                                allWavesurfers[index].pause();\n                            });\n                            \/\/ then play current audio\n                            wavesurfer.play();\n                            playPauseButton.html('<i class=\"fas fa-pause\"><\/i>');\n\n                            \/* media played SEGMENT EVENT *\/\n                            var assetId = audio.songId;\n                            var artist = audio.artistName;\n                            var title = audio.songName;\n                            var asset_type = null;\n                            if(\"sfx\" == 'songs') {\n                                asset_type = 'song';\n                            } else if(\"sfx\" == 'sfx') {\n                                asset_type = 'sfx';\n                            }\n                            analytics.track(\"media played\", {\n                                asset_id: assetId || null,\n                                asset_type: asset_type || null,\n                                click_source: 'player',\n                                artist: artist || null,\n                                title: title || null,\n                                genre: null,\n                                ...special_data,\n                            });\n                        }\n                    });\n\n                    \/* media downloaded SEGMENT EVENT *\/\n                    audioDownload.on(\"click\", () => {\n                        var assetId = audio.songId;\n                        var artist = audio.artistName;\n                        var title = audio.songName;\n                        var asset_type = null;\n                        if(\"sfx\" == 'songs') {\n                            asset_type = 'song';\n                        } else if(\"sfx\" == 'sfx') {\n                            asset_type = 'sfx';\n                        }\n                        analytics.track(\"media downloaded\", {\n                            asset_id: assetId || null,\n                            asset_type: asset_type || null,\n                            click_source: 'player',\n                            artist: artist || null,\n                            title: title || null,\n                            genre: null,\n                            ...special_data,\n                        });\n                    });\n\n                    \/\/ add event listener to the click on the wave itself\n                    audioWaveform.on(\"click\", () => {\n                        setTimeout(() => {\n                            if (wavesurfer.isPlaying()) {\n                                wavesurfer.pause();\n                                playPauseButton.html('<i class=\"fas fa-play\"><\/i>');\n                            } else {\n                                \/\/ pause all other audios that may be playing\n                                $('.playPauseButton').html('<i class=\"fas fa-play\"><\/i>');\n                                $.each(allWavesurfers, function(index, audio) {\n                                    allWavesurfers[index].pause();\n                                });\n                                \/\/ then play current audio\n                                wavesurfer.play();\n                                playPauseButton.html('<i class=\"fas fa-pause\"><\/i>');\n                            }\n                        }, \"200\");\n                    });\n\n                });\n            }\n\n        });\n    <\/script>\n\n    \n\n\n\n<h3 class=\"wp-block-heading\">SFX: Serene Nature &#8211; Spring Ambience, Swarm of Bees Buzzing, Birds Chirps, Binaural<\/h3>\n\n\n\n<p>Artist: <a href=\"https:\/\/artlist.io\/sfx\/artist\/cinematic-sound-design\/1495\" target=\"_blank\" rel=\"noreferrer noopener\">Cinematic Sound Design<\/a><\/p>\n\n\n\n<p>This sound effect of bees buzzing and birds chirping backdropped by the <a href=\"https:\/\/artlist.io\/sfx\/categories\/water\" target=\"_blank\" rel=\"noreferrer noopener\">sound of water<\/a> is the ideal soundscape for a meditative scene. You use this SFX in a nature documentary, or alongside a character seeking solace in nature, and provide a calming, therapeutic backdrop to a moment of reflection. The audio will place the audience right there in the environment, and make them feel as if they\u2019re experiencing the scene firsthand.<\/p>\n\n\n\n\n    <div class=\"playlist\" id=\"69d07ebeac9eb\"><\/div>\n\n    <script>\n        jQuery(document).ready(function($) {\n\n            if(\"sfx\" == 'songs') {\n                $.ajax({\n                    method: \"POST\",\n                    url: \"https:\/\/search-api.artlist.me\/v1\/graphql\",\n                    contentType: \"application\/json\",\n                    data: JSON.stringify({\n                        query: `query SongList($page: Int!, $songSortType: Int!, $take: Int!, $vocalMenuId: Int!, $categoryIds: [Int], $collectionId: String, $searchTerm: String) {\n                        songList(page: $page, songSortType: $songSortType, take: $take, vocalMenuId: $vocalMenuId, categoryIds: $categoryIds, collectionId: $collectionId, searchTerm: $searchTerm) {\n                          songs {\n                            songId\n                            songName\n                            artistName\n                            isNew\n                            nameForURL\n                            sitePlayableFilePath\n\t\t\t\t\t\t\talbumImageFilePath\n\t\t\t\t\t\t\trelativeUrl\n                          }\n                          totalResults\n                        }\n                    }`,\n                        variables: JSON.stringify({\n                            \"page\": 1,\n                            \"songSortType\": STAFF_PICKS,\n                            \"take\": 1,\n                            \"vocalMenuId\": 1,\n                            \"categoryIds\": null,\n                            \"searchTerm\": \"Serene Nature - Spring Ambience, Swarm of Bees Buzzing, Birds Chirps, Binaural\"\n                        }),\n                    })\n                }).done(function(res) {\n                    if (res == '') {\n                        console.log('none');\n                    } else {\n                        console.log('songs list: ', res);\n                        var data = res.data.songList.songs;\n                        if ($(\"#69d07ebeac9eb\").length && data.length > 0) {\n                            createAudioPlayers(data, \"69d07ebeac9eb\");\n                        } else if ($(\"#69d07ebeac9eb\").length && data.length == 0) {\n                            $(\"#69d07ebeac9eb\").empty().append('<div class=\"noSongsError\">No songs were found.<\/div>');\n                        }\n                    }\n                });\n            } else if(\"sfx\" == 'sfx') {\n                $.ajax({\n                    method: \"POST\",\n                    url: \"https:\/\/search-api.artlist.me\/v1\/graphql\",\n                    contentType: \"application\/json\",\n                    data: JSON.stringify({\n                        query: `query SfxList($categoryIds: String!, $page: Float!, $tags: String!, $term: String!, $sortBy: SfxListRequestSortByOptions!) {\n\t\t\t\t\t\t\t\tsfxList(categoryIds: $categoryIds, page: $page, tags: $tags, term: $term, sortBy: $sortBy) {\n\t\t\t\t\t\t\t\t  page\n\t\t\t\t\t\t\t\t  songs {\n\t\t\t\t\t\t\t\t\t  albumImageFilePath\n\t\t\t\t\t\t\t\t\t  artistName\n\t\t\t\t\t\t\t\t\t  isNew\n\t\t\t\t\t\t\t\t\t  nameForURL\n\t\t\t\t\t\t\t\t\t  relativeUrl\n\t\t\t\t\t\t\t\t\t  sitePlayableFilePath        \n\t\t\t\t\t\t\t\t\t  songId \n\t\t\t\t\t\t\t\t\t  songName\n\t\t\t\t\t\t\t\t  }\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}`,\n                        variables: JSON.stringify({\n                            \"categoryIds\": \"\",\n                            \"page\": 1,\n                            \"tags\": \"\",\n                            \"term\": \"Serene Nature - Spring Ambience, Swarm of Bees Buzzing, Birds Chirps, Binaural\",\n                            \"sortBy\": \"STAFF_PICKS\"\n                        }),\n                    })\n                }).done(function(res) {\n                    if (res == '') {\n                        console.log('none');\n                    } else {\n                        console.log('sfx list: ', res);\n                        var data = res.data.sfxList.songs;\n                        if ($(\"#69d07ebeac9eb\").length && data.length > 0) {\n                            createAudioPlayers(data, \"69d07ebeac9eb\");\n                        } else if ($(\"#69d07ebeac9eb\").length && data.length == 0) {\n                            $(\"#69d07ebeac9eb\").empty().append('<div class=\"noSongsError\">No songs were found.<\/div>');\n                        }\n                    }\n                });\n            }\n\n            function createAudioPlayers(data, playlistId) {\n                \/\/ main playlist container\n                const playlistContainer = $(\"#\" + playlistId);\n                \/\/ wavesurfers array\n                \/\/ const wavesurfers = [];\n                \/\/ loop over every song returned\n\n                if(!allWavesurfers){\n                    var allWavesurfers = [];\n                }\n                $.each(data, function(index, audio) {\n                    \/\/ if current type is sfx and current looped index is bigger than amount wanted via shortcode - then stop loop (because sfx request doesn't have \"take\" variable)\n                    if(\"sfx\" == 'sfx' && (index + 1) > 1) {\n                        return false;\n                    }\n\n                    \/\/ audio player container\n                    const audioPlayer = $(\"<div>\").addClass(\"audioPlayer\");\n                    \/\/ album image\n                    const audioImage = $(\"<div>\").addClass(\"audioImage\");\n                    audioImage.append('<img decoding=\"async\" src=\"' + audio.albumImageFilePath + '\"\/>');\n                    \/\/ audio controls\n                    const audioControls = $(\"<div>\").addClass(\"audioControls\");\n                    const playPauseButton = $(\"<button>\").addClass(\"playPauseButton\").html('<i class=\"fas fa-play\"><\/i>');\n                    audioControls.append(playPauseButton);\n                    \/\/ song url\n                    var songUrl;\n                    if(\"sfx\" == 'songs') {\n                        songUrl = 'https:\/\/artlist.io\/royalty-free-music\/song\/' + audio.nameForURL + '\/' + audio.songId + '?download=1&utm_source=blog';\n                    } else if(\"sfx\" == 'sfx') {\n                        songUrl = 'https:\/\/artlist.io\/sfx\/track\/' + audio.nameForURL + '\/' + audio.songId + '?download=1&utm_source=blog';\n                    }\n                    \/\/ song name and artist name\n                    const audioNames = $(\"<div>\").addClass(\"audioNames\");\n                    const songName = $(\"<a>\").addClass(\"songName\").attr(\"href\", songUrl).attr(\"target\", \"_blank\").text(audio.songName);\n                    if (audio.isNew) {\n                        songName.append('<span class=\"isNewBadge\">NEW<\/span>');\n                    }\n                    const artistName = $(\"<span>\").addClass(\"artistName\").text(audio.artistName);\n                    audioNames.append(songName, artistName);\n                    \/\/ audio waveform container\n                    const audioWaveform = $(\"<div>\").addClass(\"audioWaveform\");\n                    \/\/ download button\n                    const audioDownload = $(\"<a>\").addClass(\"audioDownload\").attr(\"href\", songUrl).attr(\"target\", \"_blank\").html('<i class=\"icon download medium\"><\/i>');\n\n\n                    \/\/ APPEND ALL ELEMENTS INTO AUDIO PLAYER CONTAINER\n                    audioPlayer.append(audioImage, audioControls, audioNames, audioWaveform, audioDownload);\n\n                    \/\/ append audio player container into main playlist container\n                    playlistContainer.append(audioPlayer);\n\n                    \/* media viewed SEGMENT EVENT *\/\n                    const special_data = getProps();\n\n                    const observer = new IntersectionObserver(entries => {\n                        entries.forEach(entry => {\n                            if (entry.isIntersecting) {\n                                var assetId = audio.songId;\n                                var artist = audio.artistName;\n                                var title = audio.songName;\n                                var asset_type = null;\n                                if(\"sfx\" == 'songs') {\n                                    asset_type = 'song';\n                                } else if(\"sfx\" == 'sfx') {\n                                    asset_type = 'sfx';\n                                }\n                                analytics.track(\"media viewed\", {\n                                    asset_id: assetId || null,\n                                    asset_type: asset_type || null,\n                                    click_source: 'player',\n                                    artist: artist || null,\n                                    title: title || null,\n                                    genre: null,\n                                    ...special_data,\n                                });\n                                observer.unobserve(entry.target);\n                            }\n                        });\n                    }, {\n                        threshold: 0.5\n                    });\n                    observer.observe(audioPlayer[0]);\n\n                    \/\/ check screen size\n                    var mobileScreen = window.matchMedia('(max-width: 767px)');\n                    var waveformHeight = '';\n                    if (mobileScreen.matches) { \/\/ mobile\n                        waveformHeight = 15;\n                    } else { \/\/ desktop\n                        waveformHeight = 40;\n                    }\n\n                    \/\/ create wavesurfer instance\n                    const waveformId = `waveform-${playlistId}-${index}`; \/\/ Generate a unique ID for each waveform\n                    const waveformContainer = $(\"<div>\").attr(\"id\", waveformId).addClass(\"waveformContainer\");\n                    audioWaveform.append(waveformContainer);\n                    const wavesurfer = WaveSurfer.create({\n                        container: `#${waveformId}`,\n                        waveColor: \"#b1b1b1\",\n                        progressColor: \"#171717\",\n                        cursorColor: \"transparent\",\n                        height: waveformHeight,\n                        normalize: true,\n                    });\n                    \/\/ push current wavesurfer into wavesurfers array\n                    \/\/ wavesurfers.push(wavesurfer);\n                    allWavesurfers.push(wavesurfer);\n                    \/\/ load audio file into new wavesurfer\n                    wavesurfer.load(audio.sitePlayableFilePath);\n\n                    \/\/ add event listener to the play\/pause button\n                    playPauseButton.on(\"click\", () => {\n                        if (wavesurfer.isPlaying()) {\n                            wavesurfer.pause();\n                            playPauseButton.html('<i class=\"fas fa-play\"><\/i>');\n\n                            \/* media paused SEGMENT EVENT *\/\n                            var assetId = audio.songId;\n                            var artist = audio.artistName;\n                            var title = audio.songName;\n                            var asset_type = null;\n                            if(\"sfx\" == 'songs') {\n                                asset_type = 'song';\n                            } else if(\"sfx\" == 'sfx') {\n                                asset_type = 'sfx';\n                            }\n                            analytics.track(\"media paused\", {\n                                asset_id: assetId || null,\n                                asset_type: asset_type || null,\n                                click_source: 'player',\n                                artist: artist || null,\n                                title: title || null,\n                                genre: null,\n                                ...special_data,\n                            });\n                        } else {\n                            \/\/ pause all other audios that may be playing\n                            $('.playPauseButton').html('<i class=\"fas fa-play\"><\/i>');\n                            $.each(allWavesurfers, function(index, audio) {\n                                allWavesurfers[index].pause();\n                            });\n                            \/\/ then play current audio\n                            wavesurfer.play();\n                            playPauseButton.html('<i class=\"fas fa-pause\"><\/i>');\n\n                            \/* media played SEGMENT EVENT *\/\n                            var assetId = audio.songId;\n                            var artist = audio.artistName;\n                            var title = audio.songName;\n                            var asset_type = null;\n                            if(\"sfx\" == 'songs') {\n                                asset_type = 'song';\n                            } else if(\"sfx\" == 'sfx') {\n                                asset_type = 'sfx';\n                            }\n                            analytics.track(\"media played\", {\n                                asset_id: assetId || null,\n                                asset_type: asset_type || null,\n                                click_source: 'player',\n                                artist: artist || null,\n                                title: title || null,\n                                genre: null,\n                                ...special_data,\n                            });\n                        }\n                    });\n\n                    \/* media downloaded SEGMENT EVENT *\/\n                    audioDownload.on(\"click\", () => {\n                        var assetId = audio.songId;\n                        var artist = audio.artistName;\n                        var title = audio.songName;\n                        var asset_type = null;\n                        if(\"sfx\" == 'songs') {\n                            asset_type = 'song';\n                        } else if(\"sfx\" == 'sfx') {\n                            asset_type = 'sfx';\n                        }\n                        analytics.track(\"media downloaded\", {\n                            asset_id: assetId || null,\n                            asset_type: asset_type || null,\n                            click_source: 'player',\n                            artist: artist || null,\n                            title: title || null,\n                            genre: null,\n                            ...special_data,\n                        });\n                    });\n\n                    \/\/ add event listener to the click on the wave itself\n                    audioWaveform.on(\"click\", () => {\n                        setTimeout(() => {\n                            if (wavesurfer.isPlaying()) {\n                                wavesurfer.pause();\n                                playPauseButton.html('<i class=\"fas fa-play\"><\/i>');\n                            } else {\n                                \/\/ pause all other audios that may be playing\n                                $('.playPauseButton').html('<i class=\"fas fa-play\"><\/i>');\n                                $.each(allWavesurfers, function(index, audio) {\n                                    allWavesurfers[index].pause();\n                                });\n                                \/\/ then play current audio\n                                wavesurfer.play();\n                                playPauseButton.html('<i class=\"fas fa-pause\"><\/i>');\n                            }\n                        }, \"200\");\n                    });\n\n                });\n            }\n\n        });\n    <\/script>\n\n    \n\n\n\n<h3 class=\"wp-block-heading\">SFX: It&#8217;s Silly &#8211; Dreamy Harp Strings, Glissando<\/h3>\n\n\n\n<p>Artist: <a href=\"https:\/\/artlist.io\/sfx\/artist\/dt-sound\/2379\" target=\"_blank\" rel=\"noreferrer noopener\">DT Sound<\/a><\/p>\n\n\n\n<p>This beautiful audio clip of a harp is ideal for a dream sequence or flashback. The soft music creates a sense of surrealism and nostalgia, transporting both the character and the audience into another time or space. The fluid glissando could act as a transition between scenes, and blurs the lines between the present and the past, or between reality and imagination. And if you\u2019re looking for more of this energy, we\u2019ve collated a playlist of<a href=\"https:\/\/artlist.io\/blog\/top-spring-songs-and-music\/\"> spring-inspired songs and music here<\/a>.<\/p>\n\n\n\n\n    <div class=\"playlist\" id=\"69d07ebeacaa4\"><\/div>\n\n    <script>\n        jQuery(document).ready(function($) {\n\n            if(\"sfx\" == 'songs') {\n                $.ajax({\n                    method: \"POST\",\n                    url: \"https:\/\/search-api.artlist.me\/v1\/graphql\",\n                    contentType: \"application\/json\",\n                    data: JSON.stringify({\n                        query: `query SongList($page: Int!, $songSortType: Int!, $take: Int!, $vocalMenuId: Int!, $categoryIds: [Int], $collectionId: String, $searchTerm: String) {\n                        songList(page: $page, songSortType: $songSortType, take: $take, vocalMenuId: $vocalMenuId, categoryIds: $categoryIds, collectionId: $collectionId, searchTerm: $searchTerm) {\n                          songs {\n                            songId\n                            songName\n                            artistName\n                            isNew\n                            nameForURL\n                            sitePlayableFilePath\n\t\t\t\t\t\t\talbumImageFilePath\n\t\t\t\t\t\t\trelativeUrl\n                          }\n                          totalResults\n                        }\n                    }`,\n                        variables: JSON.stringify({\n                            \"page\": 1,\n                            \"songSortType\": STAFF_PICKS,\n                            \"take\": 1,\n                            \"vocalMenuId\": 1,\n                            \"categoryIds\": null,\n                            \"searchTerm\": \"It's Silly - Dreamy Harp Strings, Glissando\"\n                        }),\n                    })\n                }).done(function(res) {\n                    if (res == '') {\n                        console.log('none');\n                    } else {\n                        console.log('songs list: ', res);\n                        var data = res.data.songList.songs;\n                        if ($(\"#69d07ebeacaa4\").length && data.length > 0) {\n                            createAudioPlayers(data, \"69d07ebeacaa4\");\n                        } else if ($(\"#69d07ebeacaa4\").length && data.length == 0) {\n                            $(\"#69d07ebeacaa4\").empty().append('<div class=\"noSongsError\">No songs were found.<\/div>');\n                        }\n                    }\n                });\n            } else if(\"sfx\" == 'sfx') {\n                $.ajax({\n                    method: \"POST\",\n                    url: \"https:\/\/search-api.artlist.me\/v1\/graphql\",\n                    contentType: \"application\/json\",\n                    data: JSON.stringify({\n                        query: `query SfxList($categoryIds: String!, $page: Float!, $tags: String!, $term: String!, $sortBy: SfxListRequestSortByOptions!) {\n\t\t\t\t\t\t\t\tsfxList(categoryIds: $categoryIds, page: $page, tags: $tags, term: $term, sortBy: $sortBy) {\n\t\t\t\t\t\t\t\t  page\n\t\t\t\t\t\t\t\t  songs {\n\t\t\t\t\t\t\t\t\t  albumImageFilePath\n\t\t\t\t\t\t\t\t\t  artistName\n\t\t\t\t\t\t\t\t\t  isNew\n\t\t\t\t\t\t\t\t\t  nameForURL\n\t\t\t\t\t\t\t\t\t  relativeUrl\n\t\t\t\t\t\t\t\t\t  sitePlayableFilePath        \n\t\t\t\t\t\t\t\t\t  songId \n\t\t\t\t\t\t\t\t\t  songName\n\t\t\t\t\t\t\t\t  }\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}`,\n                        variables: JSON.stringify({\n                            \"categoryIds\": \"\",\n                            \"page\": 1,\n                            \"tags\": \"\",\n                            \"term\": \"It's Silly - Dreamy Harp Strings, Glissando\",\n                            \"sortBy\": \"STAFF_PICKS\"\n                        }),\n                    })\n                }).done(function(res) {\n                    if (res == '') {\n                        console.log('none');\n                    } else {\n                        console.log('sfx list: ', res);\n                        var data = res.data.sfxList.songs;\n                        if ($(\"#69d07ebeacaa4\").length && data.length > 0) {\n                            createAudioPlayers(data, \"69d07ebeacaa4\");\n                        } else if ($(\"#69d07ebeacaa4\").length && data.length == 0) {\n                            $(\"#69d07ebeacaa4\").empty().append('<div class=\"noSongsError\">No songs were found.<\/div>');\n                        }\n                    }\n                });\n            }\n\n            function createAudioPlayers(data, playlistId) {\n                \/\/ main playlist container\n                const playlistContainer = $(\"#\" + playlistId);\n                \/\/ wavesurfers array\n                \/\/ const wavesurfers = [];\n                \/\/ loop over every song returned\n\n                if(!allWavesurfers){\n                    var allWavesurfers = [];\n                }\n                $.each(data, function(index, audio) {\n                    \/\/ if current type is sfx and current looped index is bigger than amount wanted via shortcode - then stop loop (because sfx request doesn't have \"take\" variable)\n                    if(\"sfx\" == 'sfx' && (index + 1) > 1) {\n                        return false;\n                    }\n\n                    \/\/ audio player container\n                    const audioPlayer = $(\"<div>\").addClass(\"audioPlayer\");\n                    \/\/ album image\n                    const audioImage = $(\"<div>\").addClass(\"audioImage\");\n                    audioImage.append('<img decoding=\"async\" src=\"' + audio.albumImageFilePath + '\"\/>');\n                    \/\/ audio controls\n                    const audioControls = $(\"<div>\").addClass(\"audioControls\");\n                    const playPauseButton = $(\"<button>\").addClass(\"playPauseButton\").html('<i class=\"fas fa-play\"><\/i>');\n                    audioControls.append(playPauseButton);\n                    \/\/ song url\n                    var songUrl;\n                    if(\"sfx\" == 'songs') {\n                        songUrl = 'https:\/\/artlist.io\/royalty-free-music\/song\/' + audio.nameForURL + '\/' + audio.songId + '?download=1&utm_source=blog';\n                    } else if(\"sfx\" == 'sfx') {\n                        songUrl = 'https:\/\/artlist.io\/sfx\/track\/' + audio.nameForURL + '\/' + audio.songId + '?download=1&utm_source=blog';\n                    }\n                    \/\/ song name and artist name\n                    const audioNames = $(\"<div>\").addClass(\"audioNames\");\n                    const songName = $(\"<a>\").addClass(\"songName\").attr(\"href\", songUrl).attr(\"target\", \"_blank\").text(audio.songName);\n                    if (audio.isNew) {\n                        songName.append('<span class=\"isNewBadge\">NEW<\/span>');\n                    }\n                    const artistName = $(\"<span>\").addClass(\"artistName\").text(audio.artistName);\n                    audioNames.append(songName, artistName);\n                    \/\/ audio waveform container\n                    const audioWaveform = $(\"<div>\").addClass(\"audioWaveform\");\n                    \/\/ download button\n                    const audioDownload = $(\"<a>\").addClass(\"audioDownload\").attr(\"href\", songUrl).attr(\"target\", \"_blank\").html('<i class=\"icon download medium\"><\/i>');\n\n\n                    \/\/ APPEND ALL ELEMENTS INTO AUDIO PLAYER CONTAINER\n                    audioPlayer.append(audioImage, audioControls, audioNames, audioWaveform, audioDownload);\n\n                    \/\/ append audio player container into main playlist container\n                    playlistContainer.append(audioPlayer);\n\n                    \/* media viewed SEGMENT EVENT *\/\n                    const special_data = getProps();\n\n                    const observer = new IntersectionObserver(entries => {\n                        entries.forEach(entry => {\n                            if (entry.isIntersecting) {\n                                var assetId = audio.songId;\n                                var artist = audio.artistName;\n                                var title = audio.songName;\n                                var asset_type = null;\n                                if(\"sfx\" == 'songs') {\n                                    asset_type = 'song';\n                                } else if(\"sfx\" == 'sfx') {\n                                    asset_type = 'sfx';\n                                }\n                                analytics.track(\"media viewed\", {\n                                    asset_id: assetId || null,\n                                    asset_type: asset_type || null,\n                                    click_source: 'player',\n                                    artist: artist || null,\n                                    title: title || null,\n                                    genre: null,\n                                    ...special_data,\n                                });\n                                observer.unobserve(entry.target);\n                            }\n                        });\n                    }, {\n                        threshold: 0.5\n                    });\n                    observer.observe(audioPlayer[0]);\n\n                    \/\/ check screen size\n                    var mobileScreen = window.matchMedia('(max-width: 767px)');\n                    var waveformHeight = '';\n                    if (mobileScreen.matches) { \/\/ mobile\n                        waveformHeight = 15;\n                    } else { \/\/ desktop\n                        waveformHeight = 40;\n                    }\n\n                    \/\/ create wavesurfer instance\n                    const waveformId = `waveform-${playlistId}-${index}`; \/\/ Generate a unique ID for each waveform\n                    const waveformContainer = $(\"<div>\").attr(\"id\", waveformId).addClass(\"waveformContainer\");\n                    audioWaveform.append(waveformContainer);\n                    const wavesurfer = WaveSurfer.create({\n                        container: `#${waveformId}`,\n                        waveColor: \"#b1b1b1\",\n                        progressColor: \"#171717\",\n                        cursorColor: \"transparent\",\n                        height: waveformHeight,\n                        normalize: true,\n                    });\n                    \/\/ push current wavesurfer into wavesurfers array\n                    \/\/ wavesurfers.push(wavesurfer);\n                    allWavesurfers.push(wavesurfer);\n                    \/\/ load audio file into new wavesurfer\n                    wavesurfer.load(audio.sitePlayableFilePath);\n\n                    \/\/ add event listener to the play\/pause button\n                    playPauseButton.on(\"click\", () => {\n                        if (wavesurfer.isPlaying()) {\n                            wavesurfer.pause();\n                            playPauseButton.html('<i class=\"fas fa-play\"><\/i>');\n\n                            \/* media paused SEGMENT EVENT *\/\n                            var assetId = audio.songId;\n                            var artist = audio.artistName;\n                            var title = audio.songName;\n                            var asset_type = null;\n                            if(\"sfx\" == 'songs') {\n                                asset_type = 'song';\n                            } else if(\"sfx\" == 'sfx') {\n                                asset_type = 'sfx';\n                            }\n                            analytics.track(\"media paused\", {\n                                asset_id: assetId || null,\n                                asset_type: asset_type || null,\n                                click_source: 'player',\n                                artist: artist || null,\n                                title: title || null,\n                                genre: null,\n                                ...special_data,\n                            });\n                        } else {\n                            \/\/ pause all other audios that may be playing\n                            $('.playPauseButton').html('<i class=\"fas fa-play\"><\/i>');\n                            $.each(allWavesurfers, function(index, audio) {\n                                allWavesurfers[index].pause();\n                            });\n                            \/\/ then play current audio\n                            wavesurfer.play();\n                            playPauseButton.html('<i class=\"fas fa-pause\"><\/i>');\n\n                            \/* media played SEGMENT EVENT *\/\n                            var assetId = audio.songId;\n                            var artist = audio.artistName;\n                            var title = audio.songName;\n                            var asset_type = null;\n                            if(\"sfx\" == 'songs') {\n                                asset_type = 'song';\n                            } else if(\"sfx\" == 'sfx') {\n                                asset_type = 'sfx';\n                            }\n                            analytics.track(\"media played\", {\n                                asset_id: assetId || null,\n                                asset_type: asset_type || null,\n                                click_source: 'player',\n                                artist: artist || null,\n                                title: title || null,\n                                genre: null,\n                                ...special_data,\n                            });\n                        }\n                    });\n\n                    \/* media downloaded SEGMENT EVENT *\/\n                    audioDownload.on(\"click\", () => {\n                        var assetId = audio.songId;\n                        var artist = audio.artistName;\n                        var title = audio.songName;\n                        var asset_type = null;\n                        if(\"sfx\" == 'songs') {\n                            asset_type = 'song';\n                        } else if(\"sfx\" == 'sfx') {\n                            asset_type = 'sfx';\n                        }\n                        analytics.track(\"media downloaded\", {\n                            asset_id: assetId || null,\n                            asset_type: asset_type || null,\n                            click_source: 'player',\n                            artist: artist || null,\n                            title: title || null,\n                            genre: null,\n                            ...special_data,\n                        });\n                    });\n\n                    \/\/ add event listener to the click on the wave itself\n                    audioWaveform.on(\"click\", () => {\n                        setTimeout(() => {\n                            if (wavesurfer.isPlaying()) {\n                                wavesurfer.pause();\n                                playPauseButton.html('<i class=\"fas fa-play\"><\/i>');\n                            } else {\n                                \/\/ pause all other audios that may be playing\n                                $('.playPauseButton').html('<i class=\"fas fa-play\"><\/i>');\n                                $.each(allWavesurfers, function(index, audio) {\n                                    allWavesurfers[index].pause();\n                                });\n                                \/\/ then play current audio\n                                wavesurfer.play();\n                                playPauseButton.html('<i class=\"fas fa-pause\"><\/i>');\n                            }\n                        }, \"200\");\n                    });\n\n                });\n            }\n\n        });\n    <\/script>\n\n    \n\n\n\n<h3 class=\"wp-block-heading\">SFX: Yellowstone Ambience &#8211; Quiet Ambience, Birds Chirping<\/h3>\n\n\n\n<p>Artist: <a href=\"https:\/\/artlist.io\/sfx\/artist\/yellowstone-sound-library\/2872\" target=\"_blank\" rel=\"noreferrer noopener\">Yellowstone Sound Library<\/a><\/p>\n\n\n\n<p>Immerse yourself and your viewers in the serenity of Yellowstone National Park. This minute-long spring sound effect could be used to backdrop a scene in nature or to add texture to an outdoor documentary. Use this sound effect to elevate a quiet moment between friends, or a young couple\u2019s romantic stroll in the great outdoors.<\/p>\n\n\n\n\n    <div class=\"playlist\" id=\"69d07ebeacb56\"><\/div>\n\n    <script>\n        jQuery(document).ready(function($) {\n\n            if(\"sfx\" == 'songs') {\n                $.ajax({\n                    method: \"POST\",\n                    url: \"https:\/\/search-api.artlist.me\/v1\/graphql\",\n                    contentType: \"application\/json\",\n                    data: JSON.stringify({\n                        query: `query SongList($page: Int!, $songSortType: Int!, $take: Int!, $vocalMenuId: Int!, $categoryIds: [Int], $collectionId: String, $searchTerm: String) {\n                        songList(page: $page, songSortType: $songSortType, take: $take, vocalMenuId: $vocalMenuId, categoryIds: $categoryIds, collectionId: $collectionId, searchTerm: $searchTerm) {\n                          songs {\n                            songId\n                            songName\n                            artistName\n                            isNew\n                            nameForURL\n                            sitePlayableFilePath\n\t\t\t\t\t\t\talbumImageFilePath\n\t\t\t\t\t\t\trelativeUrl\n                          }\n                          totalResults\n                        }\n                    }`,\n                        variables: JSON.stringify({\n                            \"page\": 1,\n                            \"songSortType\": STAFF_PICKS,\n                            \"take\": 1,\n                            \"vocalMenuId\": 1,\n                            \"categoryIds\": null,\n                            \"searchTerm\": \"Yellowstone Ambience - Quiet Ambience, Birds Chirping\"\n                        }),\n                    })\n                }).done(function(res) {\n                    if (res == '') {\n                        console.log('none');\n                    } else {\n                        console.log('songs list: ', res);\n                        var data = res.data.songList.songs;\n                        if ($(\"#69d07ebeacb56\").length && data.length > 0) {\n                            createAudioPlayers(data, \"69d07ebeacb56\");\n                        } else if ($(\"#69d07ebeacb56\").length && data.length == 0) {\n                            $(\"#69d07ebeacb56\").empty().append('<div class=\"noSongsError\">No songs were found.<\/div>');\n                        }\n                    }\n                });\n            } else if(\"sfx\" == 'sfx') {\n                $.ajax({\n                    method: \"POST\",\n                    url: \"https:\/\/search-api.artlist.me\/v1\/graphql\",\n                    contentType: \"application\/json\",\n                    data: JSON.stringify({\n                        query: `query SfxList($categoryIds: String!, $page: Float!, $tags: String!, $term: String!, $sortBy: SfxListRequestSortByOptions!) {\n\t\t\t\t\t\t\t\tsfxList(categoryIds: $categoryIds, page: $page, tags: $tags, term: $term, sortBy: $sortBy) {\n\t\t\t\t\t\t\t\t  page\n\t\t\t\t\t\t\t\t  songs {\n\t\t\t\t\t\t\t\t\t  albumImageFilePath\n\t\t\t\t\t\t\t\t\t  artistName\n\t\t\t\t\t\t\t\t\t  isNew\n\t\t\t\t\t\t\t\t\t  nameForURL\n\t\t\t\t\t\t\t\t\t  relativeUrl\n\t\t\t\t\t\t\t\t\t  sitePlayableFilePath        \n\t\t\t\t\t\t\t\t\t  songId \n\t\t\t\t\t\t\t\t\t  songName\n\t\t\t\t\t\t\t\t  }\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}`,\n                        variables: JSON.stringify({\n                            \"categoryIds\": \"\",\n                            \"page\": 1,\n                            \"tags\": \"\",\n                            \"term\": \"Yellowstone Ambience - Quiet Ambience, Birds Chirping\",\n                            \"sortBy\": \"STAFF_PICKS\"\n                        }),\n                    })\n                }).done(function(res) {\n                    if (res == '') {\n                        console.log('none');\n                    } else {\n                        console.log('sfx list: ', res);\n                        var data = res.data.sfxList.songs;\n                        if ($(\"#69d07ebeacb56\").length && data.length > 0) {\n                            createAudioPlayers(data, \"69d07ebeacb56\");\n                        } else if ($(\"#69d07ebeacb56\").length && data.length == 0) {\n                            $(\"#69d07ebeacb56\").empty().append('<div class=\"noSongsError\">No songs were found.<\/div>');\n                        }\n                    }\n                });\n            }\n\n            function createAudioPlayers(data, playlistId) {\n                \/\/ main playlist container\n                const playlistContainer = $(\"#\" + playlistId);\n                \/\/ wavesurfers array\n                \/\/ const wavesurfers = [];\n                \/\/ loop over every song returned\n\n                if(!allWavesurfers){\n                    var allWavesurfers = [];\n                }\n                $.each(data, function(index, audio) {\n                    \/\/ if current type is sfx and current looped index is bigger than amount wanted via shortcode - then stop loop (because sfx request doesn't have \"take\" variable)\n                    if(\"sfx\" == 'sfx' && (index + 1) > 1) {\n                        return false;\n                    }\n\n                    \/\/ audio player container\n                    const audioPlayer = $(\"<div>\").addClass(\"audioPlayer\");\n                    \/\/ album image\n                    const audioImage = $(\"<div>\").addClass(\"audioImage\");\n                    audioImage.append('<img decoding=\"async\" src=\"' + audio.albumImageFilePath + '\"\/>');\n                    \/\/ audio controls\n                    const audioControls = $(\"<div>\").addClass(\"audioControls\");\n                    const playPauseButton = $(\"<button>\").addClass(\"playPauseButton\").html('<i class=\"fas fa-play\"><\/i>');\n                    audioControls.append(playPauseButton);\n                    \/\/ song url\n                    var songUrl;\n                    if(\"sfx\" == 'songs') {\n                        songUrl = 'https:\/\/artlist.io\/royalty-free-music\/song\/' + audio.nameForURL + '\/' + audio.songId + '?download=1&utm_source=blog';\n                    } else if(\"sfx\" == 'sfx') {\n                        songUrl = 'https:\/\/artlist.io\/sfx\/track\/' + audio.nameForURL + '\/' + audio.songId + '?download=1&utm_source=blog';\n                    }\n                    \/\/ song name and artist name\n                    const audioNames = $(\"<div>\").addClass(\"audioNames\");\n                    const songName = $(\"<a>\").addClass(\"songName\").attr(\"href\", songUrl).attr(\"target\", \"_blank\").text(audio.songName);\n                    if (audio.isNew) {\n                        songName.append('<span class=\"isNewBadge\">NEW<\/span>');\n                    }\n                    const artistName = $(\"<span>\").addClass(\"artistName\").text(audio.artistName);\n                    audioNames.append(songName, artistName);\n                    \/\/ audio waveform container\n                    const audioWaveform = $(\"<div>\").addClass(\"audioWaveform\");\n                    \/\/ download button\n                    const audioDownload = $(\"<a>\").addClass(\"audioDownload\").attr(\"href\", songUrl).attr(\"target\", \"_blank\").html('<i class=\"icon download medium\"><\/i>');\n\n\n                    \/\/ APPEND ALL ELEMENTS INTO AUDIO PLAYER CONTAINER\n                    audioPlayer.append(audioImage, audioControls, audioNames, audioWaveform, audioDownload);\n\n                    \/\/ append audio player container into main playlist container\n                    playlistContainer.append(audioPlayer);\n\n                    \/* media viewed SEGMENT EVENT *\/\n                    const special_data = getProps();\n\n                    const observer = new IntersectionObserver(entries => {\n                        entries.forEach(entry => {\n                            if (entry.isIntersecting) {\n                                var assetId = audio.songId;\n                                var artist = audio.artistName;\n                                var title = audio.songName;\n                                var asset_type = null;\n                                if(\"sfx\" == 'songs') {\n                                    asset_type = 'song';\n                                } else if(\"sfx\" == 'sfx') {\n                                    asset_type = 'sfx';\n                                }\n                                analytics.track(\"media viewed\", {\n                                    asset_id: assetId || null,\n                                    asset_type: asset_type || null,\n                                    click_source: 'player',\n                                    artist: artist || null,\n                                    title: title || null,\n                                    genre: null,\n                                    ...special_data,\n                                });\n                                observer.unobserve(entry.target);\n                            }\n                        });\n                    }, {\n                        threshold: 0.5\n                    });\n                    observer.observe(audioPlayer[0]);\n\n                    \/\/ check screen size\n                    var mobileScreen = window.matchMedia('(max-width: 767px)');\n                    var waveformHeight = '';\n                    if (mobileScreen.matches) { \/\/ mobile\n                        waveformHeight = 15;\n                    } else { \/\/ desktop\n                        waveformHeight = 40;\n                    }\n\n                    \/\/ create wavesurfer instance\n                    const waveformId = `waveform-${playlistId}-${index}`; \/\/ Generate a unique ID for each waveform\n                    const waveformContainer = $(\"<div>\").attr(\"id\", waveformId).addClass(\"waveformContainer\");\n                    audioWaveform.append(waveformContainer);\n                    const wavesurfer = WaveSurfer.create({\n                        container: `#${waveformId}`,\n                        waveColor: \"#b1b1b1\",\n                        progressColor: \"#171717\",\n                        cursorColor: \"transparent\",\n                        height: waveformHeight,\n                        normalize: true,\n                    });\n                    \/\/ push current wavesurfer into wavesurfers array\n                    \/\/ wavesurfers.push(wavesurfer);\n                    allWavesurfers.push(wavesurfer);\n                    \/\/ load audio file into new wavesurfer\n                    wavesurfer.load(audio.sitePlayableFilePath);\n\n                    \/\/ add event listener to the play\/pause button\n                    playPauseButton.on(\"click\", () => {\n                        if (wavesurfer.isPlaying()) {\n                            wavesurfer.pause();\n                            playPauseButton.html('<i class=\"fas fa-play\"><\/i>');\n\n                            \/* media paused SEGMENT EVENT *\/\n                            var assetId = audio.songId;\n                            var artist = audio.artistName;\n                            var title = audio.songName;\n                            var asset_type = null;\n                            if(\"sfx\" == 'songs') {\n                                asset_type = 'song';\n                            } else if(\"sfx\" == 'sfx') {\n                                asset_type = 'sfx';\n                            }\n                            analytics.track(\"media paused\", {\n                                asset_id: assetId || null,\n                                asset_type: asset_type || null,\n                                click_source: 'player',\n                                artist: artist || null,\n                                title: title || null,\n                                genre: null,\n                                ...special_data,\n                            });\n                        } else {\n                            \/\/ pause all other audios that may be playing\n                            $('.playPauseButton').html('<i class=\"fas fa-play\"><\/i>');\n                            $.each(allWavesurfers, function(index, audio) {\n                                allWavesurfers[index].pause();\n                            });\n                            \/\/ then play current audio\n                            wavesurfer.play();\n                            playPauseButton.html('<i class=\"fas fa-pause\"><\/i>');\n\n                            \/* media played SEGMENT EVENT *\/\n                            var assetId = audio.songId;\n                            var artist = audio.artistName;\n                            var title = audio.songName;\n                            var asset_type = null;\n                            if(\"sfx\" == 'songs') {\n                                asset_type = 'song';\n                            } else if(\"sfx\" == 'sfx') {\n                                asset_type = 'sfx';\n                            }\n                            analytics.track(\"media played\", {\n                                asset_id: assetId || null,\n                                asset_type: asset_type || null,\n                                click_source: 'player',\n                                artist: artist || null,\n                                title: title || null,\n                                genre: null,\n                                ...special_data,\n                            });\n                        }\n                    });\n\n                    \/* media downloaded SEGMENT EVENT *\/\n                    audioDownload.on(\"click\", () => {\n                        var assetId = audio.songId;\n                        var artist = audio.artistName;\n                        var title = audio.songName;\n                        var asset_type = null;\n                        if(\"sfx\" == 'songs') {\n                            asset_type = 'song';\n                        } else if(\"sfx\" == 'sfx') {\n                            asset_type = 'sfx';\n                        }\n                        analytics.track(\"media downloaded\", {\n                            asset_id: assetId || null,\n                            asset_type: asset_type || null,\n                            click_source: 'player',\n                            artist: artist || null,\n                            title: title || null,\n                            genre: null,\n                            ...special_data,\n                        });\n                    });\n\n                    \/\/ add event listener to the click on the wave itself\n                    audioWaveform.on(\"click\", () => {\n                        setTimeout(() => {\n                            if (wavesurfer.isPlaying()) {\n                                wavesurfer.pause();\n                                playPauseButton.html('<i class=\"fas fa-play\"><\/i>');\n                            } else {\n                                \/\/ pause all other audios that may be playing\n                                $('.playPauseButton').html('<i class=\"fas fa-play\"><\/i>');\n                                $.each(allWavesurfers, function(index, audio) {\n                                    allWavesurfers[index].pause();\n                                });\n                                \/\/ then play current audio\n                                wavesurfer.play();\n                                playPauseButton.html('<i class=\"fas fa-pause\"><\/i>');\n                            }\n                        }, \"200\");\n                    });\n\n                });\n            }\n\n        });\n    <\/script>\n\n    \n\n\n\n<h3 class=\"wp-block-heading\">SFX: Green Thumb &#8211; Garden Shovel Digging<\/h3>\n\n\n\n<p>Artist: <a href=\"https:\/\/artlist.io\/sfx\/artist\/artlist-foley\/2886\" target=\"_blank\" rel=\"noreferrer noopener\">Artlist Foley<\/a><\/p>\n\n\n\n<p>If your scene is garden-related, then this is the sound effect for you. It reflects a range of moods \u2014 the sound of digging and gardening can be used to emphasize a character\u2019s dedication, hard work, or physical effort. Gardening often represents growth, renewal, or the beginning of something new. The sounds of digging and planting can be used to mirror a character\u2019s personal growth or transformation, signaling growth and rebirth.<\/p>\n\n\n\n\n    <div class=\"playlist\" id=\"69d07ebeacc04\"><\/div>\n\n    <script>\n        jQuery(document).ready(function($) {\n\n            if(\"sfx\" == 'songs') {\n                $.ajax({\n                    method: \"POST\",\n                    url: \"https:\/\/search-api.artlist.me\/v1\/graphql\",\n                    contentType: \"application\/json\",\n                    data: JSON.stringify({\n                        query: `query SongList($page: Int!, $songSortType: Int!, $take: Int!, $vocalMenuId: Int!, $categoryIds: [Int], $collectionId: String, $searchTerm: String) {\n                        songList(page: $page, songSortType: $songSortType, take: $take, vocalMenuId: $vocalMenuId, categoryIds: $categoryIds, collectionId: $collectionId, searchTerm: $searchTerm) {\n                          songs {\n                            songId\n                            songName\n                            artistName\n                            isNew\n                            nameForURL\n                            sitePlayableFilePath\n\t\t\t\t\t\t\talbumImageFilePath\n\t\t\t\t\t\t\trelativeUrl\n                          }\n                          totalResults\n                        }\n                    }`,\n                        variables: JSON.stringify({\n                            \"page\": 1,\n                            \"songSortType\": STAFF_PICKS,\n                            \"take\": 1,\n                            \"vocalMenuId\": 1,\n                            \"categoryIds\": null,\n                            \"searchTerm\": \"Green Thumb - Garden Shovel Digging\"\n                        }),\n                    })\n                }).done(function(res) {\n                    if (res == '') {\n                        console.log('none');\n                    } else {\n                        console.log('songs list: ', res);\n                        var data = res.data.songList.songs;\n                        if ($(\"#69d07ebeacc04\").length && data.length > 0) {\n                            createAudioPlayers(data, \"69d07ebeacc04\");\n                        } else if ($(\"#69d07ebeacc04\").length && data.length == 0) {\n                            $(\"#69d07ebeacc04\").empty().append('<div class=\"noSongsError\">No songs were found.<\/div>');\n                        }\n                    }\n                });\n            } else if(\"sfx\" == 'sfx') {\n                $.ajax({\n                    method: \"POST\",\n                    url: \"https:\/\/search-api.artlist.me\/v1\/graphql\",\n                    contentType: \"application\/json\",\n                    data: JSON.stringify({\n                        query: `query SfxList($categoryIds: String!, $page: Float!, $tags: String!, $term: String!, $sortBy: SfxListRequestSortByOptions!) {\n\t\t\t\t\t\t\t\tsfxList(categoryIds: $categoryIds, page: $page, tags: $tags, term: $term, sortBy: $sortBy) {\n\t\t\t\t\t\t\t\t  page\n\t\t\t\t\t\t\t\t  songs {\n\t\t\t\t\t\t\t\t\t  albumImageFilePath\n\t\t\t\t\t\t\t\t\t  artistName\n\t\t\t\t\t\t\t\t\t  isNew\n\t\t\t\t\t\t\t\t\t  nameForURL\n\t\t\t\t\t\t\t\t\t  relativeUrl\n\t\t\t\t\t\t\t\t\t  sitePlayableFilePath        \n\t\t\t\t\t\t\t\t\t  songId \n\t\t\t\t\t\t\t\t\t  songName\n\t\t\t\t\t\t\t\t  }\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}`,\n                        variables: JSON.stringify({\n                            \"categoryIds\": \"\",\n                            \"page\": 1,\n                            \"tags\": \"\",\n                            \"term\": \"Green Thumb - Garden Shovel Digging\",\n                            \"sortBy\": \"STAFF_PICKS\"\n                        }),\n                    })\n                }).done(function(res) {\n                    if (res == '') {\n                        console.log('none');\n                    } else {\n                        console.log('sfx list: ', res);\n                        var data = res.data.sfxList.songs;\n                        if ($(\"#69d07ebeacc04\").length && data.length > 0) {\n                            createAudioPlayers(data, \"69d07ebeacc04\");\n                        } else if ($(\"#69d07ebeacc04\").length && data.length == 0) {\n                            $(\"#69d07ebeacc04\").empty().append('<div class=\"noSongsError\">No songs were found.<\/div>');\n                        }\n                    }\n                });\n            }\n\n            function createAudioPlayers(data, playlistId) {\n                \/\/ main playlist container\n                const playlistContainer = $(\"#\" + playlistId);\n                \/\/ wavesurfers array\n                \/\/ const wavesurfers = [];\n                \/\/ loop over every song returned\n\n                if(!allWavesurfers){\n                    var allWavesurfers = [];\n                }\n                $.each(data, function(index, audio) {\n                    \/\/ if current type is sfx and current looped index is bigger than amount wanted via shortcode - then stop loop (because sfx request doesn't have \"take\" variable)\n                    if(\"sfx\" == 'sfx' && (index + 1) > 1) {\n                        return false;\n                    }\n\n                    \/\/ audio player container\n                    const audioPlayer = $(\"<div>\").addClass(\"audioPlayer\");\n                    \/\/ album image\n                    const audioImage = $(\"<div>\").addClass(\"audioImage\");\n                    audioImage.append('<img decoding=\"async\" src=\"' + audio.albumImageFilePath + '\"\/>');\n                    \/\/ audio controls\n                    const audioControls = $(\"<div>\").addClass(\"audioControls\");\n                    const playPauseButton = $(\"<button>\").addClass(\"playPauseButton\").html('<i class=\"fas fa-play\"><\/i>');\n                    audioControls.append(playPauseButton);\n                    \/\/ song url\n                    var songUrl;\n                    if(\"sfx\" == 'songs') {\n                        songUrl = 'https:\/\/artlist.io\/royalty-free-music\/song\/' + audio.nameForURL + '\/' + audio.songId + '?download=1&utm_source=blog';\n                    } else if(\"sfx\" == 'sfx') {\n                        songUrl = 'https:\/\/artlist.io\/sfx\/track\/' + audio.nameForURL + '\/' + audio.songId + '?download=1&utm_source=blog';\n                    }\n                    \/\/ song name and artist name\n                    const audioNames = $(\"<div>\").addClass(\"audioNames\");\n                    const songName = $(\"<a>\").addClass(\"songName\").attr(\"href\", songUrl).attr(\"target\", \"_blank\").text(audio.songName);\n                    if (audio.isNew) {\n                        songName.append('<span class=\"isNewBadge\">NEW<\/span>');\n                    }\n                    const artistName = $(\"<span>\").addClass(\"artistName\").text(audio.artistName);\n                    audioNames.append(songName, artistName);\n                    \/\/ audio waveform container\n                    const audioWaveform = $(\"<div>\").addClass(\"audioWaveform\");\n                    \/\/ download button\n                    const audioDownload = $(\"<a>\").addClass(\"audioDownload\").attr(\"href\", songUrl).attr(\"target\", \"_blank\").html('<i class=\"icon download medium\"><\/i>');\n\n\n                    \/\/ APPEND ALL ELEMENTS INTO AUDIO PLAYER CONTAINER\n                    audioPlayer.append(audioImage, audioControls, audioNames, audioWaveform, audioDownload);\n\n                    \/\/ append audio player container into main playlist container\n                    playlistContainer.append(audioPlayer);\n\n                    \/* media viewed SEGMENT EVENT *\/\n                    const special_data = getProps();\n\n                    const observer = new IntersectionObserver(entries => {\n                        entries.forEach(entry => {\n                            if (entry.isIntersecting) {\n                                var assetId = audio.songId;\n                                var artist = audio.artistName;\n                                var title = audio.songName;\n                                var asset_type = null;\n                                if(\"sfx\" == 'songs') {\n                                    asset_type = 'song';\n                                } else if(\"sfx\" == 'sfx') {\n                                    asset_type = 'sfx';\n                                }\n                                analytics.track(\"media viewed\", {\n                                    asset_id: assetId || null,\n                                    asset_type: asset_type || null,\n                                    click_source: 'player',\n                                    artist: artist || null,\n                                    title: title || null,\n                                    genre: null,\n                                    ...special_data,\n                                });\n                                observer.unobserve(entry.target);\n                            }\n                        });\n                    }, {\n                        threshold: 0.5\n                    });\n                    observer.observe(audioPlayer[0]);\n\n                    \/\/ check screen size\n                    var mobileScreen = window.matchMedia('(max-width: 767px)');\n                    var waveformHeight = '';\n                    if (mobileScreen.matches) { \/\/ mobile\n                        waveformHeight = 15;\n                    } else { \/\/ desktop\n                        waveformHeight = 40;\n                    }\n\n                    \/\/ create wavesurfer instance\n                    const waveformId = `waveform-${playlistId}-${index}`; \/\/ Generate a unique ID for each waveform\n                    const waveformContainer = $(\"<div>\").attr(\"id\", waveformId).addClass(\"waveformContainer\");\n                    audioWaveform.append(waveformContainer);\n                    const wavesurfer = WaveSurfer.create({\n                        container: `#${waveformId}`,\n                        waveColor: \"#b1b1b1\",\n                        progressColor: \"#171717\",\n                        cursorColor: \"transparent\",\n                        height: waveformHeight,\n                        normalize: true,\n                    });\n                    \/\/ push current wavesurfer into wavesurfers array\n                    \/\/ wavesurfers.push(wavesurfer);\n                    allWavesurfers.push(wavesurfer);\n                    \/\/ load audio file into new wavesurfer\n                    wavesurfer.load(audio.sitePlayableFilePath);\n\n                    \/\/ add event listener to the play\/pause button\n                    playPauseButton.on(\"click\", () => {\n                        if (wavesurfer.isPlaying()) {\n                            wavesurfer.pause();\n                            playPauseButton.html('<i class=\"fas fa-play\"><\/i>');\n\n                            \/* media paused SEGMENT EVENT *\/\n                            var assetId = audio.songId;\n                            var artist = audio.artistName;\n                            var title = audio.songName;\n                            var asset_type = null;\n                            if(\"sfx\" == 'songs') {\n                                asset_type = 'song';\n                            } else if(\"sfx\" == 'sfx') {\n                                asset_type = 'sfx';\n                            }\n                            analytics.track(\"media paused\", {\n                                asset_id: assetId || null,\n                                asset_type: asset_type || null,\n                                click_source: 'player',\n                                artist: artist || null,\n                                title: title || null,\n                                genre: null,\n                                ...special_data,\n                            });\n                        } else {\n                            \/\/ pause all other audios that may be playing\n                            $('.playPauseButton').html('<i class=\"fas fa-play\"><\/i>');\n                            $.each(allWavesurfers, function(index, audio) {\n                                allWavesurfers[index].pause();\n                            });\n                            \/\/ then play current audio\n                            wavesurfer.play();\n                            playPauseButton.html('<i class=\"fas fa-pause\"><\/i>');\n\n                            \/* media played SEGMENT EVENT *\/\n                            var assetId = audio.songId;\n                            var artist = audio.artistName;\n                            var title = audio.songName;\n                            var asset_type = null;\n                            if(\"sfx\" == 'songs') {\n                                asset_type = 'song';\n                            } else if(\"sfx\" == 'sfx') {\n                                asset_type = 'sfx';\n                            }\n                            analytics.track(\"media played\", {\n                                asset_id: assetId || null,\n                                asset_type: asset_type || null,\n                                click_source: 'player',\n                                artist: artist || null,\n                                title: title || null,\n                                genre: null,\n                                ...special_data,\n                            });\n                        }\n                    });\n\n                    \/* media downloaded SEGMENT EVENT *\/\n                    audioDownload.on(\"click\", () => {\n                        var assetId = audio.songId;\n                        var artist = audio.artistName;\n                        var title = audio.songName;\n                        var asset_type = null;\n                        if(\"sfx\" == 'songs') {\n                            asset_type = 'song';\n                        } else if(\"sfx\" == 'sfx') {\n                            asset_type = 'sfx';\n                        }\n                        analytics.track(\"media downloaded\", {\n                            asset_id: assetId || null,\n                            asset_type: asset_type || null,\n                            click_source: 'player',\n                            artist: artist || null,\n                            title: title || null,\n                            genre: null,\n                            ...special_data,\n                        });\n                    });\n\n                    \/\/ add event listener to the click on the wave itself\n                    audioWaveform.on(\"click\", () => {\n                        setTimeout(() => {\n                            if (wavesurfer.isPlaying()) {\n                                wavesurfer.pause();\n                                playPauseButton.html('<i class=\"fas fa-play\"><\/i>');\n                            } else {\n                                \/\/ pause all other audios that may be playing\n                                $('.playPauseButton').html('<i class=\"fas fa-play\"><\/i>');\n                                $.each(allWavesurfers, function(index, audio) {\n                                    allWavesurfers[index].pause();\n                                });\n                                \/\/ then play current audio\n                                wavesurfer.play();\n                                playPauseButton.html('<i class=\"fas fa-pause\"><\/i>');\n                            }\n                        }, \"200\");\n                    });\n\n                });\n            }\n\n        });\n    <\/script>\n\n    \n\n\n\n<h3 class=\"wp-block-heading\">SFX: Berlin &#8211; Calm Lake, Water Laps<\/h3>\n\n\n\n<p>Artist: <a href=\"https:\/\/artlist.io\/sfx\/artist\/rei-elbaz\/1804\" target=\"_blank\" rel=\"noreferrer noopener\">Rei Elbaz<\/a><\/p>\n\n\n\n<p>Experience peace and serenity with the sound of water lapping gently against the shore. This sound effect can act as a symbol of introspection, ideal if a character needs to process their emotions, memories, or make a big decision. The soft sound can mirror the internal flow of thoughts and feelings, or provide a soothing backdrop to a journey of self-discovery.<\/p>\n\n\n\n\n    <div class=\"playlist\" id=\"69d07ebeacd31\"><\/div>\n\n    <script>\n        jQuery(document).ready(function($) {\n\n            if(\"sfx\" == 'songs') {\n                $.ajax({\n                    method: \"POST\",\n                    url: \"https:\/\/search-api.artlist.me\/v1\/graphql\",\n                    contentType: \"application\/json\",\n                    data: JSON.stringify({\n                        query: `query SongList($page: Int!, $songSortType: Int!, $take: Int!, $vocalMenuId: Int!, $categoryIds: [Int], $collectionId: String, $searchTerm: String) {\n                        songList(page: $page, songSortType: $songSortType, take: $take, vocalMenuId: $vocalMenuId, categoryIds: $categoryIds, collectionId: $collectionId, searchTerm: $searchTerm) {\n                          songs {\n                            songId\n                            songName\n                            artistName\n                            isNew\n                            nameForURL\n                            sitePlayableFilePath\n\t\t\t\t\t\t\talbumImageFilePath\n\t\t\t\t\t\t\trelativeUrl\n                          }\n                          totalResults\n                        }\n                    }`,\n                        variables: JSON.stringify({\n                            \"page\": 1,\n                            \"songSortType\": STAFF_PICKS,\n                            \"take\": 1,\n                            \"vocalMenuId\": 1,\n                            \"categoryIds\": null,\n                            \"searchTerm\": \"Berlin - Calm Lake, Water Laps\"\n                        }),\n                    })\n                }).done(function(res) {\n                    if (res == '') {\n                        console.log('none');\n                    } else {\n                        console.log('songs list: ', res);\n                        var data = res.data.songList.songs;\n                        if ($(\"#69d07ebeacd31\").length && data.length > 0) {\n                            createAudioPlayers(data, \"69d07ebeacd31\");\n                        } else if ($(\"#69d07ebeacd31\").length && data.length == 0) {\n                            $(\"#69d07ebeacd31\").empty().append('<div class=\"noSongsError\">No songs were found.<\/div>');\n                        }\n                    }\n                });\n            } else if(\"sfx\" == 'sfx') {\n                $.ajax({\n                    method: \"POST\",\n                    url: \"https:\/\/search-api.artlist.me\/v1\/graphql\",\n                    contentType: \"application\/json\",\n                    data: JSON.stringify({\n                        query: `query SfxList($categoryIds: String!, $page: Float!, $tags: String!, $term: String!, $sortBy: SfxListRequestSortByOptions!) {\n\t\t\t\t\t\t\t\tsfxList(categoryIds: $categoryIds, page: $page, tags: $tags, term: $term, sortBy: $sortBy) {\n\t\t\t\t\t\t\t\t  page\n\t\t\t\t\t\t\t\t  songs {\n\t\t\t\t\t\t\t\t\t  albumImageFilePath\n\t\t\t\t\t\t\t\t\t  artistName\n\t\t\t\t\t\t\t\t\t  isNew\n\t\t\t\t\t\t\t\t\t  nameForURL\n\t\t\t\t\t\t\t\t\t  relativeUrl\n\t\t\t\t\t\t\t\t\t  sitePlayableFilePath        \n\t\t\t\t\t\t\t\t\t  songId \n\t\t\t\t\t\t\t\t\t  songName\n\t\t\t\t\t\t\t\t  }\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}`,\n                        variables: JSON.stringify({\n                            \"categoryIds\": \"\",\n                            \"page\": 1,\n                            \"tags\": \"\",\n                            \"term\": \"Berlin - Calm Lake, Water Laps\",\n                            \"sortBy\": \"STAFF_PICKS\"\n                        }),\n                    })\n                }).done(function(res) {\n                    if (res == '') {\n                        console.log('none');\n                    } else {\n                        console.log('sfx list: ', res);\n                        var data = res.data.sfxList.songs;\n                        if ($(\"#69d07ebeacd31\").length && data.length > 0) {\n                            createAudioPlayers(data, \"69d07ebeacd31\");\n                        } else if ($(\"#69d07ebeacd31\").length && data.length == 0) {\n                            $(\"#69d07ebeacd31\").empty().append('<div class=\"noSongsError\">No songs were found.<\/div>');\n                        }\n                    }\n                });\n            }\n\n            function createAudioPlayers(data, playlistId) {\n                \/\/ main playlist container\n                const playlistContainer = $(\"#\" + playlistId);\n                \/\/ wavesurfers array\n                \/\/ const wavesurfers = [];\n                \/\/ loop over every song returned\n\n                if(!allWavesurfers){\n                    var allWavesurfers = [];\n                }\n                $.each(data, function(index, audio) {\n                    \/\/ if current type is sfx and current looped index is bigger than amount wanted via shortcode - then stop loop (because sfx request doesn't have \"take\" variable)\n                    if(\"sfx\" == 'sfx' && (index + 1) > 1) {\n                        return false;\n                    }\n\n                    \/\/ audio player container\n                    const audioPlayer = $(\"<div>\").addClass(\"audioPlayer\");\n                    \/\/ album image\n                    const audioImage = $(\"<div>\").addClass(\"audioImage\");\n                    audioImage.append('<img decoding=\"async\" src=\"' + audio.albumImageFilePath + '\"\/>');\n                    \/\/ audio controls\n                    const audioControls = $(\"<div>\").addClass(\"audioControls\");\n                    const playPauseButton = $(\"<button>\").addClass(\"playPauseButton\").html('<i class=\"fas fa-play\"><\/i>');\n                    audioControls.append(playPauseButton);\n                    \/\/ song url\n                    var songUrl;\n                    if(\"sfx\" == 'songs') {\n                        songUrl = 'https:\/\/artlist.io\/royalty-free-music\/song\/' + audio.nameForURL + '\/' + audio.songId + '?download=1&utm_source=blog';\n                    } else if(\"sfx\" == 'sfx') {\n                        songUrl = 'https:\/\/artlist.io\/sfx\/track\/' + audio.nameForURL + '\/' + audio.songId + '?download=1&utm_source=blog';\n                    }\n                    \/\/ song name and artist name\n                    const audioNames = $(\"<div>\").addClass(\"audioNames\");\n                    const songName = $(\"<a>\").addClass(\"songName\").attr(\"href\", songUrl).attr(\"target\", \"_blank\").text(audio.songName);\n                    if (audio.isNew) {\n                        songName.append('<span class=\"isNewBadge\">NEW<\/span>');\n                    }\n                    const artistName = $(\"<span>\").addClass(\"artistName\").text(audio.artistName);\n                    audioNames.append(songName, artistName);\n                    \/\/ audio waveform container\n                    const audioWaveform = $(\"<div>\").addClass(\"audioWaveform\");\n                    \/\/ download button\n                    const audioDownload = $(\"<a>\").addClass(\"audioDownload\").attr(\"href\", songUrl).attr(\"target\", \"_blank\").html('<i class=\"icon download medium\"><\/i>');\n\n\n                    \/\/ APPEND ALL ELEMENTS INTO AUDIO PLAYER CONTAINER\n                    audioPlayer.append(audioImage, audioControls, audioNames, audioWaveform, audioDownload);\n\n                    \/\/ append audio player container into main playlist container\n                    playlistContainer.append(audioPlayer);\n\n                    \/* media viewed SEGMENT EVENT *\/\n                    const special_data = getProps();\n\n                    const observer = new IntersectionObserver(entries => {\n                        entries.forEach(entry => {\n                            if (entry.isIntersecting) {\n                                var assetId = audio.songId;\n                                var artist = audio.artistName;\n                                var title = audio.songName;\n                                var asset_type = null;\n                                if(\"sfx\" == 'songs') {\n                                    asset_type = 'song';\n                                } else if(\"sfx\" == 'sfx') {\n                                    asset_type = 'sfx';\n                                }\n                                analytics.track(\"media viewed\", {\n                                    asset_id: assetId || null,\n                                    asset_type: asset_type || null,\n                                    click_source: 'player',\n                                    artist: artist || null,\n                                    title: title || null,\n                                    genre: null,\n                                    ...special_data,\n                                });\n                                observer.unobserve(entry.target);\n                            }\n                        });\n                    }, {\n                        threshold: 0.5\n                    });\n                    observer.observe(audioPlayer[0]);\n\n                    \/\/ check screen size\n                    var mobileScreen = window.matchMedia('(max-width: 767px)');\n                    var waveformHeight = '';\n                    if (mobileScreen.matches) { \/\/ mobile\n                        waveformHeight = 15;\n                    } else { \/\/ desktop\n                        waveformHeight = 40;\n                    }\n\n                    \/\/ create wavesurfer instance\n                    const waveformId = `waveform-${playlistId}-${index}`; \/\/ Generate a unique ID for each waveform\n                    const waveformContainer = $(\"<div>\").attr(\"id\", waveformId).addClass(\"waveformContainer\");\n                    audioWaveform.append(waveformContainer);\n                    const wavesurfer = WaveSurfer.create({\n                        container: `#${waveformId}`,\n                        waveColor: \"#b1b1b1\",\n                        progressColor: \"#171717\",\n                        cursorColor: \"transparent\",\n                        height: waveformHeight,\n                        normalize: true,\n                    });\n                    \/\/ push current wavesurfer into wavesurfers array\n                    \/\/ wavesurfers.push(wavesurfer);\n                    allWavesurfers.push(wavesurfer);\n                    \/\/ load audio file into new wavesurfer\n                    wavesurfer.load(audio.sitePlayableFilePath);\n\n                    \/\/ add event listener to the play\/pause button\n                    playPauseButton.on(\"click\", () => {\n                        if (wavesurfer.isPlaying()) {\n                            wavesurfer.pause();\n                            playPauseButton.html('<i class=\"fas fa-play\"><\/i>');\n\n                            \/* media paused SEGMENT EVENT *\/\n                            var assetId = audio.songId;\n                            var artist = audio.artistName;\n                            var title = audio.songName;\n                            var asset_type = null;\n                            if(\"sfx\" == 'songs') {\n                                asset_type = 'song';\n                            } else if(\"sfx\" == 'sfx') {\n                                asset_type = 'sfx';\n                            }\n                            analytics.track(\"media paused\", {\n                                asset_id: assetId || null,\n                                asset_type: asset_type || null,\n                                click_source: 'player',\n                                artist: artist || null,\n                                title: title || null,\n                                genre: null,\n                                ...special_data,\n                            });\n                        } else {\n                            \/\/ pause all other audios that may be playing\n                            $('.playPauseButton').html('<i class=\"fas fa-play\"><\/i>');\n                            $.each(allWavesurfers, function(index, audio) {\n                                allWavesurfers[index].pause();\n                            });\n                            \/\/ then play current audio\n                            wavesurfer.play();\n                            playPauseButton.html('<i class=\"fas fa-pause\"><\/i>');\n\n                            \/* media played SEGMENT EVENT *\/\n                            var assetId = audio.songId;\n                            var artist = audio.artistName;\n                            var title = audio.songName;\n                            var asset_type = null;\n                            if(\"sfx\" == 'songs') {\n                                asset_type = 'song';\n                            } else if(\"sfx\" == 'sfx') {\n                                asset_type = 'sfx';\n                            }\n                            analytics.track(\"media played\", {\n                                asset_id: assetId || null,\n                                asset_type: asset_type || null,\n                                click_source: 'player',\n                                artist: artist || null,\n                                title: title || null,\n                                genre: null,\n                                ...special_data,\n                            });\n                        }\n                    });\n\n                    \/* media downloaded SEGMENT EVENT *\/\n                    audioDownload.on(\"click\", () => {\n                        var assetId = audio.songId;\n                        var artist = audio.artistName;\n                        var title = audio.songName;\n                        var asset_type = null;\n                        if(\"sfx\" == 'songs') {\n                            asset_type = 'song';\n                        } else if(\"sfx\" == 'sfx') {\n                            asset_type = 'sfx';\n                        }\n                        analytics.track(\"media downloaded\", {\n                            asset_id: assetId || null,\n                            asset_type: asset_type || null,\n                            click_source: 'player',\n                            artist: artist || null,\n                            title: title || null,\n                            genre: null,\n                            ...special_data,\n                        });\n                    });\n\n                    \/\/ add event listener to the click on the wave itself\n                    audioWaveform.on(\"click\", () => {\n                        setTimeout(() => {\n                            if (wavesurfer.isPlaying()) {\n                                wavesurfer.pause();\n                                playPauseButton.html('<i class=\"fas fa-play\"><\/i>');\n                            } else {\n                                \/\/ pause all other audios that may be playing\n                                $('.playPauseButton').html('<i class=\"fas fa-play\"><\/i>');\n                                $.each(allWavesurfers, function(index, audio) {\n                                    allWavesurfers[index].pause();\n                                });\n                                \/\/ then play current audio\n                                wavesurfer.play();\n                                playPauseButton.html('<i class=\"fas fa-pause\"><\/i>');\n                            }\n                        }, \"200\");\n                    });\n\n                });\n            }\n\n        });\n    <\/script>\n\n    \n\n\n\n<h3 class=\"wp-block-heading\">SFX: Rural &#8211; Cows Lowing, Near River, Cattle, Bells, Birds Chirping<\/h3>\n\n\n\n<p>Artist: <a href=\"https:\/\/artlist.io\/sfx\/artist\/ivo-vicic\/1285\" target=\"_blank\" rel=\"noreferrer noopener\">Ivo Vicic<\/a><\/p>\n\n\n\n<p>This two-minute sound effect of cows lowing near a gurgling river instantly transports listeners and viewers to a country farm. The combination of <a href=\"https:\/\/artlist.io\/sfx\/categories\/birds\">bird song<\/a>, cattle, water, and bells conveys the simplicity and rhythm of farm life, and the gentle hum of nature creates a sense of calm and peacefulness.<\/p>\n\n\n\n\n    <div class=\"playlist\" id=\"69d07ebead145\"><\/div>\n\n    <script>\n        jQuery(document).ready(function($) {\n\n            if(\"sfx\" == 'songs') {\n                $.ajax({\n                    method: \"POST\",\n                    url: \"https:\/\/search-api.artlist.me\/v1\/graphql\",\n                    contentType: \"application\/json\",\n                    data: JSON.stringify({\n                        query: `query SongList($page: Int!, $songSortType: Int!, $take: Int!, $vocalMenuId: Int!, $categoryIds: [Int], $collectionId: String, $searchTerm: String) {\n                        songList(page: $page, songSortType: $songSortType, take: $take, vocalMenuId: $vocalMenuId, categoryIds: $categoryIds, collectionId: $collectionId, searchTerm: $searchTerm) {\n                          songs {\n                            songId\n                            songName\n                            artistName\n                            isNew\n                            nameForURL\n                            sitePlayableFilePath\n\t\t\t\t\t\t\talbumImageFilePath\n\t\t\t\t\t\t\trelativeUrl\n                          }\n                          totalResults\n                        }\n                    }`,\n                        variables: JSON.stringify({\n                            \"page\": 1,\n                            \"songSortType\": STAFF_PICKS,\n                            \"take\": 1,\n                            \"vocalMenuId\": 1,\n                            \"categoryIds\": null,\n                            \"searchTerm\": \"Rural - Cows Lowing, Near River, Cattle, Bells, Birds Chirping\"\n                        }),\n                    })\n                }).done(function(res) {\n                    if (res == '') {\n                        console.log('none');\n                    } else {\n                        console.log('songs list: ', res);\n                        var data = res.data.songList.songs;\n                        if ($(\"#69d07ebead145\").length && data.length > 0) {\n                            createAudioPlayers(data, \"69d07ebead145\");\n                        } else if ($(\"#69d07ebead145\").length && data.length == 0) {\n                            $(\"#69d07ebead145\").empty().append('<div class=\"noSongsError\">No songs were found.<\/div>');\n                        }\n                    }\n                });\n            } else if(\"sfx\" == 'sfx') {\n                $.ajax({\n                    method: \"POST\",\n                    url: \"https:\/\/search-api.artlist.me\/v1\/graphql\",\n                    contentType: \"application\/json\",\n                    data: JSON.stringify({\n                        query: `query SfxList($categoryIds: String!, $page: Float!, $tags: String!, $term: String!, $sortBy: SfxListRequestSortByOptions!) {\n\t\t\t\t\t\t\t\tsfxList(categoryIds: $categoryIds, page: $page, tags: $tags, term: $term, sortBy: $sortBy) {\n\t\t\t\t\t\t\t\t  page\n\t\t\t\t\t\t\t\t  songs {\n\t\t\t\t\t\t\t\t\t  albumImageFilePath\n\t\t\t\t\t\t\t\t\t  artistName\n\t\t\t\t\t\t\t\t\t  isNew\n\t\t\t\t\t\t\t\t\t  nameForURL\n\t\t\t\t\t\t\t\t\t  relativeUrl\n\t\t\t\t\t\t\t\t\t  sitePlayableFilePath        \n\t\t\t\t\t\t\t\t\t  songId \n\t\t\t\t\t\t\t\t\t  songName\n\t\t\t\t\t\t\t\t  }\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}`,\n                        variables: JSON.stringify({\n                            \"categoryIds\": \"\",\n                            \"page\": 1,\n                            \"tags\": \"\",\n                            \"term\": \"Rural - Cows Lowing, Near River, Cattle, Bells, Birds Chirping\",\n                            \"sortBy\": \"STAFF_PICKS\"\n                        }),\n                    })\n                }).done(function(res) {\n                    if (res == '') {\n                        console.log('none');\n                    } else {\n                        console.log('sfx list: ', res);\n                        var data = res.data.sfxList.songs;\n                        if ($(\"#69d07ebead145\").length && data.length > 0) {\n                            createAudioPlayers(data, \"69d07ebead145\");\n                        } else if ($(\"#69d07ebead145\").length && data.length == 0) {\n                            $(\"#69d07ebead145\").empty().append('<div class=\"noSongsError\">No songs were found.<\/div>');\n                        }\n                    }\n                });\n            }\n\n            function createAudioPlayers(data, playlistId) {\n                \/\/ main playlist container\n                const playlistContainer = $(\"#\" + playlistId);\n                \/\/ wavesurfers array\n                \/\/ const wavesurfers = [];\n                \/\/ loop over every song returned\n\n                if(!allWavesurfers){\n                    var allWavesurfers = [];\n                }\n                $.each(data, function(index, audio) {\n                    \/\/ if current type is sfx and current looped index is bigger than amount wanted via shortcode - then stop loop (because sfx request doesn't have \"take\" variable)\n                    if(\"sfx\" == 'sfx' && (index + 1) > 1) {\n                        return false;\n                    }\n\n                    \/\/ audio player container\n                    const audioPlayer = $(\"<div>\").addClass(\"audioPlayer\");\n                    \/\/ album image\n                    const audioImage = $(\"<div>\").addClass(\"audioImage\");\n                    audioImage.append('<img decoding=\"async\" src=\"' + audio.albumImageFilePath + '\"\/>');\n                    \/\/ audio controls\n                    const audioControls = $(\"<div>\").addClass(\"audioControls\");\n                    const playPauseButton = $(\"<button>\").addClass(\"playPauseButton\").html('<i class=\"fas fa-play\"><\/i>');\n                    audioControls.append(playPauseButton);\n                    \/\/ song url\n                    var songUrl;\n                    if(\"sfx\" == 'songs') {\n                        songUrl = 'https:\/\/artlist.io\/royalty-free-music\/song\/' + audio.nameForURL + '\/' + audio.songId + '?download=1&utm_source=blog';\n                    } else if(\"sfx\" == 'sfx') {\n                        songUrl = 'https:\/\/artlist.io\/sfx\/track\/' + audio.nameForURL + '\/' + audio.songId + '?download=1&utm_source=blog';\n                    }\n                    \/\/ song name and artist name\n                    const audioNames = $(\"<div>\").addClass(\"audioNames\");\n                    const songName = $(\"<a>\").addClass(\"songName\").attr(\"href\", songUrl).attr(\"target\", \"_blank\").text(audio.songName);\n                    if (audio.isNew) {\n                        songName.append('<span class=\"isNewBadge\">NEW<\/span>');\n                    }\n                    const artistName = $(\"<span>\").addClass(\"artistName\").text(audio.artistName);\n                    audioNames.append(songName, artistName);\n                    \/\/ audio waveform container\n                    const audioWaveform = $(\"<div>\").addClass(\"audioWaveform\");\n                    \/\/ download button\n                    const audioDownload = $(\"<a>\").addClass(\"audioDownload\").attr(\"href\", songUrl).attr(\"target\", \"_blank\").html('<i class=\"icon download medium\"><\/i>');\n\n\n                    \/\/ APPEND ALL ELEMENTS INTO AUDIO PLAYER CONTAINER\n                    audioPlayer.append(audioImage, audioControls, audioNames, audioWaveform, audioDownload);\n\n                    \/\/ append audio player container into main playlist container\n                    playlistContainer.append(audioPlayer);\n\n                    \/* media viewed SEGMENT EVENT *\/\n                    const special_data = getProps();\n\n                    const observer = new IntersectionObserver(entries => {\n                        entries.forEach(entry => {\n                            if (entry.isIntersecting) {\n                                var assetId = audio.songId;\n                                var artist = audio.artistName;\n                                var title = audio.songName;\n                                var asset_type = null;\n                                if(\"sfx\" == 'songs') {\n                                    asset_type = 'song';\n                                } else if(\"sfx\" == 'sfx') {\n                                    asset_type = 'sfx';\n                                }\n                                analytics.track(\"media viewed\", {\n                                    asset_id: assetId || null,\n                                    asset_type: asset_type || null,\n                                    click_source: 'player',\n                                    artist: artist || null,\n                                    title: title || null,\n                                    genre: null,\n                                    ...special_data,\n                                });\n                                observer.unobserve(entry.target);\n                            }\n                        });\n                    }, {\n                        threshold: 0.5\n                    });\n                    observer.observe(audioPlayer[0]);\n\n                    \/\/ check screen size\n                    var mobileScreen = window.matchMedia('(max-width: 767px)');\n                    var waveformHeight = '';\n                    if (mobileScreen.matches) { \/\/ mobile\n                        waveformHeight = 15;\n                    } else { \/\/ desktop\n                        waveformHeight = 40;\n                    }\n\n                    \/\/ create wavesurfer instance\n                    const waveformId = `waveform-${playlistId}-${index}`; \/\/ Generate a unique ID for each waveform\n                    const waveformContainer = $(\"<div>\").attr(\"id\", waveformId).addClass(\"waveformContainer\");\n                    audioWaveform.append(waveformContainer);\n                    const wavesurfer = WaveSurfer.create({\n                        container: `#${waveformId}`,\n                        waveColor: \"#b1b1b1\",\n                        progressColor: \"#171717\",\n                        cursorColor: \"transparent\",\n                        height: waveformHeight,\n                        normalize: true,\n                    });\n                    \/\/ push current wavesurfer into wavesurfers array\n                    \/\/ wavesurfers.push(wavesurfer);\n                    allWavesurfers.push(wavesurfer);\n                    \/\/ load audio file into new wavesurfer\n                    wavesurfer.load(audio.sitePlayableFilePath);\n\n                    \/\/ add event listener to the play\/pause button\n                    playPauseButton.on(\"click\", () => {\n                        if (wavesurfer.isPlaying()) {\n                            wavesurfer.pause();\n                            playPauseButton.html('<i class=\"fas fa-play\"><\/i>');\n\n                            \/* media paused SEGMENT EVENT *\/\n                            var assetId = audio.songId;\n                            var artist = audio.artistName;\n                            var title = audio.songName;\n                            var asset_type = null;\n                            if(\"sfx\" == 'songs') {\n                                asset_type = 'song';\n                            } else if(\"sfx\" == 'sfx') {\n                                asset_type = 'sfx';\n                            }\n                            analytics.track(\"media paused\", {\n                                asset_id: assetId || null,\n                                asset_type: asset_type || null,\n                                click_source: 'player',\n                                artist: artist || null,\n                                title: title || null,\n                                genre: null,\n                                ...special_data,\n                            });\n                        } else {\n                            \/\/ pause all other audios that may be playing\n                            $('.playPauseButton').html('<i class=\"fas fa-play\"><\/i>');\n                            $.each(allWavesurfers, function(index, audio) {\n                                allWavesurfers[index].pause();\n                            });\n                            \/\/ then play current audio\n                            wavesurfer.play();\n                            playPauseButton.html('<i class=\"fas fa-pause\"><\/i>');\n\n                            \/* media played SEGMENT EVENT *\/\n                            var assetId = audio.songId;\n                            var artist = audio.artistName;\n                            var title = audio.songName;\n                            var asset_type = null;\n                            if(\"sfx\" == 'songs') {\n                                asset_type = 'song';\n                            } else if(\"sfx\" == 'sfx') {\n                                asset_type = 'sfx';\n                            }\n                            analytics.track(\"media played\", {\n                                asset_id: assetId || null,\n                                asset_type: asset_type || null,\n                                click_source: 'player',\n                                artist: artist || null,\n                                title: title || null,\n                                genre: null,\n                                ...special_data,\n                            });\n                        }\n                    });\n\n                    \/* media downloaded SEGMENT EVENT *\/\n                    audioDownload.on(\"click\", () => {\n                        var assetId = audio.songId;\n                        var artist = audio.artistName;\n                        var title = audio.songName;\n                        var asset_type = null;\n                        if(\"sfx\" == 'songs') {\n                            asset_type = 'song';\n                        } else if(\"sfx\" == 'sfx') {\n                            asset_type = 'sfx';\n                        }\n                        analytics.track(\"media downloaded\", {\n                            asset_id: assetId || null,\n                            asset_type: asset_type || null,\n                            click_source: 'player',\n                            artist: artist || null,\n                            title: title || null,\n                            genre: null,\n                            ...special_data,\n                        });\n                    });\n\n                    \/\/ add event listener to the click on the wave itself\n                    audioWaveform.on(\"click\", () => {\n                        setTimeout(() => {\n                            if (wavesurfer.isPlaying()) {\n                                wavesurfer.pause();\n                                playPauseButton.html('<i class=\"fas fa-play\"><\/i>');\n                            } else {\n                                \/\/ pause all other audios that may be playing\n                                $('.playPauseButton').html('<i class=\"fas fa-play\"><\/i>');\n                                $.each(allWavesurfers, function(index, audio) {\n                                    allWavesurfers[index].pause();\n                                });\n                                \/\/ then play current audio\n                                wavesurfer.play();\n                                playPauseButton.html('<i class=\"fas fa-pause\"><\/i>');\n                            }\n                        }, \"200\");\n                    });\n\n                });\n            }\n\n        });\n    <\/script>\n\n    \n\n\n\n<h3 class=\"wp-block-heading\">SFX: Orchestral Logos &#8211; Mythical Chronicles<\/h3>\n\n\n\n<p>Artist: <a href=\"https:\/\/artlist.io\/sfx\/artist\/ni-sound\/1547\" target=\"_blank\" rel=\"noreferrer noopener\">Ni Sound<\/a><\/p>\n\n\n\n<p>This orchestral sound effect could open a spring fairytale story or a mythical scene. The 14-second clip is upbeat and inspiring, and can accompany the start of a busy day, the opening ceremony of a carnival, a character climbing a mountain, or making a breakthrough. This sound effect will hint at optimism and anticipation, and adds a positive spin to your scene.<\/p>\n\n\n\n\n    <div class=\"playlist\" id=\"69d07ebeae32d\"><\/div>\n\n    <script>\n        jQuery(document).ready(function($) {\n\n            if(\"sfx\" == 'songs') {\n                $.ajax({\n                    method: \"POST\",\n                    url: \"https:\/\/search-api.artlist.me\/v1\/graphql\",\n                    contentType: \"application\/json\",\n                    data: JSON.stringify({\n                        query: `query SongList($page: Int!, $songSortType: Int!, $take: Int!, $vocalMenuId: Int!, $categoryIds: [Int], $collectionId: String, $searchTerm: String) {\n                        songList(page: $page, songSortType: $songSortType, take: $take, vocalMenuId: $vocalMenuId, categoryIds: $categoryIds, collectionId: $collectionId, searchTerm: $searchTerm) {\n                          songs {\n                            songId\n                            songName\n                            artistName\n                            isNew\n                            nameForURL\n                            sitePlayableFilePath\n\t\t\t\t\t\t\talbumImageFilePath\n\t\t\t\t\t\t\trelativeUrl\n                          }\n                          totalResults\n                        }\n                    }`,\n                        variables: JSON.stringify({\n                            \"page\": 1,\n                            \"songSortType\": STAFF_PICKS,\n                            \"take\": 1,\n                            \"vocalMenuId\": 1,\n                            \"categoryIds\": null,\n                            \"searchTerm\": \"Orchestral Logos - Mythical Chronicles\"\n                        }),\n                    })\n                }).done(function(res) {\n                    if (res == '') {\n                        console.log('none');\n                    } else {\n                        console.log('songs list: ', res);\n                        var data = res.data.songList.songs;\n                        if ($(\"#69d07ebeae32d\").length && data.length > 0) {\n                            createAudioPlayers(data, \"69d07ebeae32d\");\n                        } else if ($(\"#69d07ebeae32d\").length && data.length == 0) {\n                            $(\"#69d07ebeae32d\").empty().append('<div class=\"noSongsError\">No songs were found.<\/div>');\n                        }\n                    }\n                });\n            } else if(\"sfx\" == 'sfx') {\n                $.ajax({\n                    method: \"POST\",\n                    url: \"https:\/\/search-api.artlist.me\/v1\/graphql\",\n                    contentType: \"application\/json\",\n                    data: JSON.stringify({\n                        query: `query SfxList($categoryIds: String!, $page: Float!, $tags: String!, $term: String!, $sortBy: SfxListRequestSortByOptions!) {\n\t\t\t\t\t\t\t\tsfxList(categoryIds: $categoryIds, page: $page, tags: $tags, term: $term, sortBy: $sortBy) {\n\t\t\t\t\t\t\t\t  page\n\t\t\t\t\t\t\t\t  songs {\n\t\t\t\t\t\t\t\t\t  albumImageFilePath\n\t\t\t\t\t\t\t\t\t  artistName\n\t\t\t\t\t\t\t\t\t  isNew\n\t\t\t\t\t\t\t\t\t  nameForURL\n\t\t\t\t\t\t\t\t\t  relativeUrl\n\t\t\t\t\t\t\t\t\t  sitePlayableFilePath        \n\t\t\t\t\t\t\t\t\t  songId \n\t\t\t\t\t\t\t\t\t  songName\n\t\t\t\t\t\t\t\t  }\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}`,\n                        variables: JSON.stringify({\n                            \"categoryIds\": \"\",\n                            \"page\": 1,\n                            \"tags\": \"\",\n                            \"term\": \"Orchestral Logos - Mythical Chronicles\",\n                            \"sortBy\": \"STAFF_PICKS\"\n                        }),\n                    })\n                }).done(function(res) {\n                    if (res == '') {\n                        console.log('none');\n                    } else {\n                        console.log('sfx list: ', res);\n                        var data = res.data.sfxList.songs;\n                        if ($(\"#69d07ebeae32d\").length && data.length > 0) {\n                            createAudioPlayers(data, \"69d07ebeae32d\");\n                        } else if ($(\"#69d07ebeae32d\").length && data.length == 0) {\n                            $(\"#69d07ebeae32d\").empty().append('<div class=\"noSongsError\">No songs were found.<\/div>');\n                        }\n                    }\n                });\n            }\n\n            function createAudioPlayers(data, playlistId) {\n                \/\/ main playlist container\n                const playlistContainer = $(\"#\" + playlistId);\n                \/\/ wavesurfers array\n                \/\/ const wavesurfers = [];\n                \/\/ loop over every song returned\n\n                if(!allWavesurfers){\n                    var allWavesurfers = [];\n                }\n                $.each(data, function(index, audio) {\n                    \/\/ if current type is sfx and current looped index is bigger than amount wanted via shortcode - then stop loop (because sfx request doesn't have \"take\" variable)\n                    if(\"sfx\" == 'sfx' && (index + 1) > 1) {\n                        return false;\n                    }\n\n                    \/\/ audio player container\n                    const audioPlayer = $(\"<div>\").addClass(\"audioPlayer\");\n                    \/\/ album image\n                    const audioImage = $(\"<div>\").addClass(\"audioImage\");\n                    audioImage.append('<img decoding=\"async\" src=\"' + audio.albumImageFilePath + '\"\/>');\n                    \/\/ audio controls\n                    const audioControls = $(\"<div>\").addClass(\"audioControls\");\n                    const playPauseButton = $(\"<button>\").addClass(\"playPauseButton\").html('<i class=\"fas fa-play\"><\/i>');\n                    audioControls.append(playPauseButton);\n                    \/\/ song url\n                    var songUrl;\n                    if(\"sfx\" == 'songs') {\n                        songUrl = 'https:\/\/artlist.io\/royalty-free-music\/song\/' + audio.nameForURL + '\/' + audio.songId + '?download=1&utm_source=blog';\n                    } else if(\"sfx\" == 'sfx') {\n                        songUrl = 'https:\/\/artlist.io\/sfx\/track\/' + audio.nameForURL + '\/' + audio.songId + '?download=1&utm_source=blog';\n                    }\n                    \/\/ song name and artist name\n                    const audioNames = $(\"<div>\").addClass(\"audioNames\");\n                    const songName = $(\"<a>\").addClass(\"songName\").attr(\"href\", songUrl).attr(\"target\", \"_blank\").text(audio.songName);\n                    if (audio.isNew) {\n                        songName.append('<span class=\"isNewBadge\">NEW<\/span>');\n                    }\n                    const artistName = $(\"<span>\").addClass(\"artistName\").text(audio.artistName);\n                    audioNames.append(songName, artistName);\n                    \/\/ audio waveform container\n                    const audioWaveform = $(\"<div>\").addClass(\"audioWaveform\");\n                    \/\/ download button\n                    const audioDownload = $(\"<a>\").addClass(\"audioDownload\").attr(\"href\", songUrl).attr(\"target\", \"_blank\").html('<i class=\"icon download medium\"><\/i>');\n\n\n                    \/\/ APPEND ALL ELEMENTS INTO AUDIO PLAYER CONTAINER\n                    audioPlayer.append(audioImage, audioControls, audioNames, audioWaveform, audioDownload);\n\n                    \/\/ append audio player container into main playlist container\n                    playlistContainer.append(audioPlayer);\n\n                    \/* media viewed SEGMENT EVENT *\/\n                    const special_data = getProps();\n\n                    const observer = new IntersectionObserver(entries => {\n                        entries.forEach(entry => {\n                            if (entry.isIntersecting) {\n                                var assetId = audio.songId;\n                                var artist = audio.artistName;\n                                var title = audio.songName;\n                                var asset_type = null;\n                                if(\"sfx\" == 'songs') {\n                                    asset_type = 'song';\n                                } else if(\"sfx\" == 'sfx') {\n                                    asset_type = 'sfx';\n                                }\n                                analytics.track(\"media viewed\", {\n                                    asset_id: assetId || null,\n                                    asset_type: asset_type || null,\n                                    click_source: 'player',\n                                    artist: artist || null,\n                                    title: title || null,\n                                    genre: null,\n                                    ...special_data,\n                                });\n                                observer.unobserve(entry.target);\n                            }\n                        });\n                    }, {\n                        threshold: 0.5\n                    });\n                    observer.observe(audioPlayer[0]);\n\n                    \/\/ check screen size\n                    var mobileScreen = window.matchMedia('(max-width: 767px)');\n                    var waveformHeight = '';\n                    if (mobileScreen.matches) { \/\/ mobile\n                        waveformHeight = 15;\n                    } else { \/\/ desktop\n                        waveformHeight = 40;\n                    }\n\n                    \/\/ create wavesurfer instance\n                    const waveformId = `waveform-${playlistId}-${index}`; \/\/ Generate a unique ID for each waveform\n                    const waveformContainer = $(\"<div>\").attr(\"id\", waveformId).addClass(\"waveformContainer\");\n                    audioWaveform.append(waveformContainer);\n                    const wavesurfer = WaveSurfer.create({\n                        container: `#${waveformId}`,\n                        waveColor: \"#b1b1b1\",\n                        progressColor: \"#171717\",\n                        cursorColor: \"transparent\",\n                        height: waveformHeight,\n                        normalize: true,\n                    });\n                    \/\/ push current wavesurfer into wavesurfers array\n                    \/\/ wavesurfers.push(wavesurfer);\n                    allWavesurfers.push(wavesurfer);\n                    \/\/ load audio file into new wavesurfer\n                    wavesurfer.load(audio.sitePlayableFilePath);\n\n                    \/\/ add event listener to the play\/pause button\n                    playPauseButton.on(\"click\", () => {\n                        if (wavesurfer.isPlaying()) {\n                            wavesurfer.pause();\n                            playPauseButton.html('<i class=\"fas fa-play\"><\/i>');\n\n                            \/* media paused SEGMENT EVENT *\/\n                            var assetId = audio.songId;\n                            var artist = audio.artistName;\n                            var title = audio.songName;\n                            var asset_type = null;\n                            if(\"sfx\" == 'songs') {\n                                asset_type = 'song';\n                            } else if(\"sfx\" == 'sfx') {\n                                asset_type = 'sfx';\n                            }\n                            analytics.track(\"media paused\", {\n                                asset_id: assetId || null,\n                                asset_type: asset_type || null,\n                                click_source: 'player',\n                                artist: artist || null,\n                                title: title || null,\n                                genre: null,\n                                ...special_data,\n                            });\n                        } else {\n                            \/\/ pause all other audios that may be playing\n                            $('.playPauseButton').html('<i class=\"fas fa-play\"><\/i>');\n                            $.each(allWavesurfers, function(index, audio) {\n                                allWavesurfers[index].pause();\n                            });\n                            \/\/ then play current audio\n                            wavesurfer.play();\n                            playPauseButton.html('<i class=\"fas fa-pause\"><\/i>');\n\n                            \/* media played SEGMENT EVENT *\/\n                            var assetId = audio.songId;\n                            var artist = audio.artistName;\n                            var title = audio.songName;\n                            var asset_type = null;\n                            if(\"sfx\" == 'songs') {\n                                asset_type = 'song';\n                            } else if(\"sfx\" == 'sfx') {\n                                asset_type = 'sfx';\n                            }\n                            analytics.track(\"media played\", {\n                                asset_id: assetId || null,\n                                asset_type: asset_type || null,\n                                click_source: 'player',\n                                artist: artist || null,\n                                title: title || null,\n                                genre: null,\n                                ...special_data,\n                            });\n                        }\n                    });\n\n                    \/* media downloaded SEGMENT EVENT *\/\n                    audioDownload.on(\"click\", () => {\n                        var assetId = audio.songId;\n                        var artist = audio.artistName;\n                        var title = audio.songName;\n                        var asset_type = null;\n                        if(\"sfx\" == 'songs') {\n                            asset_type = 'song';\n                        } else if(\"sfx\" == 'sfx') {\n                            asset_type = 'sfx';\n                        }\n                        analytics.track(\"media downloaded\", {\n                            asset_id: assetId || null,\n                            asset_type: asset_type || null,\n                            click_source: 'player',\n                            artist: artist || null,\n                            title: title || null,\n                            genre: null,\n                            ...special_data,\n                        });\n                    });\n\n                    \/\/ add event listener to the click on the wave itself\n                    audioWaveform.on(\"click\", () => {\n                        setTimeout(() => {\n                            if (wavesurfer.isPlaying()) {\n                                wavesurfer.pause();\n                                playPauseButton.html('<i class=\"fas fa-play\"><\/i>');\n                            } else {\n                                \/\/ pause all other audios that may be playing\n                                $('.playPauseButton').html('<i class=\"fas fa-play\"><\/i>');\n                                $.each(allWavesurfers, function(index, audio) {\n                                    allWavesurfers[index].pause();\n                                });\n                                \/\/ then play current audio\n                                wavesurfer.play();\n                                playPauseButton.html('<i class=\"fas fa-pause\"><\/i>');\n                            }\n                        }, \"200\");\n                    });\n\n                });\n            }\n\n        });\n    <\/script>\n\n    \n\n\n\n<h3 class=\"wp-block-heading\">SFX: TV Announcer &#8211; Today Will Be Mostly Sunny With Cloudy Periods<\/h3>\n\n\n\n<p>Artist: <a href=\"https:\/\/artlist.io\/sfx\/artist\/apple-hill-studios\/1260\" target=\"_blank\" rel=\"noreferrer noopener\">Apple Hill Studios<\/a><\/p>\n\n\n\n<p>Use this playful and somewhat dramatic sound effect of a slightly robotic voice reading the weather in several ways in your video content. Perhaps as a parody of a weather forecast or to create a sense of realism in a surreal moment. On social media, this could be used to contrast a dramatic moment, like a rant about a huge workload or relationship problems.&nbsp;<\/p>\n\n\n\n\n    <div class=\"playlist\" id=\"69d07ebeae434\"><\/div>\n\n    <script>\n        jQuery(document).ready(function($) {\n\n            if(\"sfx\" == 'songs') {\n                $.ajax({\n                    method: \"POST\",\n                    url: \"https:\/\/search-api.artlist.me\/v1\/graphql\",\n                    contentType: \"application\/json\",\n                    data: JSON.stringify({\n                        query: `query SongList($page: Int!, $songSortType: Int!, $take: Int!, $vocalMenuId: Int!, $categoryIds: [Int], $collectionId: String, $searchTerm: String) {\n                        songList(page: $page, songSortType: $songSortType, take: $take, vocalMenuId: $vocalMenuId, categoryIds: $categoryIds, collectionId: $collectionId, searchTerm: $searchTerm) {\n                          songs {\n                            songId\n                            songName\n                            artistName\n                            isNew\n                            nameForURL\n                            sitePlayableFilePath\n\t\t\t\t\t\t\talbumImageFilePath\n\t\t\t\t\t\t\trelativeUrl\n                          }\n                          totalResults\n                        }\n                    }`,\n                        variables: JSON.stringify({\n                            \"page\": 1,\n                            \"songSortType\": STAFF_PICKS,\n                            \"take\": 1,\n                            \"vocalMenuId\": 1,\n                            \"categoryIds\": null,\n                            \"searchTerm\": \"TV Announcer - Today Will Be Mostly Sunny With Cloudy Periods\"\n                        }),\n                    })\n                }).done(function(res) {\n                    if (res == '') {\n                        console.log('none');\n                    } else {\n                        console.log('songs list: ', res);\n                        var data = res.data.songList.songs;\n                        if ($(\"#69d07ebeae434\").length && data.length > 0) {\n                            createAudioPlayers(data, \"69d07ebeae434\");\n                        } else if ($(\"#69d07ebeae434\").length && data.length == 0) {\n                            $(\"#69d07ebeae434\").empty().append('<div class=\"noSongsError\">No songs were found.<\/div>');\n                        }\n                    }\n                });\n            } else if(\"sfx\" == 'sfx') {\n                $.ajax({\n                    method: \"POST\",\n                    url: \"https:\/\/search-api.artlist.me\/v1\/graphql\",\n                    contentType: \"application\/json\",\n                    data: JSON.stringify({\n                        query: `query SfxList($categoryIds: String!, $page: Float!, $tags: String!, $term: String!, $sortBy: SfxListRequestSortByOptions!) {\n\t\t\t\t\t\t\t\tsfxList(categoryIds: $categoryIds, page: $page, tags: $tags, term: $term, sortBy: $sortBy) {\n\t\t\t\t\t\t\t\t  page\n\t\t\t\t\t\t\t\t  songs {\n\t\t\t\t\t\t\t\t\t  albumImageFilePath\n\t\t\t\t\t\t\t\t\t  artistName\n\t\t\t\t\t\t\t\t\t  isNew\n\t\t\t\t\t\t\t\t\t  nameForURL\n\t\t\t\t\t\t\t\t\t  relativeUrl\n\t\t\t\t\t\t\t\t\t  sitePlayableFilePath        \n\t\t\t\t\t\t\t\t\t  songId \n\t\t\t\t\t\t\t\t\t  songName\n\t\t\t\t\t\t\t\t  }\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}`,\n                        variables: JSON.stringify({\n                            \"categoryIds\": \"\",\n                            \"page\": 1,\n                            \"tags\": \"\",\n                            \"term\": \"TV Announcer - Today Will Be Mostly Sunny With Cloudy Periods\",\n                            \"sortBy\": \"STAFF_PICKS\"\n                        }),\n                    })\n                }).done(function(res) {\n                    if (res == '') {\n                        console.log('none');\n                    } else {\n                        console.log('sfx list: ', res);\n                        var data = res.data.sfxList.songs;\n                        if ($(\"#69d07ebeae434\").length && data.length > 0) {\n                            createAudioPlayers(data, \"69d07ebeae434\");\n                        } else if ($(\"#69d07ebeae434\").length && data.length == 0) {\n                            $(\"#69d07ebeae434\").empty().append('<div class=\"noSongsError\">No songs were found.<\/div>');\n                        }\n                    }\n                });\n            }\n\n            function createAudioPlayers(data, playlistId) {\n                \/\/ main playlist container\n                const playlistContainer = $(\"#\" + playlistId);\n                \/\/ wavesurfers array\n                \/\/ const wavesurfers = [];\n                \/\/ loop over every song returned\n\n                if(!allWavesurfers){\n                    var allWavesurfers = [];\n                }\n                $.each(data, function(index, audio) {\n                    \/\/ if current type is sfx and current looped index is bigger than amount wanted via shortcode - then stop loop (because sfx request doesn't have \"take\" variable)\n                    if(\"sfx\" == 'sfx' && (index + 1) > 1) {\n                        return false;\n                    }\n\n                    \/\/ audio player container\n                    const audioPlayer = $(\"<div>\").addClass(\"audioPlayer\");\n                    \/\/ album image\n                    const audioImage = $(\"<div>\").addClass(\"audioImage\");\n                    audioImage.append('<img decoding=\"async\" src=\"' + audio.albumImageFilePath + '\"\/>');\n                    \/\/ audio controls\n                    const audioControls = $(\"<div>\").addClass(\"audioControls\");\n                    const playPauseButton = $(\"<button>\").addClass(\"playPauseButton\").html('<i class=\"fas fa-play\"><\/i>');\n                    audioControls.append(playPauseButton);\n                    \/\/ song url\n                    var songUrl;\n                    if(\"sfx\" == 'songs') {\n                        songUrl = 'https:\/\/artlist.io\/royalty-free-music\/song\/' + audio.nameForURL + '\/' + audio.songId + '?download=1&utm_source=blog';\n                    } else if(\"sfx\" == 'sfx') {\n                        songUrl = 'https:\/\/artlist.io\/sfx\/track\/' + audio.nameForURL + '\/' + audio.songId + '?download=1&utm_source=blog';\n                    }\n                    \/\/ song name and artist name\n                    const audioNames = $(\"<div>\").addClass(\"audioNames\");\n                    const songName = $(\"<a>\").addClass(\"songName\").attr(\"href\", songUrl).attr(\"target\", \"_blank\").text(audio.songName);\n                    if (audio.isNew) {\n                        songName.append('<span class=\"isNewBadge\">NEW<\/span>');\n                    }\n                    const artistName = $(\"<span>\").addClass(\"artistName\").text(audio.artistName);\n                    audioNames.append(songName, artistName);\n                    \/\/ audio waveform container\n                    const audioWaveform = $(\"<div>\").addClass(\"audioWaveform\");\n                    \/\/ download button\n                    const audioDownload = $(\"<a>\").addClass(\"audioDownload\").attr(\"href\", songUrl).attr(\"target\", \"_blank\").html('<i class=\"icon download medium\"><\/i>');\n\n\n                    \/\/ APPEND ALL ELEMENTS INTO AUDIO PLAYER CONTAINER\n                    audioPlayer.append(audioImage, audioControls, audioNames, audioWaveform, audioDownload);\n\n                    \/\/ append audio player container into main playlist container\n                    playlistContainer.append(audioPlayer);\n\n                    \/* media viewed SEGMENT EVENT *\/\n                    const special_data = getProps();\n\n                    const observer = new IntersectionObserver(entries => {\n                        entries.forEach(entry => {\n                            if (entry.isIntersecting) {\n                                var assetId = audio.songId;\n                                var artist = audio.artistName;\n                                var title = audio.songName;\n                                var asset_type = null;\n                                if(\"sfx\" == 'songs') {\n                                    asset_type = 'song';\n                                } else if(\"sfx\" == 'sfx') {\n                                    asset_type = 'sfx';\n                                }\n                                analytics.track(\"media viewed\", {\n                                    asset_id: assetId || null,\n                                    asset_type: asset_type || null,\n                                    click_source: 'player',\n                                    artist: artist || null,\n                                    title: title || null,\n                                    genre: null,\n                                    ...special_data,\n                                });\n                                observer.unobserve(entry.target);\n                            }\n                        });\n                    }, {\n                        threshold: 0.5\n                    });\n                    observer.observe(audioPlayer[0]);\n\n                    \/\/ check screen size\n                    var mobileScreen = window.matchMedia('(max-width: 767px)');\n                    var waveformHeight = '';\n                    if (mobileScreen.matches) { \/\/ mobile\n                        waveformHeight = 15;\n                    } else { \/\/ desktop\n                        waveformHeight = 40;\n                    }\n\n                    \/\/ create wavesurfer instance\n                    const waveformId = `waveform-${playlistId}-${index}`; \/\/ Generate a unique ID for each waveform\n                    const waveformContainer = $(\"<div>\").attr(\"id\", waveformId).addClass(\"waveformContainer\");\n                    audioWaveform.append(waveformContainer);\n                    const wavesurfer = WaveSurfer.create({\n                        container: `#${waveformId}`,\n                        waveColor: \"#b1b1b1\",\n                        progressColor: \"#171717\",\n                        cursorColor: \"transparent\",\n                        height: waveformHeight,\n                        normalize: true,\n                    });\n                    \/\/ push current wavesurfer into wavesurfers array\n                    \/\/ wavesurfers.push(wavesurfer);\n                    allWavesurfers.push(wavesurfer);\n                    \/\/ load audio file into new wavesurfer\n                    wavesurfer.load(audio.sitePlayableFilePath);\n\n                    \/\/ add event listener to the play\/pause button\n                    playPauseButton.on(\"click\", () => {\n                        if (wavesurfer.isPlaying()) {\n                            wavesurfer.pause();\n                            playPauseButton.html('<i class=\"fas fa-play\"><\/i>');\n\n                            \/* media paused SEGMENT EVENT *\/\n                            var assetId = audio.songId;\n                            var artist = audio.artistName;\n                            var title = audio.songName;\n                            var asset_type = null;\n                            if(\"sfx\" == 'songs') {\n                                asset_type = 'song';\n                            } else if(\"sfx\" == 'sfx') {\n                                asset_type = 'sfx';\n                            }\n                            analytics.track(\"media paused\", {\n                                asset_id: assetId || null,\n                                asset_type: asset_type || null,\n                                click_source: 'player',\n                                artist: artist || null,\n                                title: title || null,\n                                genre: null,\n                                ...special_data,\n                            });\n                        } else {\n                            \/\/ pause all other audios that may be playing\n                            $('.playPauseButton').html('<i class=\"fas fa-play\"><\/i>');\n                            $.each(allWavesurfers, function(index, audio) {\n                                allWavesurfers[index].pause();\n                            });\n                            \/\/ then play current audio\n                            wavesurfer.play();\n                            playPauseButton.html('<i class=\"fas fa-pause\"><\/i>');\n\n                            \/* media played SEGMENT EVENT *\/\n                            var assetId = audio.songId;\n                            var artist = audio.artistName;\n                            var title = audio.songName;\n                            var asset_type = null;\n                            if(\"sfx\" == 'songs') {\n                                asset_type = 'song';\n                            } else if(\"sfx\" == 'sfx') {\n                                asset_type = 'sfx';\n                            }\n                            analytics.track(\"media played\", {\n                                asset_id: assetId || null,\n                                asset_type: asset_type || null,\n                                click_source: 'player',\n                                artist: artist || null,\n                                title: title || null,\n                                genre: null,\n                                ...special_data,\n                            });\n                        }\n                    });\n\n                    \/* media downloaded SEGMENT EVENT *\/\n                    audioDownload.on(\"click\", () => {\n                        var assetId = audio.songId;\n                        var artist = audio.artistName;\n                        var title = audio.songName;\n                        var asset_type = null;\n                        if(\"sfx\" == 'songs') {\n                            asset_type = 'song';\n                        } else if(\"sfx\" == 'sfx') {\n                            asset_type = 'sfx';\n                        }\n                        analytics.track(\"media downloaded\", {\n                            asset_id: assetId || null,\n                            asset_type: asset_type || null,\n                            click_source: 'player',\n                            artist: artist || null,\n                            title: title || null,\n                            genre: null,\n                            ...special_data,\n                        });\n                    });\n\n                    \/\/ add event listener to the click on the wave itself\n                    audioWaveform.on(\"click\", () => {\n                        setTimeout(() => {\n                            if (wavesurfer.isPlaying()) {\n                                wavesurfer.pause();\n                                playPauseButton.html('<i class=\"fas fa-play\"><\/i>');\n                            } else {\n                                \/\/ pause all other audios that may be playing\n                                $('.playPauseButton').html('<i class=\"fas fa-play\"><\/i>');\n                                $.each(allWavesurfers, function(index, audio) {\n                                    allWavesurfers[index].pause();\n                                });\n                                \/\/ then play current audio\n                                wavesurfer.play();\n                                playPauseButton.html('<i class=\"fas fa-pause\"><\/i>');\n                            }\n                        }, \"200\");\n                    });\n\n                });\n            }\n\n        });\n    <\/script>\n\n    \n\n\n\n<h3 class=\"wp-block-heading\">SFX: Fantasy Game &#8211; Calm Forest Ambience Loop<\/h3>\n\n\n\n<p>Artist: <a href=\"https:\/\/artlist.io\/sfx\/artist\/dt-sound\/2379\" target=\"_blank\" rel=\"noreferrer noopener\">DT Sound<\/a><\/p>\n\n\n\n<p>This sound effect has a serene, mystical, and tranquil quality which lends itself to various outdoor scenes. The forest ambiance can symbolize healing or restoration, and the meditative influence of nature. This spring sound effect could be used alongside a tranquil woodland scene, perhaps with a character deep in thought, or a dream sequence, when a character finds themselves in a half-waking state. The <a href=\"https:\/\/artlist.io\/sfx\/categories\/forest\" target=\"_blank\" rel=\"noreferrer noopener\">ambient forest sounds<\/a> can loop gently as the dream unfolds, creating a serene but surreal atmosphere.&nbsp;<\/p>\n\n\n\n\n    <div class=\"playlist\" id=\"69d07ebeae4ea\"><\/div>\n\n    <script>\n        jQuery(document).ready(function($) {\n\n            if(\"sfx\" == 'songs') {\n                $.ajax({\n                    method: \"POST\",\n                    url: \"https:\/\/search-api.artlist.me\/v1\/graphql\",\n                    contentType: \"application\/json\",\n                    data: JSON.stringify({\n                        query: `query SongList($page: Int!, $songSortType: Int!, $take: Int!, $vocalMenuId: Int!, $categoryIds: [Int], $collectionId: String, $searchTerm: String) {\n                        songList(page: $page, songSortType: $songSortType, take: $take, vocalMenuId: $vocalMenuId, categoryIds: $categoryIds, collectionId: $collectionId, searchTerm: $searchTerm) {\n                          songs {\n                            songId\n                            songName\n                            artistName\n                            isNew\n                            nameForURL\n                            sitePlayableFilePath\n\t\t\t\t\t\t\talbumImageFilePath\n\t\t\t\t\t\t\trelativeUrl\n                          }\n                          totalResults\n                        }\n                    }`,\n                        variables: JSON.stringify({\n                            \"page\": 1,\n                            \"songSortType\": STAFF_PICKS,\n                            \"take\": 1,\n                            \"vocalMenuId\": 1,\n                            \"categoryIds\": null,\n                            \"searchTerm\": \"Fantasy Game - Calm Forest Ambience Loop\"\n                        }),\n                    })\n                }).done(function(res) {\n                    if (res == '') {\n                        console.log('none');\n                    } else {\n                        console.log('songs list: ', res);\n                        var data = res.data.songList.songs;\n                        if ($(\"#69d07ebeae4ea\").length && data.length > 0) {\n                            createAudioPlayers(data, \"69d07ebeae4ea\");\n                        } else if ($(\"#69d07ebeae4ea\").length && data.length == 0) {\n                            $(\"#69d07ebeae4ea\").empty().append('<div class=\"noSongsError\">No songs were found.<\/div>');\n                        }\n                    }\n                });\n            } else if(\"sfx\" == 'sfx') {\n                $.ajax({\n                    method: \"POST\",\n                    url: \"https:\/\/search-api.artlist.me\/v1\/graphql\",\n                    contentType: \"application\/json\",\n                    data: JSON.stringify({\n                        query: `query SfxList($categoryIds: String!, $page: Float!, $tags: String!, $term: String!, $sortBy: SfxListRequestSortByOptions!) {\n\t\t\t\t\t\t\t\tsfxList(categoryIds: $categoryIds, page: $page, tags: $tags, term: $term, sortBy: $sortBy) {\n\t\t\t\t\t\t\t\t  page\n\t\t\t\t\t\t\t\t  songs {\n\t\t\t\t\t\t\t\t\t  albumImageFilePath\n\t\t\t\t\t\t\t\t\t  artistName\n\t\t\t\t\t\t\t\t\t  isNew\n\t\t\t\t\t\t\t\t\t  nameForURL\n\t\t\t\t\t\t\t\t\t  relativeUrl\n\t\t\t\t\t\t\t\t\t  sitePlayableFilePath        \n\t\t\t\t\t\t\t\t\t  songId \n\t\t\t\t\t\t\t\t\t  songName\n\t\t\t\t\t\t\t\t  }\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}`,\n                        variables: JSON.stringify({\n                            \"categoryIds\": \"\",\n                            \"page\": 1,\n                            \"tags\": \"\",\n                            \"term\": \"Fantasy Game - Calm Forest Ambience Loop\",\n                            \"sortBy\": \"STAFF_PICKS\"\n                        }),\n                    })\n                }).done(function(res) {\n                    if (res == '') {\n                        console.log('none');\n                    } else {\n                        console.log('sfx list: ', res);\n                        var data = res.data.sfxList.songs;\n                        if ($(\"#69d07ebeae4ea\").length && data.length > 0) {\n                            createAudioPlayers(data, \"69d07ebeae4ea\");\n                        } else if ($(\"#69d07ebeae4ea\").length && data.length == 0) {\n                            $(\"#69d07ebeae4ea\").empty().append('<div class=\"noSongsError\">No songs were found.<\/div>');\n                        }\n                    }\n                });\n            }\n\n            function createAudioPlayers(data, playlistId) {\n                \/\/ main playlist container\n                const playlistContainer = $(\"#\" + playlistId);\n                \/\/ wavesurfers array\n                \/\/ const wavesurfers = [];\n                \/\/ loop over every song returned\n\n                if(!allWavesurfers){\n                    var allWavesurfers = [];\n                }\n                $.each(data, function(index, audio) {\n                    \/\/ if current type is sfx and current looped index is bigger than amount wanted via shortcode - then stop loop (because sfx request doesn't have \"take\" variable)\n                    if(\"sfx\" == 'sfx' && (index + 1) > 1) {\n                        return false;\n                    }\n\n                    \/\/ audio player container\n                    const audioPlayer = $(\"<div>\").addClass(\"audioPlayer\");\n                    \/\/ album image\n                    const audioImage = $(\"<div>\").addClass(\"audioImage\");\n                    audioImage.append('<img decoding=\"async\" src=\"' + audio.albumImageFilePath + '\"\/>');\n                    \/\/ audio controls\n                    const audioControls = $(\"<div>\").addClass(\"audioControls\");\n                    const playPauseButton = $(\"<button>\").addClass(\"playPauseButton\").html('<i class=\"fas fa-play\"><\/i>');\n                    audioControls.append(playPauseButton);\n                    \/\/ song url\n                    var songUrl;\n                    if(\"sfx\" == 'songs') {\n                        songUrl = 'https:\/\/artlist.io\/royalty-free-music\/song\/' + audio.nameForURL + '\/' + audio.songId + '?download=1&utm_source=blog';\n                    } else if(\"sfx\" == 'sfx') {\n                        songUrl = 'https:\/\/artlist.io\/sfx\/track\/' + audio.nameForURL + '\/' + audio.songId + '?download=1&utm_source=blog';\n                    }\n                    \/\/ song name and artist name\n                    const audioNames = $(\"<div>\").addClass(\"audioNames\");\n                    const songName = $(\"<a>\").addClass(\"songName\").attr(\"href\", songUrl).attr(\"target\", \"_blank\").text(audio.songName);\n                    if (audio.isNew) {\n                        songName.append('<span class=\"isNewBadge\">NEW<\/span>');\n                    }\n                    const artistName = $(\"<span>\").addClass(\"artistName\").text(audio.artistName);\n                    audioNames.append(songName, artistName);\n                    \/\/ audio waveform container\n                    const audioWaveform = $(\"<div>\").addClass(\"audioWaveform\");\n                    \/\/ download button\n                    const audioDownload = $(\"<a>\").addClass(\"audioDownload\").attr(\"href\", songUrl).attr(\"target\", \"_blank\").html('<i class=\"icon download medium\"><\/i>');\n\n\n                    \/\/ APPEND ALL ELEMENTS INTO AUDIO PLAYER CONTAINER\n                    audioPlayer.append(audioImage, audioControls, audioNames, audioWaveform, audioDownload);\n\n                    \/\/ append audio player container into main playlist container\n                    playlistContainer.append(audioPlayer);\n\n                    \/* media viewed SEGMENT EVENT *\/\n                    const special_data = getProps();\n\n                    const observer = new IntersectionObserver(entries => {\n                        entries.forEach(entry => {\n                            if (entry.isIntersecting) {\n                                var assetId = audio.songId;\n                                var artist = audio.artistName;\n                                var title = audio.songName;\n                                var asset_type = null;\n                                if(\"sfx\" == 'songs') {\n                                    asset_type = 'song';\n                                } else if(\"sfx\" == 'sfx') {\n                                    asset_type = 'sfx';\n                                }\n                                analytics.track(\"media viewed\", {\n                                    asset_id: assetId || null,\n                                    asset_type: asset_type || null,\n                                    click_source: 'player',\n                                    artist: artist || null,\n                                    title: title || null,\n                                    genre: null,\n                                    ...special_data,\n                                });\n                                observer.unobserve(entry.target);\n                            }\n                        });\n                    }, {\n                        threshold: 0.5\n                    });\n                    observer.observe(audioPlayer[0]);\n\n                    \/\/ check screen size\n                    var mobileScreen = window.matchMedia('(max-width: 767px)');\n                    var waveformHeight = '';\n                    if (mobileScreen.matches) { \/\/ mobile\n                        waveformHeight = 15;\n                    } else { \/\/ desktop\n                        waveformHeight = 40;\n                    }\n\n                    \/\/ create wavesurfer instance\n                    const waveformId = `waveform-${playlistId}-${index}`; \/\/ Generate a unique ID for each waveform\n                    const waveformContainer = $(\"<div>\").attr(\"id\", waveformId).addClass(\"waveformContainer\");\n                    audioWaveform.append(waveformContainer);\n                    const wavesurfer = WaveSurfer.create({\n                        container: `#${waveformId}`,\n                        waveColor: \"#b1b1b1\",\n                        progressColor: \"#171717\",\n                        cursorColor: \"transparent\",\n                        height: waveformHeight,\n                        normalize: true,\n                    });\n                    \/\/ push current wavesurfer into wavesurfers array\n                    \/\/ wavesurfers.push(wavesurfer);\n                    allWavesurfers.push(wavesurfer);\n                    \/\/ load audio file into new wavesurfer\n                    wavesurfer.load(audio.sitePlayableFilePath);\n\n                    \/\/ add event listener to the play\/pause button\n                    playPauseButton.on(\"click\", () => {\n                        if (wavesurfer.isPlaying()) {\n                            wavesurfer.pause();\n                            playPauseButton.html('<i class=\"fas fa-play\"><\/i>');\n\n                            \/* media paused SEGMENT EVENT *\/\n                            var assetId = audio.songId;\n                            var artist = audio.artistName;\n                            var title = audio.songName;\n                            var asset_type = null;\n                            if(\"sfx\" == 'songs') {\n                                asset_type = 'song';\n                            } else if(\"sfx\" == 'sfx') {\n                                asset_type = 'sfx';\n                            }\n                            analytics.track(\"media paused\", {\n                                asset_id: assetId || null,\n                                asset_type: asset_type || null,\n                                click_source: 'player',\n                                artist: artist || null,\n                                title: title || null,\n                                genre: null,\n                                ...special_data,\n                            });\n                        } else {\n                            \/\/ pause all other audios that may be playing\n                            $('.playPauseButton').html('<i class=\"fas fa-play\"><\/i>');\n                            $.each(allWavesurfers, function(index, audio) {\n                                allWavesurfers[index].pause();\n                            });\n                            \/\/ then play current audio\n                            wavesurfer.play();\n                            playPauseButton.html('<i class=\"fas fa-pause\"><\/i>');\n\n                            \/* media played SEGMENT EVENT *\/\n                            var assetId = audio.songId;\n                            var artist = audio.artistName;\n                            var title = audio.songName;\n                            var asset_type = null;\n                            if(\"sfx\" == 'songs') {\n                                asset_type = 'song';\n                            } else if(\"sfx\" == 'sfx') {\n                                asset_type = 'sfx';\n                            }\n                            analytics.track(\"media played\", {\n                                asset_id: assetId || null,\n                                asset_type: asset_type || null,\n                                click_source: 'player',\n                                artist: artist || null,\n                                title: title || null,\n                                genre: null,\n                                ...special_data,\n                            });\n                        }\n                    });\n\n                    \/* media downloaded SEGMENT EVENT *\/\n                    audioDownload.on(\"click\", () => {\n                        var assetId = audio.songId;\n                        var artist = audio.artistName;\n                        var title = audio.songName;\n                        var asset_type = null;\n                        if(\"sfx\" == 'songs') {\n                            asset_type = 'song';\n                        } else if(\"sfx\" == 'sfx') {\n                            asset_type = 'sfx';\n                        }\n                        analytics.track(\"media downloaded\", {\n                            asset_id: assetId || null,\n                            asset_type: asset_type || null,\n                            click_source: 'player',\n                            artist: artist || null,\n                            title: title || null,\n                            genre: null,\n                            ...special_data,\n                        });\n                    });\n\n                    \/\/ add event listener to the click on the wave itself\n                    audioWaveform.on(\"click\", () => {\n                        setTimeout(() => {\n                            if (wavesurfer.isPlaying()) {\n                                wavesurfer.pause();\n                                playPauseButton.html('<i class=\"fas fa-play\"><\/i>');\n                            } else {\n                                \/\/ pause all other audios that may be playing\n                                $('.playPauseButton').html('<i class=\"fas fa-play\"><\/i>');\n                                $.each(allWavesurfers, function(index, audio) {\n                                    allWavesurfers[index].pause();\n                                });\n                                \/\/ then play current audio\n                                wavesurfer.play();\n                                playPauseButton.html('<i class=\"fas fa-pause\"><\/i>');\n                            }\n                        }, \"200\");\n                    });\n\n                });\n            }\n\n        });\n    <\/script>\n\n    \n\n\n\n<h3 class=\"wp-block-heading\">SFX: Australian Wildlife &#8211; Magpie Bird Warble, Singing, Calling<\/h3>\n\n\n\n<p>Artist: <a href=\"https:\/\/artlist.io\/sfx\/artist\/craig-carter-collection\/1010\" target=\"_blank\" rel=\"noreferrer noopener\">Craig Carter Collection<\/a><\/p>\n\n\n\n<p>The warble of a magpie in the Australian outback could be used by filmmakers to establish a rural setting. This sound effect, alongside a wide shot of an expansive landscape, will immediately transport the audience to the heart of the countryside. This will enhance the authenticity of a scene while immersing the audience in a specific region.&nbsp;<\/p>\n\n\n\n<p>The magpie is embedded into many Indigenous Australian cultures, often considered totemic or spiritually significant. Keep this in mind when creating your Aussie outback adventures.<\/p>\n\n\n\n\n    <div class=\"playlist\" id=\"69d07ebeae588\"><\/div>\n\n    <script>\n        jQuery(document).ready(function($) {\n\n            if(\"sfx\" == 'songs') {\n                $.ajax({\n                    method: \"POST\",\n                    url: \"https:\/\/search-api.artlist.me\/v1\/graphql\",\n                    contentType: \"application\/json\",\n                    data: JSON.stringify({\n                        query: `query SongList($page: Int!, $songSortType: Int!, $take: Int!, $vocalMenuId: Int!, $categoryIds: [Int], $collectionId: String, $searchTerm: String) {\n                        songList(page: $page, songSortType: $songSortType, take: $take, vocalMenuId: $vocalMenuId, categoryIds: $categoryIds, collectionId: $collectionId, searchTerm: $searchTerm) {\n                          songs {\n                            songId\n                            songName\n                            artistName\n                            isNew\n                            nameForURL\n                            sitePlayableFilePath\n\t\t\t\t\t\t\talbumImageFilePath\n\t\t\t\t\t\t\trelativeUrl\n                          }\n                          totalResults\n                        }\n                    }`,\n                        variables: JSON.stringify({\n                            \"page\": 1,\n                            \"songSortType\": STAFF_PICKS,\n                            \"take\": 1,\n                            \"vocalMenuId\": 1,\n                            \"categoryIds\": null,\n                            \"searchTerm\": \"Australian Wildlife - Magpie Bird Warble, Singing, Calling\"\n                        }),\n                    })\n                }).done(function(res) {\n                    if (res == '') {\n                        console.log('none');\n                    } else {\n                        console.log('songs list: ', res);\n                        var data = res.data.songList.songs;\n                        if ($(\"#69d07ebeae588\").length && data.length > 0) {\n                            createAudioPlayers(data, \"69d07ebeae588\");\n                        } else if ($(\"#69d07ebeae588\").length && data.length == 0) {\n                            $(\"#69d07ebeae588\").empty().append('<div class=\"noSongsError\">No songs were found.<\/div>');\n                        }\n                    }\n                });\n            } else if(\"sfx\" == 'sfx') {\n                $.ajax({\n                    method: \"POST\",\n                    url: \"https:\/\/search-api.artlist.me\/v1\/graphql\",\n                    contentType: \"application\/json\",\n                    data: JSON.stringify({\n                        query: `query SfxList($categoryIds: String!, $page: Float!, $tags: String!, $term: String!, $sortBy: SfxListRequestSortByOptions!) {\n\t\t\t\t\t\t\t\tsfxList(categoryIds: $categoryIds, page: $page, tags: $tags, term: $term, sortBy: $sortBy) {\n\t\t\t\t\t\t\t\t  page\n\t\t\t\t\t\t\t\t  songs {\n\t\t\t\t\t\t\t\t\t  albumImageFilePath\n\t\t\t\t\t\t\t\t\t  artistName\n\t\t\t\t\t\t\t\t\t  isNew\n\t\t\t\t\t\t\t\t\t  nameForURL\n\t\t\t\t\t\t\t\t\t  relativeUrl\n\t\t\t\t\t\t\t\t\t  sitePlayableFilePath        \n\t\t\t\t\t\t\t\t\t  songId \n\t\t\t\t\t\t\t\t\t  songName\n\t\t\t\t\t\t\t\t  }\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}`,\n                        variables: JSON.stringify({\n                            \"categoryIds\": \"\",\n                            \"page\": 1,\n                            \"tags\": \"\",\n                            \"term\": \"Australian Wildlife - Magpie Bird Warble, Singing, Calling\",\n                            \"sortBy\": \"STAFF_PICKS\"\n                        }),\n                    })\n                }).done(function(res) {\n                    if (res == '') {\n                        console.log('none');\n                    } else {\n                        console.log('sfx list: ', res);\n                        var data = res.data.sfxList.songs;\n                        if ($(\"#69d07ebeae588\").length && data.length > 0) {\n                            createAudioPlayers(data, \"69d07ebeae588\");\n                        } else if ($(\"#69d07ebeae588\").length && data.length == 0) {\n                            $(\"#69d07ebeae588\").empty().append('<div class=\"noSongsError\">No songs were found.<\/div>');\n                        }\n                    }\n                });\n            }\n\n            function createAudioPlayers(data, playlistId) {\n                \/\/ main playlist container\n                const playlistContainer = $(\"#\" + playlistId);\n                \/\/ wavesurfers array\n                \/\/ const wavesurfers = [];\n                \/\/ loop over every song returned\n\n                if(!allWavesurfers){\n                    var allWavesurfers = [];\n                }\n                $.each(data, function(index, audio) {\n                    \/\/ if current type is sfx and current looped index is bigger than amount wanted via shortcode - then stop loop (because sfx request doesn't have \"take\" variable)\n                    if(\"sfx\" == 'sfx' && (index + 1) > 1) {\n                        return false;\n                    }\n\n                    \/\/ audio player container\n                    const audioPlayer = $(\"<div>\").addClass(\"audioPlayer\");\n                    \/\/ album image\n                    const audioImage = $(\"<div>\").addClass(\"audioImage\");\n                    audioImage.append('<img decoding=\"async\" src=\"' + audio.albumImageFilePath + '\"\/>');\n                    \/\/ audio controls\n                    const audioControls = $(\"<div>\").addClass(\"audioControls\");\n                    const playPauseButton = $(\"<button>\").addClass(\"playPauseButton\").html('<i class=\"fas fa-play\"><\/i>');\n                    audioControls.append(playPauseButton);\n                    \/\/ song url\n                    var songUrl;\n                    if(\"sfx\" == 'songs') {\n                        songUrl = 'https:\/\/artlist.io\/royalty-free-music\/song\/' + audio.nameForURL + '\/' + audio.songId + '?download=1&utm_source=blog';\n                    } else if(\"sfx\" == 'sfx') {\n                        songUrl = 'https:\/\/artlist.io\/sfx\/track\/' + audio.nameForURL + '\/' + audio.songId + '?download=1&utm_source=blog';\n                    }\n                    \/\/ song name and artist name\n                    const audioNames = $(\"<div>\").addClass(\"audioNames\");\n                    const songName = $(\"<a>\").addClass(\"songName\").attr(\"href\", songUrl).attr(\"target\", \"_blank\").text(audio.songName);\n                    if (audio.isNew) {\n                        songName.append('<span class=\"isNewBadge\">NEW<\/span>');\n                    }\n                    const artistName = $(\"<span>\").addClass(\"artistName\").text(audio.artistName);\n                    audioNames.append(songName, artistName);\n                    \/\/ audio waveform container\n                    const audioWaveform = $(\"<div>\").addClass(\"audioWaveform\");\n                    \/\/ download button\n                    const audioDownload = $(\"<a>\").addClass(\"audioDownload\").attr(\"href\", songUrl).attr(\"target\", \"_blank\").html('<i class=\"icon download medium\"><\/i>');\n\n\n                    \/\/ APPEND ALL ELEMENTS INTO AUDIO PLAYER CONTAINER\n                    audioPlayer.append(audioImage, audioControls, audioNames, audioWaveform, audioDownload);\n\n                    \/\/ append audio player container into main playlist container\n                    playlistContainer.append(audioPlayer);\n\n                    \/* media viewed SEGMENT EVENT *\/\n                    const special_data = getProps();\n\n                    const observer = new IntersectionObserver(entries => {\n                        entries.forEach(entry => {\n                            if (entry.isIntersecting) {\n                                var assetId = audio.songId;\n                                var artist = audio.artistName;\n                                var title = audio.songName;\n                                var asset_type = null;\n                                if(\"sfx\" == 'songs') {\n                                    asset_type = 'song';\n                                } else if(\"sfx\" == 'sfx') {\n                                    asset_type = 'sfx';\n                                }\n                                analytics.track(\"media viewed\", {\n                                    asset_id: assetId || null,\n                                    asset_type: asset_type || null,\n                                    click_source: 'player',\n                                    artist: artist || null,\n                                    title: title || null,\n                                    genre: null,\n                                    ...special_data,\n                                });\n                                observer.unobserve(entry.target);\n                            }\n                        });\n                    }, {\n                        threshold: 0.5\n                    });\n                    observer.observe(audioPlayer[0]);\n\n                    \/\/ check screen size\n                    var mobileScreen = window.matchMedia('(max-width: 767px)');\n                    var waveformHeight = '';\n                    if (mobileScreen.matches) { \/\/ mobile\n                        waveformHeight = 15;\n                    } else { \/\/ desktop\n                        waveformHeight = 40;\n                    }\n\n                    \/\/ create wavesurfer instance\n                    const waveformId = `waveform-${playlistId}-${index}`; \/\/ Generate a unique ID for each waveform\n                    const waveformContainer = $(\"<div>\").attr(\"id\", waveformId).addClass(\"waveformContainer\");\n                    audioWaveform.append(waveformContainer);\n                    const wavesurfer = WaveSurfer.create({\n                        container: `#${waveformId}`,\n                        waveColor: \"#b1b1b1\",\n                        progressColor: \"#171717\",\n                        cursorColor: \"transparent\",\n                        height: waveformHeight,\n                        normalize: true,\n                    });\n                    \/\/ push current wavesurfer into wavesurfers array\n                    \/\/ wavesurfers.push(wavesurfer);\n                    allWavesurfers.push(wavesurfer);\n                    \/\/ load audio file into new wavesurfer\n                    wavesurfer.load(audio.sitePlayableFilePath);\n\n                    \/\/ add event listener to the play\/pause button\n                    playPauseButton.on(\"click\", () => {\n                        if (wavesurfer.isPlaying()) {\n                            wavesurfer.pause();\n                            playPauseButton.html('<i class=\"fas fa-play\"><\/i>');\n\n                            \/* media paused SEGMENT EVENT *\/\n                            var assetId = audio.songId;\n                            var artist = audio.artistName;\n                            var title = audio.songName;\n                            var asset_type = null;\n                            if(\"sfx\" == 'songs') {\n                                asset_type = 'song';\n                            } else if(\"sfx\" == 'sfx') {\n                                asset_type = 'sfx';\n                            }\n                            analytics.track(\"media paused\", {\n                                asset_id: assetId || null,\n                                asset_type: asset_type || null,\n                                click_source: 'player',\n                                artist: artist || null,\n                                title: title || null,\n                                genre: null,\n                                ...special_data,\n                            });\n                        } else {\n                            \/\/ pause all other audios that may be playing\n                            $('.playPauseButton').html('<i class=\"fas fa-play\"><\/i>');\n                            $.each(allWavesurfers, function(index, audio) {\n                                allWavesurfers[index].pause();\n                            });\n                            \/\/ then play current audio\n                            wavesurfer.play();\n                            playPauseButton.html('<i class=\"fas fa-pause\"><\/i>');\n\n                            \/* media played SEGMENT EVENT *\/\n                            var assetId = audio.songId;\n                            var artist = audio.artistName;\n                            var title = audio.songName;\n                            var asset_type = null;\n                            if(\"sfx\" == 'songs') {\n                                asset_type = 'song';\n                            } else if(\"sfx\" == 'sfx') {\n                                asset_type = 'sfx';\n                            }\n                            analytics.track(\"media played\", {\n                                asset_id: assetId || null,\n                                asset_type: asset_type || null,\n                                click_source: 'player',\n                                artist: artist || null,\n                                title: title || null,\n                                genre: null,\n                                ...special_data,\n                            });\n                        }\n                    });\n\n                    \/* media downloaded SEGMENT EVENT *\/\n                    audioDownload.on(\"click\", () => {\n                        var assetId = audio.songId;\n                        var artist = audio.artistName;\n                        var title = audio.songName;\n                        var asset_type = null;\n                        if(\"sfx\" == 'songs') {\n                            asset_type = 'song';\n                        } else if(\"sfx\" == 'sfx') {\n                            asset_type = 'sfx';\n                        }\n                        analytics.track(\"media downloaded\", {\n                            asset_id: assetId || null,\n                            asset_type: asset_type || null,\n                            click_source: 'player',\n                            artist: artist || null,\n                            title: title || null,\n                            genre: null,\n                            ...special_data,\n                        });\n                    });\n\n                    \/\/ add event listener to the click on the wave itself\n                    audioWaveform.on(\"click\", () => {\n                        setTimeout(() => {\n                            if (wavesurfer.isPlaying()) {\n                                wavesurfer.pause();\n                                playPauseButton.html('<i class=\"fas fa-play\"><\/i>');\n                            } else {\n                                \/\/ pause all other audios that may be playing\n                                $('.playPauseButton').html('<i class=\"fas fa-play\"><\/i>');\n                                $.each(allWavesurfers, function(index, audio) {\n                                    allWavesurfers[index].pause();\n                                });\n                                \/\/ then play current audio\n                                wavesurfer.play();\n                                playPauseButton.html('<i class=\"fas fa-pause\"><\/i>');\n                            }\n                        }, \"200\");\n                    });\n\n                });\n            }\n\n        });\n    <\/script>\n\n    \n\n\n\n<h3 class=\"wp-block-heading\">SFX: Cinematic Elements &#8211; Dreamy Atmospheric Note<\/h3>\n\n\n\n<p>Artist: <a href=\"https:\/\/artlist.io\/sfx\/artist\/tomas-herudek\/947\" target=\"_blank\" rel=\"noreferrer noopener\">Tomas Herudek<\/a><\/p>\n\n\n\n<p>This sound effect has a rich and ambient quality that creates a sense of wonder, surrealism, and emotional depth. Use this sound effect to create moods, guide the audience\u2019s emotional journey, and build an immersive atmosphere.&nbsp;<\/p>\n\n\n\n<p>The dream-like quality of this sound effect works well in a flashback scene, or to convey a moment of deep introspection or emotional turmoil. This sound effect could also underscore a scene where the character is processing something deeply personal, perhaps in a moment of solitude or quiet contemplation.<\/p>\n\n\n\n\n    <div class=\"playlist\" id=\"69d07ebeae61d\"><\/div>\n\n    <script>\n        jQuery(document).ready(function($) {\n\n            if(\"sfx\" == 'songs') {\n                $.ajax({\n                    method: \"POST\",\n                    url: \"https:\/\/search-api.artlist.me\/v1\/graphql\",\n                    contentType: \"application\/json\",\n                    data: JSON.stringify({\n                        query: `query SongList($page: Int!, $songSortType: Int!, $take: Int!, $vocalMenuId: Int!, $categoryIds: [Int], $collectionId: String, $searchTerm: String) {\n                        songList(page: $page, songSortType: $songSortType, take: $take, vocalMenuId: $vocalMenuId, categoryIds: $categoryIds, collectionId: $collectionId, searchTerm: $searchTerm) {\n                          songs {\n                            songId\n                            songName\n                            artistName\n                            isNew\n                            nameForURL\n                            sitePlayableFilePath\n\t\t\t\t\t\t\talbumImageFilePath\n\t\t\t\t\t\t\trelativeUrl\n                          }\n                          totalResults\n                        }\n                    }`,\n                        variables: JSON.stringify({\n                            \"page\": 1,\n                            \"songSortType\": STAFF_PICKS,\n                            \"take\": 1,\n                            \"vocalMenuId\": 1,\n                            \"categoryIds\": null,\n                            \"searchTerm\": \"Cinematic Elements - Dreamy Atmospheric Note\"\n                        }),\n                    })\n                }).done(function(res) {\n                    if (res == '') {\n                        console.log('none');\n                    } else {\n                        console.log('songs list: ', res);\n                        var data = res.data.songList.songs;\n                        if ($(\"#69d07ebeae61d\").length && data.length > 0) {\n                            createAudioPlayers(data, \"69d07ebeae61d\");\n                        } else if ($(\"#69d07ebeae61d\").length && data.length == 0) {\n                            $(\"#69d07ebeae61d\").empty().append('<div class=\"noSongsError\">No songs were found.<\/div>');\n                        }\n                    }\n                });\n            } else if(\"sfx\" == 'sfx') {\n                $.ajax({\n                    method: \"POST\",\n                    url: \"https:\/\/search-api.artlist.me\/v1\/graphql\",\n                    contentType: \"application\/json\",\n                    data: JSON.stringify({\n                        query: `query SfxList($categoryIds: String!, $page: Float!, $tags: String!, $term: String!, $sortBy: SfxListRequestSortByOptions!) {\n\t\t\t\t\t\t\t\tsfxList(categoryIds: $categoryIds, page: $page, tags: $tags, term: $term, sortBy: $sortBy) {\n\t\t\t\t\t\t\t\t  page\n\t\t\t\t\t\t\t\t  songs {\n\t\t\t\t\t\t\t\t\t  albumImageFilePath\n\t\t\t\t\t\t\t\t\t  artistName\n\t\t\t\t\t\t\t\t\t  isNew\n\t\t\t\t\t\t\t\t\t  nameForURL\n\t\t\t\t\t\t\t\t\t  relativeUrl\n\t\t\t\t\t\t\t\t\t  sitePlayableFilePath        \n\t\t\t\t\t\t\t\t\t  songId \n\t\t\t\t\t\t\t\t\t  songName\n\t\t\t\t\t\t\t\t  }\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}`,\n                        variables: JSON.stringify({\n                            \"categoryIds\": \"\",\n                            \"page\": 1,\n                            \"tags\": \"\",\n                            \"term\": \"Cinematic Elements - Dreamy Atmospheric Note\",\n                            \"sortBy\": \"STAFF_PICKS\"\n                        }),\n                    })\n                }).done(function(res) {\n                    if (res == '') {\n                        console.log('none');\n                    } else {\n                        console.log('sfx list: ', res);\n                        var data = res.data.sfxList.songs;\n                        if ($(\"#69d07ebeae61d\").length && data.length > 0) {\n                            createAudioPlayers(data, \"69d07ebeae61d\");\n                        } else if ($(\"#69d07ebeae61d\").length && data.length == 0) {\n                            $(\"#69d07ebeae61d\").empty().append('<div class=\"noSongsError\">No songs were found.<\/div>');\n                        }\n                    }\n                });\n            }\n\n            function createAudioPlayers(data, playlistId) {\n                \/\/ main playlist container\n                const playlistContainer = $(\"#\" + playlistId);\n                \/\/ wavesurfers array\n                \/\/ const wavesurfers = [];\n                \/\/ loop over every song returned\n\n                if(!allWavesurfers){\n                    var allWavesurfers = [];\n                }\n                $.each(data, function(index, audio) {\n                    \/\/ if current type is sfx and current looped index is bigger than amount wanted via shortcode - then stop loop (because sfx request doesn't have \"take\" variable)\n                    if(\"sfx\" == 'sfx' && (index + 1) > 1) {\n                        return false;\n                    }\n\n                    \/\/ audio player container\n                    const audioPlayer = $(\"<div>\").addClass(\"audioPlayer\");\n                    \/\/ album image\n                    const audioImage = $(\"<div>\").addClass(\"audioImage\");\n                    audioImage.append('<img decoding=\"async\" src=\"' + audio.albumImageFilePath + '\"\/>');\n                    \/\/ audio controls\n                    const audioControls = $(\"<div>\").addClass(\"audioControls\");\n                    const playPauseButton = $(\"<button>\").addClass(\"playPauseButton\").html('<i class=\"fas fa-play\"><\/i>');\n                    audioControls.append(playPauseButton);\n                    \/\/ song url\n                    var songUrl;\n                    if(\"sfx\" == 'songs') {\n                        songUrl = 'https:\/\/artlist.io\/royalty-free-music\/song\/' + audio.nameForURL + '\/' + audio.songId + '?download=1&utm_source=blog';\n                    } else if(\"sfx\" == 'sfx') {\n                        songUrl = 'https:\/\/artlist.io\/sfx\/track\/' + audio.nameForURL + '\/' + audio.songId + '?download=1&utm_source=blog';\n                    }\n                    \/\/ song name and artist name\n                    const audioNames = $(\"<div>\").addClass(\"audioNames\");\n                    const songName = $(\"<a>\").addClass(\"songName\").attr(\"href\", songUrl).attr(\"target\", \"_blank\").text(audio.songName);\n                    if (audio.isNew) {\n                        songName.append('<span class=\"isNewBadge\">NEW<\/span>');\n                    }\n                    const artistName = $(\"<span>\").addClass(\"artistName\").text(audio.artistName);\n                    audioNames.append(songName, artistName);\n                    \/\/ audio waveform container\n                    const audioWaveform = $(\"<div>\").addClass(\"audioWaveform\");\n                    \/\/ download button\n                    const audioDownload = $(\"<a>\").addClass(\"audioDownload\").attr(\"href\", songUrl).attr(\"target\", \"_blank\").html('<i class=\"icon download medium\"><\/i>');\n\n\n                    \/\/ APPEND ALL ELEMENTS INTO AUDIO PLAYER CONTAINER\n                    audioPlayer.append(audioImage, audioControls, audioNames, audioWaveform, audioDownload);\n\n                    \/\/ append audio player container into main playlist container\n                    playlistContainer.append(audioPlayer);\n\n                    \/* media viewed SEGMENT EVENT *\/\n                    const special_data = getProps();\n\n                    const observer = new IntersectionObserver(entries => {\n                        entries.forEach(entry => {\n                            if (entry.isIntersecting) {\n                                var assetId = audio.songId;\n                                var artist = audio.artistName;\n                                var title = audio.songName;\n                                var asset_type = null;\n                                if(\"sfx\" == 'songs') {\n                                    asset_type = 'song';\n                                } else if(\"sfx\" == 'sfx') {\n                                    asset_type = 'sfx';\n                                }\n                                analytics.track(\"media viewed\", {\n                                    asset_id: assetId || null,\n                                    asset_type: asset_type || null,\n                                    click_source: 'player',\n                                    artist: artist || null,\n                                    title: title || null,\n                                    genre: null,\n                                    ...special_data,\n                                });\n                                observer.unobserve(entry.target);\n                            }\n                        });\n                    }, {\n                        threshold: 0.5\n                    });\n                    observer.observe(audioPlayer[0]);\n\n                    \/\/ check screen size\n                    var mobileScreen = window.matchMedia('(max-width: 767px)');\n                    var waveformHeight = '';\n                    if (mobileScreen.matches) { \/\/ mobile\n                        waveformHeight = 15;\n                    } else { \/\/ desktop\n                        waveformHeight = 40;\n                    }\n\n                    \/\/ create wavesurfer instance\n                    const waveformId = `waveform-${playlistId}-${index}`; \/\/ Generate a unique ID for each waveform\n                    const waveformContainer = $(\"<div>\").attr(\"id\", waveformId).addClass(\"waveformContainer\");\n                    audioWaveform.append(waveformContainer);\n                    const wavesurfer = WaveSurfer.create({\n                        container: `#${waveformId}`,\n                        waveColor: \"#b1b1b1\",\n                        progressColor: \"#171717\",\n                        cursorColor: \"transparent\",\n                        height: waveformHeight,\n                        normalize: true,\n                    });\n                    \/\/ push current wavesurfer into wavesurfers array\n                    \/\/ wavesurfers.push(wavesurfer);\n                    allWavesurfers.push(wavesurfer);\n                    \/\/ load audio file into new wavesurfer\n                    wavesurfer.load(audio.sitePlayableFilePath);\n\n                    \/\/ add event listener to the play\/pause button\n                    playPauseButton.on(\"click\", () => {\n                        if (wavesurfer.isPlaying()) {\n                            wavesurfer.pause();\n                            playPauseButton.html('<i class=\"fas fa-play\"><\/i>');\n\n                            \/* media paused SEGMENT EVENT *\/\n                            var assetId = audio.songId;\n                            var artist = audio.artistName;\n                            var title = audio.songName;\n                            var asset_type = null;\n                            if(\"sfx\" == 'songs') {\n                                asset_type = 'song';\n                            } else if(\"sfx\" == 'sfx') {\n                                asset_type = 'sfx';\n                            }\n                            analytics.track(\"media paused\", {\n                                asset_id: assetId || null,\n                                asset_type: asset_type || null,\n                                click_source: 'player',\n                                artist: artist || null,\n                                title: title || null,\n                                genre: null,\n                                ...special_data,\n                            });\n                        } else {\n                            \/\/ pause all other audios that may be playing\n                            $('.playPauseButton').html('<i class=\"fas fa-play\"><\/i>');\n                            $.each(allWavesurfers, function(index, audio) {\n                                allWavesurfers[index].pause();\n                            });\n                            \/\/ then play current audio\n                            wavesurfer.play();\n                            playPauseButton.html('<i class=\"fas fa-pause\"><\/i>');\n\n                            \/* media played SEGMENT EVENT *\/\n                            var assetId = audio.songId;\n                            var artist = audio.artistName;\n                            var title = audio.songName;\n                            var asset_type = null;\n                            if(\"sfx\" == 'songs') {\n                                asset_type = 'song';\n                            } else if(\"sfx\" == 'sfx') {\n                                asset_type = 'sfx';\n                            }\n                            analytics.track(\"media played\", {\n                                asset_id: assetId || null,\n                                asset_type: asset_type || null,\n                                click_source: 'player',\n                                artist: artist || null,\n                                title: title || null,\n                                genre: null,\n                                ...special_data,\n                            });\n                        }\n                    });\n\n                    \/* media downloaded SEGMENT EVENT *\/\n                    audioDownload.on(\"click\", () => {\n                        var assetId = audio.songId;\n                        var artist = audio.artistName;\n                        var title = audio.songName;\n                        var asset_type = null;\n                        if(\"sfx\" == 'songs') {\n                            asset_type = 'song';\n                        } else if(\"sfx\" == 'sfx') {\n                            asset_type = 'sfx';\n                        }\n                        analytics.track(\"media downloaded\", {\n                            asset_id: assetId || null,\n                            asset_type: asset_type || null,\n                            click_source: 'player',\n                            artist: artist || null,\n                            title: title || null,\n                            genre: null,\n                            ...special_data,\n                        });\n                    });\n\n                    \/\/ add event listener to the click on the wave itself\n                    audioWaveform.on(\"click\", () => {\n                        setTimeout(() => {\n                            if (wavesurfer.isPlaying()) {\n                                wavesurfer.pause();\n                                playPauseButton.html('<i class=\"fas fa-play\"><\/i>');\n                            } else {\n                                \/\/ pause all other audios that may be playing\n                                $('.playPauseButton').html('<i class=\"fas fa-play\"><\/i>');\n                                $.each(allWavesurfers, function(index, audio) {\n                                    allWavesurfers[index].pause();\n                                });\n                                \/\/ then play current audio\n                                wavesurfer.play();\n                                playPauseButton.html('<i class=\"fas fa-pause\"><\/i>');\n                            }\n                        }, \"200\");\n                    });\n\n                });\n            }\n\n        });\n    <\/script>\n\n    \n\n\n\n<h3 class=\"wp-block-heading\">SFX: Living in Madrid &#8211; Park Ambience, Birds Chirping, Wings Flap<\/h3>\n\n\n\n<p>Artist: <a href=\"https:\/\/artlist.io\/sfx\/artist\/stringer-sound\/1934\" target=\"_blank\" rel=\"noreferrer noopener\">Stringer Sound<\/a><\/p>\n\n\n\n<p>Get transported to springtime in Madrid with this chirpy SFX from Stringer Sound. With its light, vibrant, and natural quality, this SFX brings the atmosphere of Madrid\u2019s parks to life. Use it in a morning park scene, to emphasize the mood of a romantic stroll, to backdrop an afternoon coffee in the park, or during a quiet moment while a character wanders through gardens alone.<\/p>\n\n\n\n\n    <div class=\"playlist\" id=\"69d07ebeae6b3\"><\/div>\n\n    <script>\n        jQuery(document).ready(function($) {\n\n            if(\"sfx\" == 'songs') {\n                $.ajax({\n                    method: \"POST\",\n                    url: \"https:\/\/search-api.artlist.me\/v1\/graphql\",\n                    contentType: \"application\/json\",\n                    data: JSON.stringify({\n                        query: `query SongList($page: Int!, $songSortType: Int!, $take: Int!, $vocalMenuId: Int!, $categoryIds: [Int], $collectionId: String, $searchTerm: String) {\n                        songList(page: $page, songSortType: $songSortType, take: $take, vocalMenuId: $vocalMenuId, categoryIds: $categoryIds, collectionId: $collectionId, searchTerm: $searchTerm) {\n                          songs {\n                            songId\n                            songName\n                            artistName\n                            isNew\n                            nameForURL\n                            sitePlayableFilePath\n\t\t\t\t\t\t\talbumImageFilePath\n\t\t\t\t\t\t\trelativeUrl\n                          }\n                          totalResults\n                        }\n                    }`,\n                        variables: JSON.stringify({\n                            \"page\": 1,\n                            \"songSortType\": STAFF_PICKS,\n                            \"take\": 1,\n                            \"vocalMenuId\": 1,\n                            \"categoryIds\": null,\n                            \"searchTerm\": \"Living in Madrid - Park Ambience, Birds Chirping, Wings Flap\"\n                        }),\n                    })\n                }).done(function(res) {\n                    if (res == '') {\n                        console.log('none');\n                    } else {\n                        console.log('songs list: ', res);\n                        var data = res.data.songList.songs;\n                        if ($(\"#69d07ebeae6b3\").length && data.length > 0) {\n                            createAudioPlayers(data, \"69d07ebeae6b3\");\n                        } else if ($(\"#69d07ebeae6b3\").length && data.length == 0) {\n                            $(\"#69d07ebeae6b3\").empty().append('<div class=\"noSongsError\">No songs were found.<\/div>');\n                        }\n                    }\n                });\n            } else if(\"sfx\" == 'sfx') {\n                $.ajax({\n                    method: \"POST\",\n                    url: \"https:\/\/search-api.artlist.me\/v1\/graphql\",\n                    contentType: \"application\/json\",\n                    data: JSON.stringify({\n                        query: `query SfxList($categoryIds: String!, $page: Float!, $tags: String!, $term: String!, $sortBy: SfxListRequestSortByOptions!) {\n\t\t\t\t\t\t\t\tsfxList(categoryIds: $categoryIds, page: $page, tags: $tags, term: $term, sortBy: $sortBy) {\n\t\t\t\t\t\t\t\t  page\n\t\t\t\t\t\t\t\t  songs {\n\t\t\t\t\t\t\t\t\t  albumImageFilePath\n\t\t\t\t\t\t\t\t\t  artistName\n\t\t\t\t\t\t\t\t\t  isNew\n\t\t\t\t\t\t\t\t\t  nameForURL\n\t\t\t\t\t\t\t\t\t  relativeUrl\n\t\t\t\t\t\t\t\t\t  sitePlayableFilePath        \n\t\t\t\t\t\t\t\t\t  songId \n\t\t\t\t\t\t\t\t\t  songName\n\t\t\t\t\t\t\t\t  }\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}`,\n                        variables: JSON.stringify({\n                            \"categoryIds\": \"\",\n                            \"page\": 1,\n                            \"tags\": \"\",\n                            \"term\": \"Living in Madrid - Park Ambience, Birds Chirping, Wings Flap\",\n                            \"sortBy\": \"STAFF_PICKS\"\n                        }),\n                    })\n                }).done(function(res) {\n                    if (res == '') {\n                        console.log('none');\n                    } else {\n                        console.log('sfx list: ', res);\n                        var data = res.data.sfxList.songs;\n                        if ($(\"#69d07ebeae6b3\").length && data.length > 0) {\n                            createAudioPlayers(data, \"69d07ebeae6b3\");\n                        } else if ($(\"#69d07ebeae6b3\").length && data.length == 0) {\n                            $(\"#69d07ebeae6b3\").empty().append('<div class=\"noSongsError\">No songs were found.<\/div>');\n                        }\n                    }\n                });\n            }\n\n            function createAudioPlayers(data, playlistId) {\n                \/\/ main playlist container\n                const playlistContainer = $(\"#\" + playlistId);\n                \/\/ wavesurfers array\n                \/\/ const wavesurfers = [];\n                \/\/ loop over every song returned\n\n                if(!allWavesurfers){\n                    var allWavesurfers = [];\n                }\n                $.each(data, function(index, audio) {\n                    \/\/ if current type is sfx and current looped index is bigger than amount wanted via shortcode - then stop loop (because sfx request doesn't have \"take\" variable)\n                    if(\"sfx\" == 'sfx' && (index + 1) > 1) {\n                        return false;\n                    }\n\n                    \/\/ audio player container\n                    const audioPlayer = $(\"<div>\").addClass(\"audioPlayer\");\n                    \/\/ album image\n                    const audioImage = $(\"<div>\").addClass(\"audioImage\");\n                    audioImage.append('<img decoding=\"async\" src=\"' + audio.albumImageFilePath + '\"\/>');\n                    \/\/ audio controls\n                    const audioControls = $(\"<div>\").addClass(\"audioControls\");\n                    const playPauseButton = $(\"<button>\").addClass(\"playPauseButton\").html('<i class=\"fas fa-play\"><\/i>');\n                    audioControls.append(playPauseButton);\n                    \/\/ song url\n                    var songUrl;\n                    if(\"sfx\" == 'songs') {\n                        songUrl = 'https:\/\/artlist.io\/royalty-free-music\/song\/' + audio.nameForURL + '\/' + audio.songId + '?download=1&utm_source=blog';\n                    } else if(\"sfx\" == 'sfx') {\n                        songUrl = 'https:\/\/artlist.io\/sfx\/track\/' + audio.nameForURL + '\/' + audio.songId + '?download=1&utm_source=blog';\n                    }\n                    \/\/ song name and artist name\n                    const audioNames = $(\"<div>\").addClass(\"audioNames\");\n                    const songName = $(\"<a>\").addClass(\"songName\").attr(\"href\", songUrl).attr(\"target\", \"_blank\").text(audio.songName);\n                    if (audio.isNew) {\n                        songName.append('<span class=\"isNewBadge\">NEW<\/span>');\n                    }\n                    const artistName = $(\"<span>\").addClass(\"artistName\").text(audio.artistName);\n                    audioNames.append(songName, artistName);\n                    \/\/ audio waveform container\n                    const audioWaveform = $(\"<div>\").addClass(\"audioWaveform\");\n                    \/\/ download button\n                    const audioDownload = $(\"<a>\").addClass(\"audioDownload\").attr(\"href\", songUrl).attr(\"target\", \"_blank\").html('<i class=\"icon download medium\"><\/i>');\n\n\n                    \/\/ APPEND ALL ELEMENTS INTO AUDIO PLAYER CONTAINER\n                    audioPlayer.append(audioImage, audioControls, audioNames, audioWaveform, audioDownload);\n\n                    \/\/ append audio player container into main playlist container\n                    playlistContainer.append(audioPlayer);\n\n                    \/* media viewed SEGMENT EVENT *\/\n                    const special_data = getProps();\n\n                    const observer = new IntersectionObserver(entries => {\n                        entries.forEach(entry => {\n                            if (entry.isIntersecting) {\n                                var assetId = audio.songId;\n                                var artist = audio.artistName;\n                                var title = audio.songName;\n                                var asset_type = null;\n                                if(\"sfx\" == 'songs') {\n                                    asset_type = 'song';\n                                } else if(\"sfx\" == 'sfx') {\n                                    asset_type = 'sfx';\n                                }\n                                analytics.track(\"media viewed\", {\n                                    asset_id: assetId || null,\n                                    asset_type: asset_type || null,\n                                    click_source: 'player',\n                                    artist: artist || null,\n                                    title: title || null,\n                                    genre: null,\n                                    ...special_data,\n                                });\n                                observer.unobserve(entry.target);\n                            }\n                        });\n                    }, {\n                        threshold: 0.5\n                    });\n                    observer.observe(audioPlayer[0]);\n\n                    \/\/ check screen size\n                    var mobileScreen = window.matchMedia('(max-width: 767px)');\n                    var waveformHeight = '';\n                    if (mobileScreen.matches) { \/\/ mobile\n                        waveformHeight = 15;\n                    } else { \/\/ desktop\n                        waveformHeight = 40;\n                    }\n\n                    \/\/ create wavesurfer instance\n                    const waveformId = `waveform-${playlistId}-${index}`; \/\/ Generate a unique ID for each waveform\n                    const waveformContainer = $(\"<div>\").attr(\"id\", waveformId).addClass(\"waveformContainer\");\n                    audioWaveform.append(waveformContainer);\n                    const wavesurfer = WaveSurfer.create({\n                        container: `#${waveformId}`,\n                        waveColor: \"#b1b1b1\",\n                        progressColor: \"#171717\",\n                        cursorColor: \"transparent\",\n                        height: waveformHeight,\n                        normalize: true,\n                    });\n                    \/\/ push current wavesurfer into wavesurfers array\n                    \/\/ wavesurfers.push(wavesurfer);\n                    allWavesurfers.push(wavesurfer);\n                    \/\/ load audio file into new wavesurfer\n                    wavesurfer.load(audio.sitePlayableFilePath);\n\n                    \/\/ add event listener to the play\/pause button\n                    playPauseButton.on(\"click\", () => {\n                        if (wavesurfer.isPlaying()) {\n                            wavesurfer.pause();\n                            playPauseButton.html('<i class=\"fas fa-play\"><\/i>');\n\n                            \/* media paused SEGMENT EVENT *\/\n                            var assetId = audio.songId;\n                            var artist = audio.artistName;\n                            var title = audio.songName;\n                            var asset_type = null;\n                            if(\"sfx\" == 'songs') {\n                                asset_type = 'song';\n                            } else if(\"sfx\" == 'sfx') {\n                                asset_type = 'sfx';\n                            }\n                            analytics.track(\"media paused\", {\n                                asset_id: assetId || null,\n                                asset_type: asset_type || null,\n                                click_source: 'player',\n                                artist: artist || null,\n                                title: title || null,\n                                genre: null,\n                                ...special_data,\n                            });\n                        } else {\n                            \/\/ pause all other audios that may be playing\n                            $('.playPauseButton').html('<i class=\"fas fa-play\"><\/i>');\n                            $.each(allWavesurfers, function(index, audio) {\n                                allWavesurfers[index].pause();\n                            });\n                            \/\/ then play current audio\n                            wavesurfer.play();\n                            playPauseButton.html('<i class=\"fas fa-pause\"><\/i>');\n\n                            \/* media played SEGMENT EVENT *\/\n                            var assetId = audio.songId;\n                            var artist = audio.artistName;\n                            var title = audio.songName;\n                            var asset_type = null;\n                            if(\"sfx\" == 'songs') {\n                                asset_type = 'song';\n                            } else if(\"sfx\" == 'sfx') {\n                                asset_type = 'sfx';\n                            }\n                            analytics.track(\"media played\", {\n                                asset_id: assetId || null,\n                                asset_type: asset_type || null,\n                                click_source: 'player',\n                                artist: artist || null,\n                                title: title || null,\n                                genre: null,\n                                ...special_data,\n                            });\n                        }\n                    });\n\n                    \/* media downloaded SEGMENT EVENT *\/\n                    audioDownload.on(\"click\", () => {\n                        var assetId = audio.songId;\n                        var artist = audio.artistName;\n                        var title = audio.songName;\n                        var asset_type = null;\n                        if(\"sfx\" == 'songs') {\n                            asset_type = 'song';\n                        } else if(\"sfx\" == 'sfx') {\n                            asset_type = 'sfx';\n                        }\n                        analytics.track(\"media downloaded\", {\n                            asset_id: assetId || null,\n                            asset_type: asset_type || null,\n                            click_source: 'player',\n                            artist: artist || null,\n                            title: title || null,\n                            genre: null,\n                            ...special_data,\n                        });\n                    });\n\n                    \/\/ add event listener to the click on the wave itself\n                    audioWaveform.on(\"click\", () => {\n                        setTimeout(() => {\n                            if (wavesurfer.isPlaying()) {\n                                wavesurfer.pause();\n                                playPauseButton.html('<i class=\"fas fa-play\"><\/i>');\n                            } else {\n                                \/\/ pause all other audios that may be playing\n                                $('.playPauseButton').html('<i class=\"fas fa-play\"><\/i>');\n                                $.each(allWavesurfers, function(index, audio) {\n                                    allWavesurfers[index].pause();\n                                });\n                                \/\/ then play current audio\n                                wavesurfer.play();\n                                playPauseButton.html('<i class=\"fas fa-pause\"><\/i>');\n                            }\n                        }, \"200\");\n                    });\n\n                });\n            }\n\n        });\n    <\/script>\n\n    \n\n\n\n<h3 class=\"wp-block-heading\">SFX: Worldwide &#8211; Small Plaza Ambience, Spring Birds, People, Toulouse, France<\/h3>\n\n\n\n<p>Artist: <a href=\"https:\/\/artlist.io\/sfx\/artist\/articulated-sounds\/842\" target=\"_blank\" rel=\"noreferrer noopener\">Articulated Sounds<\/a><\/p>\n\n\n\n<p>This spring-like sound effect will evoke the charming, lively atmosphere of a quaint European town. Filmmakers and content creators can use this SFX to add depth and authenticity to a plaza scene in Europe and highlight vibrant streets, cafes, and historical charm.&nbsp;<\/p>\n\n\n\n<p>This SFX could work well for the arrival of a character in a new town, with the background of birdsong creating a sense of hope and optimism. Whether your character is sipping coffee at an outdoor caf\u00e9 or navigating a small market, this ambiance will immerse the audience in southern France, adding layers of authenticity to a vibrant scene.<\/p>\n\n\n\n\n    <div class=\"playlist\" id=\"69d07ebeae76a\"><\/div>\n\n    <script>\n        jQuery(document).ready(function($) {\n\n            if(\"sfx\" == 'songs') {\n                $.ajax({\n                    method: \"POST\",\n                    url: \"https:\/\/search-api.artlist.me\/v1\/graphql\",\n                    contentType: \"application\/json\",\n                    data: JSON.stringify({\n                        query: `query SongList($page: Int!, $songSortType: Int!, $take: Int!, $vocalMenuId: Int!, $categoryIds: [Int], $collectionId: String, $searchTerm: String) {\n                        songList(page: $page, songSortType: $songSortType, take: $take, vocalMenuId: $vocalMenuId, categoryIds: $categoryIds, collectionId: $collectionId, searchTerm: $searchTerm) {\n                          songs {\n                            songId\n                            songName\n                            artistName\n                            isNew\n                            nameForURL\n                            sitePlayableFilePath\n\t\t\t\t\t\t\talbumImageFilePath\n\t\t\t\t\t\t\trelativeUrl\n                          }\n                          totalResults\n                        }\n                    }`,\n                        variables: JSON.stringify({\n                            \"page\": 1,\n                            \"songSortType\": STAFF_PICKS,\n                            \"take\": 1,\n                            \"vocalMenuId\": 1,\n                            \"categoryIds\": null,\n                            \"searchTerm\": \"Worldwide - Small Plaza Ambience, Spring Birds, People, Toulouse, France\"\n                        }),\n                    })\n                }).done(function(res) {\n                    if (res == '') {\n                        console.log('none');\n                    } else {\n                        console.log('songs list: ', res);\n                        var data = res.data.songList.songs;\n                        if ($(\"#69d07ebeae76a\").length && data.length > 0) {\n                            createAudioPlayers(data, \"69d07ebeae76a\");\n                        } else if ($(\"#69d07ebeae76a\").length && data.length == 0) {\n                            $(\"#69d07ebeae76a\").empty().append('<div class=\"noSongsError\">No songs were found.<\/div>');\n                        }\n                    }\n                });\n            } else if(\"sfx\" == 'sfx') {\n                $.ajax({\n                    method: \"POST\",\n                    url: \"https:\/\/search-api.artlist.me\/v1\/graphql\",\n                    contentType: \"application\/json\",\n                    data: JSON.stringify({\n                        query: `query SfxList($categoryIds: String!, $page: Float!, $tags: String!, $term: String!, $sortBy: SfxListRequestSortByOptions!) {\n\t\t\t\t\t\t\t\tsfxList(categoryIds: $categoryIds, page: $page, tags: $tags, term: $term, sortBy: $sortBy) {\n\t\t\t\t\t\t\t\t  page\n\t\t\t\t\t\t\t\t  songs {\n\t\t\t\t\t\t\t\t\t  albumImageFilePath\n\t\t\t\t\t\t\t\t\t  artistName\n\t\t\t\t\t\t\t\t\t  isNew\n\t\t\t\t\t\t\t\t\t  nameForURL\n\t\t\t\t\t\t\t\t\t  relativeUrl\n\t\t\t\t\t\t\t\t\t  sitePlayableFilePath        \n\t\t\t\t\t\t\t\t\t  songId \n\t\t\t\t\t\t\t\t\t  songName\n\t\t\t\t\t\t\t\t  }\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}`,\n                        variables: JSON.stringify({\n                            \"categoryIds\": \"\",\n                            \"page\": 1,\n                            \"tags\": \"\",\n                            \"term\": \"Worldwide - Small Plaza Ambience, Spring Birds, People, Toulouse, France\",\n                            \"sortBy\": \"STAFF_PICKS\"\n                        }),\n                    })\n                }).done(function(res) {\n                    if (res == '') {\n                        console.log('none');\n                    } else {\n                        console.log('sfx list: ', res);\n                        var data = res.data.sfxList.songs;\n                        if ($(\"#69d07ebeae76a\").length && data.length > 0) {\n                            createAudioPlayers(data, \"69d07ebeae76a\");\n                        } else if ($(\"#69d07ebeae76a\").length && data.length == 0) {\n                            $(\"#69d07ebeae76a\").empty().append('<div class=\"noSongsError\">No songs were found.<\/div>');\n                        }\n                    }\n                });\n            }\n\n            function createAudioPlayers(data, playlistId) {\n                \/\/ main playlist container\n                const playlistContainer = $(\"#\" + playlistId);\n                \/\/ wavesurfers array\n                \/\/ const wavesurfers = [];\n                \/\/ loop over every song returned\n\n                if(!allWavesurfers){\n                    var allWavesurfers = [];\n                }\n                $.each(data, function(index, audio) {\n                    \/\/ if current type is sfx and current looped index is bigger than amount wanted via shortcode - then stop loop (because sfx request doesn't have \"take\" variable)\n                    if(\"sfx\" == 'sfx' && (index + 1) > 1) {\n                        return false;\n                    }\n\n                    \/\/ audio player container\n                    const audioPlayer = $(\"<div>\").addClass(\"audioPlayer\");\n                    \/\/ album image\n                    const audioImage = $(\"<div>\").addClass(\"audioImage\");\n                    audioImage.append('<img decoding=\"async\" src=\"' + audio.albumImageFilePath + '\"\/>');\n                    \/\/ audio controls\n                    const audioControls = $(\"<div>\").addClass(\"audioControls\");\n                    const playPauseButton = $(\"<button>\").addClass(\"playPauseButton\").html('<i class=\"fas fa-play\"><\/i>');\n                    audioControls.append(playPauseButton);\n                    \/\/ song url\n                    var songUrl;\n                    if(\"sfx\" == 'songs') {\n                        songUrl = 'https:\/\/artlist.io\/royalty-free-music\/song\/' + audio.nameForURL + '\/' + audio.songId + '?download=1&utm_source=blog';\n                    } else if(\"sfx\" == 'sfx') {\n                        songUrl = 'https:\/\/artlist.io\/sfx\/track\/' + audio.nameForURL + '\/' + audio.songId + '?download=1&utm_source=blog';\n                    }\n                    \/\/ song name and artist name\n                    const audioNames = $(\"<div>\").addClass(\"audioNames\");\n                    const songName = $(\"<a>\").addClass(\"songName\").attr(\"href\", songUrl).attr(\"target\", \"_blank\").text(audio.songName);\n                    if (audio.isNew) {\n                        songName.append('<span class=\"isNewBadge\">NEW<\/span>');\n                    }\n                    const artistName = $(\"<span>\").addClass(\"artistName\").text(audio.artistName);\n                    audioNames.append(songName, artistName);\n                    \/\/ audio waveform container\n                    const audioWaveform = $(\"<div>\").addClass(\"audioWaveform\");\n                    \/\/ download button\n                    const audioDownload = $(\"<a>\").addClass(\"audioDownload\").attr(\"href\", songUrl).attr(\"target\", \"_blank\").html('<i class=\"icon download medium\"><\/i>');\n\n\n                    \/\/ APPEND ALL ELEMENTS INTO AUDIO PLAYER CONTAINER\n                    audioPlayer.append(audioImage, audioControls, audioNames, audioWaveform, audioDownload);\n\n                    \/\/ append audio player container into main playlist container\n                    playlistContainer.append(audioPlayer);\n\n                    \/* media viewed SEGMENT EVENT *\/\n                    const special_data = getProps();\n\n                    const observer = new IntersectionObserver(entries => {\n                        entries.forEach(entry => {\n                            if (entry.isIntersecting) {\n                                var assetId = audio.songId;\n                                var artist = audio.artistName;\n                                var title = audio.songName;\n                                var asset_type = null;\n                                if(\"sfx\" == 'songs') {\n                                    asset_type = 'song';\n                                } else if(\"sfx\" == 'sfx') {\n                                    asset_type = 'sfx';\n                                }\n                                analytics.track(\"media viewed\", {\n                                    asset_id: assetId || null,\n                                    asset_type: asset_type || null,\n                                    click_source: 'player',\n                                    artist: artist || null,\n                                    title: title || null,\n                                    genre: null,\n                                    ...special_data,\n                                });\n                                observer.unobserve(entry.target);\n                            }\n                        });\n                    }, {\n                        threshold: 0.5\n                    });\n                    observer.observe(audioPlayer[0]);\n\n                    \/\/ check screen size\n                    var mobileScreen = window.matchMedia('(max-width: 767px)');\n                    var waveformHeight = '';\n                    if (mobileScreen.matches) { \/\/ mobile\n                        waveformHeight = 15;\n                    } else { \/\/ desktop\n                        waveformHeight = 40;\n                    }\n\n                    \/\/ create wavesurfer instance\n                    const waveformId = `waveform-${playlistId}-${index}`; \/\/ Generate a unique ID for each waveform\n                    const waveformContainer = $(\"<div>\").attr(\"id\", waveformId).addClass(\"waveformContainer\");\n                    audioWaveform.append(waveformContainer);\n                    const wavesurfer = WaveSurfer.create({\n                        container: `#${waveformId}`,\n                        waveColor: \"#b1b1b1\",\n                        progressColor: \"#171717\",\n                        cursorColor: \"transparent\",\n                        height: waveformHeight,\n                        normalize: true,\n                    });\n                    \/\/ push current wavesurfer into wavesurfers array\n                    \/\/ wavesurfers.push(wavesurfer);\n                    allWavesurfers.push(wavesurfer);\n                    \/\/ load audio file into new wavesurfer\n                    wavesurfer.load(audio.sitePlayableFilePath);\n\n                    \/\/ add event listener to the play\/pause button\n                    playPauseButton.on(\"click\", () => {\n                        if (wavesurfer.isPlaying()) {\n                            wavesurfer.pause();\n                            playPauseButton.html('<i class=\"fas fa-play\"><\/i>');\n\n                            \/* media paused SEGMENT EVENT *\/\n                            var assetId = audio.songId;\n                            var artist = audio.artistName;\n                            var title = audio.songName;\n                            var asset_type = null;\n                            if(\"sfx\" == 'songs') {\n                                asset_type = 'song';\n                            } else if(\"sfx\" == 'sfx') {\n                                asset_type = 'sfx';\n                            }\n                            analytics.track(\"media paused\", {\n                                asset_id: assetId || null,\n                                asset_type: asset_type || null,\n                                click_source: 'player',\n                                artist: artist || null,\n                                title: title || null,\n                                genre: null,\n                                ...special_data,\n                            });\n                        } else {\n                            \/\/ pause all other audios that may be playing\n                            $('.playPauseButton').html('<i class=\"fas fa-play\"><\/i>');\n                            $.each(allWavesurfers, function(index, audio) {\n                                allWavesurfers[index].pause();\n                            });\n                            \/\/ then play current audio\n                            wavesurfer.play();\n                            playPauseButton.html('<i class=\"fas fa-pause\"><\/i>');\n\n                            \/* media played SEGMENT EVENT *\/\n                            var assetId = audio.songId;\n                            var artist = audio.artistName;\n                            var title = audio.songName;\n                            var asset_type = null;\n                            if(\"sfx\" == 'songs') {\n                                asset_type = 'song';\n                            } else if(\"sfx\" == 'sfx') {\n                                asset_type = 'sfx';\n                            }\n                            analytics.track(\"media played\", {\n                                asset_id: assetId || null,\n                                asset_type: asset_type || null,\n                                click_source: 'player',\n                                artist: artist || null,\n                                title: title || null,\n                                genre: null,\n                                ...special_data,\n                            });\n                        }\n                    });\n\n                    \/* media downloaded SEGMENT EVENT *\/\n                    audioDownload.on(\"click\", () => {\n                        var assetId = audio.songId;\n                        var artist = audio.artistName;\n                        var title = audio.songName;\n                        var asset_type = null;\n                        if(\"sfx\" == 'songs') {\n                            asset_type = 'song';\n                        } else if(\"sfx\" == 'sfx') {\n                            asset_type = 'sfx';\n                        }\n                        analytics.track(\"media downloaded\", {\n                            asset_id: assetId || null,\n                            asset_type: asset_type || null,\n                            click_source: 'player',\n                            artist: artist || null,\n                            title: title || null,\n                            genre: null,\n                            ...special_data,\n                        });\n                    });\n\n                    \/\/ add event listener to the click on the wave itself\n                    audioWaveform.on(\"click\", () => {\n                        setTimeout(() => {\n                            if (wavesurfer.isPlaying()) {\n                                wavesurfer.pause();\n                                playPauseButton.html('<i class=\"fas fa-play\"><\/i>');\n                            } else {\n                                \/\/ pause all other audios that may be playing\n                                $('.playPauseButton').html('<i class=\"fas fa-play\"><\/i>');\n                                $.each(allWavesurfers, function(index, audio) {\n                                    allWavesurfers[index].pause();\n                                });\n                                \/\/ then play current audio\n                                wavesurfer.play();\n                                playPauseButton.html('<i class=\"fas fa-pause\"><\/i>');\n                            }\n                        }, \"200\");\n                    });\n\n                });\n            }\n\n        });\n    <\/script>\n\n    \n\n\n\n<h2 class=\"wp-block-heading\">Bring spring scenes to life with Artlist\u2019s SFX Collection<\/h2>\n\n\n\n<p>Incorporating the sounds of spring into your projects can instantly elevate the atmosphere and breathe new life into your scenes. Whether it\u2019s the peaceful hum of nature or the buzz of forests in springtime, Artlist\u2019s SFX collection adds texture and depth, guiding your audience through moments of joy, reflection, or suspense.<\/p>\n\n\n\n<p><a href=\"https:\/\/artlist.io\/collection\/spring\/11187\" target=\"_blank\" rel=\"noreferrer noopener\">Artlist\u2019s Spring SFX Collection<\/a> offers the perfect audio for any creative project, from tranquil forest ambiance to lively park sounds, <a href=\"https:\/\/artlist.io\/blog\/how-to-find-the-perfect-footage-and-sfx-combination\/\">perfect to pair with spring-related footage<\/a>.  So if you\u2019re ready to elevate your content, <a href=\"https:\/\/artlist.io\/\" target=\"_blank\" rel=\"noreferrer noopener\">head over to Artlist<\/a> to get access to the full collection.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Fresh sounds for the new season Successful filmmakers will tell you that great sound effects are the secret to creating compelling scenes. The best SFX are often used in such subtle ways the viewer doesn\u2019t even notice them, yet they can change the entire mood and direction of a scene.&nbsp; Sound effects bring visuals to [&hellip;]<\/p>\n","protected":false},"author":8,"featured_media":41072,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_uag_custom_page_level_css":"","footnotes":""},"categories":[1],"tags":[],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v21.9 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Spring sound effect and outdoor audio from Artlist - Artlist Blog<\/title>\n<meta name=\"description\" content=\"Explore Artlist&#039;s new Spring SFX collection and capture the fresh sounds of spring in your content and film creation.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/new-blog.artlist.io\/blog\/spring-sound-effects\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Spring sound effect and outdoor audio from Artlist - Artlist Blog\" \/>\n<meta property=\"og:description\" content=\"Explore Artlist&#039;s new Spring SFX collection and capture the fresh sounds of spring in your content and film creation.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/new-blog.artlist.io\/blog\/spring-sound-effects\/\" \/>\n<meta property=\"og:site_name\" content=\"Artlist Blog\" \/>\n<meta property=\"article:published_time\" content=\"2025-03-09T16:13:06+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2025-03-11T12:28:19+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/new-blog.artlist.io\/blog\/wp-content\/uploads\/2025\/03\/Spring_SFX_Collection_XXL.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"1721\" \/>\n\t<meta property=\"og:image:height\" content=\"600\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Alice Austin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@https:\/\/twitter.com\/AliceAustin3\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Alice Austin\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"9 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/new-blog.artlist.io\/blog\/spring-sound-effects\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/new-blog.artlist.io\/blog\/spring-sound-effects\/\"},\"author\":{\"name\":\"Alice Austin\",\"@id\":\"https:\/\/new-blog.artlist.io\/blog\/#\/schema\/person\/d1b9dfc0de8425c83f3b7923a9e7ffd0\"},\"headline\":\"Bring spring to life with Artlist\u2019s ultimate SFX collection\",\"datePublished\":\"2025-03-09T16:13:06+00:00\",\"dateModified\":\"2025-03-11T12:28:19+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/new-blog.artlist.io\/blog\/spring-sound-effects\/\"},\"wordCount\":1849,\"publisher\":{\"@id\":\"https:\/\/new-blog.artlist.io\/blog\/#organization\"},\"articleSection\":[\"News\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/new-blog.artlist.io\/blog\/spring-sound-effects\/\",\"url\":\"https:\/\/new-blog.artlist.io\/blog\/spring-sound-effects\/\",\"name\":\"Spring sound effect and outdoor audio from Artlist - Artlist Blog\",\"isPartOf\":{\"@id\":\"https:\/\/new-blog.artlist.io\/blog\/#website\"},\"datePublished\":\"2025-03-09T16:13:06+00:00\",\"dateModified\":\"2025-03-11T12:28:19+00:00\",\"description\":\"Explore Artlist's new Spring SFX collection and capture the fresh sounds of spring in your content and film creation.\",\"breadcrumb\":{\"@id\":\"https:\/\/new-blog.artlist.io\/blog\/spring-sound-effects\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/new-blog.artlist.io\/blog\/spring-sound-effects\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/new-blog.artlist.io\/blog\/spring-sound-effects\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/new-blog.artlist.io\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"News\",\"item\":\"https:\/\/new-blog.artlist.io\/blog\/artlist-news\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Bring spring to life with Artlist\u2019s ultimate SFX collection\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/new-blog.artlist.io\/blog\/#website\",\"url\":\"https:\/\/new-blog.artlist.io\/blog\/\",\"name\":\"Artlist Blog\",\"description\":\"Just artlist blog website\",\"publisher\":{\"@id\":\"https:\/\/new-blog.artlist.io\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/new-blog.artlist.io\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/new-blog.artlist.io\/blog\/#organization\",\"name\":\"Artlist Blog\",\"url\":\"https:\/\/new-blog.artlist.io\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/new-blog.artlist.io\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/new-blog.artlist.io\/blog\/wp-content\/uploads\/2024\/10\/artlist-blog-logo.svg\",\"contentUrl\":\"https:\/\/new-blog.artlist.io\/blog\/wp-content\/uploads\/2024\/10\/artlist-blog-logo.svg\",\"width\":143,\"height\":28,\"caption\":\"Artlist Blog\"},\"image\":{\"@id\":\"https:\/\/new-blog.artlist.io\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/new-blog.artlist.io\/blog\/#\/schema\/person\/d1b9dfc0de8425c83f3b7923a9e7ffd0\",\"name\":\"Alice Austin\",\"description\":\"Alice Austin is a freelance writer from London. She writes for Mixmag, Beatportal, Huck, Dummy, Electronic Beats, Red Bulletin and more. She likes to explore youth and sub-culture through the lens of music, a vocation that has led her around the world. You can contact and\/or follow her on Twitter and Instagram.\",\"sameAs\":[\"https:\/\/www.alice-austin.net\/\",\"https:\/\/www.instagram.com\/aliceaustinnn\/\",\"https:\/\/www.linkedin.com\/in\/alice-austin-34822454\/\",\"https:\/\/twitter.com\/https:\/\/twitter.com\/AliceAustin3\"],\"url\":\"https:\/\/new-blog.artlist.io\/blog\/author\/alice-austin\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Spring sound effect and outdoor audio from Artlist - Artlist Blog","description":"Explore Artlist's new Spring SFX collection and capture the fresh sounds of spring in your content and film creation.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/new-blog.artlist.io\/blog\/spring-sound-effects\/","og_locale":"en_US","og_type":"article","og_title":"Spring sound effect and outdoor audio from Artlist - Artlist Blog","og_description":"Explore Artlist's new Spring SFX collection and capture the fresh sounds of spring in your content and film creation.","og_url":"https:\/\/new-blog.artlist.io\/blog\/spring-sound-effects\/","og_site_name":"Artlist Blog","article_published_time":"2025-03-09T16:13:06+00:00","article_modified_time":"2025-03-11T12:28:19+00:00","og_image":[{"width":1721,"height":600,"url":"https:\/\/new-blog.artlist.io\/blog\/wp-content\/uploads\/2025\/03\/Spring_SFX_Collection_XXL.jpg","type":"image\/jpeg"}],"author":"Alice Austin","twitter_card":"summary_large_image","twitter_creator":"@https:\/\/twitter.com\/AliceAustin3","twitter_misc":{"Written by":"Alice Austin","Est. reading time":"9 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/new-blog.artlist.io\/blog\/spring-sound-effects\/#article","isPartOf":{"@id":"https:\/\/new-blog.artlist.io\/blog\/spring-sound-effects\/"},"author":{"name":"Alice Austin","@id":"https:\/\/new-blog.artlist.io\/blog\/#\/schema\/person\/d1b9dfc0de8425c83f3b7923a9e7ffd0"},"headline":"Bring spring to life with Artlist\u2019s ultimate SFX collection","datePublished":"2025-03-09T16:13:06+00:00","dateModified":"2025-03-11T12:28:19+00:00","mainEntityOfPage":{"@id":"https:\/\/new-blog.artlist.io\/blog\/spring-sound-effects\/"},"wordCount":1849,"publisher":{"@id":"https:\/\/new-blog.artlist.io\/blog\/#organization"},"articleSection":["News"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/new-blog.artlist.io\/blog\/spring-sound-effects\/","url":"https:\/\/new-blog.artlist.io\/blog\/spring-sound-effects\/","name":"Spring sound effect and outdoor audio from Artlist - Artlist Blog","isPartOf":{"@id":"https:\/\/new-blog.artlist.io\/blog\/#website"},"datePublished":"2025-03-09T16:13:06+00:00","dateModified":"2025-03-11T12:28:19+00:00","description":"Explore Artlist's new Spring SFX collection and capture the fresh sounds of spring in your content and film creation.","breadcrumb":{"@id":"https:\/\/new-blog.artlist.io\/blog\/spring-sound-effects\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/new-blog.artlist.io\/blog\/spring-sound-effects\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/new-blog.artlist.io\/blog\/spring-sound-effects\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/new-blog.artlist.io\/blog\/"},{"@type":"ListItem","position":2,"name":"News","item":"https:\/\/new-blog.artlist.io\/blog\/artlist-news\/"},{"@type":"ListItem","position":3,"name":"Bring spring to life with Artlist\u2019s ultimate SFX collection"}]},{"@type":"WebSite","@id":"https:\/\/new-blog.artlist.io\/blog\/#website","url":"https:\/\/new-blog.artlist.io\/blog\/","name":"Artlist Blog","description":"Just artlist blog website","publisher":{"@id":"https:\/\/new-blog.artlist.io\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/new-blog.artlist.io\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/new-blog.artlist.io\/blog\/#organization","name":"Artlist Blog","url":"https:\/\/new-blog.artlist.io\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/new-blog.artlist.io\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/new-blog.artlist.io\/blog\/wp-content\/uploads\/2024\/10\/artlist-blog-logo.svg","contentUrl":"https:\/\/new-blog.artlist.io\/blog\/wp-content\/uploads\/2024\/10\/artlist-blog-logo.svg","width":143,"height":28,"caption":"Artlist Blog"},"image":{"@id":"https:\/\/new-blog.artlist.io\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/new-blog.artlist.io\/blog\/#\/schema\/person\/d1b9dfc0de8425c83f3b7923a9e7ffd0","name":"Alice Austin","description":"Alice Austin is a freelance writer from London. She writes for Mixmag, Beatportal, Huck, Dummy, Electronic Beats, Red Bulletin and more. She likes to explore youth and sub-culture through the lens of music, a vocation that has led her around the world. You can contact and\/or follow her on Twitter and Instagram.","sameAs":["https:\/\/www.alice-austin.net\/","https:\/\/www.instagram.com\/aliceaustinnn\/","https:\/\/www.linkedin.com\/in\/alice-austin-34822454\/","https:\/\/twitter.com\/https:\/\/twitter.com\/AliceAustin3"],"url":"https:\/\/new-blog.artlist.io\/blog\/author\/alice-austin\/"}]}},"uagb_featured_image_src":{"full":["https:\/\/new-blog.artlist.io\/blog\/wp-content\/uploads\/2025\/03\/Spring_SFX_Collection_XXL.jpg",1721,600,false],"thumbnail":["https:\/\/new-blog.artlist.io\/blog\/wp-content\/uploads\/2025\/03\/Spring_SFX_Collection_XXL-150x150.jpg",150,150,true],"medium":["https:\/\/new-blog.artlist.io\/blog\/wp-content\/uploads\/2025\/03\/Spring_SFX_Collection_XXL-300x105.jpg",300,105,true],"medium_large":["https:\/\/new-blog.artlist.io\/blog\/wp-content\/uploads\/2025\/03\/Spring_SFX_Collection_XXL-768x268.jpg",768,268,true],"large":["https:\/\/new-blog.artlist.io\/blog\/wp-content\/uploads\/2025\/03\/Spring_SFX_Collection_XXL-1024x357.jpg",1024,357,true],"1536x1536":["https:\/\/new-blog.artlist.io\/blog\/wp-content\/uploads\/2025\/03\/Spring_SFX_Collection_XXL-1536x536.jpg",1536,536,true],"2048x2048":["https:\/\/new-blog.artlist.io\/blog\/wp-content\/uploads\/2025\/03\/Spring_SFX_Collection_XXL.jpg",1721,600,false]},"uagb_author_info":{"display_name":"Alice Austin","author_link":"https:\/\/new-blog.artlist.io\/blog\/author\/alice-austin\/"},"uagb_comment_info":0,"uagb_excerpt":"Fresh sounds for the new season Successful filmmakers will tell you that great sound effects are the secret to creating compelling scenes. The best SFX are often used in such subtle ways the viewer doesn\u2019t even notice them, yet they can change the entire mood and direction of a scene.&nbsp; Sound effects bring visuals to&hellip;","_links":{"self":[{"href":"https:\/\/new-blog.artlist.io\/blog\/wp-json\/wp\/v2\/posts\/41026"}],"collection":[{"href":"https:\/\/new-blog.artlist.io\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/new-blog.artlist.io\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/new-blog.artlist.io\/blog\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/new-blog.artlist.io\/blog\/wp-json\/wp\/v2\/comments?post=41026"}],"version-history":[{"count":26,"href":"https:\/\/new-blog.artlist.io\/blog\/wp-json\/wp\/v2\/posts\/41026\/revisions"}],"predecessor-version":[{"id":41323,"href":"https:\/\/new-blog.artlist.io\/blog\/wp-json\/wp\/v2\/posts\/41026\/revisions\/41323"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/new-blog.artlist.io\/blog\/wp-json\/wp\/v2\/media\/41072"}],"wp:attachment":[{"href":"https:\/\/new-blog.artlist.io\/blog\/wp-json\/wp\/v2\/media?parent=41026"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/new-blog.artlist.io\/blog\/wp-json\/wp\/v2\/categories?post=41026"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/new-blog.artlist.io\/blog\/wp-json\/wp\/v2\/tags?post=41026"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}