<?xml version="1.0"?>
<News hasArchived="true" page="8141" pageCount="10739" pageSize="10" timestamp="Sun, 02 Aug 2026 23:50:03 -0400" url="https://my3.my.umbc.edu/posts.xml?page=8141">
<NewsItem contentIssues="false" id="37538" important="false" status="posted" url="https://my3.my.umbc.edu/posts/37538">
<Title>Men's Soccer Sets Road Unbeaten Streak School Record, But Cannot Dent Host Binghamton Net in Scoreless Draw</Title>
<Body>
<![CDATA[
    <div class="html-content">Vestal, N.Y.-The seventh-ranked UMBC Retrievers extended their unbeaten streak to five, but could not dent the Binghamton net and the two America East squads played to a 0-0 double overtime draw in chilly conditions at the BU Sports Complex. UMBC set a new school record by extending its road unbeaten streak to nine straight games (6-0-3) dating back to 2012. The Retrievers are now 12-1-2 on the season and 3-0-2 in America East play, while Binghamton is 3-8-5, 1-1-3. The Retrievers badly outshot the Bearcats, 16-6, and played most of the final 65 minutes in Binghamton territory.</div>
]]>
</Body>
<Summary>Vestal, N.Y.-The seventh-ranked UMBC Retrievers extended their unbeaten streak to five, but could not dent the Binghamton net and the two America East squads played to a 0-0 double overtime draw...</Summary>
<Website>http://www.umbcretrievers.com/release.asp?RELEASE_ID=8265</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/37538/guest@my.umbc.edu/542decc33903c1a30dc76e8bf4e61c10/api/pixel</TrackingUrl>
<Group token="athletics">UMBC Athletics</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/athletics</GroupUrl>
<AvatarUrl>https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/xsmall.png?1709304849</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/original.jpg?1709304849</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/xxlarge.png?1709304849</AvatarUrl>
<AvatarUrl size="xlarge">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/xlarge.png?1709304849</AvatarUrl>
<AvatarUrl size="large">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/large.png?1709304849</AvatarUrl>
<AvatarUrl size="medium">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/medium.png?1709304849</AvatarUrl>
<AvatarUrl size="small">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/small.png?1709304849</AvatarUrl>
<AvatarUrl size="xsmall">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/xsmall.png?1709304849</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/xxsmall.png?1709304849</AvatarUrl>
<Sponsor>UMBC Athletics</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Sat, 26 Oct 2013 01:00:00 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="false" id="37535" important="false" status="posted" url="https://my3.my.umbc.edu/posts/37535">
<Title>Perkins Qualifies for NCAA Zones as Swimming and Diving Sweeps George Washington</Title>
<Body>
<![CDATA[
    <div class="html-content">UMBC senior diver Tim Perkins set a pair of career bests and qualified for NCAA zones in the 3-meter dive as the Retrievers bounced back from last week's performance by sweeping George Washington on Saturday afternoon at the UMBC Aquatic Complex. The Retrievers won the men's meet, 145-109, while the UMBC women defeated the Colonials, 134-113.</div>
]]>
</Body>
<Summary>UMBC senior diver Tim Perkins set a pair of career bests and qualified for NCAA zones in the 3-meter dive as the Retrievers bounced back from last week's performance by sweeping George Washington...</Summary>
<Website>http://www.umbcretrievers.com/release.asp?RELEASE_ID=8264</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/37535/guest@my.umbc.edu/b01f99955ce981624a212ccdd2c0f4be/api/pixel</TrackingUrl>
<Group token="athletics">UMBC Athletics</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/athletics</GroupUrl>
<AvatarUrl>https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/xsmall.png?1709304849</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/original.jpg?1709304849</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/xxlarge.png?1709304849</AvatarUrl>
<AvatarUrl size="xlarge">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/xlarge.png?1709304849</AvatarUrl>
<AvatarUrl size="large">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/large.png?1709304849</AvatarUrl>
<AvatarUrl size="medium">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/medium.png?1709304849</AvatarUrl>
<AvatarUrl size="small">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/small.png?1709304849</AvatarUrl>
<AvatarUrl size="xsmall">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/xsmall.png?1709304849</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/xxsmall.png?1709304849</AvatarUrl>
<Sponsor>UMBC Athletics</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Sat, 26 Oct 2013 01:00:00 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="false" id="37533" important="false" status="posted" url="https://my3.my.umbc.edu/posts/37533">
<Title>Perkins Qualifies for NCAA Zones as UMBC Swimming and Diving Sweeps George Washington</Title>
<Body>
<![CDATA[
    <div class="html-content">UMBC senior diver Tim Perkins set a pair of career bests and qualified for NCAA zones in the 3-meter dive as the Retrievers bounced back from last week's performance by sweeping George Washington on Saturday afternoon at the UMBC Aquatic Complex. The Retrievers won the men's meet, 145-109, while the UMBC women defeated the Colonials, 134-113.</div>
]]>
</Body>
<Summary>UMBC senior diver Tim Perkins set a pair of career bests and qualified for NCAA zones in the 3-meter dive as the Retrievers bounced back from last week's performance by sweeping George Washington...</Summary>
<Website>http://www.umbcretrievers.com/release.asp?RELEASE_ID=8263</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/37533/guest@my.umbc.edu/4e9d29a187d338d3b54acadd59701451/api/pixel</TrackingUrl>
<Group token="athletics">UMBC Athletics</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/athletics</GroupUrl>
<AvatarUrl>https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/xsmall.png?1709304849</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/original.jpg?1709304849</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/xxlarge.png?1709304849</AvatarUrl>
<AvatarUrl size="xlarge">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/xlarge.png?1709304849</AvatarUrl>
<AvatarUrl size="large">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/large.png?1709304849</AvatarUrl>
<AvatarUrl size="medium">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/medium.png?1709304849</AvatarUrl>
<AvatarUrl size="small">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/small.png?1709304849</AvatarUrl>
<AvatarUrl size="xsmall">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/xsmall.png?1709304849</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/xxsmall.png?1709304849</AvatarUrl>
<Sponsor>UMBC Athletics</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Sat, 26 Oct 2013 01:00:00 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="false" id="37527" important="false" status="posted" url="https://my3.my.umbc.edu/posts/37527">
<Title>Women's Soccer Battles For Seeding In Regular Season Finale Versus New Hampshire</Title>
<Body>
<![CDATA[
    <div class="html-content">The UMBC women's soccer team looks to knock off New Hampshire on Sunday, Oct. 27 as it hosts the Wildcats on Senior Day at Retriever Soccer Park in the final day of the regular season. The Retrievers enter the contest second in the America East standings and still have a chance for the regular season crown with a victory and a Maine loss. Game time is set for 1 p.m., with the Retrievers' two seniors being honored prior to first kick.</div>
]]>
</Body>
<Summary>The UMBC women's soccer team looks to knock off New Hampshire on Sunday, Oct. 27 as it hosts the Wildcats on Senior Day at Retriever Soccer Park in the final day of the regular season. The...</Summary>
<Website>http://www.umbcretrievers.com/release.asp?RELEASE_ID=8262</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/37527/guest@my.umbc.edu/af626873360f93717c888914f9ff67d7/api/pixel</TrackingUrl>
<Group token="athletics">UMBC Athletics</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/athletics</GroupUrl>
<AvatarUrl>https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/xsmall.png?1709304849</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/original.jpg?1709304849</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/xxlarge.png?1709304849</AvatarUrl>
<AvatarUrl size="xlarge">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/xlarge.png?1709304849</AvatarUrl>
<AvatarUrl size="large">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/large.png?1709304849</AvatarUrl>
<AvatarUrl size="medium">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/medium.png?1709304849</AvatarUrl>
<AvatarUrl size="small">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/small.png?1709304849</AvatarUrl>
<AvatarUrl size="xsmall">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/xsmall.png?1709304849</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/009/69595c9b99f609d75fbb8232d9bd73d3/xxsmall.png?1709304849</AvatarUrl>
<Sponsor>UMBC Athletics</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Sat, 26 Oct 2013 01:00:00 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="false" id="123008" important="false" status="posted" url="https://my3.my.umbc.edu/posts/123008">
<Title>Robert Provine, Psychology, to speak at &#8220;City of Ideas&#8221; event in Mexico</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <p>Professor of Psychology Robert Provine is one of more than sixty speakers who will participate in next month’s “City of Ideas” festival in Puebla, Mexico. The event brings together scientists and scholars to celebrate and discuss creativity and curiosity.</p>
    <p>The festival takes place from November 7-9. The program will include artistic and cultural short films and presentations from individual speakers.</p>
    <p>Provine was also recently cited in an “io9” article with an excerpt from his book, “Curious Behavior: Yawning, Laughing, Hiccupping, and Beyond.” The article examines the emotion behind crying.</p>
    <p>“Several lines of evidence suggest that the NGF [nerve growth factor] in tears has medicinal functions,” the excerpt reads. “The NGF concentration in tears, cornea, and lacrimal glands increases after corneal wounding, suggesting that NGF plays a part in healing.”</p>
    <p>You can read the full excerpt and article <a href="http://io9.com/shedding-tears-of-sadness-could-save-your-life-1449432275" rel="nofollow external" class="bo">here</a>.</p>
    </div>
]]>
</Body>
<Summary>Professor of Psychology Robert Provine is one of more than sixty speakers who will participate in next month’s “City of Ideas” festival in Puebla, Mexico. The event brings together scientists and...</Summary>
<Website>https://umbc.edu/stories/robert-provine-psychology-to-speak-at-city-of-ideas-event-in-mexico/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/123008/guest@my.umbc.edu/3593426129d1cb9b7881bc9976f942db/api/pixel</TrackingUrl>
<Tag>cahss</Tag>
<Tag>policy-and-society</Tag>
<Tag>psychology</Tag>
<Tag>research</Tag>
<Group token="umbc-news-magazine">UMBC News &amp;amp; Magazine</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/umbc-news-magazine</GroupUrl>
<AvatarUrl>https://assets1-my.umbc.edu/system/shared/avatars/groups/000/001/943/24435aa6207c452e7bc15cc74b42c7bb/xsmall.png?1748556657</AvatarUrl>
<AvatarUrl size="original">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/001/943/24435aa6207c452e7bc15cc74b42c7bb/original.png?1748556657</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/001/943/24435aa6207c452e7bc15cc74b42c7bb/xxlarge.png?1748556657</AvatarUrl>
<AvatarUrl size="xlarge">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/001/943/24435aa6207c452e7bc15cc74b42c7bb/xlarge.png?1748556657</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/001/943/24435aa6207c452e7bc15cc74b42c7bb/large.png?1748556657</AvatarUrl>
<AvatarUrl size="medium">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/001/943/24435aa6207c452e7bc15cc74b42c7bb/medium.png?1748556657</AvatarUrl>
<AvatarUrl size="small">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/001/943/24435aa6207c452e7bc15cc74b42c7bb/small.png?1748556657</AvatarUrl>
<AvatarUrl size="xsmall">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/001/943/24435aa6207c452e7bc15cc74b42c7bb/xsmall.png?1748556657</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/001/943/24435aa6207c452e7bc15cc74b42c7bb/xxsmall.png?1748556657</AvatarUrl>
<Sponsor>UMBC News &amp; Magazine</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>false</CommentsAllowed>
<PostedAt>Fri, 25 Oct 2013 20:09:58 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="37522" important="false" status="posted" url="https://my3.my.umbc.edu/posts/37522">
<Title>Bits Blog: From a Twitter How-To, Another Lesson</Title>
<Body>
<![CDATA[
    <div class="html-content">A Florida man briefly became flooded by notifications from Twitter after a headline about how to use the social platform incidentally included his user name.<br><div><table border="0"><tbody><tr><td>
    <a href="http://share.feedsportal.com/share/twitter/?u=http%3A%2F%2Fbits.blogs.nytimes.com%2F2013%2F10%2F25%2Ffrom-a-twitter-how-to-another-lesson%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits+Blog%3A+From+a+Twitter+How-To%2C+Another+Lesson" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/twitter.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/facebook/?u=http%3A%2F%2Fbits.blogs.nytimes.com%2F2013%2F10%2F25%2Ffrom-a-twitter-how-to-another-lesson%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits+Blog%3A+From+a+Twitter+How-To%2C+Another+Lesson" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/facebook.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/linkedin/?u=http%3A%2F%2Fbits.blogs.nytimes.com%2F2013%2F10%2F25%2Ffrom-a-twitter-how-to-another-lesson%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits+Blog%3A+From+a+Twitter+How-To%2C+Another+Lesson" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/linkedin.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/gplus/?u=http%3A%2F%2Fbits.blogs.nytimes.com%2F2013%2F10%2F25%2Ffrom-a-twitter-how-to-another-lesson%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits+Blog%3A+From+a+Twitter+How-To%2C+Another+Lesson" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/googleplus.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/email/?u=http%3A%2F%2Fbits.blogs.nytimes.com%2F2013%2F10%2F25%2Ffrom-a-twitter-how-to-another-lesson%2F%3Fpartner%3Drss%26emc%3Drss&amp;t=Bits+Blog%3A+From+a+Twitter+How-To%2C+Another+Lesson" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/email.png" style="max-width: 100%; height: auto;"></a>
    </td></tr></tbody></table></div>
    </div>
]]>
</Body>
<Summary>A Florida man briefly became flooded by notifications from Twitter after a headline about how to use the social platform incidentally included his user name.      </Summary>
<Website>http://bits.blogs.nytimes.com/2013/10/25/from-a-twitter-how-to-another-lesson/?partner=rss&amp;emc=rss</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/37522/guest@my.umbc.edu/c9970e583382e86f39b4fcab035f6eb9/api/pixel</TrackingUrl>
<Tag>new</Tag>
<Tag>social</Tag>
<Tag>technology</Tag>
<Tag>twitter</Tag>
<Tag>york</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Fri, 25 Oct 2013 18:02:55 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="37532" important="false" status="posted" url="https://my3.my.umbc.edu/posts/37532">
<Title>Artists Take Up Digital Tools</Title>
<Body>
<![CDATA[
    <div class="html-content">An exhibition at the Museum of Arts and Design in New York highlights artists, architects and designers who use technologies like 3-D printing and numerically controlled milling.<br><div><table border="0"><tbody><tr><td>
    <a href="http://share.feedsportal.com/share/twitter/?u=http%3A%2F%2Fwww.nytimes.com%2F2013%2F10%2F27%2Farts%2Fartsspecial%2Fartists-take-up-digital-tools.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Artists+Take+Up+Digital+Tools" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/twitter.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/facebook/?u=http%3A%2F%2Fwww.nytimes.com%2F2013%2F10%2F27%2Farts%2Fartsspecial%2Fartists-take-up-digital-tools.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Artists+Take+Up+Digital+Tools" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/facebook.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/linkedin/?u=http%3A%2F%2Fwww.nytimes.com%2F2013%2F10%2F27%2Farts%2Fartsspecial%2Fartists-take-up-digital-tools.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Artists+Take+Up+Digital+Tools" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/linkedin.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/gplus/?u=http%3A%2F%2Fwww.nytimes.com%2F2013%2F10%2F27%2Farts%2Fartsspecial%2Fartists-take-up-digital-tools.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Artists+Take+Up+Digital+Tools" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/googleplus.png" style="max-width: 100%; height: auto;"></a> <a href="http://share.feedsportal.com/share/email/?u=http%3A%2F%2Fwww.nytimes.com%2F2013%2F10%2F27%2Farts%2Fartsspecial%2Fartists-take-up-digital-tools.html%3Fpartner%3Drss%26emc%3Drss&amp;t=Artists+Take+Up+Digital+Tools" rel="nofollow external" class="bo"><img src="http://res3.feedsportal.com/social/email.png" style="max-width: 100%; height: auto;"></a>
    </td></tr></tbody></table></div>
    </div>
]]>
</Body>
<Summary>An exhibition at the Museum of Arts and Design in New York highlights artists, architects and designers who use technologies like 3-D printing and numerically controlled milling.      </Summary>
<Website>http://www.nytimes.com/2013/10/27/arts/artsspecial/artists-take-up-digital-tools.html?partner=rss&amp;emc=rss</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/37532/guest@my.umbc.edu/8978ac2d99687743ce7cccab694ca681/api/pixel</TrackingUrl>
<Tag>3-d-printers</Tag>
<Tag>architecture</Tag>
<Tag>art</Tag>
<Tag>close-chuck</Tag>
<Tag>design</Tag>
<Tag>dupont-richard</Tag>
<Tag>new</Tag>
<Tag>newson-marc</Tag>
<Tag>sculpture</Tag>
<Tag>technology</Tag>
<Tag>york</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Fri, 25 Oct 2013 17:56:41 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="37517" important="false" status="posted" url="https://my3.my.umbc.edu/posts/37517">
<Title>New Tickets on Sale at the CIC!</Title>
<Tagline>A Night in Arabia</Tagline>
<Body>
<![CDATA[
    <div class="html-content">
    <div><strong>Stop by the Campus Information Center in The Commons to purchase the tickets listed below!</strong></div>
    <div><strong><br></strong></div>
    <div><strong><a href="http://my.umbc.edu/groups/hlsu/events/19641" rel="nofollow external" class="bo">El Encuentro: Day of the Dead</a></strong></div>
    <div><em>     Friday, November 1st</em></div>
    <div><em>     U.C. Ballroom @ 7pm</em></div>
    <div><em>     UMBC Students = Free!</em></div>
    <div><em>     Non UMBC Students = $5.00</em></div>
    <div><em><strong>     We are on Ticket 28 of 300</strong></em></div>
    <div><em><strong><br></strong></em></div>
    <div><strong>Africa Rising Ball: Mr. &amp; Miss ASA</strong></div>
    <div><em>Saturday, November 2nd</em></div>
    <div><em>     U.C. Ballroom @ 6pm</em></div>
    <div><em>     UMBC Students = Free!</em></div>
    <div><em>     Non UMBC Students = $8.00</em></div>
    <div><em><strong>We are on Ticket 107 of 265</strong></em></div>
    <div><br></div>
    <div><strong><a href="http://my.umbc.edu/events/18960" rel="nofollow external" class="bo">Midnight Premiere: Thor The Dark World</a></strong></div>
    <div><em>    Thursday, November 7th</em></div>
    <div><em>    Bus departs: Commons Loop @ 10:45pm</em></div>
    <div><em>    All Guests = $5.00</em></div>
    <div><em><strong>    We are on Ticket 68 of 260</strong></em></div>
    <div><br></div>
    <div><strong>A Night in Arabia</strong></div>
    <div><em>     Friday, November 8th</em></div>
    <div><em>     U.C. Ballroom @ 8pm</em></div>
    <div><em>     UMBC Students = Free!</em></div>
    <div><em>     Non UMBC Students = $5.00</em></div>
    <div><em>     <strong>We are on Ticket 1 of 250</strong></em></div>
    <div><br></div>
    <div><strong><a href="http://my.umbc.edu/groups/seb/events/18877" rel="nofollow external" class="bo">Laser Tag Bus Trip (seb)</a></strong></div>
    <div><em>     Friday, November 15th</em></div>
    <div><em>     Bus departs: Commons Loop @ 4:45pm</em></div>
    <div><em>     All Guests = $10.00</em></div>
    <div><em><strong>We are on Ticket 2 of 28</strong></em></div>
    <div><em><strong><br></strong></em></div>
    <div><strong><a href="http://my.umbc.edu/groups/seb/events/18885" rel="nofollow external" class="bo">Midnight Premiere: Catching Fire</a></strong></div>
    <div><em>Thursday, November 21st</em></div>
    <div><em>     Bus departs: Commons Loop @ 10:45pm</em></div>
    <div><em>     All Guests = $5.00</em></div>
    <div><em><strong>We are on Ticket 45 of 260</strong></em></div>
    <div><br></div>
    </div>
]]>
</Body>
<Summary>Stop by the Campus Information Center in The Commons to purchase the tickets listed below!     El Encuentro: Day of the Dead       Friday, November 1st       U.C. Ballroom @ 7pm       UMBC...</Summary>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/37517/guest@my.umbc.edu/e43faa48d3312fb9f49a0ab9dfcaefd2/api/pixel</TrackingUrl>
<Group token="cic">Campus Information Center (CIC)</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/cic</GroupUrl>
<AvatarUrl>https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/311/7180ee78abc8c4401d89f708582062e4/xsmall.png?1318518699</AvatarUrl>
<AvatarUrl size="original">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/311/7180ee78abc8c4401d89f708582062e4/original.png?1318518699</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/311/7180ee78abc8c4401d89f708582062e4/xxlarge.png?1318518699</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/311/7180ee78abc8c4401d89f708582062e4/xlarge.png?1318518699</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/311/7180ee78abc8c4401d89f708582062e4/large.png?1318518699</AvatarUrl>
<AvatarUrl size="medium">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/311/7180ee78abc8c4401d89f708582062e4/medium.png?1318518699</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/311/7180ee78abc8c4401d89f708582062e4/small.png?1318518699</AvatarUrl>
<AvatarUrl size="xsmall">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/311/7180ee78abc8c4401d89f708582062e4/xsmall.png?1318518699</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/311/7180ee78abc8c4401d89f708582062e4/xxsmall.png?1318518699</AvatarUrl>
<Sponsor>Campus Information Center (CIC)</Sponsor>
<ThumbnailUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/thumbnails/news/000/037/517/61cbe9d6fbd16b3dbdd5f1b39fab396e/xxlarge.jpg?1382735447</ThumbnailUrl>
<ThumbnailUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/thumbnails/news/000/037/517/61cbe9d6fbd16b3dbdd5f1b39fab396e/xlarge.jpg?1382735447</ThumbnailUrl>
<ThumbnailUrl size="large">https://assets2-my.umbc.edu/system/shared/thumbnails/news/000/037/517/61cbe9d6fbd16b3dbdd5f1b39fab396e/large.jpg?1382735447</ThumbnailUrl>
<ThumbnailUrl size="medium">https://assets2-my.umbc.edu/system/shared/thumbnails/news/000/037/517/61cbe9d6fbd16b3dbdd5f1b39fab396e/medium.jpg?1382735447</ThumbnailUrl>
<ThumbnailUrl size="small">https://assets1-my.umbc.edu/system/shared/thumbnails/news/000/037/517/61cbe9d6fbd16b3dbdd5f1b39fab396e/small.jpg?1382735447</ThumbnailUrl>
<ThumbnailUrl size="xsmall">https://assets1-my.umbc.edu/system/shared/thumbnails/news/000/037/517/61cbe9d6fbd16b3dbdd5f1b39fab396e/xsmall.jpg?1382735447</ThumbnailUrl>
<ThumbnailUrl size="xxsmall">https://assets2-my.umbc.edu/system/shared/thumbnails/news/000/037/517/61cbe9d6fbd16b3dbdd5f1b39fab396e/xxsmall.jpg?1382735447</ThumbnailUrl>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Fri, 25 Oct 2013 17:11:10 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="true" id="37518" important="false" status="posted" url="https://my3.my.umbc.edu/posts/37518">
<Title>Building a Synthesizer with the Web Audio API</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <p>One of the coolest APIs to hit the web in recent years is the Web Audio API. This allows you to create, load and manipulate audio directly in the browser; as well as perform a whole load of other functions that basically transforms your web browser into your own mini studio.</p>
    <p>In this blog post you will be using the Web Audio API to create a synthesizer pad that responds to user interactions.</p>
    <div>
    <a href="http://blog.teamtreehouse.com/wp-content/uploads/2013/10/web-audio-synth.png" rel="nofollow external" class="bo"><img alt="The demo app you will be creating" src="http://blog.teamtreehouse.com/wp-content/uploads/2013/10/web-audio-synth.png" width="1020" height="648" style="max-width: 100%; height: auto;"></a><p>The synthesizer app you will be creating.</p>
    </div>
    <p><a href="http://codepen.io/matt-west/full/lAFnx" rel="nofollow external" class="bo">View the Demo</a> <a href="http://cl.ly/0m2h1q0W421p" rel="nofollow external" class="bo">Download The Code</a> <a href="http://codepen.io/matt-west/pen/lAFnx" rel="nofollow external" class="bo">View on CodePen</a></p>
    <h2>Browser Support for the Web Audio API</h2>
    <p>At the time of writing this post the Web Audio API is only supported in Chrome, Opera and Safari. Firefox plans to add support in the near future.</p>
    <p>For full information on browser support check out: <a href="http://caniuse.com/audio-api" rel="nofollow external" class="bo">Can I use: Audio API</a>.</p>
    <h2>Setting up the HTML and CSS</h2>
    <p>To get started you first need to set up the HTML and CSS files for your project. Begin by creating a new file called <code>index.html</code> and copying the following code into it.</p>
    <pre><code>&lt;!DOCTYPE html&gt;&#x000A;    &lt;html lang="en"&gt;&#x000A;    &lt;head&gt;&#x000A;      &lt;meta charset="utf-8"&gt;&#x000A;      &lt;title&gt;Synth Pad Web Audio Demo&lt;/title&gt;&#x000A;    &#x000A;      &lt;link rel="stylesheet" href="style.css"&gt;&#x000A;    &lt;/head&gt;&#x000A;    &lt;body&gt;&#x000A;      &lt;div id="page-wrapper" class="clearfix"&gt;&#x000A;        &lt;canvas id="synth-pad"&gt;&lt;/canvas&gt;&#x000A;        &lt;div id="info"&gt;&#x000A;          &lt;h1&gt;Web Audio Synth Pad&lt;/h1&gt;&#x000A;          &lt;p&gt;&#x000A;            Click and drag the mouse over the synthesizer pad to generate a sound.&#x000A;          &lt;/p&gt;&#x000A;          &lt;p&gt;&#x000A;            Frequency: &lt;span id="frequency"&gt;n/a&lt;/span&gt;&#x000A;          &lt;/p&gt;&#x000A;          &lt;p&gt;&#x000A;            Volume: &lt;span id="volume"&gt;n/a&lt;/span&gt;&#x000A;          &lt;/p&gt;&#x000A;        &lt;/div&gt;&#x000A;      &lt;/div&gt;&#x000A;    &#x000A;      &lt;script src="app.js"&gt;&lt;/script&gt;&#x000A;    &lt;/body&gt;&#x000A;    &lt;/html&gt;&#x000A;    </code></pre>
    <p>Here you have defined a number of HTML elements that will make up the user interface for the synthesizer pad. The most important of these is the <code>&lt;canvas&gt;</code> element. This will form the surface of the pad. You have also added two <code>&lt;span&gt;</code> elements that will be used to display the pitch (frequency) and volume of the note that is being played.</p>
    <p>Make sure that you download the code resources and copy the <code>style.css</code> file into your project directory.</p>
    <h2>Setting up the SynthPad JavaScript Module</h2>
    <p>Now that you have the HTML and CSS setup for you app it’s time to start writing the JavaScript code. For this project you will be creating a module called <code>SynthPad</code> that will contain all of the code needed to make your app work. Using a modular pattern like this helps to make your code more usable.</p>
    <p>Create a new file called <code>app.js</code> and add the following code to it.</p>
    <pre><code>var SynthPad = (function() {&#x000A;      // Variables&#x000A;      var myCanvas;&#x000A;      var frequencyLabel;&#x000A;      var volumeLabel;&#x000A;    &#x000A;      var myAudioContext;&#x000A;      var oscillator;&#x000A;      var gainNode;&#x000A;    &#x000A;      // Notes&#x000A;      var lowNote = 261.63; // C4&#x000A;      var highNote = 493.88; // B4&#x000A;    &#x000A;      //&#x000A;      // Put the rest of the code here...&#x000A;      //&#x000A;    })();&#x000A;    &#x000A;    // Initialize the page.&#x000A;    window.onload = function() {&#x000A;      var synthPad = new SynthPad();&#x000A;    }&#x000A;    </code></pre>
    <p>Lets take a moment to break down exactly what is going on in this code.</p>
    <p>You start by defining a new module called <code>SynthPad</code>. This will contain all of the variables and functions that are related to the synthesizer pad.</p>
    <p>Next, you declare a number of <code>undefined</code> variables. These will be used to store references to key elements on the page as well as objects created using the WebAudio API. You also create some variables that define the upper and lower limits for the frequencies that can be generated on the pad.</p>
    <p>Finally you attach an event listener to the <code>window.onload</code> event that will initialize the <code>SynthPad</code> module when the page has loaded.</p>
    <p>Next you need to create a constructor that will be called when the <code>SynthPad</code> module is initialized. This will be responsible for fetching HTML elements on the page and setting up event listeners.</p>
    <p>Copy the following code into your <code>app.js</code> file.</p>
    <pre><code>// Constructor&#x000A;    var SynthPad = function() {&#x000A;      myCanvas = document.getElementById('synth-pad');&#x000A;      frequencyLabel = document.getElementById('frequency');&#x000A;      volumeLabel = document.getElementById('volume');&#x000A;    &#x000A;      // Create an audio context.&#x000A;      myAudioContext = new webkitAudioContext();&#x000A;    &#x000A;      SynthPad.setupEventListeners();&#x000A;    };&#x000A;    &#x000A;    // Export SynthPad.&#x000A;    return SynthPad;&#x000A;    </code></pre>
    <p>The <code>SynthPad.setupEventListeners()</code> function used here doesn’t exist just yet. You’ll be creating this in the next section.</p>
    <p>The last line of this code exports the constructor. This means that when you initialize the <code>SynthPad</code> elsewhere in your app the constructor you defined here will be called.</p>
    <p>There is one thing in this code block I haven’t mentioned yet. The call to <code>webkitAudioContext()</code> creates a new <code>AudioContext</code>. The <code>AudioContext</code> interface provides methods for creating <code>AudioNodes</code> that represent audio sources, processing modules or the audio destination. The <code>AudioContext</code> interface also manages how different <code>AudioNodes</code> are connected to each other.</p>
    <p>Lets use the example of a guitarist’s setup to better understand how <code>AudioNode</code> objects work and the role of <code>AudioContext</code>.</p>
    <p><a href="http://blog.teamtreehouse.com/wp-content/uploads/2013/10/guitar-pedal-amp.jpg" rel="nofollow external" class="bo"><img alt="guitar-pedal-amp" src="http://blog.teamtreehouse.com/wp-content/uploads/2013/10/guitar-pedal-amp.jpg" width="582" height="289" style="max-width: 100%; height: auto;"></a></p>
    <p>In this setup the guitar is an input source; the effects pedal is a processing node; and the amplifier is the audio destination. These are all <code>AudioNode</code> objects. The setup as a whole (including the cables that connect the devices) represents the <code>AudioContext</code>.</p>
    <h2>Listening for Events</h2>
    <p>Your next task is to setup event listeners that will handle interactions with the pad. Create this <code>SynthPad.setupEventListeners()</code> function in your <code>app.js</code> file.</p>
    <pre><code>// Event Listeners&#x000A;    SynthPad.setupEventListeners = function() {&#x000A;    &#x000A;      // Disables scrolling on touch devices.&#x000A;      document.body.addEventListener('touchmove', function(event) {&#x000A;        event.preventDefault();&#x000A;      }, false);&#x000A;    &#x000A;      myCanvas.addEventListener('mousedown', SynthPad.playSound);&#x000A;      myCanvas.addEventListener('touchstart', SynthPad.playSound);&#x000A;    &#x000A;      myCanvas.addEventListener('mouseup', SynthPad.stopSound);&#x000A;      document.addEventListener('mouseleave', SynthPad.stopSound);&#x000A;      myCanvas.addEventListener('touchend', SynthPad.stopSound);&#x000A;    };&#x000A;    </code></pre>
    <p>You want this app to work with both cursor and touch-oriented devices so you’ve added event listeners here for both sets of events.</p>
    <p>The <code>mousemove</code> event listener disables scrolling on touch devices. This is necessary otherwise the user wouldn’t be able to drag their finger across the pad effectively.</p>
    <p>The <code>mousedown</code> and <code>touchstart</code> event listeners call <code>SynthPad.playSound()</code>. This is responsible for synthesizing the note.</p>
    <p>The <code>mouseup</code>, <code>mouseleave</code>, and <code>touchend</code> events will call <code>SynthPad.stopSound()</code> to stop the audio.</p>
    <hr>
    <p><strong>Note:</strong> We’re not going to worry about support for multi-touch in this demo but it is possible. If you’re feeling ambitious once you’ve finished this tutorial have a go at adding support for multi-touch.</p>
    <hr>
    <h2>Creating Sounds</h2>
    <p>In this section you are going to create the function that is responsible for interacting with the Web Audio API to create sounds.</p>
    <p>Copy the following code into your <code>app.js</code> file.</p>
    <pre><code>// Play a note.&#x000A;    SynthPad.playSound = function(event) {&#x000A;      oscillator = myAudioContext.createOscillator();&#x000A;      gainNode = myAudioContext.createGainNode();&#x000A;    &#x000A;      oscillator.type = 'triangle';&#x000A;    &#x000A;      gainNode.connect(myAudioContext.destination);&#x000A;      oscillator.connect(gainNode);&#x000A;    &#x000A;      SynthPad.updateFrequency(event);&#x000A;    &#x000A;      oscillator.start(0);&#x000A;    &#x000A;      myCanvas.addEventListener('mousemove', SynthPad.updateFrequency);&#x000A;      myCanvas.addEventListener('touchmove', SynthPad.updateFrequency);&#x000A;    &#x000A;      myCanvas.addEventListener('mouseout', SynthPad.stopSound);&#x000A;    };&#x000A;    </code></pre>
    <p>Here you first create a new <a href="http://www.w3.org/TR/2013/WD-webaudio-20131010/#OscillatorNode" rel="nofollow external" class="bo"><code>OscillatorNode</code></a>. This is responsible for creating the waveform that produces the note.</p>
    <p>Next up you create a <code>GainNode</code> that will be used to control the volume.</p>
    <p>You then set the <code>type</code> of the <code>OscillatorNode</code> to <code>triangle</code>. This controls the shape of the periodic waveform which in turn effects the sound that you will hear. There are five different types: <code>sine</code>, <code>square</code>, <code>sawtooth</code>, <code>triangle</code> and <code>custom</code>.</p>
    <p>You then use the <code>connect()</code> method to link together the <code>GainNode</code> and <code>OscillatorNode</code>. This is like adding the cables between the guitar, effects pedal and amp. The <code>OscillatorNode</code> is the audio source (the guitar) so this needs to be connected up to the <code>GainNode</code> (the effects pedal) which in turn needs to be connected to <code>AudioContext.destination</code> (the amplifier).</p>
    <p>Next you call <code>SynthPad.updateFrequency()</code>. This function will set the note frequency and volume based on the position of the cursor (or finger) on the pad.</p>
    <p>A call to the <code>start()</code> method fires up the <code>OscillatorNode</code>. This will cause the note to start playing. The single parameter here indicates when the sound should start playing (in seconds). You want it to start playing immediately so this parameter has been set to <code>0</code>.</p>
    <p>To finish up you create two event listeners that will call <code>SynthPad.updateFrequency()</code> when the cursor or finger is moved. You also create an event listener that will call <code>SynthPad.stopSound()</code> if the mouse leaves the pad.</p>
    <h2>Stopping Sounds</h2>
    <p>Now lets create the function that will stop the <code>OscillatorNode</code>, and therefore the audio. Add the following code to your <code>app.js</code> file.</p>
    <pre><code>// Stop the audio.&#x000A;    SynthPad.stopSound = function(event) {&#x000A;      oscillator.stop(0);&#x000A;    &#x000A;      myCanvas.removeEventListener('mousemove', SynthPad.updateFrequency);&#x000A;      myCanvas.removeEventListener('touchmove', SynthPad.updateFrequency);&#x000A;      myCanvas.removeEventListener('mouseout', SynthPad.stopSound);&#x000A;    };&#x000A;    </code></pre>
    <p>Here you call the <code>stop()</code> method on the <code>OscillatorNode</code>. As with <code>start()</code>, the parameter determines when the sound should be stopped.</p>
    <p>You also remove the event listeners that were tracking the mouse movements. We don’t this information anymore if the user is not interacting with the pad.</p>
    <h2>Changing the Pitch and Volume</h2>
    <p>In this section you are going to write the code that handles calculating note frequencies and the volume.</p>
    <p>The pitch of the note being played will increase (get higher) as the user drags their cursor from left to right across the pad. The volume will increase as the cursor is dragged from the bottom to the top of the pad.</p>
    <p>Lets start by creating the <code>calculateNote()</code> function. This will use the position of the cursor on the pad to determine what the frequency of the note should be. Copy the following into your <code>app.js</code> file.</p>
    <pre><code>// Calculate the note frequency.&#x000A;    SynthPad.calculateNote = function(posX) {&#x000A;      var noteDifference = highNote - lowNote;&#x000A;      var noteOffset = (noteDifference / myCanvas.offsetWidth) * (posX - myCanvas.offsetLeft);&#x000A;      return lowNote + noteOffset;&#x000A;    };&#x000A;    </code></pre>
    <p>Here you first calculate the range between the <code>highNote</code> and <code>lowNote</code> variables you created earlier. The next line then starts by calculating what frequency value is represented by 1 pixel on the pad. This is then multiplied by the position of the cursor on the pad to give the value that should be added to <code>lowNote</code> to produce the final frequency.</p>
    <p>Next up you need to write a function that calculates the volume. Copy the following into your <code>app.js</code> file.</p>
    <pre><code>// Calculate the volume.&#x000A;    SynthPad.calculateVolume = function(posY) {&#x000A;      var volumeLevel = 1 - (((100 / myCanvas.offsetHeight) * (posY - myCanvas.offsetTop)) / 100);&#x000A;      return volumeLevel;&#x000A;    };&#x000A;    </code></pre>
    <p>The <code>calculateVolume()</code> function is similar to <code>calculateNote()</code> but this time you are using the position of the cursor along the Y axis of the pad.</p>
    <p>Now that you have these two helper functions defined you can create the main <code>calculateFrequency()</code> function. This is responsible for extracting the position of the cursor (or touch point) from an event; fetching the frequency and volume values; and updating the <code>OscillatorNode</code> and <code>GainNode</code>.</p>
    <p>Add the following code to your <code>app.js</code> file.</p>
    <pre><code>// Fetch the new frequency and volume.&#x000A;    SynthPad.calculateFrequency = function(x, y) {&#x000A;      var noteValue = SynthPad.calculateNote(x);&#x000A;      var volumeValue = SynthPad.calculateVolume(y);&#x000A;    &#x000A;      oscillator.frequency.value = noteValue;&#x000A;      gainNode.gain.value = volumeValue;&#x000A;    &#x000A;      frequencyLabel.innerHTML = Math.floor(noteValue) + ' Hz';&#x000A;      volumeLabel.innerHTML = Math.floor(volumeValue * 100) + '%';&#x000A;    };&#x000A;    </code></pre>
    <p>Here you first use the <code>calculateNote()</code> and <code>calculateVolume()</code> functions to get note and volume values. You then set the <code>OscillatorNode's</code> <code>frequency</code> property using the <code>noteValue</code> and the <code>GainNode's</code> <code>gain</code> property using <code>volumeValue</code>. To finish up you update the frequency and volume labels in the UI.</p>
    <p>The final function you need to create is <code>SynthPad.updateFrequency()</code>. This function is called repeatedly when the user moves the cursor across the pad. It is also called when the <code>mousedown</code> or <code>touchstart</code> events are fired.</p>
    <p>Add this function to your <code>app.js</code> file.</p>
    <pre><code>// Update the note frequency.&#x000A;    SynthPad.updateFrequency = function(event) {&#x000A;      if (event.type == 'mousedown' || event.type == 'mousemove') {&#x000A;        SynthPad.calculateFrequency(event.x, event.y);&#x000A;      } else if (event.type == 'touchstart' || event.type == 'touchmove') {&#x000A;        var touch = event.touches[0];&#x000A;        SynthPad.calculateFrequency(touch.pageX, touch.pageY);&#x000A;      }&#x000A;    };&#x000A;    </code></pre>
    <p>Here you first check to see if the event has been caused by someone using a mouse or a touch device. If a mouse is being used you extract the position of the cursor from the event data and pass this to the <code>calculateFrequency()</code> function.</p>
    <p>For touch events, you need to get the first object in the <code>event.touches</code> list and then extract the position of the pointer for that touch. You then pass this data to the same <code>calculateFrequency()</code> function.</p>
    <p>Congratulations! You should now have a working synthesiser pad that’s powered by the Web Audio API.</p>
    <p><a href="http://codepen.io/matt-west/full/lAFnx" rel="nofollow external" class="bo">View the Demo</a> <a href="http://cl.ly/0m2h1q0W421p" rel="nofollow external" class="bo">Download The Code</a> <a href="http://codepen.io/matt-west/pen/lAFnx" rel="nofollow external" class="bo">View on CodePen</a></p>
    <h2>Final Thoughts</h2>
    <p>In this blog post you have learned how to use the Web Audio API to create a mini synthesizer pad. We’ve barely scratched the surface of what can be achieved using this API, but you now have the foundation needed to explore more complex applications.</p>
    <p>The Web Audio API has many uses within modern web applications, especially when it comes to <a href="http://www.html5rocks.com/en/tutorials/webaudio/games/" rel="nofollow external" class="bo">creating games</a>. If you’re interested in learning more about web audio I recommend checking out some of the links listed below.</p>
    <p>Until next time, happy coding!</p>
    <h2>Useful Links</h2>
    <ul>
    <li><a href="http://www.html5rocks.com/en/tutorials/webaudio/games/" rel="nofollow external" class="bo">Developing Game Audio with the Web Audio API</a></li>
    <li><a href="http://webaudio-io2012.appspot.com/#1" rel="nofollow external" class="bo">Turning the Web Up to 11: The Web Audio API</a></li>
    <li><a href="http://alxgbsn.co.uk/wavepad/" rel="nofollow external" class="bo">Fully Featured HTML5 Synth by Alex Gibson</a></li>
    <li><a href="http://caniuse.com/audio-api" rel="nofollow external" class="bo">Can I use: Audio API</a></li>
    <li><a href="http://www.w3.org/TR/2013/WD-webaudio-20131010/" rel="nofollow external" class="bo">Web Audio API Specification (W3C)</a></li>
    <li><a href="https://developer.mozilla.org/en-US/docs/Web_Audio_API" rel="nofollow external" class="bo">Web Audio API (MDN)</a></li>
    </ul>
    <p>The post <a href="http://blog.teamtreehouse.com/building-a-synthesizer-with-the-web-audio-api" rel="nofollow external" class="bo">Building a Synthesizer with the Web Audio API</a> appeared first on <a href="http://blog.teamtreehouse.com" rel="nofollow external" class="bo">Treehouse Blog</a>.</p>
    </div>
]]>
</Body>
<Summary>One of the coolest APIs to hit the web in recent years is the Web Audio API. This allows you to create, load and manipulate audio directly in the browser; as well as perform a whole load of other...</Summary>
<Website>http://feedproxy.google.com/~r/teamtreehouse/~3/Uk793HvUtD8/building-a-synthesizer-with-the-web-audio-api</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/37518/guest@my.umbc.edu/beee9aa1cff26f6a62f00d33db3934a6/api/pixel</TrackingUrl>
<Tag>android</Tag>
<Tag>css</Tag>
<Tag>design</Tag>
<Tag>development</Tag>
<Tag>html</Tag>
<Tag>html5</Tag>
<Tag>ios</Tag>
<Tag>javascript</Tag>
<Tag>responsive</Tag>
<Tag>web</Tag>
<Tag>web-apps</Tag>
<Tag>web-audio</Tag>
<Group token="retired-583">Web Developer - Build Group</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/retired-583</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="original">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/original.jpg?1363101197</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xlarge.png?1363101197</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/large.png?1363101197</AvatarUrl>
<AvatarUrl size="medium">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/medium.png?1363101197</AvatarUrl>
<AvatarUrl size="small">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/small.png?1363101197</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xsmall.png?1363101197</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/583/fc60f5d7abc2e080599bb6dc465db54d/xxsmall.png?1363101197</AvatarUrl>
<Sponsor>Web Developer - Build Group</Sponsor>
<PawCount>0</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Fri, 25 Oct 2013 17:00:51 -0400</PostedAt>
</NewsItem>

<NewsItem contentIssues="false" id="37519" important="false" status="posted" url="https://my3.my.umbc.edu/posts/37519">
<Title>Defense: Tyler Simon on Task Scheduling for Scalable High Performance Computing</Title>
<Body>
<![CDATA[
    <div class="html-content">
    <p><img alt="Computing a minimal spanning tree for a large graph is a common problem that can be computationally expensive to do." src="http://www.csee.umbc.edu/wp-content/uploads/2013/10/mst.jpg" width="700" height="308" style="max-width: 100%; height: auto;"></p>
    <h4>Computer Science and Electrical Engineering<br>
    University of Maryland, Baltimore County</h4>
    <h4>Ph.D. Dissertation Defense</h4>
    <h2>Multiple Objective Task Scheduling<br>
    for Scalable High Performance Computing</h2>
    <h3>Tyler A. Simon</h3>
    <h3>12:30-2:30 Friday, 8 November 2013, ITE 325b</h3>
    <p>Individual processor frequencies have reached an upper physical and practical limit. Processor designs now involve adding multiple processing elements to a single chip to enable increased performance. It is expected that all future processor designs will have multiple cores with a focus on reducing frequencies and adding more individual processing elements (cores) while having to balance power consumption, reliability and maintain high performance.</p>
    <p>Due to the increased complexity as well as increased heterogeneity of parallel architectures, petascale and future exascale systems, with the number of processors on the order of 10^8-10^9, must incorporate more intelligent software tools that help manage parallel execution for the user. I demonstrate that by managing the parallel execution environment at runtime, we can satisfy performance tradeoffs for a particular application or application domain for a set of common HPC architectures. It is expected that future exascale computing systems will have to execute programs on many individual and potentially low powered processing elements. These processors need to be fed data efficiently and reliably through the duration of a parallel computation.</p>
    <p>In this thesis I provide a performance analysis of two common graph algorithms for finding a minimum spanning tree and evaluate the multicore performance of a common high performance computing (HPC) benchmark on multicore processors. I also develop a novel autonomic execution model and adaptive runtime system (ARRIA) Adaptive Runtime Resource for Intensive Applications. ARRIA is designed with the intent of improving application programmability, scalability and performance while freeing the programmer from explicit message passing and thread management. Experiments are conducted that evaluate ARRIA’s capabilities on data intensive applications, those where the majority of execution time is spent reading and writing either to local or remote memory locations. In my approach, I focus on developing task schedules that satisfy multiple objectives for clusters of compute nodes during runtime. This approach is novel in that it can control application performance and satisfy constraints that are solved using multi objective optimization techniques as the program runs. The development and implementation of the ARRIA runtime system and subsequent optimization criteria likely provide reasonable models for the exascale computing era.</p>
    <p>The results of this dissertation demonstrate, experimentally, that for high performance computing systems, a dynamic, task based, parallel programming environment and scheduler can provide lower total workload runtimes and high utilization compared with commonly used static scheduling policies.</p>
    </div>
]]>
</Body>
<Summary>Computer Science and Electrical Engineering  University of Maryland, Baltimore County   Ph.D. Dissertation Defense   Multiple Objective Task Scheduling  for Scalable High Performance Computing...</Summary>
<Website>http://www.csee.umbc.edu/2013/10/defense-tyler-simon-on-task-scheduling-for-scalable-high-performance-computing/</Website>
<TrackingUrl>https://my3.my.umbc.edu/api/v0/pixel/news/37519/guest@my.umbc.edu/18ddb363778f521ac0f7d94933a10586/api/pixel</TrackingUrl>
<Tag>computer-science</Tag>
<Tag>defense</Tag>
<Tag>graduate</Tag>
<Tag>news</Tag>
<Tag>research</Tag>
<Tag>talks</Tag>
<Group token="csee">Computer Science and Electrical Engineering</Group>
<GroupUrl>https://my3.my.umbc.edu/groups/csee</GroupUrl>
<AvatarUrl>https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/099/d117dca133c64bf78a4b7696dd007189/xsmall.png?1314043393</AvatarUrl>
<AvatarUrl size="original">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/099/d117dca133c64bf78a4b7696dd007189/original.png?1314043393</AvatarUrl>
<AvatarUrl size="xxlarge">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/099/d117dca133c64bf78a4b7696dd007189/xxlarge.png?1314043393</AvatarUrl>
<AvatarUrl size="xlarge">https://assets4-my.umbc.edu/system/shared/avatars/groups/000/000/099/d117dca133c64bf78a4b7696dd007189/xlarge.png?1314043393</AvatarUrl>
<AvatarUrl size="large">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/099/d117dca133c64bf78a4b7696dd007189/large.png?1314043393</AvatarUrl>
<AvatarUrl size="medium">https://assets1-my.umbc.edu/system/shared/avatars/groups/000/000/099/d117dca133c64bf78a4b7696dd007189/medium.png?1314043393</AvatarUrl>
<AvatarUrl size="small">https://assets2-my.umbc.edu/system/shared/avatars/groups/000/000/099/d117dca133c64bf78a4b7696dd007189/small.png?1314043393</AvatarUrl>
<AvatarUrl size="xsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/099/d117dca133c64bf78a4b7696dd007189/xsmall.png?1314043393</AvatarUrl>
<AvatarUrl size="xxsmall">https://assets3-my.umbc.edu/system/shared/avatars/groups/000/000/099/d117dca133c64bf78a4b7696dd007189/xxsmall.png?1314043393</AvatarUrl>
<Sponsor>Computer Science and Electrical Engineering</Sponsor>
<PawCount>3</PawCount>
<CommentCount>0</CommentCount>
<CommentsAllowed>true</CommentsAllowed>
<PostedAt>Fri, 25 Oct 2013 16:57:25 -0400</PostedAt>
</NewsItem>

</News>
