<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>joeberkovitz.com &#187; Music</title>
	<atom:link href="http://joeberkovitz.com/blog/category/music/feed/" rel="self" type="application/rss+xml" />
	<link>http://joeberkovitz.com/blog</link>
	<description>Just another WordPress weblog</description>
	<lastBuildDate>Tue, 09 Nov 2010 15:08:15 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.5</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>You Are My Starshine</title>
		<link>http://joeberkovitz.com/blog/2009/09/12/you-are-my-starshine/</link>
		<comments>http://joeberkovitz.com/blog/2009/09/12/you-are-my-starshine/#comments</comments>
		<pubDate>Sat, 12 Sep 2009 15:01:49 +0000</pubDate>
		<dc:creator>joe</dc:creator>
				<category><![CDATA[Music]]></category>

		<guid isPermaLink="false">http://joeberkovitz.com/blog/?p=213</guid>
		<description><![CDATA[This is not an entry for the recent Noteflight composition contest &#8212; I&#8217;m flagrantly ineligible to enter. But sometimes, you just have to get something out of your system.
This piece is dedicated to the memory of George Russell.

]]></description>
			<content:encoded><![CDATA[<p>This is not an entry for the recent Noteflight composition contest &#8212; I&#8217;m flagrantly ineligible to enter. But sometimes, you just have to get something out of your system.</p>
<p>This piece is dedicated to the memory of George Russell.</p>
<p><object width="500" height="409"><param name="movie" value="http://www.noteflight.com/scores/embed"></param><param name="FlashVars" value="id=fcd083a50dcded6e3f6a75473bb971093262ccca&#038;scale=1"></param><embed src="http://www.noteflight.com/scores/embed" type="application/x-shockwave-flash" FlashVars="id=fcd083a50dcded6e3f6a75473bb971093262ccca&#038;scale=1" width="500" height="409"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://joeberkovitz.com/blog/2009/09/12/you-are-my-starshine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Remembering George Russell</title>
		<link>http://joeberkovitz.com/blog/2009/07/30/remembering-george-russell/</link>
		<comments>http://joeberkovitz.com/blog/2009/07/30/remembering-george-russell/#comments</comments>
		<pubDate>Thu, 30 Jul 2009 02:13:31 +0000</pubDate>
		<dc:creator>joe</dc:creator>
				<category><![CDATA[Music]]></category>

		<guid isPermaLink="false">http://joeberkovitz.com/blog/?p=197</guid>
		<description><![CDATA[I just heard that the jazz composer George Russell died 2 days ago.  George was a very significant person in my musical life, and I&#8217;m sorry that he&#8217;s not with us any more.
I first heard his music in 1974 or so, when I was 14 or 15 years old and living in London.  [...]]]></description>
			<content:encoded><![CDATA[<p>I just heard that the jazz composer <a href="http://en.wikipedia.org/wiki/George_Russell_(composer)">George Russell</a> died 2 days ago.  George was a very significant person in my musical life, and I&#8217;m sorry that he&#8217;s not with us any more.</p>
<p>I first heard his music in 1974 or so, when I was 14 or 15 years old and living in London.  I would occasionally hang out with my father&#8217;s friend and colleague Erik Edvardsen, an electronic engineer. Erik lived in Brixton (which meant I got to go on the then-new Victoria Line to visit him, kind of a treat) and he had an adventurous taste in music.  Over time, he lent me a whole bunch of albums which I took home and listened to.  The ones I liked a lot, I&#8217;d record on cassette.  I still have a lot of those cassettes, although I don&#8217;t have a way to play them now.</p>
<p>Some of the music he lent me I found inaccessible at first, and George Russell&#8217;s music fell into this category.  Something about it held my attention though, and kind of riveted me to my spot and forced me to listen.  I think Erik had a few of the early 60s albums in there &#8212; Stratusphunk, Sextet at the Five Spot. Anyway, I kept listening, and I began to connect with it, to the point where I didn&#8217;t really want to hear anything else for a while.  Then I started getting hold of his other recordings.  George&#8217;s writing became then, and still is, some of my favorite music of all time. It has a startling freshness, a willingness to explore, an openness to tonal possibilities, that to me has rarely been equaled in jazz or in music of any genre.  And for all of its modernity, George&#8217;s music is never dry or academic: it&#8217;s emotional, hard-swinging music that has a lot of feeling.  Another thing: there is nothing extra or gratuitous in it.  Everything that is there is there for a reason, and you can directly experience those reasons by listening.</p>
<p>A couple of years later, as I continued studying and playing music while attending high school in Lexington, Mass., I learned about his &#8220;Lydian Chromatic Concept of Tonal Organization&#8221; &#8212; a system of thinking about harmonic and tonal relationships that changed the thinking of a lot of well-known jazz musicians from Miles to Coltrane to&#8230; well, a whole lot of people. I knew that George Russell lived in Cambridge and somehow screwed up my nerve to look him up in the phone book and call him up. I remember that it was kind of a weird stilted conversation, because I didn&#8217;t really know what I wanted to say to my idol; I guess this makes me kind of a teenage George Russell stalker.  I think I stammered out something about wanting to find his book on the Lydian Concept, and he got me off the phone quickly and gracefully by telling me I could find his book at the Busy Bee bookstore (if I remember the name right), which was on Hemenway St. near Berklee College of Music. I drove into Boston and bought it immediately.</p>
<p>The book was a revelation to me. It instantly unified and clarified of a whole current of confused and half-formed thoughts that had been running through my brain about scales, chords, and above all, tonality: the concept of music &#8220;being in a key&#8221;.  A whole lot of junk dropped away and what seemed like a Rube Goldberg apparatus of chord symbols and modes turned into a much simpler way of looking at things.</p>
<p>There&#8217;s a lot that could be and has been said about George&#8217;s theory, and I&#8217;ll try to use my own language to hint at what he did that was so important to me and to others.  In essence, George had a way of considering sets of tones (like notes in a melody, in a chord, or in a scale) as intervallic structures.  He had rules for what one might call &#8220;orienting&#8221; these structures: determining what tones in a structure act as a harmonic foundation for the others, and how those other tones relate to the foundation. He also laid out some rules for how tonal structures related to each other in terms of a kind of &#8220;distance&#8221;.  These rules had a way of reducing myriad musical ideas and variations into a much smaller number of essential forms that could be thought about much more easily, and could then be used to generate even more ideas.  They corresponded in an obvious way to inner musical perceptions familiar to jazz improvisors.  George&#8217;s concepts anticipated later work in tonal perception by theorists inside the academic community like Fred Lerdahl and Ray Jackendorff: work that has yet to catch up with George&#8217;s theories, if measured by its practical value to musicians.  I think the fact that academics did not openly acknowledge or build on George&#8217;s work left a bad taste in his mouth, although it was hard to be sure.</p>
<p>Fast forward two more years: In 1979, I left Wesleyan after a dismal year of liberal arts education for the New England Conservatory of Music in Boston, to study piano and composition and make a musical life for myself.  The fact that George taught there was no small part of this decision.  I knew I&#8217;d be able to take his class (which I did) and that I&#8217;d have a chance to study composition privately with him (which I also did).</p>
<p>I found out some important things by studying music with George. I did learn a bunch more about his system of thinking, but perhaps the most surprising and hardest-to-accept lesson was that the things I loved the most about his music did not come from his theory, were not acknowledged by him in any explicit way, and could not be learned from studying with him. There is a kind of essential pride in his music, a matter-of-fact willingness to make a musical statement boldly, asserting itself according to its own musical logic, in fact, defining the very terms of that logic.  This pride, this courage, the simultaneous respect for and departure from convention &#8212; they can be married with the materials of his theory, but they are not by demanded by that theory (and do not require its adoption).  These qualities are there in his work and they were there in his life.  George was fond of saying, &#8220;You play off the top of your knowledge.&#8221;  In other words, knowledge determines your starting point for creation, but where you finally end up is the result of playing &#8212; and I mean, literally, engaging in unconscious, joyous play &#8212; with that knowledge.</p>
<p>Thank you, George Russell, for everything you did.  Your thinking and your artistry had a huge impact on me.  I will miss you.</p>
<p>Here is the melodic statement from George&#8217;s <em>Stratusphunk</em>, one of the first pieces of his that I remember hearing.  It&#8217;s a simple and economical theme, moving around only a little bit.  Nevertheless, in its economy, it generates an entire world of surprising implications when heard against the surrounding blues harmony.</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="500" height="220" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="FlashVars" value="id=d89ffb1b3a033a4108a60cf9b7324308c680e602&amp;scale=1" /><param name="src" value="http://www.noteflight.com/scores/embed" /><embed type="application/x-shockwave-flash" width="500" height="220" src="http://www.noteflight.com/scores/embed" flashvars="id=d89ffb1b3a033a4108a60cf9b7324308c680e602&amp;scale=1"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://joeberkovitz.com/blog/2009/07/30/remembering-george-russell/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Visiting with The Echo Nest</title>
		<link>http://joeberkovitz.com/blog/2009/06/13/visiting-with-the-echo-nest/</link>
		<comments>http://joeberkovitz.com/blog/2009/06/13/visiting-with-the-echo-nest/#comments</comments>
		<pubDate>Sat, 13 Jun 2009 11:45:05 +0000</pubDate>
		<dc:creator>joe</dc:creator>
				<category><![CDATA[Music]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://joeberkovitz.com/blog/?p=189</guid>
		<description><![CDATA[Yesterday I paid a head-spinning visit to The Echo Nest, a small software company in nearby Somerville, at the invitation of their CTO Brian Whitman.  You might not have heard of The Echo Nest, but their products power an increasing number of music recommendation engines in sites around the world.
You heard it from me: [...]]]></description>
			<content:encoded><![CDATA[<p>Yesterday I paid a head-spinning visit to <a href="http://the.echonest.com">The Echo Nest</a>, a small software company in nearby Somerville, at the invitation of their CTO Brian Whitman.  You might not have heard of The Echo Nest, but their products power an increasing number of music recommendation engines in sites around the world.</p>
<p>You heard it from me: these folks are writing some of the most badass music-related code on the planet.</p>
<p>The Echo Nest are experts in &#8220;machine listening&#8221;: they have developed a set of algorithms that crunch through raw audio media and extract a set of distinctive musical features. These features roughly describe what is happening in the music at a hierarchy of time durations (beat, measure, section), and from the features they can compute a notion of similarity between different pieces of music.  This similarity metric drives the recommendation aspect of their business.</p>
<p>Naturally enough Noteflight and The Echo Nest have some mutual interests, hence our visit. Audio media and music notation are both descriptions of music, so our companies both think a lot about how those descriptions are related.  It&#8217;s a tough problem to go from either description to the other, and no algorithm can perform either task anywhere near as well as a human musician.</p>
<p>Anyway, while I was over there they showed off a very cool music hacking tool called <a href="http://code.google.com/p/echo-nest-remix/">Remix</a> which you can grab from Google Code.  It&#8217;s basically a Python library that takes an audio file, analyzes it using Echo Nest wizardry, and then returns a data structure describing the audio down to the beat level.  You can then mess with these beat-length samples based on their descriptive data, and reassemble them in bizarre and unexpectedly musical ways.</p>
<p>As an example, they played me a version of &#8220;Here Comes The Sun&#8221;, in a strangely filtered version in which only beats in the same key as the opening intro had been retained.  The result was a odd, drone-like modification of the song in which the intro itself was intact, but then unfolded into a sequence of snippets from the song that were completely familiar but from which all harmonic motion had been precisely excised.</p>
<p>I then heard a Hall and Oates song that had had beats 2 and 4 surgically removed from every measure.  The result?  A weird double-time version in which the song form progressed at twice the normal speed, the lyrics were mostly unintelligible but with many recognizable syllables, and the entire song&#8217;s length was chopped in half.  The latter aspect could be viewed as an improvement on the original.</p>
<p>As a code-on-the-spot challenge, I asked if they could put together a version that sorted all the beats by amplitude, putting the softest ones first and the loudest ones last.  5 minutes of Python hacking later, we were listening to a bizarre, long crescendo of segments from the song, seamlessly reassembled into a whole.  The beginning consisted mostly of quieter instrumental chords or the unaccented syllables of words, while the end was a kind of synopsis of all the climactic moments in the song with kick drum or vocal accents.  The whole song turned into a single musical gesture, reassembled from its fragments into something completely different but still wholly familiar sounding.</p>
]]></content:encoded>
			<wfw:commentRss>http://joeberkovitz.com/blog/2009/06/13/visiting-with-the-echo-nest/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>StandingWave2: an open source AS3 audio library</title>
		<link>http://joeberkovitz.com/blog/2009/05/15/standingwave-open-source-as3-audio/</link>
		<comments>http://joeberkovitz.com/blog/2009/05/15/standingwave-open-source-as3-audio/#comments</comments>
		<pubDate>Fri, 15 May 2009 03:24:56 +0000</pubDate>
		<dc:creator>joe</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://joeberkovitz.com/blog/?p=186</guid>
		<description><![CDATA[[See note below about the StandingWave3 update.]
After months of waiting for an opportunity to open up in my schedule, I&#8217;ve finally managed to create and package the StandingWave2 audio synthesis engine for Flash.  It&#8217;s now up on Google Code at http://code.google.com/p/standingwave/.  Phew&#8230; about time!
People have been asking for an open source audio library [...]]]></description>
			<content:encoded><![CDATA[<p><strong>[See note below about the StandingWave3 update.]</strong></p>
<p>After months of waiting for an opportunity to open up in my schedule, I&#8217;ve finally managed to create and package the StandingWave2 audio synthesis engine for Flash.  It&#8217;s now up on Google Code at <a href="http://code.google.com/p/standingwave/">http://code.google.com/p/standingwave/</a>.  Phew&#8230; about time!</p>
<p>People have been asking for an open source audio library for a long time.  Because the original StandingWave1 became an integral part of <a href="http://www.noteflight.com">Noteflight</a>, I could not simply give the code away.  StandingWave2, on the other hand, is a clean subset that the Noteflight team is happy to make available to the Flash community under the MIT OS license.</p>
<p>The basic ideas behind StandingWave are sources, filters and performances.  Sources and filters are simple, self-contained objects that can be hooked up to create a kind of audio-processing/sequencing pipeline, and then rendered by a &#8220;player&#8221; object that encapsulates the Flash Player 10 audio API.  Performances allow source/filter combinations to be delivered in a continuous sequence, with extremely precise timing. Obviously this can be used to play music, but it can also be used for all kinds of dynamic sound creation.  And it&#8217;s relatively easy to extend StandingWave to add your own kinds of sources, filters and performances once you read the code and get the idea.</p>
<p>All the DSP algorithms are in pure AS3.  They would certainly be faster in PixelBender or Alchemy, but we&#8217;ve opted to keep the approach simple and flexible for now so that it&#8217;s easy for people to extend.</p>
<p>I will be talking much more about StandingWave at 360Flex and Flash on Tap, so hope you can make it to either of those conferences.  I&#8217;ll be posting the slides here.</p>
<p>About its quality and performance: as useful as this library is (thousands of people use it on Noteflight), it could be so much better.  It&#8217;s fast, but it should be faster; it has a basic repertoire of sources and filters, but should be richer.  The need for improvement is one of the main reasons we&#8217;re open sourcing it: we very much want others to contribute.</p>
<p>Happy audio coding!</p>
<p><strong>Important update:</strong> After a lot of amazing work by Max Lord, who rearranged SW2&#8217;s internal organs to create a new, bionically altered library, StandingWave 3 was released in June 2010. This update to StandingWave uses Adobe Alchemy to compile C audio processing code directly into the Flash Player for maximum speed, and is generally much faster and more flexible than Standing Wave 2.  It also includes a notion of modulators that allows for continuous variation of many filter parameters. <strong> </strong>Like this idea? I do, which is why it&#8217;s now the production audio library in Noteflight.  <strong><a href="http://github.com/maxl0rd/standingwave3">Go to the StandingWave 3 repository on GitHub. </a></strong></p>
]]></content:encoded>
			<wfw:commentRss>http://joeberkovitz.com/blog/2009/05/15/standingwave-open-source-as3-audio/feed/</wfw:commentRss>
		<slash:comments>29</slash:comments>
		</item>
		<item>
		<title>360Flex: Talking About Audio</title>
		<link>http://joeberkovitz.com/blog/2009/05/11/360flex-talking-about-audio/</link>
		<comments>http://joeberkovitz.com/blog/2009/05/11/360flex-talking-about-audio/#comments</comments>
		<pubDate>Mon, 11 May 2009 12:39:46 +0000</pubDate>
		<dc:creator>joe</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://joeberkovitz.com/blog/?p=179</guid>
		<description><![CDATA[I&#8217;ve been working all weekend on next Monday&#8217;s presentation at 360 Flex: the focus is on audio synthesis in Flash.  I think this will be a fun one: I&#8217;ll be unveiling an open source version of Noteflight&#8217;s StandingWave audio library, at long last.  This should make it much easier for folks to create [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been working all weekend on next Monday&#8217;s presentation at 360 Flex: the focus is on audio synthesis in Flash.  I think this will be a fun one: I&#8217;ll be unveiling an open source version of Noteflight&#8217;s StandingWave audio library, at long last.  This should make it much easier for folks to create Flash or Flex apps that do real-time audio synthesis, since it provides a set of useful building blocks on top of the raw Flash Player 10 API.  StandingWave has a bunch of useful concepts in it like audio sources, filters/transformations and sequenced &#8220;performances&#8221; of timed events, and I&#8217;m hopeful that others will find it useful.  I&#8217;ll post again when it&#8217;s actually ready for consumption &#8212; that is to say, next week!</p>
<p>I&#8217;m showing a few cool demos of this technology at the conference, including a Moccasin-based visual editor for a &#8220;musical shapes&#8221; world in which shapes represent tones, and a set of data entry forms that progress smoothly through an accompanying musical form as the user navigates.  It&#8217;s been loads of fun working on this stuff, which is to say it&#8217;s not anything like work at all.</p>
<p>I guess I have to go back to work now.</p>
<p>Gosh darn it.</p>
]]></content:encoded>
			<wfw:commentRss>http://joeberkovitz.com/blog/2009/05/11/360flex-talking-about-audio/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Why Music Notation is Free Now</title>
		<link>http://joeberkovitz.com/blog/2009/02/26/why-music-notation-is-free-now/</link>
		<comments>http://joeberkovitz.com/blog/2009/02/26/why-music-notation-is-free-now/#comments</comments>
		<pubDate>Thu, 26 Feb 2009 14:23:36 +0000</pubDate>
		<dc:creator>joe</dc:creator>
				<category><![CDATA[Music]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://joeberkovitz.com/blog/?p=157</guid>
		<description><![CDATA[(This is a cross-post from blog.noteflight.com.)
I was thinking the other day about Noteflight, and the most frequently asked question of all &#8212; so frequent, it should probably go in our FAQ: &#8220;How can you make money if your notation software is free&#8221;?
I&#8217;ll answer that question somewhat indirectly, with an observation followed by another question.
There is [...]]]></description>
			<content:encoded><![CDATA[<p>(This is a cross-post from <a href="http://blog.noteflight.com">blog.noteflight.com</a>.)</p>
<p>I was thinking the other day about Noteflight, and the most frequently asked question of all &#8212; so frequent, it should probably go in our FAQ: &#8220;How can you make money if your notation software is free&#8221;?</p>
<p>I&#8217;ll answer that question somewhat indirectly, with an observation followed by another question.</p>
<p>There is a constant trend in the evolution of software.  Our expectations of software value received per dollar spent are constantly being raised, whether we are aware of it or not, and online use has a lot to do with it.  Part of that process is a shift in perspective that I&#8217;ll summarize this way: &#8220;Yesterday&#8217;s application is tomorrow&#8217;s component.&#8221;</p>
<p>Let&#8217;s look at a familiar example: word processing.  Way back when, there was a program called Microsoft Word.  Hey, there still is &#8212; and it still ain&#8217;t cheap!  But I&#8217;m talking about Word 2000 right now, not MS Office 2008.  Its main toolbar looked like this at the time:</p>
<p><a href="http://blog.noteflight.com/wp-content/uploads/2009/02/msw2000toolbar.png"><img class="size-full wp-image-124" title="msw2000toolbar" src="http://blog.noteflight.com/wp-content/uploads/2009/02/msw2000toolbar.png" alt="MS Word Toolbar" width="473" height="52" /></a></p>
<p>And here&#8217;s a toolbar from one of those ubiquitous online &#8220;rich text editors&#8221; that you see in your browser all the time now, everywhere from blogs to email programs to content management systems:</p>
<p><a href="http://blog.noteflight.com/wp-content/uploads/2009/02/picture-8.png"><img class="size-full wp-image-125" title="Online Rich Text Editor" src="http://blog.noteflight.com/wp-content/uploads/2009/02/picture-8.png" alt="Online Rich Text Editor (Moodle)" width="500" height="48" /></a></p>
<p>So, back to the original proposition: do you pay anything for an editor like this, that you use in an application whose main purpose is to do something else, that&#8217;s larger-scale and more important to you?</p>
<p>Of course you don&#8217;t pay for that.  You unthinkingly click the &#8220;B&#8221; button to make your text bold, never giving a thought to the fact that Microsoft used to charge a steep price for functionality like that, back in the day.  As you do this, you are not thinking, &#8220;wow, I&#8217;m doing word processing!&#8221;  You are using the editor to write your friend an e-mail, or to create some course content for your students, or to make up a document that you are storing online in Adobe Buzzword, Google Docs, etc.</p>
<p>This neatly sums up what Noteflight is all about.  What you should pay for isn&#8217;t the raw ability to compose and edit music notation on a computer: it&#8217;s the software around the editor that matters.  Music notation software is going to be free now.</p>
]]></content:encoded>
			<wfw:commentRss>http://joeberkovitz.com/blog/2009/02/26/why-music-notation-is-free-now/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Live (or not so live) on The Flex Show</title>
		<link>http://joeberkovitz.com/blog/2008/12/19/live-or-not-so-live-on-the-flex-show/</link>
		<comments>http://joeberkovitz.com/blog/2008/12/19/live-or-not-so-live-on-the-flex-show/#comments</comments>
		<pubDate>Fri, 19 Dec 2008 01:48:35 +0000</pubDate>
		<dc:creator>joe</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://joeberkovitz.com/blog/?p=127</guid>
		<description><![CDATA[Starting today, you can catch me on episode 63 of The Flex Show, in which the effervescent John Wilker and Jeffry Houser interview yours truly about Noteflight, Flex, and I forget what else &#8212; it was taped a few weeks ago, which feels more like several years given the wealth of activity that was packed [...]]]></description>
			<content:encoded><![CDATA[<p>Starting today, you can catch me on <a href="http://www.theflexshow.com/blog/index.cfm/2008/12/17/Flex-Show-Episode-63-Interview-with-Joe-Berkovitz-of-Noteflightcom">episode 63 of The Flex Show</a>, in which the effervescent John Wilker and Jeffry Houser interview yours truly about Noteflight, Flex, and I forget what else &#8212; it was taped a few weeks ago, which feels more like several years given the wealth of activity that was packed into it.  I think I might take a listen right now, to find out the exact manner in which I embarrassed myself.</p>
]]></content:encoded>
			<wfw:commentRss>http://joeberkovitz.com/blog/2008/12/19/live-or-not-so-live-on-the-flex-show/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Controlling Audio Latency in Flash 10</title>
		<link>http://joeberkovitz.com/blog/2008/10/15/controlling-audio-latency-in-flash-10/</link>
		<comments>http://joeberkovitz.com/blog/2008/10/15/controlling-audio-latency-in-flash-10/#comments</comments>
		<pubDate>Wed, 15 Oct 2008 20:04:47 +0000</pubDate>
		<dc:creator>joe</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.joeberkovitz.com/blog/2008/10/15/controlling-audio-latency-in-flash-10/</guid>
		<description><![CDATA[Adobe threw a slight curve ball with the long-awaited release of Flash Player 10 today.  The release itself wasn&#8217;t the curve ball (although not everyone expected it to happen on thisdate).  The surprise was the audio latency using the new dynamic sound generation APIs.
Audio latency, for programs that synthesize sound on the fly, is roughly [...]]]></description>
			<content:encoded><![CDATA[<p>Adobe threw a slight curve ball with the long-awaited release of Flash Player 10 today.  The release itself wasn&#8217;t the curve ball (although not everyone expected it to happen on thisdate).  The surprise was the audio latency using the new dynamic sound generation APIs.</p>
<p>Audio latency, for programs that synthesize sound on the fly, is roughly defined as the amount of time between the program creating a sound and the computer&#8217;s audio output actually playing that same sound.  Latency is important because it affects the user experience.  If a user hits a &#8220;play&#8221; button and waits 1 second before hearing anything, that can be annoying.  If a user types a note into a music notation editor and has to wait 1 second before hearing anything, that&#8217;s downright maddening.</p>
<p>Latency isn&#8217;t all bad, though.  The higher the latency, the more &#8220;give&#8221; the sound output pipeline has, and the more resistant it is to disruption by other processes running in your browser and on your computer.  Ideally you want to strike a balance between latency and robustness in your sound output.</p>
<p>In Noteflight, the latency on Mac OS X had been at a comfortable 30 milliseconds &#8212; about a 30th of a second &#8212; using the Flash 10 beta.  But in the released production version, Noteflight&#8217;s audio latency suddenly jumped to about 850 milliseconds.  Other folks with audio synthesis apps reported other numbers, all of them different.  Whoa!  What happened?  (Before going further, let me say that our latency is now back at 250 milliseconds, so things aren&#8217;t as bad as they first seemed.)</p>
<p>Adobe introduced a new behavior into the released player, where the latency depends on the number of samples you provide to SampleDataEvent.  If you provide 2048 samples per callback, your latency will be the minimum available on the platform (30 ms on Mac, ~250 on Windows).  If you provide 8192 samples per callback, on the other hand, your latency will be in the neighborhood 1000 milliseconds.  The amount of latency for in-between sample block sizes is a complex function of this number.  Tinic Uro will hopefully publish more information about that function, which apparently involves a power-law nonlinear function of the block size combined with the native sound driver buffer size, but experimentally I have seen these numbers on Mac OS X:</p>
<p>block size      latency (ms)<br />
2048            30<br />
3072            170<br />
4096            250<br />
8192            850</p>
<p>This is good stuff to know, and it&#8217;s something of a surprise to us all.  I notched the sample size in Noteflight back down to 4096 in a hurry, and latency is acceptable once again.  Or, semi-acceptable.  I&#8217;d like to get it even lower, but I don&#8217;t want to do that in too much of a hurry without adequate testing and tuning of the synthesis pipeline.</p>
<p>[<strong>Important footnote (10/16/08)</strong>:  You might think that by adjusting the sample block size dynamically, you can change the latency on the fly for a single Sound object that is streaming samples.  The answer is... sort of, but not in a useful way.  You can make the latency increase by making the sample block size larger, but if you make it smaller again, the latency will not go back down: it will stay at the higher value.  What is reported to work, but I haven't tried it yet, is to output sound using more than one Sound object, each with its own block size (and hence its own latency value).  The usefulness of that approach is also not clear.]</p>
]]></content:encoded>
			<wfw:commentRss>http://joeberkovitz.com/blog/2008/10/15/controlling-audio-latency-in-flash-10/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Noteflight: An Online Music Notation Editor</title>
		<link>http://joeberkovitz.com/blog/2008/10/06/introducing-noteflight/</link>
		<comments>http://joeberkovitz.com/blog/2008/10/06/introducing-noteflight/#comments</comments>
		<pubDate>Mon, 06 Oct 2008 13:46:39 +0000</pubDate>
		<dc:creator>joe</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.joeberkovitz.com/blog/2008/10/06/introducing-noteflight/</guid>
		<description><![CDATA[It&#8217;s my great pleasure to make an introduction: Noteflight, please say hello to the world.  World, there&#8217;s something I&#8217;d like you to meet: Noteflight.  I&#8217;m really pleased to be able to finally write this, because it&#8217;s been a long journey to get to this point!
Noteflight is a new kind of tool for musicians, [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s my great pleasure to make an introduction: Noteflight, please say hello to the world.  World, there&#8217;s something I&#8217;d like you to meet: <a href="http://www.noteflight.com">Noteflight</a>.  I&#8217;m really pleased to be able to finally write this, because it&#8217;s been a long journey to get to this point!</p>
<p>Noteflight is a new kind of tool for musicians, composers and educators: an online music notation editor. With Noteflight, anyone can create, share and publish musical scores using nothing more than a web browser.  This ease of editing, sharing and publishing are what make Noteflight so different from other notation editors: music notation can finally be used on the Web in as natural and flexible a way as text, images or videos.</p>
<p>Here&#8217;s an example of a score that was created in Noteflight, shared, and embedded in this post:</p>
<p><object height="316" width="440"><param name="movie" value="http://www.noteflight.com/scores/embed"></param><param name="FlashVars" value="id=ca3a1593ed6236c9bb56971b89d80f23a105f5c4&amp;scale=1"></param><embed src="http://www.noteflight.com/scores/embed" type="application/x-shockwave-flash" flashvars="id=ca3a1593ed6236c9bb56971b89d80f23a105f5c4&amp;scale=1" height="316" width="440"></embed></object></p>
<p>This isn&#8217;t just a picture of music, but an interactive music display; for example, you can select and listen to individual notes and measures.  Click the logo to see the full-page score, which can be printed.  To get a sense of how the score above was created using the Noteflight score editor, please watch this video:</p>
<p><object height="344" width="425"><param name="movie" value="http://www.youtube.com/v/S1BrFc1Qjog&amp;hl=en&amp;fs=1"></param><param name="allowFullScreen" value="true"></param><embed src="http://www.youtube.com/v/S1BrFc1Qjog&amp;hl=en&amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" height="344" width="425"></embed></object></p>
<p>Scores are saved on the Noteflight server, so you and anyone you share them with can access them from anywhere on the Web.  The music can be heard as well as seen: Noteflight has its own integrated audio playback, that sounds consistent on every computer.  And Noteflight keeps track of all the past versions of your scores, so you can always go back and see where you&#8217;ve been.</p>
<p>The Noteflight beta is free and we&#8217;re accepting signups.  As with all beta software, Noteflight is constantly being improved and extended; this blog is the best place to find out what&#8217;s happening (and what&#8217;s going to happen next) with Noteflight.   Besides filling out the score editing features of Noteflight, we are planning additional services and capabilities for sharing music and organizing content.</p>
<p>There will be more posts coming up here about the development and internals of Noteflight &#8212; I&#8217;ve had to wait on many of those because the product wasn&#8217;t officially launched yet!  A few quick techie observations:</p>
<ul>
<li>The Noteflight score editor was built with Adobe Flex 3.0.1 and Flash CS3</li>
<li>The Noteflight server side was built with Ruby on Rails 2, Apache and MySQL and is hosted on Amazon EC2 and S3.</li>
<li>The Moccasin open-source editing framework (see previous post) is a distillation of many of the music-independent aspects of the Noteflight score editor.</li>
<li>The StandingWave audio library, previously discussed here (but not yet open-source), is used by the music synthesizer internal to Noteflight.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://joeberkovitz.com/blog/2008/10/06/introducing-noteflight/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>My Inflection Point</title>
		<link>http://joeberkovitz.com/blog/2008/07/17/my-inflection-point/</link>
		<comments>http://joeberkovitz.com/blog/2008/07/17/my-inflection-point/#comments</comments>
		<pubDate>Fri, 18 Jul 2008 03:26:09 +0000</pubDate>
		<dc:creator>joe</dc:creator>
				<category><![CDATA[Flex]]></category>
		<category><![CDATA[Music]]></category>
		<category><![CDATA[Programming]]></category>

		<guid isPermaLink="false">http://www.joeberkovitz.com/blog/2008/07/17/my-inflection-point/</guid>
		<description><![CDATA[Let&#8217;s get nerdy for a second.  Just one second.  As Wikipedia would have it:
In differential calculus, an inflection point, or point of inflection (or inflexion) is a point on a curve at which the curvature changes sign. The curve changes from being concave upwards (positive curvature) to concave downwards (negative curvature), or vice [...]]]></description>
			<content:encoded><![CDATA[<p>Let&#8217;s get nerdy for a second.  Just one second.  As Wikipedia would have it:</p>
<blockquote><p>In differential calculus, an inflection point, or point of inflection (or inflexion) is a point on a curve at which the curvature changes sign. The curve changes from being concave upwards (positive curvature) to concave downwards (negative curvature), or vice versa. If one imagines driving a vehicle along the curve, it is a point at which the steering-wheel is momentarily &#8220;straight&#8221;, being turned from left to right or vice versa.</p></blockquote>
<p>My steering wheel is turning, for darn sure.  I have recently left the wonderful company for which I have been working, Allurent, to start my own business.  It&#8217;s an exciting change and one that I didn&#8217;t quite see coming until it had almost occurred by itself.  This was a decision that felt like it happened to me, not a decision that I consciously made.  I have an idea that I am absolutely passionate about, and must work on, as disruptive as the consequences may be. It&#8217;s as simple as that.</p>
<p>I will be talking much more about my company &#8212; called <a href="http://noteflight.com">Noteflight</a> &#8212; quite soon.  Noteflight is an online platform for creating, sharing, viewing and hearing music.  It&#8217;s a serious application, aimed at people who perform, compose, study, teach or collect musical content.  Expect some very substantial posts from me in the next month or two.</p>
<p>I am also working with the crack Boston development shop <a href="http://www.infrared5.com">Infrared5</a>.  To say these are smart folks is a huge  understatement; go take a look at their site, their team and their achievements.  Besides being smart, they&#8217;re also really nice folks, and I&#8217;m very pumped about the work we&#8217;ll do together, and are already doing now.  Plus&#8230; they have some great dogs hanging around the office.  I mean, how can you beat that?</p>
<p>Lastly, one more bit o&#8217; news: I&#8217;ll be speaking at the <a href="http://www.flashontap.com/fot/index.html">Flash on Tap</a> conference in Boston this year.  Hope you can come!</p>
]]></content:encoded>
			<wfw:commentRss>http://joeberkovitz.com/blog/2008/07/17/my-inflection-point/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

