{"id":5044,"date":"2023-07-10T10:00:00","date_gmt":"2023-07-10T15:00:00","guid":{"rendered":"https:\/\/www.foell.org\/justin\/?p=5044"},"modified":"2023-07-10T11:57:29","modified_gmt":"2023-07-10T16:57:29","slug":"ubuntu-22-04-aptx-bluetooth-codec","status":"publish","type":"post","link":"https:\/\/www.foell.org\/justin\/ubuntu-22-04-aptx-bluetooth-codec\/","title":{"rendered":"Ubuntu 22.04 &#038; aptX Bluetooth codec"},"content":{"rendered":"\n<p>I was previously using a Sony HWS-BTA2W bluetooth adapter from 2007 to get sound wirelessly from my computer or phone to a set of non-bluetooth speakers. It had a problem that only happened with my linux computer. I was annoyed with this device because as the workload would increase\/decrease on my computer, the audio would speed up and slow down. You could hear the pitch rise and fall if you were listening to music. This is probably by design &#8211; as part of the base level <a href=\"https:\/\/en.wikipedia.org\/wiki\/SBC_(codec)\">Bluetooth SBC codec<\/a> that everything supports. It makes sense that if you&#8217;re talking on the phone you&#8217;d want to hear everything someone said, even if it had to be sped up or slowed down for continuity.<\/p>\n\n\n\n<!--more-->\n\n\n\n<p>The pitch bend happened on all of my linux laptops: 2008 Dell Studio 17 and my 2014 ThinkPad T440s, and my <a href=\"https:\/\/www.foell.org\/justin\/dell-7390-xps-13-developer-edition-laptop\/\">2019 Developer Edition XPS 13<\/a>. I wasn&#8217;t sure about the problem being in the linux bluetooth stack or the Sony device itself. I knew there was a better solution available &#8211; and it happened to be a combination of hardware and software.<\/p>\n\n\n\n<p>After reading <a href=\"https:\/\/www.whathifi.com\/advice\/what-are-the-best-bluetooth-codecs-aptx-aac-ldac-and-more-explained\">all about Bluetooth codecs<\/a> and wanting another way to tap into my <a href=\"https:\/\/www.foell.org\/justin\/usb-audio-interfaces\/\">audio interface,<\/a> I decided to try another, more modern, bluetooth interface. I went with a <a href=\"https:\/\/www.amazon.com\/gp\/product\/B0BHQQ32YQ\/\">1Mii B06S Bluetooth 5.2 Receiver<\/a>. It supports several <a href=\"https:\/\/www.whathifi.com\/advice\/aptx-hd-bluetooth-what-it-how-can-you-get-it\">aptX profiles<\/a>, which provide higher fidelity than the base BT codecs.<\/p>\n\n\n\n<p>Interestingly, aptX originated as a PhD thesis, then later became incarnate in a DSP chip. Then the tech <a href=\"https:\/\/en.wikipedia.org\/wiki\/AptX\">changed hands though several companies<\/a> (including Solid State Logic which makes my <a href=\"https:\/\/www.foell.org\/justin\/usb-audio-interfaces\/\">audio interface<\/a>). Before finally becoming part of Qualcomm. AptX was first used in the Bluetooth stack with some <a href=\"https:\/\/www.aptx.com\/history\">Sennheiser headphones from 2009<\/a>. My 2007 Sony hardware was definitely not using this tech.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">AptX on Ubuntu 22.04<\/h2>\n\n\n\n<p>To make sure my computer supported these extra codecs, I had to install some extras. Partly because aptX has some patent issues (although it&#8217;s been reverse engineered), and partly because I <a href=\"https:\/\/www.foell.org\/justin\/remove-etc-pipewire\/\">upgraded my system to use pipewire<\/a>. The best source I found was this gist:<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-rich is-provider-embed-handler wp-block-embed-embed-handler\"><div class=\"wp-block-embed__wrapper\">\n<style>.gist table { margin-bottom: 0; }<\/style><div style=\"tab-size: 8\" id=\"gist112706338\" class=\"gist\">\n    <div class=\"gist-file\" translate=\"no\" data-color-mode=\"light\" data-light-theme=\"light\">\n      <div class=\"gist-data\">\n        \n<div class=\"js-gist-file-update-container js-task-list-container\">\n      <div id=\"file-pipewire-md\" class=\"file my-2\">\n      <div id=\"file-pipewire-md-readme\" class=\"Box-body readme blob tmp-p-5 tmp-p-xl-6 \"\n    style=\"overflow: auto\" tabindex=\"0\" role=\"region\"\n    aria-label=\"pipewire.md content, created by the-spyke on 06:56PM on October 30, 2021.\"\n  >\n    <article class=\"markdown-body entry-content container-lg\" itemprop=\"text\"><div class=\"markdown-heading\" dir=\"auto\"><h1 class=\"heading-element\" dir=\"auto\">Enable PipeWire on Ubuntu 22.04<\/h1><a id=\"user-content-enable-pipewire-on-ubuntu-2204\" class=\"anchor\" aria-label=\"Permalink: Enable PipeWire on Ubuntu 22.04\" href=\"#enable-pipewire-on-ubuntu-2204\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"><\/path><\/svg><\/a><\/div>\n<blockquote>\n<p dir=\"auto\"><em>This guide is only for original Ubuntu out-of-the-box packages. If you have added a custom PPA like <code>pipewire-debian<\/code>, you might get into conflicts.<\/em><\/p>\n<\/blockquote>\n<p dir=\"auto\">Ubuntu 22.04 has PipeWire partially installed and enabled as it&#8217;s used by browsers (WebRTC) for recoding the screeen under Wayland. We can enable remaining parts and use PipeWire for audio and Bluetooth instead of PulseAudio.<\/p>\n<p dir=\"auto\">Starting from WirePlumber version 0.4.8 automatic Bluetooth profile switching (e.g. switching from A2DP to HSP\/HFP when an application needs microphone access) is supported. Jammy (22.04) repos provide exactly version 0.4.8. So, we&#8217;re good.<\/p>\n<p dir=\"auto\">Based on <a href=\"https:\/\/wiki.debian.org\/PipeWire#Using_as_a_substitute_for_PulseAudio.2FJACK.2FALSA\" rel=\"nofollow\">Debian Wiki<\/a>, but simplified for Ubuntu 22.04.<\/p>\n<div class=\"markdown-heading\" dir=\"auto\"><h2 class=\"heading-element\" dir=\"auto\">Install<\/h2><a id=\"user-content-install\" class=\"anchor\" aria-label=\"Permalink: Install\" href=\"#install\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"><\/path><\/svg><\/a><\/div>\n<p dir=\"auto\">Install WirePlumber as the session manager:<\/p>\n<div class=\"highlight highlight-source-shell\" dir=\"auto\"><pre>$ sudo apt install pipewire-media-session- wireplumber<\/pre><\/div>\n<blockquote>\n<p dir=\"auto\"><em>Notice &#8216;-&#8216; at the end of &#8216;pipewire-media-session&#8217;. This is to remove it in the same command, because &#8216;wireplumber&#8217; will be used instead.<\/em><\/p>\n<\/blockquote>\n<p dir=\"auto\">Start WirePlumber for your user:<\/p>\n<div class=\"highlight highlight-source-shell\" dir=\"auto\"><pre>$ systemctl --user --now <span class=\"pl-c1\">enable<\/span> wireplumber.service<\/pre><\/div>\n<div class=\"markdown-heading\" dir=\"auto\"><h2 class=\"heading-element\" dir=\"auto\">Configure<\/h2><a id=\"user-content-configure\" class=\"anchor\" aria-label=\"Permalink: Configure\" href=\"#configure\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"><\/path><\/svg><\/a><\/div>\n<div class=\"markdown-heading\" dir=\"auto\"><h3 class=\"heading-element\" dir=\"auto\">ALSA<\/h3><a id=\"user-content-alsa\" class=\"anchor\" aria-label=\"Permalink: ALSA\" href=\"#alsa\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"><\/path><\/svg><\/a><\/div>\n<p dir=\"auto\">Install the ALSA plug-in:<\/p>\n<div class=\"highlight highlight-source-shell\" dir=\"auto\"><pre>$ sudo apt install pipewire-audio-client-libraries<\/pre><\/div>\n<p dir=\"auto\">And copy the config file from PipeWire docs (provided by the plug-in) into the ALSA configuration directory:<\/p>\n<div class=\"highlight highlight-source-shell\" dir=\"auto\"><pre>$ sudo cp \/usr\/share\/doc\/pipewire\/examples\/alsa.conf.d\/99-pipewire-default.conf \/etc\/alsa\/conf.d\/<\/pre><\/div>\n<p dir=\"auto\">Check if you have other (like Pulse) configs in the <code>\/etc\/alsa\/conf.d\/<\/code> installed by something else. You might want to remove them.<\/p>\n<div class=\"markdown-heading\" dir=\"auto\"><h3 class=\"heading-element\" dir=\"auto\">PulseAudio<\/h3><a id=\"user-content-pulseaudio\" class=\"anchor\" aria-label=\"Permalink: PulseAudio\" href=\"#pulseaudio\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"><\/path><\/svg><\/a><\/div>\n<p dir=\"auto\">Everything was done automatically by <code>pipewire-pulse<\/code> package, which should have been installed by <code>wireplumber<\/code> package as recommended. If not, install it yourself.<\/p>\n<div class=\"markdown-heading\" dir=\"auto\"><h3 class=\"heading-element\" dir=\"auto\">Bluetooth<\/h3><a id=\"user-content-bluetooth\" class=\"anchor\" aria-label=\"Permalink: Bluetooth\" href=\"#bluetooth\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"><\/path><\/svg><\/a><\/div>\n<p dir=\"auto\">Install the codecs and remove Bluetooth from PulseAudio, so it would be handled directly by PipeWire:<\/p>\n<div class=\"highlight highlight-source-shell\" dir=\"auto\"><pre>$ sudo apt install libldacbt-{abr,enc}2 libspa-0.2-bluetooth pulseaudio-module-bluetooth-<\/pre><\/div>\n<p dir=\"auto\">The supported codecs are SBC and LDAC.<\/p>\n<p dir=\"auto\">Unfortunately, aptX and AAC are not supported because of patents and other technical reasons. aptX is available starting from 22.10 via <code>libfreeaptx0<\/code> installed by default there (22.10 uses PipeWire by default as well). If you really need these codecs in 22.04 you may use <a href=\"https:\/\/launchpad.net\/~aglasgall\/+archive\/ubuntu\/pipewire-extra-bt-codecs\" rel=\"nofollow\">this PPA<\/a> from @aglasgall which is based on <code>universe<\/code>, but rebuilds <code>pipewire<\/code> with additional packages for <code>aptX<\/code> and <code>AAC<\/code> from <code>multiverse<\/code>. Read the discussion <a href=\"#gistcomment-4320194\">here<\/a>.<\/p>\n<div class=\"markdown-heading\" dir=\"auto\"><h2 class=\"heading-element\" dir=\"auto\">Done<\/h2><a id=\"user-content-done\" class=\"anchor\" aria-label=\"Permalink: Done\" href=\"#done\"><svg class=\"octicon octicon-link\" viewBox=\"0 0 16 16\" version=\"1.1\" width=\"16\" height=\"16\" aria-hidden=\"true\"><path d=\"m7.775 3.275 1.25-1.25a3.5 3.5 0 1 1 4.95 4.95l-2.5 2.5a3.5 3.5 0 0 1-4.95 0 .751.751 0 0 1 .018-1.042.751.751 0 0 1 1.042-.018 1.998 1.998 0 0 0 2.83 0l2.5-2.5a2.002 2.002 0 0 0-2.83-2.83l-1.25 1.25a.751.751 0 0 1-1.042-.018.751.751 0 0 1-.018-1.042Zm-4.69 9.64a1.998 1.998 0 0 0 2.83 0l1.25-1.25a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042l-1.25 1.25a3.5 3.5 0 1 1-4.95-4.95l2.5-2.5a3.5 3.5 0 0 1 4.95 0 .751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018 1.998 1.998 0 0 0-2.83 0l-2.5 2.5a1.998 1.998 0 0 0 0 2.83Z\"><\/path><\/svg><\/a><\/div>\n<p dir=\"auto\">Reboot and check if it works by running:<\/p>\n<div class=\"highlight highlight-source-shell\" dir=\"auto\"><pre>$ LANG=C pactl info <span class=\"pl-k\">|<\/span> grep <span class=\"pl-s\"><span class=\"pl-pds\">'<\/span>^Server Name<span class=\"pl-pds\">'<\/span><\/span><\/pre><\/div>\n<\/article>\n  <\/div>\n\n  <\/div>\n\n<\/div>\n\n      <\/div>\n      <div class=\"gist-meta\">\n        <a href=\"https:\/\/gist.github.com\/the-spyke\/2de98b22ff4f978ebf0650c90e82027e\/raw\/33b22df519644b037d25f60c1af542407d98b852\/pipewire.md\" style=\"float:right\" class=\"Link--inTextBlock\">view raw<\/a>\n        <a href=\"https:\/\/gist.github.com\/the-spyke\/2de98b22ff4f978ebf0650c90e82027e#file-pipewire-md\" class=\"Link--inTextBlock\">\n          pipewire.md\n        <\/a>\n        hosted with &#10084; by <a class=\"Link--inTextBlock\" href=\"https:\/\/github.com\">GitHub<\/a>\n      <\/div>\n    <\/div>\n<\/div>\n\n<\/div><\/figure>\n\n\n\n<p>The important part in there is actually the link to the <a href=\"https:\/\/launchpad.net\/~aglasgall\/+archive\/ubuntu\/pipewire-extra-bt-codecs\">pipewire-extra-bt-codecs PPA<\/a> for Ubuntu 22.04. I installed\/removed the packages as expected and when I connected to the 1Mii B06S I can choose from all of the supported codecs in my sound settings:<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/www.foell.org\/justin\/files\/2023\/06\/aptx-codecs-ubuntu-22-04.png\"><img loading=\"lazy\" decoding=\"async\" width=\"862\" height=\"392\" data-attachment-id=\"5045\" data-permalink=\"https:\/\/www.foell.org\/justin\/ubuntu-22-04-aptx-bluetooth-codec\/aptx-codecs-ubuntu-22-04\/\" data-orig-file=\"https:\/\/www.foell.org\/justin\/files\/2023\/06\/aptx-codecs-ubuntu-22-04.png\" data-orig-size=\"862,392\" data-comments-opened=\"1\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"aptx-codecs-ubuntu-22-04\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/www.foell.org\/justin\/files\/2023\/06\/aptx-codecs-ubuntu-22-04.png\" src=\"https:\/\/www.foell.org\/justin\/files\/2023\/06\/aptx-codecs-ubuntu-22-04.png\" alt=\"\" class=\"wp-image-5045\" srcset=\"https:\/\/www.foell.org\/justin\/files\/2023\/06\/aptx-codecs-ubuntu-22-04.png 862w, https:\/\/www.foell.org\/justin\/files\/2023\/06\/aptx-codecs-ubuntu-22-04-300x136.png 300w, https:\/\/www.foell.org\/justin\/files\/2023\/06\/aptx-codecs-ubuntu-22-04-768x349.png 768w\" sizes=\"auto, (max-width: 862px) 100vw, 862px\" \/><\/a><\/figure>\n\n\n\n<p>I&#8217;m going to keep it on aptX HD for now and see how it sounds, but so far I&#8217;ve experienced <em>zero<\/em> pitch changes while listening to music.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Coming soon..<\/h2>\n\n\n\n<p>Next I&#8217;ll go through how I have everything hooked up in my home audio studio. <\/p>\n<div class='kindleWidget kindleLight' ><img decoding=\"async\" src=\"https:\/\/www.foell.org\/justin\/wp-content\/plugins\/send-to-kindle\/media\/white-15.png\" \/><span>Send to Kindle<\/span><\/div>","protected":false},"excerpt":{"rendered":"<p>I was previously using a Sony HWS-BTA2W bluetooth adapter from 2007 to get sound wirelessly from my computer or phone to a set of non-bluetooth speakers. It had a problem that only happened with my linux computer. I was annoyed with this device because as the workload would increase\/decrease on my computer, the audio would&hellip; <a href=\"https:\/\/www.foell.org\/justin\/ubuntu-22-04-aptx-bluetooth-codec\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[1,3,8],"tags":[169,164,166],"class_list":["post-5044","post","type-post","status-publish","format-standard","hentry","category-business","category-casual","category-ubuntu","tag-bluetooth","tag-dell","tag-linux"],"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.foell.org\/justin\/wp-json\/wp\/v2\/posts\/5044","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.foell.org\/justin\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.foell.org\/justin\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.foell.org\/justin\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.foell.org\/justin\/wp-json\/wp\/v2\/comments?post=5044"}],"version-history":[{"count":7,"href":"https:\/\/www.foell.org\/justin\/wp-json\/wp\/v2\/posts\/5044\/revisions"}],"predecessor-version":[{"id":5072,"href":"https:\/\/www.foell.org\/justin\/wp-json\/wp\/v2\/posts\/5044\/revisions\/5072"}],"wp:attachment":[{"href":"https:\/\/www.foell.org\/justin\/wp-json\/wp\/v2\/media?parent=5044"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.foell.org\/justin\/wp-json\/wp\/v2\/categories?post=5044"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.foell.org\/justin\/wp-json\/wp\/v2\/tags?post=5044"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}