{"id":2926,"date":"2017-01-23T08:18:30","date_gmt":"2017-01-23T07:18:30","guid":{"rendered":"https:\/\/andyland.info\/wordpress\/?p=2926"},"modified":"2017-03-21T10:48:01","modified_gmt":"2017-03-21T09:48:01","slug":"smswall-sms-to-open-sound-control","status":"publish","type":"post","link":"https:\/\/andyland.info\/wordpress\/smswall-sms-to-open-sound-control\/","title":{"rendered":"SMSWall: SMS to Open Sound Control"},"content":{"rendered":"<p>Dieses Teil empf\u00e4ngt SMS und schickt sie als OSC-Daten weiter, damit sie von einer VJ-Software verarbeitet werden k\u00f6nnen.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignleft wp-image-2987 size-medium\" src=\"https:\/\/andyland.info\/wordpress\/wp-content\/uploads\/20170121_230524-300x169.jpg\" width=\"300\" height=\"169\" srcset=\"https:\/\/andyland.info\/wordpress\/wp-content\/uploads\/20170121_230524-300x169.jpg 300w, https:\/\/andyland.info\/wordpress\/wp-content\/uploads\/20170121_230524-768x432.jpg 768w, https:\/\/andyland.info\/wordpress\/wp-content\/uploads\/20170121_230524-250x141.jpg 250w, https:\/\/andyland.info\/wordpress\/wp-content\/uploads\/20170121_230524-150x84.jpg 150w, https:\/\/andyland.info\/wordpress\/wp-content\/uploads\/20170121_230524.jpg 800w\" sizes=\"auto, (max-width: 300px) 100vw, 300px\" \/><\/p>\n<p>Grobe Idee war es, bei \u00f6ffentlichen Veranstaltungen mehr Interaktion mit den Besuchern zu erm\u00f6glichen. Der ein oder andere kennt vielleicht die Twitter-Wall. Bei der Letzten Cool-Savas-Tour wurde das glaube ich eingesetzt.\u00a0Vor dem Gig war die B\u00fchne mit Stoff verhangen und ein Beamer hat Tweets, die unter einem bestimmten #Hashtag liefen, aus dem Internet gezogen und auf den Vorhang projiziert. Die Konzertbesucher konnten also irgendwas unter einem bestimmten Hashtag twittern und es wurde dann quasi-live angezeigt. Ansonsten findet man soetwas typischerweise auch bei irgendwelchen Web2.0-Konferenzen, etc. Sch\u00e4tze\u00a0\u00fcberall da,\u00a0wo man Sascha Lobo antrifft, steht auch eine Twitterwall.<\/p>\n<p><!--more--><\/p>\n<p>Absolut sinnlos, klar, aber\u00a0vielleicht ja f\u00fcr den Moment einfach\u00a0lustig, und das reicht ja schon, um es wenigstens mal zu versuchen.\u00a0Au\u00dferdem wollte ICH das einfach bauen. Ich h\u00e4tt&#8217;s eh gemacht.<\/p>\n<p>Twitter kann man machen, je nach Publikum und Veranstaltung ist\u00a0es\u00a0aber eben nicht\u00a0das Medium mit der gr\u00f6\u00dften Verbreitung. Au\u00dferdem gibt&#8217;s das ja schon.\u00a0SMS ist jetzt zwar auch nicht mehr der topaktuelle Bringer, aber zum Anfang ja nicht das Schlechteste. Au\u00dferdem hatten wir sofort eine 90er-Party im Kopf, als es darum ging, wo wir das ausprobieren und dort &#8230; naja,\u00a0besser geht&#8217;s ja nicht.<\/p>\n<p>Das Grundsystem besteht aus 2 Komponenten: Eine Hardware zum Empfang der SMS und eine nachgelagerte Software, die das Ganze weiter vergniesgnaddelt.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2963 alignleft\" src=\"https:\/\/andyland.info\/wordpress\/wp-content\/uploads\/image005.jpg\" alt=\"\" width=\"596\" height=\"342\" srcset=\"https:\/\/andyland.info\/wordpress\/wp-content\/uploads\/image005.jpg 596w, https:\/\/andyland.info\/wordpress\/wp-content\/uploads\/image005-300x172.jpg 300w, https:\/\/andyland.info\/wordpress\/wp-content\/uploads\/image005-250x143.jpg 250w, https:\/\/andyland.info\/wordpress\/wp-content\/uploads\/image005-150x86.jpg 150w\" sizes=\"auto, (max-width: 596px) 100vw, 596px\" \/><\/p>\n<p>Die Hardware\u00a0ist ein Arduino mit GSM Shield und Prepaid SIM (Lycamobile, vom Mobilfunkbilligh\u00f6ker um&#8217;s Eck).\u00a0Die Textdaten der eingegangenen SMS\u00a0werden\u00a0per serieller Schnittstelle an die Software \u00fcbertragen. Bei den verwendeten Libraries f\u00fcr die Arduino Firmware\u00a0musste getrickst werden. Die Arduino-Standard-GSM-Library hat in Verbindung mit dem verwendeten Shield das Problem, dass SMS mit Leerzeichen am Ende nicht richtig verarbeitet werden. Ich bin daher kurzfristig auf die ITead Library umgestiegen. Damit tritt das Problem auf, dass jedem &#8216;w&#8217; ein Steuerzeichen angeh\u00e4ngt wird. Au\u00dferdem ist in bestimmten Situationen der verwendete Textpuffer zu klein, sodass man in der Library noch Anpassungen vornehmen muss.<\/p>\n<p>In der Software\u00a0passiert dann nochmal etwas mehr. Die Texte werden zuerst formattiert &#8211;\u00a0je nach Absender und Inhalt l\u00e4uft man hier bereits vor\u00a0eine\u00a0Wand. Wenn man mit einem aktuellen Smartphone einen Smiley als SMS verschickt, ist das n\u00e4mlich oft eben nicht der ber\u00fchmte &#8220;Semikolon Minus Klammer&#8221;, sondern eine Buchstabenkombi, die man herausfiltern muss. Stichwort PDU-Mode. [Update]Das war nat\u00fcrlich nur so halbrichtig. Tats\u00e4chlich\u00a0gibt es eine Unicode-Konvention f\u00fcr Emojis. Muss man wissen. Ich bin \u00fcber das aktuelle <a href=\"https:\/\/imgs.xkcd.com\/comics\/vomiting_emoji.png\">XKCD<\/a> darauf gestossen. Als ich urspr\u00fcnglich nach Anhaltspunkten gesucht habe, fand ich nicht mehr als eine obskure russische Seite auf vKontakte mit rudiment\u00e4ren Infos dazu.\u00a0Mehr brauchbare Info zu dem Thema gibt es jedenfalls hier: <a href=\"http:\/\/apps.timwhitlock.info\/emoji\/tables\/unicode#block-2-dingbats\">http:\/\/apps.timwhitlock.info\/emoji\/tables\/unicode#block-2-dingbats<\/a>[\/Update]<\/p>\n<p>Anschlie\u00dfend werden potenzielle Schimpfw\u00f6rter herausgefiltert. Das ist zwar nur sehr rudiment\u00e4r realisiert, gibt aber in einigen F\u00e4llen einen zumindest groben Eindruck davon, ob der Text zeigenswert ist, oder vielleicht doch besser\u00a0nach \/dev\/null projiziert werden sollte. Kleiner Exkurs: Das ist mal verdammt gar nicht trivial. Anfangs denkt man dar\u00fcber nach, eine Black- bzw. Whitelist-Mechanik zu implementieren. Klassiker. \u00dcbliche Listen bewegen sich in der Gr\u00f6\u00dfenordnung 35MB und dr\u00fcber. Das wird schnell zu einem Performance-Thema. Also f\u00e4ngt man probehalber an, alle Schimpfw\u00f6rter aufzuschreiben, die man kennt und baut selbst einen Mechanismus drumherum. Hier kommt dann mein jahrelang gepflegtes &#8220;Gnihihihi&#8221; zum Einsatz: Barsch und Wirtschatsexperte sind ja noch Amateurliga, aber bei Pr\u00e4ventivotzelotpopulationsverminderung &#8230;\u00a0(ja&#8230; ich denke \u00fcber sowas nach). Man kann die W\u00f6rter ja nicht generell blocken, sobald man einen Treffer hat. Prinzipiell kann ja jemand allen Ernstes so ein Wort in seri\u00f6sem Kontext\u00a0verwenden wollen.\u00a0Anschlie\u00dfend kommt dann noch dieser ganze Political Correctness-Bl\u00f6dsinn, Inhalte auf der Meta-Ebene, etc. etc.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-2940 alignright\" src=\"https:\/\/andyland.info\/wordpress\/wp-content\/uploads\/smsosc_002.png\" alt=\"\" width=\"374\" height=\"607\" srcset=\"https:\/\/andyland.info\/wordpress\/wp-content\/uploads\/smsosc_002.png 510w, https:\/\/andyland.info\/wordpress\/wp-content\/uploads\/smsosc_002-185x300.png 185w, https:\/\/andyland.info\/wordpress\/wp-content\/uploads\/smsosc_002-92x150.png 92w\" sizes=\"auto, (max-width: 374px) 100vw, 374px\" \/>Und selbst wenn man das sauber hinbekommt:\u00a0\u00a0In einer sehr fr\u00fchen \u00a0Phase habe ich zwei Freunde gebeten, mal ihre SMS-Flat auszunutzen und die Fantasie spielen zu lassen. (Profitip: In solchen Situationen zeigt sich, mit was f\u00fcr Verr\u00fcckten man es eigentlich zu tun hat &#8230; Donnerschlag, da taten sich Abgr\u00fcnde auf.) Da kamen dann unter anderem so Sachen wie &#8220;Schl\u00e4gerei um 3:00 vor der T\u00fcr&#8221;,\u00a0&#8220;Die Blonde von der Theke will ich gerne mal umflexen&#8221; oder &#8220;Lass uns mal den DJ pl\u00e4tten&#8221;. Syntaktisch v\u00f6llig in Ordnung (keine Schimpfw\u00f6rter), inhaltlich bedenklich.<\/p>\n<p>Kurzfristig kann man dem Problem jedenfalls nicht beikommen, deswegen werden die ankommenden Texte zun\u00e4chst in einer Liste gespeichert und\u00a0in der Software angezeigt. Das hat gleich mehrere Vorteile. Zum einen\u00a0hat man so die M\u00f6glichkeit, nochmal dr\u00fcber zu gucken und\u00a0kann ungew\u00fcnschte Nachrichten l\u00f6schen.\u00a0Zum anderen stellt das auch einen Puffer dar. Man muss ja damit rechnen, dass es im Verlauf einer Veranstaltung zu Schwankungen bez\u00fcglich der Nutzung kommt. Das kann man so ausgleichen.<\/p>\n<p>Die Software kann in zwei Modi gefahren werden: Automatik und Handbetrieb. Im Automatik-Modus wird nach Ablauf einer einstellbaren\u00a0Zeit (default 10 Sekunden, wird unten rechts angezeigt) die oberste verf\u00fcgbare Nachricht gesendet und aus der Liste gel\u00f6scht. Im Handbetrieb wird die Nachricht gesendet, wenn man den Button &#8220;Step&#8221; bet\u00e4tigt.<\/p>\n<p>\u00dcber das Eingabefeld lassen sich Texte in die Liste einpflegen, ohne dass man eine SMS daf\u00fcr schicken muss. Wenn man auf &#8220;Shot&#8221; klickt, wird der aktuelle Text des Eingabefeldes sofort ausgegeben. Naja, und markierte Nachrichten kann man bei Bedarf l\u00f6schen.<\/p>\n<p>Die Text werden per OSC (Open Sound Control) ausgegeben. Aus mehrerlei Gr\u00fcnden. Vorneweg stand die \u00dcberlegung, dass man es eigentlich eh nur falsch machen kann. Wenn ich z.B. ein Bild erstellen w\u00fcrde, das den Text einer Nachricht darstellt, dann muss das auch irgendwohin ausgegeben werden. Auf einen Beamer z.B. .\u00a0Aber wenn man das bei (Gro\u00df?-)Veranstaltungen oder in Diskotheken\u00a0nutzt, ist es schlicht Bl\u00f6dsinn, das so zu machen. Zum Einen hat man meist ein etwas komplizierteres Video-Setup (mehrere Leinw\u00e4nde, Masking, etc), zum anderen wird man immer hinter den Anforderungen zur\u00fcckbleiben. Ein- und Ausblend- Effekte, Schriftarten, Farben, Hintergr\u00fcnde &#8230;\u00a0 alles schlecht. Ein vollst\u00e4ndiger Standalone-Modus als Blackbox\u00a0f\u00e4llt wegen der Schimpfwortproblematik vermutlich eh erstmal aus. Per OSC besteht hingegen die M\u00f6glichkeit, die reinen Textdaten zu verwenden und mit dem geeigneten Tool passig visuell aufzuarbeiten.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2984\" src=\"https:\/\/andyland.info\/wordpress\/wp-content\/uploads\/20170121_221117.jpg\" alt=\"\" width=\"800\" height=\"450\" srcset=\"https:\/\/andyland.info\/wordpress\/wp-content\/uploads\/20170121_221117.jpg 800w, https:\/\/andyland.info\/wordpress\/wp-content\/uploads\/20170121_221117-300x169.jpg 300w, https:\/\/andyland.info\/wordpress\/wp-content\/uploads\/20170121_221117-768x432.jpg 768w, https:\/\/andyland.info\/wordpress\/wp-content\/uploads\/20170121_221117-250x141.jpg 250w, https:\/\/andyland.info\/wordpress\/wp-content\/uploads\/20170121_221117-150x84.jpg 150w\" sizes=\"auto, (max-width: 800px) 100vw, 800px\" \/><\/p>\n<p>So sieht das dann aus. Klassischer Signalverlauf von hinten rechts nach vorne mitte. Die SMS kommen beim GSM Modul an. Die Software zur Verarbeitung der SMS l\u00e4uft auf dem Thinkpad. Mittelfristig muss das nat\u00fcrlich kein Windows-Rechner sein. Ein Raspberry wird auch reichen, aber wenn man ganz genau hinschaut, erkennt man, dass im Hintergrund noch eine\u00a0Eclipse-Umgebung l\u00e4uft. (Wir reden hier \u00fcber den allerersten Einsatz in der Wildnis, da ist das v\u00f6llig legitim). Das Thinkpad sendet die Texte per OSC als Broadcast via\u00a0Ethernet, u.a. an das\u00a0MacBook rechts. Dort l\u00e4uft VDMX mit dem <a href=\"http:\/\/www.vidvox.net\/forums\/viewtopic.php?f=22&amp;t=154833\">Block Text Aligner Plugin<\/a>\u00a0und macht dann visuellen Kram mit den Texten. Theoretisch kann man das auch alles auf einem Rechner laufen lassen, aber\u00a0zu Beginn habe ich es da lieber etwas \u00fcbersichtlicher.<\/p>\n<p>Extra Twist f\u00fcr das hier\u00a0abgebildete\u00a0Setup im <a href=\"http:\/\/www.rosenhof-os.de\">Rosenhof<\/a>: Bei meinem Macbook ist nat\u00fcrlich noch nicht Schluss. Hier werden nur die SMS als Visuals bereitgestellt. Der ganze Rest (Video-Content, Masking, &#8230;) passiert \u00fcber einen zweiten Rechner. Muss auch nicht sein, wenn man einen potenten Rechner hat. Mein aktueller Rechner f\u00e4ngt aber schon derbe an zu schnaufen, wenn er nur die SMS-Texte aufbereitet.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-2961\" src=\"https:\/\/andyland.info\/wordpress\/wp-content\/uploads\/image007.jpg\" alt=\"\" width=\"1139\" height=\"276\" srcset=\"https:\/\/andyland.info\/wordpress\/wp-content\/uploads\/image007.jpg 1139w, https:\/\/andyland.info\/wordpress\/wp-content\/uploads\/image007-300x73.jpg 300w, https:\/\/andyland.info\/wordpress\/wp-content\/uploads\/image007-768x186.jpg 768w, https:\/\/andyland.info\/wordpress\/wp-content\/uploads\/image007-1024x248.jpg 1024w, https:\/\/andyland.info\/wordpress\/wp-content\/uploads\/image007-250x61.jpg 250w, https:\/\/andyland.info\/wordpress\/wp-content\/uploads\/image007-150x36.jpg 150w\" sizes=\"auto, (max-width: 1139px) 100vw, 1139px\" \/>\u200c<\/p>\n<p>&nbsp;<\/p>\n<p>Sprechen wir \u00fcber kurz mal \u00fcber\u00a0richtig pfiffige Entscheidungen bez\u00fcglich Softwarearchitektur: Wenn sich das Thema Schimpfwortfilterung mal erledigt hat und man das Teil\u00a0demn\u00e4chst doch in\u00a0einem Blackbox-Modus betreibt, ist die M\u00f6glichkeit daf\u00fcr immer noch gegeben, ohne dass man hier etwas \u00e4ndern muss. Man kann ja ohne Probleme eine zweite Software auf dem selben Rechner betreiben, die sich um eine vorzeigenswerte visuelle Aufbereitung der Texte k\u00fcmmert. Die OSC-Daten werden dann einfach per 127.0.0.1 zwischen den Prozessen transportiert.<\/p>\n<p>Ich finde, ich bin ganz sch\u00f6n schlau =)<\/p>\n<p>Die Software verf\u00fcgt \u00fcber ein Feature, dass ich &#8220;OSC Cycle&#8221; genannt habe: Die Daten werden auf Wunsch mit alternierenden OSC-Signaturen gesendet: &#8220;\/OSC\/SMS_Text_1&#8221;, &#8220;\/OSC\/SMS_Text_2&#8221;, &#8220;\/OSC\/SMS_Text_&#8230;&#8221;. Dadurch kann man auf Seiten der visuellen Verarbeitung noch variabler auf einkommende Daten reagieren. Man kann z.B. vier Textfelder positionieren und damit mehrere Nachrichten unabh\u00e4ngig voneinander darstellen, mit Effekten versehen, etc.<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"size-full wp-image-2970 alignright\" src=\"https:\/\/andyland.info\/wordpress\/wp-content\/uploads\/image004.jpg\" alt=\"\" width=\"323\" height=\"241\" srcset=\"https:\/\/andyland.info\/wordpress\/wp-content\/uploads\/image004.jpg 323w, https:\/\/andyland.info\/wordpress\/wp-content\/uploads\/image004-300x224.jpg 300w, https:\/\/andyland.info\/wordpress\/wp-content\/uploads\/image004-201x150.jpg 201w, https:\/\/andyland.info\/wordpress\/wp-content\/uploads\/image004-150x112.jpg 150w\" sizes=\"auto, (max-width: 323px) 100vw, 323px\" \/>Als\u00a0Schmankerl gibt es dann noch den den &#8220;Gewinner-Modus&#8221;. Um die Akzeptanz und den Durchsatz zu steigern, kann man festlegen, dass\u00a0Text und\u00a0Absendernummer jeder x-ten SMS im Programm angezeigt werden. Damit kann man dann irgendwas machen. Die Idee dahinter ist klar: &#8220;Der Absender jeder 25. SMS nimmt an der Verlosung teil\/ bekommt ein Freigetr\u00e4nk\/ darf mal ein Lied lang DJ sein\/ &#8230;&#8221;. Rein technisch kann man ohne gro\u00dfe Probleme sogar automatisch eine Gewinner-Nachricht an die jeweilige Telefonnummer schicken. Organisatorisch lassen wir das erstmal. Ich hab&#8217; in dem GSM-Modul eine Lycamobile Prepaid-Sim f\u00fcr 2,50\u20ac\u00a0drinstecken. Da kostet jede ausgehende SMS 15 Cent. Sp\u00e4ter vielleicht mal.<\/p>\n<p>Whatsapp kommt als n\u00e4chstes.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dieses Teil empf\u00e4ngt SMS und schickt sie als OSC-Daten weiter, damit sie von einer VJ-Software verarbeitet werden k\u00f6nnen. Grobe Idee war es, bei \u00f6ffentlichen Veranstaltungen mehr Interaktion mit den Besuchern zu erm\u00f6glichen. Der ein oder andere kennt vielleicht die Twitter-Wall. Bei der Letzten Cool-Savas-Tour wurde das glaube ich eingesetzt.\u00a0Vor dem \u2026 <a class=\"continue-reading-link\" href=\"https:\/\/andyland.info\/wordpress\/smswall-sms-to-open-sound-control\/\"> Continue reading <span class=\"meta-nav\">&rarr; <\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_crdt_document":"","footnotes":"","_links_to":"","_links_to_target":""},"categories":[5,21],"tags":[232,234,230,198,229,231,233],"class_list":["post-2926","post","type-post","status-publish","format-standard","hentry","category-projekte","category-video","tag-90er","tag-open-sound-control","tag-osc","tag-rosenhof","tag-sms","tag-twitter","tag-twitterwall","odd"],"_links":{"self":[{"href":"https:\/\/andyland.info\/wordpress\/wp-json\/wp\/v2\/posts\/2926","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/andyland.info\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/andyland.info\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/andyland.info\/wordpress\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/andyland.info\/wordpress\/wp-json\/wp\/v2\/comments?post=2926"}],"version-history":[{"count":0,"href":"https:\/\/andyland.info\/wordpress\/wp-json\/wp\/v2\/posts\/2926\/revisions"}],"wp:attachment":[{"href":"https:\/\/andyland.info\/wordpress\/wp-json\/wp\/v2\/media?parent=2926"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/andyland.info\/wordpress\/wp-json\/wp\/v2\/categories?post=2926"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/andyland.info\/wordpress\/wp-json\/wp\/v2\/tags?post=2926"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}