{"id":2054,"date":"2020-10-06T19:34:55","date_gmt":"2020-10-06T17:34:55","guid":{"rendered":"https:\/\/www.pschatzmann.ch\/home\/?p=2054"},"modified":"2021-12-07T19:37:34","modified_gmt":"2021-12-07T18:37:34","slug":"raspberry-pi-zero-as-a2dp-source-for-a-synthesizer","status":"publish","type":"post","link":"https:\/\/www.pschatzmann.ch\/home\/2020\/10\/06\/raspberry-pi-zero-as-a2dp-source-for-a-synthesizer\/","title":{"rendered":"Playing a Synthesizer  to a Bluetooth Speaker using a Raspberry PI Zero"},"content":{"rendered":"<p>I was asking myself if I can use a <strong>headless Raspberry PI Zero<\/strong> together with a <strong>MIDI keyboard<\/strong> as simple <strong>Synthesizer<\/strong> which sends the sound via A2DP to a <strong>Bluetooth Speaker<\/strong>. So technically speaking I wanted to set up my PI as a2dp source.<\/p>\n<h2>Installation<\/h2>\n<p>Initially I tried to do the setup with <strong>Pulseaudio<\/strong>. However it seems that there are plenty of issues with this option, so I decided to use <strong>ALSA<\/strong> instead and removed Pulseaudio again! I also added the fluidsynth synthesizer in order that I have a MIDI output device available:<\/p>\n<pre><code>sudo apt remove pulseaudio pulseaudio-module-bluetooth\nsudo apt install bluealsa fluidsynth\n<\/code><\/pre>\n<p>We add the <strong>user pi<\/strong> to the bluetooth user group so that he can execute <em>bluetoothctl<\/em> w\/o sudo:<\/p>\n<pre><code>sudo usermod -a -G bluetooth pi\n<\/code><\/pre>\n<h2>Services<\/h2>\n<p>We need to extend the <strong>bluealsa<\/strong> to support a2dp<\/p>\n<pre><code>sudo nano \/lib\/systemd\/system\/bluealsa.service\n<\/code><\/pre>\n<p>We change the ExecStart command:<\/p>\n<pre><code>ExecStart=\/usr\/bin\/bluealsa -p a2dp-sink -p a2dp-source\n<\/code><\/pre>\n<p>We also might need to disable the sap plugin in the <strong>bluetooth<\/strong> service. (check with systemctl status bluetooth if you get any errors):<\/p>\n<pre><code>sudo nano \/lib\/systemd\/system\/bluetooth.service\n<\/code><\/pre>\n<p>We change the ExecStart command:<\/p>\n<pre><code>ExecStart=\/usr\/lib\/bluetooth\/bluetoothd --noplugin=sap\n<\/code><\/pre>\n<p>After restarting, the following services should be working properly:<\/p>\n<pre><code>systemctl status bluealsa\n\u25cf bluealsa.service - BluezALSA proxy\n   Loaded: loaded (\/lib\/systemd\/system\/bluealsa.service; static; vendor preset: enabled)\n   Active: active (running) since Tue 2020-10-06 19:06:18 BST; 16s ago\n Main PID: 393 (bluealsa)\n   CGroup: \/system.slice\/bluealsa.service\n           \u2514\u2500393 \/usr\/bin\/bluealsa -p a2dp-sink -p a2dp-source\n\n\nsystemctl status bluetooth\n\u25cf bluetooth.service - Bluetooth service\n   Loaded: loaded (\/lib\/systemd\/system\/bluetooth.service; enabled; vendor preset: enabled)\n   Active: active (running) since Tue 2020-10-06 19:59:18 BST; 6s ago\n     Docs: man:bluetoothd(8)\n Main PID: 528 (bluetoothd)\n   Status: \"Running\"\n   CGroup: \/system.slice\/bluetooth.service\n           \u2514\u2500528 \/usr\/lib\/bluetooth\/bluetoothd --noplugin=sap\n\n<\/code><\/pre>\n<p>Now we can try to connect to the bluetooth sink (e.g. Bluetooth Speaker) using the bluetoothctl command. If the user is not part of the bluetooth group you will need to use sudo.<\/p>\n<pre><code>bluetoothctl\nAgent registered\n\nscan on\n[CHG] Controller B8:27:EB:D2:72:43 Discovering: yes\n[CHG] Device 24:6F:28:AF:54:76 RSSI: -70\nscan off\n\npair 24:6F:28:AF:54:76\n...\ntrust 24:6F:28:AF:54:76\nChanging 24:6F:28:AF:54:76 trust succeeded\n\nconnect 24:6F:28:AF:54:76\n[CHG] Device 24:6F:28:AF:54:76 Connected: yes\nConnection successful\n[CHG] Device 24:6F:28:AF:54:76 ServicesResolved: yes\n<\/code><\/pre>\n<h2>Configuration<\/h2>\n<p>In order for the <strong>output<\/strong> to work we need to have the following content in the <em>.asoundrc<\/em> configuration file:<\/p>\n<pre><code>pcm.btspeaker {\n  type plug\n  slave.pcm {\n    type bluealsa\n    device \"24:6F:28:AF:54:76\"\n    profile \"a2dp\"\n  }\n\n  hint {\n    show on\n    description \"RadioPlayer\"\n  }\n}\n\npcm.!default pcm.btspeaker\n<\/code><\/pre>\n<p>The last line is defining the default output, which points to the btspeaker.<\/p>\n<p>We can test the speaker by playing a wav file<\/p>\n<pre><code>aplay -D btspeaker test.wav\n<\/code><\/pre>\n<p>Since we also have defined the default, the following should work as well:<\/p>\n<pre><code>aplay test.wav\n<\/code><\/pre>\n<h2>The Synthesizer<\/h2>\n<p><strong>FluidSynth<\/strong> is a real-time software synthesizer based on the SoundFont 2 specifications.<br \/>\nWe should now also be able to play a midi file using fluidsynth. First we play the test.mid MIDI file using the FluidR3_GM.sf2 soundfont file:<\/p>\n<pre><code>fluidsynth -a alsa  \/usr\/share\/sounds\/sf2\/FluidR3_GM.sf2 test.mid\n<\/code><\/pre>\n<p>Finally we are ready to start fluidsynth w\/o any file input:<\/p>\n<pre><code>fluidsynth -a alsa  \/usr\/share\/sounds\/sf2\/FluidR3_GM.sf2 --server\n<\/code><\/pre>\n<h2>Connecting to the MIDI keyboard<\/h2>\n<p>The aconnect command provides a list of MIDI devices:<\/p>\n<pre><code>aconnect -i -o\nclient 0: 'System' [type=kernel]\n    0 'Timer           '\n    1 'Announce        '\nclient 14: 'Midi Through' [type=kernel]\n    0 'Midi Through Port-0'\nclient 20: 'Q61' [type=kernel,card=1]\n    0 'Q61 MIDI 1      '\nclient 128: 'FLUID Synth (1271)' [type=user,pid=1271]\n    0 'Synth input port (1271:0)'\n\n<\/code><\/pre>\n<p>We want to connect the Q61 Keyboard to the fluidsynth MIDI input:<\/p>\n<pre><code>aconnect 20:0 128:0\n<\/code><\/pre>\n<p>Now the MIDI keyboard has been connected to the synthesizer and if we use the keyboard, the selected MIDI instrument is played to the Bluetooth speaker&#8230;<\/p>\n<h2>Summary<\/h2>\n<p>There are quite a few steps to have this scenario working. Unfortunately the <strong>lag<\/strong> between a keypress and the related sound on the speaker is a round 1 sec which is <strong>too much to be useful<\/strong> as a music instrument.<\/p>\n<p>The PI Zero as a sound device however still might be a good solution if you use it e.g. as file based music player &#8211; where the lag is not disturbing or if you replace the Bluetooth output with some additional hardware:<\/p>\n<ul>\n<li>A sound HAT (15 &#8211; 20 USD) or<\/li>\n<li>a I2S Sound Module (5 &#8211; 10 USD) or<\/li>\n<li>USB based Sound Card (1-10 USD)<\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>I was asking myself if I can use a headless Raspberry PI Zero together with a MIDI keyboard as simple Synthesizer which sends the sound via A2DP to a Bluetooth Speaker. So technically speaking I wanted to set up my PI as a2dp source. Installation Initially I tried to do [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":2067,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_crdt_document":"","_import_markdown_pro_load_document_selector":0,"_import_markdown_pro_submit_text_textarea":"","_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0,"footnotes":""},"categories":[22],"tags":[26],"class_list":["post-2054","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-machine-sound","tag-synthesizer"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Playing a Synthesizer to a Bluetooth Speaker using a Raspberry PI Zero - Phil Schatzmann<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.pschatzmann.ch\/home\/2020\/10\/06\/raspberry-pi-zero-as-a2dp-source-for-a-synthesizer\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Playing a Synthesizer to a Bluetooth Speaker using a Raspberry PI Zero - Phil Schatzmann\" \/>\n<meta property=\"og:description\" content=\"I was asking myself if I can use a headless Raspberry PI Zero together with a MIDI keyboard as simple Synthesizer which sends the sound via A2DP to a Bluetooth Speaker. So technically speaking I wanted to set up my PI as a2dp source. Installation Initially I tried to do [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.pschatzmann.ch\/home\/2020\/10\/06\/raspberry-pi-zero-as-a2dp-source-for-a-synthesizer\/\" \/>\n<meta property=\"og:site_name\" content=\"Phil Schatzmann\" \/>\n<meta property=\"article:published_time\" content=\"2020-10-06T17:34:55+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-12-07T18:37:34+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.pschatzmann.ch\/wp-content\/uploads\/2020\/10\/pizero.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"800\" \/>\n\t<meta property=\"og:image:height\" content=\"600\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"pschatzmann\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"pschatzmann\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/2020\\\/10\\\/06\\\/raspberry-pi-zero-as-a2dp-source-for-a-synthesizer\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/2020\\\/10\\\/06\\\/raspberry-pi-zero-as-a2dp-source-for-a-synthesizer\\\/\"},\"author\":{\"name\":\"pschatzmann\",\"@id\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/#\\\/schema\\\/person\\\/73a53638a4e34e8373405fd737dac9b1\"},\"headline\":\"Playing a Synthesizer to a Bluetooth Speaker using a Raspberry PI Zero\",\"datePublished\":\"2020-10-06T17:34:55+00:00\",\"dateModified\":\"2021-12-07T18:37:34+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/2020\\\/10\\\/06\\\/raspberry-pi-zero-as-a2dp-source-for-a-synthesizer\\\/\"},\"wordCount\":477,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/#\\\/schema\\\/person\\\/73a53638a4e34e8373405fd737dac9b1\"},\"image\":{\"@id\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/2020\\\/10\\\/06\\\/raspberry-pi-zero-as-a2dp-source-for-a-synthesizer\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.pschatzmann.ch\\\/wp-content\\\/uploads\\\/2020\\\/10\\\/pizero.jpg\",\"keywords\":[\"Synthesizer\"],\"articleSection\":[\"Machine Sound\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/2020\\\/10\\\/06\\\/raspberry-pi-zero-as-a2dp-source-for-a-synthesizer\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/2020\\\/10\\\/06\\\/raspberry-pi-zero-as-a2dp-source-for-a-synthesizer\\\/\",\"url\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/2020\\\/10\\\/06\\\/raspberry-pi-zero-as-a2dp-source-for-a-synthesizer\\\/\",\"name\":\"Playing a Synthesizer to a Bluetooth Speaker using a Raspberry PI Zero - Phil Schatzmann\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/2020\\\/10\\\/06\\\/raspberry-pi-zero-as-a2dp-source-for-a-synthesizer\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/2020\\\/10\\\/06\\\/raspberry-pi-zero-as-a2dp-source-for-a-synthesizer\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.pschatzmann.ch\\\/wp-content\\\/uploads\\\/2020\\\/10\\\/pizero.jpg\",\"datePublished\":\"2020-10-06T17:34:55+00:00\",\"dateModified\":\"2021-12-07T18:37:34+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/2020\\\/10\\\/06\\\/raspberry-pi-zero-as-a2dp-source-for-a-synthesizer\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/2020\\\/10\\\/06\\\/raspberry-pi-zero-as-a2dp-source-for-a-synthesizer\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/2020\\\/10\\\/06\\\/raspberry-pi-zero-as-a2dp-source-for-a-synthesizer\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.pschatzmann.ch\\\/wp-content\\\/uploads\\\/2020\\\/10\\\/pizero.jpg\",\"contentUrl\":\"https:\\\/\\\/www.pschatzmann.ch\\\/wp-content\\\/uploads\\\/2020\\\/10\\\/pizero.jpg\",\"width\":800,\"height\":600},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/2020\\\/10\\\/06\\\/raspberry-pi-zero-as-a2dp-source-for-a-synthesizer\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Playing a Synthesizer to a Bluetooth Speaker using a Raspberry PI Zero\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/#website\",\"url\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/\",\"name\":\"Phil Schatzmann Consulting\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/#\\\/schema\\\/person\\\/73a53638a4e34e8373405fd737dac9b1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/#\\\/schema\\\/person\\\/73a53638a4e34e8373405fd737dac9b1\",\"name\":\"pschatzmann\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.pschatzmann.ch\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/pschatzmann.png\",\"url\":\"https:\\\/\\\/www.pschatzmann.ch\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/pschatzmann.png\",\"contentUrl\":\"https:\\\/\\\/www.pschatzmann.ch\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/pschatzmann.png\",\"width\":305,\"height\":305,\"caption\":\"pschatzmann\"},\"logo\":{\"@id\":\"https:\\\/\\\/www.pschatzmann.ch\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/pschatzmann.png\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Playing a Synthesizer to a Bluetooth Speaker using a Raspberry PI Zero - Phil Schatzmann","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:\/\/www.pschatzmann.ch\/home\/2020\/10\/06\/raspberry-pi-zero-as-a2dp-source-for-a-synthesizer\/","og_locale":"en_US","og_type":"article","og_title":"Playing a Synthesizer to a Bluetooth Speaker using a Raspberry PI Zero - Phil Schatzmann","og_description":"I was asking myself if I can use a headless Raspberry PI Zero together with a MIDI keyboard as simple Synthesizer which sends the sound via A2DP to a Bluetooth Speaker. So technically speaking I wanted to set up my PI as a2dp source. Installation Initially I tried to do [&hellip;]","og_url":"https:\/\/www.pschatzmann.ch\/home\/2020\/10\/06\/raspberry-pi-zero-as-a2dp-source-for-a-synthesizer\/","og_site_name":"Phil Schatzmann","article_published_time":"2020-10-06T17:34:55+00:00","article_modified_time":"2021-12-07T18:37:34+00:00","og_image":[{"width":800,"height":600,"url":"https:\/\/www.pschatzmann.ch\/wp-content\/uploads\/2020\/10\/pizero.jpg","type":"image\/jpeg"}],"author":"pschatzmann","twitter_card":"summary_large_image","twitter_misc":{"Written by":"pschatzmann","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.pschatzmann.ch\/home\/2020\/10\/06\/raspberry-pi-zero-as-a2dp-source-for-a-synthesizer\/#article","isPartOf":{"@id":"https:\/\/www.pschatzmann.ch\/home\/2020\/10\/06\/raspberry-pi-zero-as-a2dp-source-for-a-synthesizer\/"},"author":{"name":"pschatzmann","@id":"https:\/\/www.pschatzmann.ch\/home\/#\/schema\/person\/73a53638a4e34e8373405fd737dac9b1"},"headline":"Playing a Synthesizer to a Bluetooth Speaker using a Raspberry PI Zero","datePublished":"2020-10-06T17:34:55+00:00","dateModified":"2021-12-07T18:37:34+00:00","mainEntityOfPage":{"@id":"https:\/\/www.pschatzmann.ch\/home\/2020\/10\/06\/raspberry-pi-zero-as-a2dp-source-for-a-synthesizer\/"},"wordCount":477,"commentCount":1,"publisher":{"@id":"https:\/\/www.pschatzmann.ch\/home\/#\/schema\/person\/73a53638a4e34e8373405fd737dac9b1"},"image":{"@id":"https:\/\/www.pschatzmann.ch\/home\/2020\/10\/06\/raspberry-pi-zero-as-a2dp-source-for-a-synthesizer\/#primaryimage"},"thumbnailUrl":"https:\/\/www.pschatzmann.ch\/wp-content\/uploads\/2020\/10\/pizero.jpg","keywords":["Synthesizer"],"articleSection":["Machine Sound"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.pschatzmann.ch\/home\/2020\/10\/06\/raspberry-pi-zero-as-a2dp-source-for-a-synthesizer\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.pschatzmann.ch\/home\/2020\/10\/06\/raspberry-pi-zero-as-a2dp-source-for-a-synthesizer\/","url":"https:\/\/www.pschatzmann.ch\/home\/2020\/10\/06\/raspberry-pi-zero-as-a2dp-source-for-a-synthesizer\/","name":"Playing a Synthesizer to a Bluetooth Speaker using a Raspberry PI Zero - Phil Schatzmann","isPartOf":{"@id":"https:\/\/www.pschatzmann.ch\/home\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.pschatzmann.ch\/home\/2020\/10\/06\/raspberry-pi-zero-as-a2dp-source-for-a-synthesizer\/#primaryimage"},"image":{"@id":"https:\/\/www.pschatzmann.ch\/home\/2020\/10\/06\/raspberry-pi-zero-as-a2dp-source-for-a-synthesizer\/#primaryimage"},"thumbnailUrl":"https:\/\/www.pschatzmann.ch\/wp-content\/uploads\/2020\/10\/pizero.jpg","datePublished":"2020-10-06T17:34:55+00:00","dateModified":"2021-12-07T18:37:34+00:00","breadcrumb":{"@id":"https:\/\/www.pschatzmann.ch\/home\/2020\/10\/06\/raspberry-pi-zero-as-a2dp-source-for-a-synthesizer\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.pschatzmann.ch\/home\/2020\/10\/06\/raspberry-pi-zero-as-a2dp-source-for-a-synthesizer\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.pschatzmann.ch\/home\/2020\/10\/06\/raspberry-pi-zero-as-a2dp-source-for-a-synthesizer\/#primaryimage","url":"https:\/\/www.pschatzmann.ch\/wp-content\/uploads\/2020\/10\/pizero.jpg","contentUrl":"https:\/\/www.pschatzmann.ch\/wp-content\/uploads\/2020\/10\/pizero.jpg","width":800,"height":600},{"@type":"BreadcrumbList","@id":"https:\/\/www.pschatzmann.ch\/home\/2020\/10\/06\/raspberry-pi-zero-as-a2dp-source-for-a-synthesizer\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.pschatzmann.ch\/home\/"},{"@type":"ListItem","position":2,"name":"Playing a Synthesizer to a Bluetooth Speaker using a Raspberry PI Zero"}]},{"@type":"WebSite","@id":"https:\/\/www.pschatzmann.ch\/home\/#website","url":"https:\/\/www.pschatzmann.ch\/home\/","name":"Phil Schatzmann Consulting","description":"","publisher":{"@id":"https:\/\/www.pschatzmann.ch\/home\/#\/schema\/person\/73a53638a4e34e8373405fd737dac9b1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.pschatzmann.ch\/home\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/www.pschatzmann.ch\/home\/#\/schema\/person\/73a53638a4e34e8373405fd737dac9b1","name":"pschatzmann","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.pschatzmann.ch\/wp-content\/uploads\/2022\/08\/pschatzmann.png","url":"https:\/\/www.pschatzmann.ch\/wp-content\/uploads\/2022\/08\/pschatzmann.png","contentUrl":"https:\/\/www.pschatzmann.ch\/wp-content\/uploads\/2022\/08\/pschatzmann.png","width":305,"height":305,"caption":"pschatzmann"},"logo":{"@id":"https:\/\/www.pschatzmann.ch\/wp-content\/uploads\/2022\/08\/pschatzmann.png"}}]}},"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/www.pschatzmann.ch\/home\/wp-json\/wp\/v2\/posts\/2054","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.pschatzmann.ch\/home\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.pschatzmann.ch\/home\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.pschatzmann.ch\/home\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.pschatzmann.ch\/home\/wp-json\/wp\/v2\/comments?post=2054"}],"version-history":[{"count":48,"href":"https:\/\/www.pschatzmann.ch\/home\/wp-json\/wp\/v2\/posts\/2054\/revisions"}],"predecessor-version":[{"id":2104,"href":"https:\/\/www.pschatzmann.ch\/home\/wp-json\/wp\/v2\/posts\/2054\/revisions\/2104"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.pschatzmann.ch\/home\/wp-json\/wp\/v2\/media\/2067"}],"wp:attachment":[{"href":"https:\/\/www.pschatzmann.ch\/home\/wp-json\/wp\/v2\/media?parent=2054"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.pschatzmann.ch\/home\/wp-json\/wp\/v2\/categories?post=2054"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.pschatzmann.ch\/home\/wp-json\/wp\/v2\/tags?post=2054"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}