Public/Get-MultipleAudioFeatures.ps1

function Get-MultipleAudioFeatures {
    <#
  .SYNOPSIS
    Fetches data for multiple tracks
  .DESCRIPTION
    Grabs audio feature data for multiple tracks, takes in Ids in an array
  .EXAMPLE
    PS C:\> Get-MultipleAudioFeatures -TracksArray @("id1","id2")
    Grabs audio feature data for track Ids "id1" and "id2" and returns them in an object
  .PARAMETER TrackArray
  An array of no greater than 100 track Ids
  #>

    param(
        # The array of track Ids
        [Parameter(Mandatory)]
        [array]
        $TrackArray
    )

    if ($TrackArray.Count -gt 100) {
        Write-Warning "Can't get more than 100 at a time."
        break
    }

    $ConstructedTrackIds = ""

    # Construct Id string
    $Count = $TrackArray.Count
    Write-Verbose "There are $Count track Ids to check"
    foreach ($TrackId in $TrackArray) {
        if ($Count -gt 1) {
            $ConstructedTrackIds += "$TrackId%2C"
        } else {
            $ConstructedTrackIds += $TrackId
        }
        $Count--
    }

    $Query = "?ids=" + $ConstructedTrackIds

    $Method = "Get"
    $Uri = "https://api.spotify.com/v1/audio-features" + $Query

    try {
        $Response = Send-SpotifyCall -Method $Method -Uri $Uri -ErrorAction Stop
        return $Response
    } catch {
        Write-Warning "Failed sending Spotify API call for function Get-MultipleAudioFeatures"
    }
}