{"id":23201,"date":"2023-06-26T19:33:53","date_gmt":"2023-06-26T17:33:53","guid":{"rendered":"https:\/\/demdlx704as001.ad.harman.com\/?p=23201"},"modified":"2023-08-18T13:51:40","modified_gmt":"2023-08-18T11:51:40","slug":"fileplayer","status":"publish","type":"post","link":"https:\/\/audioworx.transfunnel.co\/old\/?p=23201","title":{"rendered":"FilePlayer"},"content":{"rendered":"<p class=\"text\">FilePlayer Audio Object is used to read the audio content from a file and present them in real time on the output channels. This AO can also be used to add \/ mix the file content with the audio fed into the input channel buffers of this object.<\/p>\n<p class=\"text\">The object can read from both WAV and PCM files. The WAV file contains the necessary details about the stored audio content in the file whereas the PCM file contains only the audio data and the details such as sampling rate and data format of the stored audio data must be provided separately.<\/p>\n<p class=\"text\">A background thread is used to read the file contents in bulk and place them in the intermediate cache buffer while in the main thread for each audio interrupt, the required audio data (of framework block length size) is copied from the intermediate cache buffer to the output channel buffers. The background thread periodically checks for the number of samples available in the cache buffer and replenishes from the file(s) as needed.<\/p>\n<p class=\"text\">The AO can support a configurable number of channels ranging from 1 to 16.<\/p>\n<p class=\"text\">The AO supports two modes: WAV and PCM to support reading from WAV file and PCM files respectively.<\/p>\n<p class=\"text\">The WAV or PCM file shall be of two types:<\/p>\n<ul class=\"bullet-points\">\n<li>Single file with content for 1 or more channels.<\/li>\n<li>Multiple files each with mono channel content.<\/li>\n<\/ul>\n<p class=\"text\">The FilePlayer AO can be configured with the following <strong><em>additional parameters<\/em><\/strong>:<\/p>\n<ul class=\"bullet-points\">\n<li>Pitch Shifting Flag: 0 for disable (default) and 1 for enable. This feature is provided to increase or decrease the playing speed (sample rate at which the content is played).<\/li>\n<li>Audio Mixing Flag: 0 for disable (default) and 1 for enable. By default, the AO will have only output channels and no input channels. If this feature is enabled, an equal number of input channels will be supported.<\/li>\n<li>Cache Buffer Size: 1024 to 16384 Float Words per channel and the default value is 16384. This need to be a power of 2 viz. 1024, 2048, 4096, 8192 and 16384. If the background thread is having significantly lower priority, buffer underrun is likely to occur for lower cache sizes. In such cases, the cache buffer size shall be increased.<\/li>\n<li>File Type: 0 for <em>Single MultiChannel file <\/em>(default) and 1 for <em>Multiple Mono files<\/em><\/li>\n<li>Data Format (applicable only for PCM mode)\n<ul>\n<li>0 \u2013 Invalid<\/li>\n<li>1 \u2013 8-bit A-Law companded<\/li>\n<li>2 \u2013 8-bit Mu-Law companded<\/li>\n<li>3 \u2013 16-bit integer<\/li>\n<li>4 \u2013 24-bit integer<\/li>\n<li>5 \u2013 32-bit float<\/li>\n<\/ul>\n<\/li>\n<li>Sampling Rate (applicable only for PCM mode)<\/li>\n<\/ul>\n<p class=\"text\">The FilePlayer has the following <strong><em>Control Inputs:<\/em><\/strong><\/p>\n<table style=\"width: 95.0455%; height: 489px;\">\n<tbody>\n<tr style=\"height: 39px;\">\n<td class=\"table-head\" style=\"width: 15.7989%; height: 21px;\" rowspan=\"2\" width=\"131\"><strong>Name<\/strong><\/td>\n<td class=\"table-head\" style=\"width: 19.226%; height: 21px;\" rowspan=\"2\" width=\"54\"><strong>Size in Float Words<\/strong><\/td>\n<td class=\"table-head\" style=\"width: 52.593%; height: 21px;\" rowspan=\"2\" width=\"319\"><strong>Remarks<\/strong><\/td>\n<td class=\"table-head\" style=\"width: 19.811%; height: 11px;\" colspan=\"2\" width=\"120\"><strong>Range<\/strong><\/td>\n<\/tr>\n<tr style=\"height: 73px;\">\n<td class=\"table-head\" style=\"width: 7.68264%; height: 10px;\" width=\"60\"><strong>From<\/strong><\/td>\n<td class=\"table-head\" style=\"width: 12.1284%; height: 10px;\" width=\"60\"><strong>To<\/strong><\/td>\n<\/tr>\n<tr style=\"height: 12px;\">\n<td style=\"width: 15.7989%; height: 12px;\">Block Control*<\/td>\n<td style=\"width: 19.226%; height: 12px;\">4<\/td>\n<td style=\"width: 52.593%; height: 12px;\"><\/td>\n<td style=\"width: 7.68264%; height: 12px;\"><\/td>\n<td style=\"width: 12.1284%; height: 12px;\"><\/td>\n<\/tr>\n<tr style=\"height: 10px;\">\n<td style=\"width: 15.7989%; height: 10px; text-align: right;\" width=\"131\">Channel ID<\/td>\n<td style=\"width: 19.226%; height: 10px; text-align: right;\" width=\"54\">1 of 4<\/td>\n<td style=\"width: 52.593%; height: 10px;\" width=\"319\">Channel ID to associate with each output channel<\/td>\n<td style=\"width: 7.68264%; height: 10px;\" width=\"60\">1<\/td>\n<td style=\"width: 12.1284%; height: 10px;\" width=\"60\">16<\/td>\n<\/tr>\n<tr style=\"height: 15px;\">\n<td style=\"width: 15.7989%; height: 15px; text-align: right;\" width=\"131\">File ID<\/td>\n<td style=\"width: 19.226%; height: 15px; text-align: right;\" width=\"54\">2 of 4<\/td>\n<td style=\"width: 52.593%; height: 15px;\" width=\"319\">The file name need to be a numeral in this range with .wav or .pcm extension. The files shall be placed in the dll folder<\/td>\n<td style=\"width: 7.68264%; height: 15px;\" width=\"60\">1<\/td>\n<td style=\"width: 12.1284%; height: 15px;\" width=\"60\">255<\/td>\n<\/tr>\n<tr style=\"height: 43px;\">\n<td style=\"width: 15.7989%; height: 43px; text-align: right;\" width=\"131\">File Setup<\/td>\n<td style=\"width: 19.226%; height: 43px; text-align: right;\" width=\"54\">3 of 4<\/td>\n<td style=\"width: 52.593%; height: 43px;\" width=\"319\">1 \u2013 One Shot mode and 2 \u2013 Loop mode<\/td>\n<td style=\"width: 7.68264%; height: 43px;\" width=\"60\">1<\/td>\n<td style=\"width: 12.1284%; height: 43px;\" width=\"60\">2<\/td>\n<\/tr>\n<tr style=\"height: 10px;\">\n<td style=\"width: 15.7989%; height: 10px; text-align: right;\" width=\"131\">File Start Position<\/td>\n<td style=\"width: 19.226%; height: 10px; text-align: right;\" width=\"54\">4 of 4<\/td>\n<td style=\"width: 52.593%; height: 10px;\" width=\"319\">Start position in percentage from where file will be played<\/td>\n<td style=\"width: 7.68264%; height: 10px;\" width=\"60\">0<\/td>\n<td style=\"width: 12.1284%; height: 10px;\" width=\"60\">99<\/td>\n<\/tr>\n<tr style=\"height: 198px;\">\n<td style=\"width: 15.7989%; height: 198px;\" width=\"131\">FilePlayer Function<\/td>\n<td style=\"width: 19.226%; height: 198px;\" width=\"54\">1<\/td>\n<td style=\"width: 52.593%; height: 198px;\" width=\"319\">\n<p>Single global function control applicable for all channels<\/p>\n<p>1 \u2013 STOP (default on boot-up)<\/p>\n<p>2 \u2013 PLAY<\/p>\n<p>3 \u2013 RESET (STOP followed by PLAY)<\/p>\n<p>4 \u2013 PAUSE<\/td>\n<td style=\"width: 7.68264%; height: 198px;\" width=\"60\">1<\/td>\n<td style=\"width: 12.1284%; height: 198px;\" width=\"60\">4<\/td>\n<\/tr>\n<tr style=\"height: 74px;\">\n<td style=\"width: 15.7989%; height: 74px;\" width=\"131\">Pitch** (1)<\/td>\n<td style=\"width: 19.226%; height: 74px;\" width=\"54\">1<\/td>\n<td style=\"width: 52.593%; height: 74px;\" width=\"319\">\n<p>In Single Multi-Channel mode, the pitch value set through this pin is applicable for all the channels in a given file.<\/p>\n<p>In Multiple Mono mode, this pin controls the pitch of the first channel only<\/td>\n<td style=\"width: 7.68264%; height: 74px;\" width=\"60\">-40<\/td>\n<td style=\"width: 12.1284%; height: 74px;\" width=\"60\">40***<\/td>\n<\/tr>\n<tr style=\"height: 30px;\">\n<td style=\"width: 15.7989%; height: 30px;\" width=\"131\">Pitch2<\/td>\n<td style=\"width: 19.226%; height: 30px;\" width=\"54\">1<\/td>\n<td style=\"width: 52.593%; height: 30px;\" width=\"319\">Applicable only in Multiple-Mono mode and this pin controls the pitch of the second channel<\/td>\n<td style=\"width: 7.68264%; height: 30px;\" width=\"60\">-40<\/td>\n<td style=\"width: 12.1284%; height: 30px;\" width=\"60\">40<\/td>\n<\/tr>\n<tr style=\"height: 76px;\">\n<td style=\"width: 15.7989%; height: 76px;\" width=\"131\">PitchN<\/td>\n<td style=\"width: 19.226%; height: 76px;\" width=\"54\">1<\/td>\n<td style=\"width: 52.593%; height: 76px;\" width=\"319\">Applicable only in Multiple-Mono mode and this pin controls the pitch of the Nth channel<\/td>\n<td style=\"width: 7.68264%; height: 76px;\" width=\"60\">-40<\/td>\n<td style=\"width: 12.1284%; height: 76px;\" width=\"60\">40<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p class=\"text\"><em>*For SingleMultiChannel mode, only one set of block control input need to be sent. For Multiple Mono mode, for each channel a set of block control need to be sent separately.<\/em><\/p>\n<p class=\"text\"><em>** All Pitch pins (one or many) will be available only if pitch shifting feature is enabled<\/em><\/p>\n<p class=\"text\"><em>*** The playing speed is controlled by the number of semi-tones (control input value) and is governed by the following formula:<\/em><\/p>\n<p class=\"text\">speed = pow(2, (controlInputValue\/12))<\/p>\n<p class=\"text\">With the control input value ranging from -40 to +40, the playing speed can be varied from 0.1 to 10. The default control input value is 0 and the corresponding play speed is 1.<\/p>\n<p class=\"text\">The FilePlayer has the following <strong><em>Control Output:<\/em><\/strong><\/p>\n<table style=\"width: 97.5631%; height: 165px;\">\n<tbody>\n<tr style=\"height: 21px;\">\n<td class=\"table-head\" style=\"height: 36px; width: 17.8291%;\" rowspan=\"2\" width=\"131\"><strong>Name<\/strong><\/td>\n<td class=\"table-head\" style=\"height: 36px; width: 17.1136%;\" rowspan=\"2\" width=\"54\"><strong>Size in Float Words<\/strong><\/td>\n<td class=\"table-head\" style=\"height: 36px; width: 39.7785%;\" rowspan=\"2\" width=\"319\"><strong>Remarks<\/strong><\/td>\n<td class=\"table-head\" style=\"height: 21px; width: 24.238%;\" colspan=\"2\" width=\"120\"><strong>Range<\/strong><\/td>\n<\/tr>\n<tr style=\"height: 15px;\">\n<td class=\"table-head\" style=\"height: 15px; width: 12.119%;\" width=\"60\"><strong>From<\/strong><\/td>\n<td class=\"table-head\" style=\"height: 15px; width: 12.119%;\" width=\"60\"><strong>To<\/strong><\/td>\n<\/tr>\n<tr style=\"height: 129px;\">\n<td style=\"height: 129px; width: 17.8291%;\" width=\"131\">\n<p>Play Position<\/p>\n<p>(Single \/ Block Control)<\/td>\n<td style=\"height: 129px; width: 17.1136%;\" width=\"54\">N<\/td>\n<td style=\"height: 129px; width: 39.7785%;\" width=\"319\">\n<p>For every audio interrupt, the AO outputs the play position in terms of percentage covered in the file.<\/p>\n<p>For AOs configured for Single Multichannel mode, only one (N = 1) control output will be there. For AOs configured in Multiple Mono mode, there will be equal number (N) of control outputs for each file &#8211; as a single block control output.<\/td>\n<td style=\"height: 129px; width: 12.119%;\" width=\"60\">0<\/td>\n<td style=\"height: 129px; width: 12.119%;\" width=\"60\">100<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<p class=\"text\"><strong>Tuning Parameters<\/strong><\/p>\n<table style=\"border-collapse: collapse; width: 100%;\" border=\"1\">\n<tbody>\n<tr>\n<td class=\"table-head\" style=\"width: 17.24%;\"><strong>Parameter<\/strong><\/td>\n<td class=\"table-head\" style=\"width: 43.9914%;\"><strong>Description<\/strong><\/td>\n<td class=\"table-head\" style=\"width: 11.6136%;\"><strong>Min<\/strong><\/td>\n<td class=\"table-head\" style=\"width: 14.4799%;\"><strong>Max<\/strong><\/td>\n<td class=\"table-head\" style=\"width: 12.6751%;\"><strong>Default<\/strong><\/td>\n<\/tr>\n<tr>\n<td style=\"width: 17.24%;\">Fade-in time<\/td>\n<td style=\"width: 43.9914%;\">Applied for control change from Stop \/ Pause to Play<\/td>\n<td style=\"width: 11.6136%;\">0 ms<\/td>\n<td style=\"width: 14.4799%;\">1000 ms<\/td>\n<td style=\"width: 12.6751%;\">100 ms<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 17.24%;\">Fade-in type<\/td>\n<td style=\"width: 43.9914%;\">Linear type only is implemented<\/td>\n<td style=\"width: 11.6136%;\">0 (Linear)<\/td>\n<td style=\"width: 14.4799%;\">1 (Exponential)<\/td>\n<td style=\"width: 12.6751%;\">0 (Linear)<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 17.24%;\">Fade-out time<\/td>\n<td style=\"width: 43.9914%;\">Applied for control change from Play to Stop \/ Pause<\/td>\n<td style=\"width: 11.6136%;\">0 ms<\/td>\n<td style=\"width: 14.4799%;\">1000 ms<\/td>\n<td style=\"width: 12.6751%;\">100 ms<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 17.24%;\">Fade-out type<\/td>\n<td style=\"width: 43.9914%;\">Linear type only is implemented<\/td>\n<td style=\"width: 11.6136%;\">0 (Linear)<\/td>\n<td style=\"width: 14.4799%;\">1 (Exponential)<\/td>\n<td style=\"width: 12.6751%;\">0 (Linear)<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 17.24%;\">Fade-out delay<\/td>\n<td style=\"width: 43.9914%;\">Delay period before starting fade-out process<\/td>\n<td style=\"width: 11.6136%;\">0 ms<\/td>\n<td style=\"width: 14.4799%;\">100 ms<\/td>\n<td style=\"width: 12.6751%;\">0 ms<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 17.24%;\">Play Speed<\/td>\n<td style=\"width: 43.9914%;\">Not Implemented<\/td>\n<td style=\"width: 11.6136%;\"><\/td>\n<td style=\"width: 14.4799%;\"><\/td>\n<td style=\"width: 12.6751%;\"><\/td>\n<\/tr>\n<tr>\n<td style=\"width: 17.24%;\">Pitch ramp time<\/td>\n<td style=\"width: 43.9914%;\">Applied for\u00a0 any change in pitch value<\/td>\n<td style=\"width: 11.6136%;\">0 ms<\/td>\n<td style=\"width: 14.4799%;\">100 ms<\/td>\n<td style=\"width: 12.6751%;\">0 ms<\/td>\n<\/tr>\n<tr>\n<td style=\"width: 17.24%;\">Pitch ramp type<\/td>\n<td style=\"width: 43.9914%;\">Linear type only is implemented<\/td>\n<td style=\"width: 11.6136%;\">0 (Linear)<\/td>\n<td style=\"width: 14.4799%;\">1 (Exponential)<\/td>\n<td style=\"width: 12.6751%;\">0 (Linear)<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p class=\"text\">All the tuning parameters implemented are unsigned integers and the step value is 1.<\/p>\n<p class=\"text\"><strong>State Parameter<\/strong><\/p>\n<p class=\"text\">Function State &#8211; This is an Enum variable.<\/p>\n<p class=\"text\">1 \u2013 STOP (default)<\/p>\n<p class=\"text\">2 \u2013 PLAY<\/p>\n<p class=\"text\">3 \u2013 RESET (STOP followed by PLAY)<\/p>\n<p class=\"text\">4 \u2013 PAUSE<\/p>\n<p class=\"text\">After sending PLAY command through state parameter or Master control pin, the file will be played. After playing the file completely, the object will enter into STOP state (that will not be visible in the Master control pin or this state parameter). However using the readback feature available with this state parameter, the latest state of the FilePlayer object can be known.<\/p>\n<p class=\"note text\">In Single Multichannel file mode, mono file also can be played.<\/p>\n<p class=\"note text\">Multiple Mono file mode, all the files need to be mono files. In WAV mode, if the file is seen having more than 1 channel, that file will be ignored. In PCM mode, the file will be taken as a mono file and played leading to improper output.<\/p>\n<p class=\"note text\">In Multiple Mono file mode, all the mono files need to be in the same data format and sampling rate. If files with different data format are used, the data format of the last configured file will be considered and the same will be applied to all other mono files leading to improper output.<\/p>\n<p class=\"note text\">In cases with low intermediate cache buffer size, the background thread need to run frequently to replenish the data available in the cache buffer. If distortion is observed with low cache size, buffer underrun could be the cause and background thread shall be moved to higher priority or the cache buffer size shall be increased.<\/p>\n<p class=\"note text\">The memory required for the supporting the intermediate cache buffer size will be slightly more than double the size specified in the additional parameters as it is required to support ping-pong concept and extra data for supporting filtering. The memory latency table shall be referred for exact memory requirements.<\/p>\n<p class=\"note text\">In Single Multichannel file, let the number of files present in the file content be M and the number of channels configured for the object be N.<br \/>\nIn WAV mode:<br \/>\n&#8211; If M = N, all the N channels will be played with the file content.<br \/>\n&#8211; If M &lt; N, first M channels buffers will be populated with the file content and the remaining N-M channels will be muted.<br \/>\n&#8211; If M &gt; N, none of the channels will be played and all channels will be muted.<br \/>\nIn PCM mode:<br \/>\n&#8211; If M = N, all the N channels will be played properly with the file content.<br \/>\n&#8211; If M != N, the file will be taken as a N channel file and played leading to improper output.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>FilePlayer Audio Object is used to read the audio content from a file and present them in real time on the output channels. This AO can also be used to add \/ mix the file content with the audio fed into the input channel buffers of this object. The object can read from both WAV [&hellip;]<\/p>\n","protected":false},"author":90,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ocean_post_layout":"","ocean_both_sidebars_style":"","ocean_both_sidebars_content_width":0,"ocean_both_sidebars_sidebars_width":0,"ocean_sidebar":"0","ocean_second_sidebar":"0","ocean_disable_margins":"enable","ocean_add_body_class":"","ocean_shortcode_before_top_bar":"","ocean_shortcode_after_top_bar":"","ocean_shortcode_before_header":"","ocean_shortcode_after_header":"","ocean_has_shortcode":"","ocean_shortcode_after_title":"","ocean_shortcode_before_footer_widgets":"","ocean_shortcode_after_footer_widgets":"","ocean_shortcode_before_footer_bottom":"","ocean_shortcode_after_footer_bottom":"","ocean_display_top_bar":"default","ocean_display_header":"default","ocean_header_style":"","ocean_center_header_left_menu":"0","ocean_custom_header_template":"0","ocean_custom_logo":0,"ocean_custom_retina_logo":0,"ocean_custom_logo_max_width":0,"ocean_custom_logo_tablet_max_width":0,"ocean_custom_logo_mobile_max_width":0,"ocean_custom_logo_max_height":0,"ocean_custom_logo_tablet_max_height":0,"ocean_custom_logo_mobile_max_height":0,"ocean_header_custom_menu":"0","ocean_menu_typo_font_family":"0","ocean_menu_typo_font_subset":"","ocean_menu_typo_font_size":0,"ocean_menu_typo_font_size_tablet":0,"ocean_menu_typo_font_size_mobile":0,"ocean_menu_typo_font_size_unit":"px","ocean_menu_typo_font_weight":"","ocean_menu_typo_font_weight_tablet":"","ocean_menu_typo_font_weight_mobile":"","ocean_menu_typo_transform":"","ocean_menu_typo_transform_tablet":"","ocean_menu_typo_transform_mobile":"","ocean_menu_typo_line_height":0,"ocean_menu_typo_line_height_tablet":0,"ocean_menu_typo_line_height_mobile":0,"ocean_menu_typo_line_height_unit":"","ocean_menu_typo_spacing":0,"ocean_menu_typo_spacing_tablet":0,"ocean_menu_typo_spacing_mobile":0,"ocean_menu_typo_spacing_unit":"","ocean_menu_link_color":"","ocean_menu_link_color_hover":"","ocean_menu_link_color_active":"","ocean_menu_link_background":"","ocean_menu_link_hover_background":"","ocean_menu_link_active_background":"","ocean_menu_social_links_bg":"","ocean_menu_social_hover_links_bg":"","ocean_menu_social_links_color":"","ocean_menu_social_hover_links_color":"","ocean_disable_title":"default","ocean_disable_heading":"default","ocean_post_title":"","ocean_post_subheading":"","ocean_post_title_style":"","ocean_post_title_background_color":"","ocean_post_title_background":0,"ocean_post_title_bg_image_position":"","ocean_post_title_bg_image_attachment":"","ocean_post_title_bg_image_repeat":"","ocean_post_title_bg_image_size":"","ocean_post_title_height":0,"ocean_post_title_bg_overlay":0.5,"ocean_post_title_bg_overlay_color":"","ocean_disable_breadcrumbs":"default","ocean_breadcrumbs_color":"","ocean_breadcrumbs_separator_color":"","ocean_breadcrumbs_links_color":"","ocean_breadcrumbs_links_hover_color":"","ocean_display_footer_widgets":"default","ocean_display_footer_bottom":"default","ocean_custom_footer_template":"0","footnotes":"","ocean_post_oembed":"","ocean_post_self_hosted_media":"","ocean_post_video_embed":"","ocean_link_format":"","ocean_link_format_target":"self","ocean_quote_format":"","ocean_quote_format_link":"post","ocean_gallery_link_images":"off","ocean_gallery_id":[]},"categories":[1],"tags":[],"coauthors":[278],"_links":{"self":[{"href":"https:\/\/audioworx.transfunnel.co\/old\/index.php?rest_route=\/wp\/v2\/posts\/23201"}],"collection":[{"href":"https:\/\/audioworx.transfunnel.co\/old\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/audioworx.transfunnel.co\/old\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/audioworx.transfunnel.co\/old\/index.php?rest_route=\/wp\/v2\/users\/90"}],"replies":[{"embeddable":true,"href":"https:\/\/audioworx.transfunnel.co\/old\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=23201"}],"version-history":[{"count":30,"href":"https:\/\/audioworx.transfunnel.co\/old\/index.php?rest_route=\/wp\/v2\/posts\/23201\/revisions"}],"predecessor-version":[{"id":23967,"href":"https:\/\/audioworx.transfunnel.co\/old\/index.php?rest_route=\/wp\/v2\/posts\/23201\/revisions\/23967"}],"wp:attachment":[{"href":"https:\/\/audioworx.transfunnel.co\/old\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=23201"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/audioworx.transfunnel.co\/old\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=23201"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/audioworx.transfunnel.co\/old\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=23201"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/audioworx.transfunnel.co\/old\/index.php?rest_route=%2Fwp%2Fv2%2Fcoauthors&post=23201"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}