{"id":6466,"date":"2020-10-12T00:43:34","date_gmt":"2020-10-12T04:43:34","guid":{"rendered":"https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/?p=6466"},"modified":"2020-10-13T16:08:02","modified_gmt":"2020-10-13T20:08:02","slug":"sweetcorn-solisandbox","status":"publish","type":"post","link":"https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/bkrummenandrew-cmu-edu\/10\/12\/sweetcorn-solisandbox\/","title":{"rendered":"sweetcorn-SoliSandbox"},"content":{"rendered":"<h3 style=\"text-align: center\"><a href=\"https:\/\/glitch.com\/~dog-lullaby\">Dog Lullaby<\/a><\/h3>\n<p><iframe title=\"Dog Lullaby\" width=\"840\" height=\"630\" src=\"https:\/\/www.youtube.com\/embed\/bQN5ESChKsY?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe><\/p>\n<p>I have created a lullaby generator for children to feel loved and lulled as they fall quickly asleep. It features an animated dog, generated lullaby lyrics with rhymes, and a generated melody that children can alter using the special Soli sensor.<\/p>\n<div id='gallery-1' class='gallery galleryid-6466 gallery-columns-3 gallery-size-medium'><figure class='gallery-item'>\n\t\t\t<div class='gallery-icon portrait'>\n\t\t\t\t<a href='https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/bkrummenandrew-cmu-edu\/10\/12\/sweetcorn-solisandbox\/screen-shot-2020-10-11-at-11-06-29-pm\/'><img width=\"270\" height=\"480\" src=\"https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-content\/uploads\/2020\/10\/Screen-Shot-2020-10-11-at-11.06.29-PM-270x480.png\" class=\"attachment-medium size-medium\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-content\/uploads\/2020\/10\/Screen-Shot-2020-10-11-at-11.06.29-PM-270x480.png 270w, https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-content\/uploads\/2020\/10\/Screen-Shot-2020-10-11-at-11.06.29-PM.png 372w\" sizes=\"(max-width: 270px) 85vw, 270px\" \/><\/a>\n\t\t\t<\/div><\/figure><figure class='gallery-item'>\n\t\t\t<div class='gallery-icon portrait'>\n\t\t\t\t<a href='https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/bkrummenandrew-cmu-edu\/10\/12\/sweetcorn-solisandbox\/screen-shot-2020-10-11-at-11-06-41-pm\/'><img width=\"269\" height=\"480\" src=\"https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-content\/uploads\/2020\/10\/Screen-Shot-2020-10-11-at-11.06.41-PM-269x480.png\" class=\"attachment-medium size-medium\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-content\/uploads\/2020\/10\/Screen-Shot-2020-10-11-at-11.06.41-PM-269x480.png 269w, https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-content\/uploads\/2020\/10\/Screen-Shot-2020-10-11-at-11.06.41-PM.png 371w\" sizes=\"(max-width: 269px) 85vw, 269px\" \/><\/a>\n\t\t\t<\/div><\/figure><figure class='gallery-item'>\n\t\t\t<div class='gallery-icon portrait'>\n\t\t\t\t<a href='https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/bkrummenandrew-cmu-edu\/10\/12\/sweetcorn-solisandbox\/screen-shot-2020-10-11-at-11-07-05-pm\/'><img width=\"270\" height=\"480\" src=\"https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-content\/uploads\/2020\/10\/Screen-Shot-2020-10-11-at-11.07.05-PM-270x480.png\" class=\"attachment-medium size-medium\" alt=\"\" loading=\"lazy\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-content\/uploads\/2020\/10\/Screen-Shot-2020-10-11-at-11.07.05-PM-270x480.png 270w, https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-content\/uploads\/2020\/10\/Screen-Shot-2020-10-11-at-11.07.05-PM.png 371w\" sizes=\"(max-width: 270px) 85vw, 270px\" \/><\/a>\n\t\t\t<\/div><\/figure>\n\t\t<\/div>\n\n<p>Above is a concise demo of the app in use. It normally runs for a random number of lyrics from 35 to 45 lyrics, but for the purposes of a short video, only a few lines are shown.<\/p>\n<p><iframe title=\"First Performance using Dog Lullaby\" width=\"840\" height=\"630\" src=\"https:\/\/www.youtube.com\/embed\/HctwOntO_RI?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture\" allowfullscreen><\/iframe><\/p>\n<p><img loading=\"lazy\" class=\"wp-image-6481 size-medium aligncenter\" src=\"https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-content\/uploads\/2020\/10\/Scan0-640x462.jpeg\" alt=\"\" width=\"640\" height=\"462\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-content\/uploads\/2020\/10\/Scan0-640x462.jpeg 640w, https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-content\/uploads\/2020\/10\/Scan0-1024x739.jpeg 1024w, https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-content\/uploads\/2020\/10\/Scan0-768x554.jpeg 768w, https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-content\/uploads\/2020\/10\/Scan0-1536x1108.jpeg 1536w, https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-content\/uploads\/2020\/10\/Scan0-2048x1477.jpeg 2048w, https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-content\/uploads\/2020\/10\/Scan0-1200x865.jpeg 1200w\" sizes=\"(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/>Swiping left will increase the pitch of the left note, swiping up for the center note, and right for the right. A tapping gesture will mute the song and another will un-mute. If you feel inclined to test the app on <a href=\"https:\/\/dog-lullaby.glitch.me\/\">desktop<\/a>, the swipes map to arrow keys (left key press is equivalent to left swipe, etc.).<\/p>\n<p><img loading=\"lazy\" class=\"wp-image-6478 size-medium aligncenter\" src=\"https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-content\/uploads\/2020\/10\/Scan01-640x445.jpeg\" alt=\"\" width=\"640\" height=\"445\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-content\/uploads\/2020\/10\/Scan01-640x445.jpeg 640w, https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-content\/uploads\/2020\/10\/Scan01-1024x712.jpeg 1024w, https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-content\/uploads\/2020\/10\/Scan01-768x534.jpeg 768w, https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-content\/uploads\/2020\/10\/Scan01-1536x1068.jpeg 1536w, https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-content\/uploads\/2020\/10\/Scan01-2048x1424.jpeg 2048w, https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-content\/uploads\/2020\/10\/Scan01-1200x834.jpeg 1200w\" sizes=\"(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><\/p>\n<p>The dog and border are animated using <em>p5.js<\/em>, the lyrics are generated using <em>RiTa.js<\/em>, and the song itself is generated using <em>Tone.js<\/em>. It was a pleasure becoming more familiar with the latter two. <em>RiTa.js<\/em> is an excellent tool for generative poetry, and I&#8217;ve only just begun to experiment with it. I had originally been using <em>p5.Sound<\/em> to generate the song, but found the quality terrible and switched to <em>Tone.js<\/em>. My life instantly became easier, and I look forward to experimenting more with it as well.<\/p>\n<p><img loading=\"lazy\" class=\"aligncenter size-medium wp-image-6474\" src=\"https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-content\/uploads\/2020\/10\/Scan-1-640x445.jpeg\" alt=\"\" width=\"640\" height=\"445\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-content\/uploads\/2020\/10\/Scan-1-640x445.jpeg 640w, https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-content\/uploads\/2020\/10\/Scan-1-1024x712.jpeg 1024w, https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-content\/uploads\/2020\/10\/Scan-1-768x534.jpeg 768w, https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-content\/uploads\/2020\/10\/Scan-1-1536x1068.jpeg 1536w, https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-content\/uploads\/2020\/10\/Scan-1-2048x1424.jpeg 2048w, https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-content\/uploads\/2020\/10\/Scan-1-1200x834.jpeg 1200w\" sizes=\"(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/><img loading=\"lazy\" class=\" wp-image-6475 alignright\" src=\"https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-content\/uploads\/2020\/10\/Scan-2-337x480.jpeg\" alt=\"\" width=\"303\" height=\"431\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-content\/uploads\/2020\/10\/Scan-2-337x480.jpeg 337w, https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-content\/uploads\/2020\/10\/Scan-2-718x1024.jpeg 718w, https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-content\/uploads\/2020\/10\/Scan-2-768x1096.jpeg 768w, https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-content\/uploads\/2020\/10\/Scan-2.jpeg 1006w\" sizes=\"(max-width: 303px) 85vw, 303px\" \/><\/p>\n<p>The song is composed of one enveloped oscillator that creates a bell-like melody, one modulated oscillator that plays a random harmony based on the melody, and a synthesizer that plays a random bass sequence based on the melody as well. It runs in 3\/4 time at 90 bpm, as similar to a lullaby as I could get.<\/p>\n<p>In the future I hope to animate the tail and eyes of the dog more specifically. I also hope to refine the sounds\u2014adding more dimension and nuance to something that should sound simple and lovely. A lovely thing I feel obligated to note: I experimented with this app around my dog (his name is Scout) and he immediately ran toward it. I suppose my &#8220;whine&#8221; instrument was more accurate than I had expected ;~0. I have yet to test the app with cats and children, but I have high hopes!<\/p>\n<p><img loading=\"lazy\" class=\"aligncenter size-medium wp-image-6476\" src=\"https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-content\/uploads\/2020\/10\/Scan-3-640x445.jpeg\" alt=\"\" width=\"640\" height=\"445\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-content\/uploads\/2020\/10\/Scan-3-640x445.jpeg 640w, https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-content\/uploads\/2020\/10\/Scan-3-1024x712.jpeg 1024w, https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-content\/uploads\/2020\/10\/Scan-3-768x534.jpeg 768w, https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-content\/uploads\/2020\/10\/Scan-3-1536x1068.jpeg 1536w, https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-content\/uploads\/2020\/10\/Scan-3-2048x1424.jpeg 2048w, https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-content\/uploads\/2020\/10\/Scan-3-1200x834.jpeg 1200w\" sizes=\"(max-width: 709px) 85vw, (max-width: 909px) 67vw, (max-width: 984px) 61vw, (max-width: 1362px) 45vw, 600px\" \/> <img loading=\"lazy\" class=\" wp-image-6477 alignleft\" src=\"https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-content\/uploads\/2020\/10\/Scan-4-329x480.jpeg\" alt=\"\" width=\"282\" height=\"411\" srcset=\"https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-content\/uploads\/2020\/10\/Scan-4-329x480.jpeg 329w, https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-content\/uploads\/2020\/10\/Scan-4-702x1024.jpeg 702w, https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-content\/uploads\/2020\/10\/Scan-4-768x1121.jpeg 768w, https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-content\/uploads\/2020\/10\/Scan-4.jpeg 999w\" sizes=\"(max-width: 282px) 85vw, 282px\" \/><\/p>\n<p style=\"text-align: right\"><em>Good night, <\/em><\/p>\n<p style=\"text-align: right\"><em>sleep tight! <\/em><\/p>\n<p style=\"text-align: right\"><em>Don&#8217;t let the bed bugs bite!<\/em><\/p>\n<p style=\"text-align: right\"><em>xoxoxo<\/em><\/p>\n<p style=\"text-align: right\"><em>~sweetcorn<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Dog Lullaby I have created a lullaby generator for children to feel loved and lulled as they fall quickly asleep. It features an animated dog, generated lullaby lyrics with rhymes, and a generated melody that children can alter using the special Soli sensor. Above is a concise demo of the app in use. It normally &hellip; <a href=\"https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/bkrummenandrew-cmu-edu\/10\/12\/sweetcorn-solisandbox\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;sweetcorn-SoliSandbox&#8221;<\/span><\/a><\/p>\n","protected":false},"author":46,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[58],"tags":[],"_links":{"self":[{"href":"https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-json\/wp\/v2\/posts\/6466"}],"collection":[{"href":"https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-json\/wp\/v2\/users\/46"}],"replies":[{"embeddable":true,"href":"https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-json\/wp\/v2\/comments?post=6466"}],"version-history":[{"count":4,"href":"https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-json\/wp\/v2\/posts\/6466\/revisions"}],"predecessor-version":[{"id":6568,"href":"https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-json\/wp\/v2\/posts\/6466\/revisions\/6568"}],"wp:attachment":[{"href":"https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-json\/wp\/v2\/media?parent=6466"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-json\/wp\/v2\/categories?post=6466"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/courses.ideate.cmu.edu\/60-212\/f2020\/wp-json\/wp\/v2\/tags?post=6466"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}