{"id":2007,"date":"2020-10-02T07:28:43","date_gmt":"2020-10-02T05:28:43","guid":{"rendered":"https:\/\/www.pschatzmann.ch\/home\/?p=2007"},"modified":"2024-03-21T08:01:53","modified_gmt":"2024-03-21T07:01:53","slug":"the-synthesis-toolkit-skt-library-for-the-arduino-esp32-bluetooth-support","status":"publish","type":"post","link":"https:\/\/www.pschatzmann.ch\/home\/2020\/10\/02\/the-synthesis-toolkit-skt-library-for-the-arduino-esp32-bluetooth-support\/","title":{"rendered":"The Synthesis ToolKit (STK) Library for the Arduino ESP32 \u2013 Bluetooth Support"},"content":{"rendered":"<p>I made the <strong><a href=\"https:\/\/ccrma.stanford.edu\/software\/stk\/fundamentals.html\">Synthesis ToolKit (SKT)<\/a><\/strong> available as <a href=\"https:\/\/github.com\/pschatzmann\/Arduino-STK\"><strong>Arduino Library<\/strong><\/a>.<\/p>\n<p>The Synthesis ToolKit in C++ (STK) is a set of open source <strong>audio signal processing and algorithmic synthesis<\/strong> classes written in the C++ programming language. STK was designed to facilitate rapid development of music synthesis and audio processing software, with an emphasis on cross-platform functionality, realtime control, ease of use, and educational example code.<\/p>\n<p>I have demonstrated the <strong>MIDI Bluetooth<\/strong> functionality where we can receive MIDI messages over BLE in <a href=\"https:\/\/www.pschatzmann.ch\/home\/2020\/09\/28\/the-synthesis-toolkit-skt-library-for-the-arduino-esp32-midi\/\">one of my last posts<\/a>. Today I will investigate if it is possible to combine this with the output of <strong>sound to Bluetooth with A2DP<\/strong> that I have demonstrated in my <a href=\"https:\/\/www.pschatzmann.ch\/home\/2020\/09\/24\/the-synthesis-toolkit-skt-library-for-the-arduino-esp32\/\">first post<\/a>.<\/p>\n<h2>The Challenge<\/h2>\n<p>So far I have never been using <strong>2 Bluetooth Server processes<\/strong> running <strong>in parallel<\/strong> on a ESP32 and this is exactly what we would need: The Bluetooth Sink is starting a Bluetooth Server process for sending sound data and the MIDI BLE Server is running in another process at the same time receiving MIDI messages over BLE.<\/p>\n<h2>Precondition<\/h2>\n<p>The functionality is working on a ESP32: I used a Node MCU ESP32 Development Board.<br \/>\nMake sure that you have the latest versions of following libraries installed<br \/>\n&#8211; <a href=\"https:\/\/github.com\/pschatzmann\/Arduino-STK.git\">Arduino-STK<\/a><br \/>\n&#8211; <a href=\"https:\/\/github.com\/pschatzmann\/ESP32-A2DP.git\">ESP32-A2DP<\/a><br \/>\n&#8211; <a href=\"https:\/\/github.com\/pschatzmann\/arduino-midi.git\">arduino-midi<\/a><\/p>\n<h2>The Sketch<\/h2>\n<p>We receive MIDI messages via BLE, convert them to sound and send the output to the Bluetooth Sink (e.g. Bluetooth loudspeakers).<\/p>\n<p>The sketch is surprisingly short:<\/p>\n<pre><code>#include \"StkAll.h\"\n\nClarinet clarinet(440);\nVoicer voicer;\nArdMidiBleServer midi(\"MidiServer\");\nArdBtSource btSource;\n\nvoid setup() {\n  Serial.begin(115200);\n  Stk::setSampleRate( 44100.0 );\n  voicer.addInstrument(&amp;clarinet, 0);\n\n  midi.start(voicer);\n\n  btSource.setNVSInit(false);\n  btSource.setResetBLE(false);\n  btSource.start(\"RadioPlayer\", voicer);\n}\n\nvoid loop() {\n}\n\n<\/code><\/pre>\n<p>The Voicer is used to communicate between the two processes. It is used to handle the MIDI input by the ArdMidiBleServer and in the ArdBtSource it is used to get and process the sound data.<\/p>\n<p>The startup logic of the ArdMidiBleServer and the ArdBtSource were indeed not compatible. Therfore I added some switches so that we can deactivate the disturbing functionality: setNVSInit(false) is makeing sure that we do not reset the NVS and setResetBLE(false) is making sure that we do not deactivate the BLE MIDI functionality that we have just started before&#8230;<\/p>\n<p>If you get <strong>compile errors<\/strong> you need to uncomment the <strong>#define __BT_A2DP<\/strong> in ArdConfig.h__!<\/p>\n<h2>The Testing Environment<\/h2>\n<p>I thought that it might be helpful to know how I tested this functionality on my old McBook Air.<\/p>\n<p>Unfortunately my old hardware does not show any BLE devices in the list of Bluetooth devices. I installed <a href=\"https:\/\/apps.apple.com\/us\/app\/bluesee-ble-debugger\/id1336679524?mt=12\">BlueSee<\/a> where they are showing up properly and it is possible to connect from there!<\/p>\n<p>In order to generate the Midi Messages I used <a href=\"https:\/\/apps.apple.com\/us\/app\/pocket-midi\/id1260936756?mt=12\">Pocket MIDI<\/a> which is the perfect tool to use if you want to monitor inbound MIDI messages and generate MIDI message for any selected output device. Both are available for free in the <a href=\"https:\/\/www.apple.com\/app-store\/\">Apple App Store<\/a>.<\/p>\n<h2>Conclusion<\/h2>\n<p>I think it is pretty <strong>impressive<\/strong> that it is possible to define a synthesizer that receives MIDI messages via BLE and sends the output to a Bluetooth Speaker in just with a few lines of code on a cheap 5 USD device&#8230;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I made the Synthesis ToolKit (SKT) available as Arduino Library. The Synthesis ToolKit in C++ (STK) is a set of open source audio signal processing and algorithmic synthesis classes written in the C++ programming language. STK was designed to facilitate rapid development of music synthesis and audio processing software, with [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":1949,"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":[20,22],"tags":[46,34,26],"class_list":["post-2007","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arduino","category-machine-sound","tag-communications","tag-stk","tag-synthesizer"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>The Synthesis ToolKit (STK) Library for the Arduino ESP32 \u2013 Bluetooth Support - 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\/02\/the-synthesis-toolkit-skt-library-for-the-arduino-esp32-bluetooth-support\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"The Synthesis ToolKit (STK) Library for the Arduino ESP32 \u2013 Bluetooth Support - Phil Schatzmann\" \/>\n<meta property=\"og:description\" content=\"I made the Synthesis ToolKit (SKT) available as Arduino Library. The Synthesis ToolKit in C++ (STK) is a set of open source audio signal processing and algorithmic synthesis classes written in the C++ programming language. STK was designed to facilitate rapid development of music synthesis and audio processing software, with [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.pschatzmann.ch\/home\/2020\/10\/02\/the-synthesis-toolkit-skt-library-for-the-arduino-esp32-bluetooth-support\/\" \/>\n<meta property=\"og:site_name\" content=\"Phil Schatzmann\" \/>\n<meta property=\"article:published_time\" content=\"2020-10-02T05:28:43+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-03-21T07:01:53+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.pschatzmann.ch\/wp-content\/uploads\/2020\/09\/BLE.png\" \/>\n\t<meta property=\"og:image:width\" content=\"337\" \/>\n\t<meta property=\"og:image:height\" content=\"149\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\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=\"3 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\\\/02\\\/the-synthesis-toolkit-skt-library-for-the-arduino-esp32-bluetooth-support\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/2020\\\/10\\\/02\\\/the-synthesis-toolkit-skt-library-for-the-arduino-esp32-bluetooth-support\\\/\"},\"author\":{\"name\":\"pschatzmann\",\"@id\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/#\\\/schema\\\/person\\\/73a53638a4e34e8373405fd737dac9b1\"},\"headline\":\"The Synthesis ToolKit (STK) Library for the Arduino ESP32 \u2013 Bluetooth Support\",\"datePublished\":\"2020-10-02T05:28:43+00:00\",\"dateModified\":\"2024-03-21T07:01:53+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/2020\\\/10\\\/02\\\/the-synthesis-toolkit-skt-library-for-the-arduino-esp32-bluetooth-support\\\/\"},\"wordCount\":501,\"commentCount\":1,\"publisher\":{\"@id\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/#\\\/schema\\\/person\\\/73a53638a4e34e8373405fd737dac9b1\"},\"image\":{\"@id\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/2020\\\/10\\\/02\\\/the-synthesis-toolkit-skt-library-for-the-arduino-esp32-bluetooth-support\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.pschatzmann.ch\\\/wp-content\\\/uploads\\\/2020\\\/09\\\/BLE.png\",\"keywords\":[\"Communications\",\"STK\",\"Synthesizer\"],\"articleSection\":[\"Arduino\",\"Machine Sound\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/2020\\\/10\\\/02\\\/the-synthesis-toolkit-skt-library-for-the-arduino-esp32-bluetooth-support\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/2020\\\/10\\\/02\\\/the-synthesis-toolkit-skt-library-for-the-arduino-esp32-bluetooth-support\\\/\",\"url\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/2020\\\/10\\\/02\\\/the-synthesis-toolkit-skt-library-for-the-arduino-esp32-bluetooth-support\\\/\",\"name\":\"The Synthesis ToolKit (STK) Library for the Arduino ESP32 \u2013 Bluetooth Support - Phil Schatzmann\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/2020\\\/10\\\/02\\\/the-synthesis-toolkit-skt-library-for-the-arduino-esp32-bluetooth-support\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/2020\\\/10\\\/02\\\/the-synthesis-toolkit-skt-library-for-the-arduino-esp32-bluetooth-support\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.pschatzmann.ch\\\/wp-content\\\/uploads\\\/2020\\\/09\\\/BLE.png\",\"datePublished\":\"2020-10-02T05:28:43+00:00\",\"dateModified\":\"2024-03-21T07:01:53+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/2020\\\/10\\\/02\\\/the-synthesis-toolkit-skt-library-for-the-arduino-esp32-bluetooth-support\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/2020\\\/10\\\/02\\\/the-synthesis-toolkit-skt-library-for-the-arduino-esp32-bluetooth-support\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/2020\\\/10\\\/02\\\/the-synthesis-toolkit-skt-library-for-the-arduino-esp32-bluetooth-support\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.pschatzmann.ch\\\/wp-content\\\/uploads\\\/2020\\\/09\\\/BLE.png\",\"contentUrl\":\"https:\\\/\\\/www.pschatzmann.ch\\\/wp-content\\\/uploads\\\/2020\\\/09\\\/BLE.png\",\"width\":337,\"height\":149},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/2020\\\/10\\\/02\\\/the-synthesis-toolkit-skt-library-for-the-arduino-esp32-bluetooth-support\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.pschatzmann.ch\\\/home\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"The Synthesis ToolKit (STK) Library for the Arduino ESP32 \u2013 Bluetooth Support\"}]},{\"@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":"The Synthesis ToolKit (STK) Library for the Arduino ESP32 \u2013 Bluetooth Support - 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\/02\/the-synthesis-toolkit-skt-library-for-the-arduino-esp32-bluetooth-support\/","og_locale":"en_US","og_type":"article","og_title":"The Synthesis ToolKit (STK) Library for the Arduino ESP32 \u2013 Bluetooth Support - Phil Schatzmann","og_description":"I made the Synthesis ToolKit (SKT) available as Arduino Library. The Synthesis ToolKit in C++ (STK) is a set of open source audio signal processing and algorithmic synthesis classes written in the C++ programming language. STK was designed to facilitate rapid development of music synthesis and audio processing software, with [&hellip;]","og_url":"https:\/\/www.pschatzmann.ch\/home\/2020\/10\/02\/the-synthesis-toolkit-skt-library-for-the-arduino-esp32-bluetooth-support\/","og_site_name":"Phil Schatzmann","article_published_time":"2020-10-02T05:28:43+00:00","article_modified_time":"2024-03-21T07:01:53+00:00","og_image":[{"width":337,"height":149,"url":"https:\/\/www.pschatzmann.ch\/wp-content\/uploads\/2020\/09\/BLE.png","type":"image\/png"}],"author":"pschatzmann","twitter_card":"summary_large_image","twitter_misc":{"Written by":"pschatzmann","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.pschatzmann.ch\/home\/2020\/10\/02\/the-synthesis-toolkit-skt-library-for-the-arduino-esp32-bluetooth-support\/#article","isPartOf":{"@id":"https:\/\/www.pschatzmann.ch\/home\/2020\/10\/02\/the-synthesis-toolkit-skt-library-for-the-arduino-esp32-bluetooth-support\/"},"author":{"name":"pschatzmann","@id":"https:\/\/www.pschatzmann.ch\/home\/#\/schema\/person\/73a53638a4e34e8373405fd737dac9b1"},"headline":"The Synthesis ToolKit (STK) Library for the Arduino ESP32 \u2013 Bluetooth Support","datePublished":"2020-10-02T05:28:43+00:00","dateModified":"2024-03-21T07:01:53+00:00","mainEntityOfPage":{"@id":"https:\/\/www.pschatzmann.ch\/home\/2020\/10\/02\/the-synthesis-toolkit-skt-library-for-the-arduino-esp32-bluetooth-support\/"},"wordCount":501,"commentCount":1,"publisher":{"@id":"https:\/\/www.pschatzmann.ch\/home\/#\/schema\/person\/73a53638a4e34e8373405fd737dac9b1"},"image":{"@id":"https:\/\/www.pschatzmann.ch\/home\/2020\/10\/02\/the-synthesis-toolkit-skt-library-for-the-arduino-esp32-bluetooth-support\/#primaryimage"},"thumbnailUrl":"https:\/\/www.pschatzmann.ch\/wp-content\/uploads\/2020\/09\/BLE.png","keywords":["Communications","STK","Synthesizer"],"articleSection":["Arduino","Machine Sound"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.pschatzmann.ch\/home\/2020\/10\/02\/the-synthesis-toolkit-skt-library-for-the-arduino-esp32-bluetooth-support\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.pschatzmann.ch\/home\/2020\/10\/02\/the-synthesis-toolkit-skt-library-for-the-arduino-esp32-bluetooth-support\/","url":"https:\/\/www.pschatzmann.ch\/home\/2020\/10\/02\/the-synthesis-toolkit-skt-library-for-the-arduino-esp32-bluetooth-support\/","name":"The Synthesis ToolKit (STK) Library for the Arduino ESP32 \u2013 Bluetooth Support - Phil Schatzmann","isPartOf":{"@id":"https:\/\/www.pschatzmann.ch\/home\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.pschatzmann.ch\/home\/2020\/10\/02\/the-synthesis-toolkit-skt-library-for-the-arduino-esp32-bluetooth-support\/#primaryimage"},"image":{"@id":"https:\/\/www.pschatzmann.ch\/home\/2020\/10\/02\/the-synthesis-toolkit-skt-library-for-the-arduino-esp32-bluetooth-support\/#primaryimage"},"thumbnailUrl":"https:\/\/www.pschatzmann.ch\/wp-content\/uploads\/2020\/09\/BLE.png","datePublished":"2020-10-02T05:28:43+00:00","dateModified":"2024-03-21T07:01:53+00:00","breadcrumb":{"@id":"https:\/\/www.pschatzmann.ch\/home\/2020\/10\/02\/the-synthesis-toolkit-skt-library-for-the-arduino-esp32-bluetooth-support\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.pschatzmann.ch\/home\/2020\/10\/02\/the-synthesis-toolkit-skt-library-for-the-arduino-esp32-bluetooth-support\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.pschatzmann.ch\/home\/2020\/10\/02\/the-synthesis-toolkit-skt-library-for-the-arduino-esp32-bluetooth-support\/#primaryimage","url":"https:\/\/www.pschatzmann.ch\/wp-content\/uploads\/2020\/09\/BLE.png","contentUrl":"https:\/\/www.pschatzmann.ch\/wp-content\/uploads\/2020\/09\/BLE.png","width":337,"height":149},{"@type":"BreadcrumbList","@id":"https:\/\/www.pschatzmann.ch\/home\/2020\/10\/02\/the-synthesis-toolkit-skt-library-for-the-arduino-esp32-bluetooth-support\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.pschatzmann.ch\/home\/"},{"@type":"ListItem","position":2,"name":"The Synthesis ToolKit (STK) Library for the Arduino ESP32 \u2013 Bluetooth Support"}]},{"@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\/2007","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=2007"}],"version-history":[{"count":25,"href":"https:\/\/www.pschatzmann.ch\/home\/wp-json\/wp\/v2\/posts\/2007\/revisions"}],"predecessor-version":[{"id":4289,"href":"https:\/\/www.pschatzmann.ch\/home\/wp-json\/wp\/v2\/posts\/2007\/revisions\/4289"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.pschatzmann.ch\/home\/wp-json\/wp\/v2\/media\/1949"}],"wp:attachment":[{"href":"https:\/\/www.pschatzmann.ch\/home\/wp-json\/wp\/v2\/media?parent=2007"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.pschatzmann.ch\/home\/wp-json\/wp\/v2\/categories?post=2007"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.pschatzmann.ch\/home\/wp-json\/wp\/v2\/tags?post=2007"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}