<?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>lowkey digital studio &#187; granular toolkit</title>
	<atom:link href="http://www.lowkeydigitalstudio.com/tag/granular-toolkit/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.lowkeydigitalstudio.com</link>
	<description>portfolio web site of Nathan Wolek</description>
	<lastBuildDate>Sat, 28 Jan 2012 16:03:25 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>GTK @ 10 years</title>
		<link>http://www.lowkeydigitalstudio.com/2011/08/gtk-10-years/</link>
		<comments>http://www.lowkeydigitalstudio.com/2011/08/gtk-10-years/#comments</comments>
		<pubDate>Tue, 16 Aug 2011 03:36:21 +0000</pubDate>
		<dc:creator>Nathan</dc:creator>
				<category><![CDATA[maxmsp]]></category>
		<category><![CDATA[granular toolkit]]></category>
		<category><![CDATA[jamoma]]></category>
		<category><![CDATA[open source]]></category>

		<guid isPermaLink="false">http://www.lowkeydigitalstudio.com/?p=257</guid>
		<description><![CDATA[Computer music is a discipline that has always relied on people sharing the software tools they create with the larger community. There are many well known examples: Max Mathews &#38; MUSIC, Barry Vercoe &#38; Csound, Miller Puckette &#38; Max/PD, Tom Erbe &#38; SoundHack. Although my own contributions have not had nearly the impact of these [...]]]></description>
			<content:encoded><![CDATA[<p>Computer music is a discipline that has always relied on people sharing the software tools they create with the larger community. There are many well known examples: <a href="http://en.wikipedia.org/wiki/Max_Mathews">Max Mathews</a> &amp; MUSIC, <a href="http://web.media.mit.edu/~bv/">Barry Vercoe</a> &amp; Csound, <a href="http://crca.ucsd.edu/~msp/">Miller Puckette</a> &amp; Max/PD, Tom Erbe &amp; <a href="http://www.soundhack.com/">SoundHack</a>. Although my own contributions have not had nearly the impact of these gentlemen, I like to think that I have made a small contribution to the community over the years through this website.</p>
<p>By far, the most significant piece of my overall contribution has been the <a href="http://www.lowkeydigitalstudio.com/tag/granular-toolkit/">Granular Toolkit</a>.  This collection of <a href="http://cycling74.com/whatismax/">Max</a> objects and abstractions was born 10 years ago during a summer research grant that I received during my graduate studies at <a href="http://www.music.northwestern.edu/">Northwestern</a>. The plan from the very beginning was to build a useful collection of high-level granular effects and low-level external objects, then give them away for free from my website.</p>
<p>What I got back from the <a href="http://cycling74.com/community/">Max/MSP community</a> was amazing! I have met so many great people, heard so many great pieces and read about so many great projects that used the toolkit over the years.  I have also had a few professional opportunities come my way, such as the <a href="http://cycling74.com/downloads/discontinued/">Hipno plug-in collection</a>.</p>
<p>Although the Granular Toolkit is still working 10 years later with only a few tweaks along the way, new developments have admittedly been sparse these last few years. The toolkit never fully took advantage of some of the big innovations in Max along the way, such as [poly~] or attributes. The biggest reason for this is that I have honestly not always been able to make the GTK a top priority because other projects have demanded my time. I have also tried to maintain the toolkit primarily by myself, which was not easy in retrospect.</p>
<p>Second, the source code for the externals was not designed to maximize the benefits of object-oriented programming.  I was an admittedly naive programmer when I developed the GTK, having learned Java just two years prior to the start of development and teaching myself C as I went along.  Changes to these externals would now require some major surgery on the code to get new features working.</p>
<p>Lastly, the GTK is heavily tied to the Max environment and there is almost no way to use the code in the externals apart from it.  As much as I love working in Max and think it has a long life ahead of it, it would be nice to have the freedom to use my code as the basis for projects in other host environments such as DAW plug-ins and mobile apps.</p>
<p>Over the past several months, I have been taking steps to address these three issues by getting involved with <a href="http://jamoma.org/">Jamoma</a>, an open-source platform for art and computer music projects that I believe addresses the three issues I outlined with my own GTK:</p>
<ul>
<li>Jamoma exists as a software library that can work within the <a href="http://cycling74.com/products/maxmspjitter/">Max environment</a>, but it also has hooks into other host environments and programming languages (things like <a href="http://www.ruby-lang.org/en/">Ruby</a>, <a href="http://en.wikipedia.org/wiki/Audio_Unitshttp://en.wikipedia.org/wiki/Audio_Units">AU</a>, <a href="http://en.wikipedia.org/wiki/Virtual_Studio_Technology">VST</a>, &amp; <a href="http://puredata.info/">PD</a>) without being tied too closely to any one of them.</li>
<li>The code makes use of <a href="http://www.oodesign.com/">object-oriented design patterns</a> so that it can be more easily updated as changes are dictated by the circumstances.</li>
<li>Perhaps best of all, it has attracted <a href="http://jamoma.org/team.html">a growing list of talented developers</a> from around the globe who are collaborating to ensure that the project is continually maintained.</li>
</ul>
<p>So I am writing this blog post to announce that GTK will eventually be superseded by new granular components in Jamoma.  While this work is still in its early stages and no release date is immanent, I wanted to put the idea out there for public consumption and comment.</p>
<p>What has already happened?  In November 2010, <a href="http://74objects.com/">Tim Place</a> and I had a brainstorming session during <a href="http://electrotap.com/blog/572">his visit to Stetson</a>.  We developed an outline of how to merge my granular work into the Jamoma DSP framework and began laying the foundation for this goal in January.  This meant working on boring things like <a href="https://github.com/jamoma/JamomaDSP/tree/master/extensions/WindowFunctionLib">window functions</a> and buffer support. It’s not very exciting stuff, but it is necessary to support our concept for these improved granular operators.</p>
<p>What is happening soon? Although the Jamoma team completes significant work via email and web services, they occasionally get together for face-to-face meetings. In October 2011, I will be joining Tim, <a href="http://trondlossius.no/">Trond Lossius</a> and <a href="http://cnmat.berkeley.edu/people/nils_peters">Nils Peters</a> for a <a href="http://redmine.jamoma.org/projects/modular/wiki/Jamoma_workshop_in_Kansas_City_2011">Jamoma Workshop in Kansas City</a>. This will actually be my first time meeting Trond and Nils in person and I look forward to seeing what progress we make as we put our heads together for three days.</p>
<p>What is happening now? After giving it some thought, I am <a href="http://www.lowkeydigitalstudio.com/maxmsp/gtk_source.zip">releasing the source code for the externals</a> in the GTK collection under a <a href="http://www.opensource.org/licenses/BSD-2-Clause">BSD license</a>. This will help ensure that if folks absolutely need to maintain these objects, they have the materials to do so. Of course, the abstractions have always been “open source”, as one only needs to unlock the Max patches to see how they are built.</p>
<p>So what are your thoughts?  Are you a GTK and/or Jamoma user?  What are some advantages/disadvantages you see as part of these changes? I welcome your input and look forward to keeping you posted on the progress via this website.</p>
<div class="wp-caption alignnone" style="width: 302px"><img title="GTK screenshot" src="http://www.lowkeydigitalstudio.com/pics/2011/gtk_screenshot.gif" alt="" width="292" height="270" /><p class="wp-caption-text">A screenshot from a GTK abstraction</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.lowkeydigitalstudio.com/2011/08/gtk-10-years/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>granular toolkit v1.49</title>
		<link>http://www.lowkeydigitalstudio.com/2007/03/granular-toolkit-v1-49/</link>
		<comments>http://www.lowkeydigitalstudio.com/2007/03/granular-toolkit-v1-49/#comments</comments>
		<pubDate>Mon, 19 Mar 2007 18:00:56 +0000</pubDate>
		<dc:creator>Nathan</dc:creator>
				<category><![CDATA[maxmsp]]></category>
		<category><![CDATA[granular toolkit]]></category>

		<guid isPermaLink="false">http://www.lowkeydigitalstudio.com/?p=9</guid>
		<description><![CDATA[By far the most popular download on this website.  This set of externals and abstractions developed using several granular synthesis concepts. Effects available in this download include pitch shifting, spatializing, &#8220;clouds&#8221;, chord production and looping.
A paper about this software that was presented at the SEAMUS 2002 National Conference at the University of Iowa.  Later, an [...]]]></description>
			<content:encoded><![CDATA[<p>By far the most popular download on this website.  This set of externals and abstractions developed using several granular synthesis concepts. Effects available in this download include pitch shifting, spatializing, &#8220;clouds&#8221;, chord production and looping.</p>
<p>A paper about this software that was presented at the <a title="SEAMUS online" href="http://www.seamusonline.org/">SEAMUS</a> 2002 National Conference at the University of Iowa.  Later, an article version was published in Journal SEAMUS.  It is available in <a title="journal SEAMUS - GTK 1.0 post" href="http://www.lowkeydigitalstudio.com/2003/07/journal-seamus-granular-toolkit-v1-0/">this separate post</a> and a recommended read for those using the GTK.</p>
<p>The Mac version is Universal Binary.  Mac and Windows versions should work for Max/MSP 4.6 and 5.</p>
<p>Special thanks to Tim Place of <a title="Electrotap LLC" href="http://www.electrotap.com/">Electrotap</a> for the windows port of the externals.</p>
<ul>
<li><a title="GTK mac 1.49" href="http://www.lowkeydigitalstudio.com/maxmsp/gtkUB_1_493.dmg"> Download Mac version 1.49</a> &#8211; 408 kb</li>
<li><a title="GTK win 1.49" href="http://www.lowkeydigitalstudio.com/maxmsp/gtk_1_49win.zip"> Download Win version 1.49</a> &#8211; 500 kb</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.lowkeydigitalstudio.com/2007/03/granular-toolkit-v1-49/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>A Simplified Granular Processing Interface Based on Perceptual Research</title>
		<link>http://www.lowkeydigitalstudio.com/2006/04/a-simplified-granular-processing-interface-based-on-perceptual-research/</link>
		<comments>http://www.lowkeydigitalstudio.com/2006/04/a-simplified-granular-processing-interface-based-on-perceptual-research/#comments</comments>
		<pubDate>Sun, 16 Apr 2006 18:57:22 +0000</pubDate>
		<dc:creator>Nathan</dc:creator>
				<category><![CDATA[publications]]></category>
		<category><![CDATA[granular perception]]></category>
		<category><![CDATA[granular toolkit]]></category>
		<category><![CDATA[hipno]]></category>
		<category><![CDATA[phd]]></category>

		<guid isPermaLink="false">http://www.lowkeydigitalstudio.com/?p=22</guid>
		<description><![CDATA[This is my dissertation that was completed to fulfill the requirements of my PhD at Northwestern University. The findings informed my later plug-in design work for Hipno, a set of plugins published by Cycling74. The chapter 2 contain a primer on granular methods that many people have told me they found useful.  Chapter 3 reviews granular [...]]]></description>
			<content:encoded><![CDATA[<p>This is my dissertation that was completed to fulfill the requirements of my PhD at <a title="Northwestern University" href="http://www.northwestern.edu/">Northwestern University</a>. The findings informed my later plug-in design work for <a title="Hipno product page" href="http://www.cycling74.com/products/hipno">Hipno</a>, a set of plugins published by <a title="Cycling 74 home page" href="http://www.cycling74.com/">Cycling74</a>. The chapter 2 contain a primer on granular methods that many people have told me they found useful.  Chapter 3 reviews granular research to date and many of the earlier software that implemented these techniques.  Even if you don&#8217;t dive into the actual experimental data, these may of interest.</p>
<ul>
<li><a title="Simplified Granular Processing Interface" href="http://www.lowkeydigitalstudio.com/docs/wolek_PHDdiss.pdf">Download PDF file</a> &#8211; 3.1 MB</li>
</ul>
<p>ABSTRACT &#8211; Granular processing is a computer music technique that manipulates &#8220;grains&#8221; of sound to produce a variety of effects.  Grains are produced by multiplying short segments of digital audio, typically lasting between 10 and 50 milliseconds, with an amplitude envelope of equivalent length.  Software designed to produce granular processing effects often requires the user to manage multiple parameters that lack a clear connection to the audio output.  A better understanding of how listeners perceive the processing output should yield insights into how the user interface could be simplified.</p>
<p>A series of three experiments was designed to investigate how listeners perceive differences between granular processing examples.  Stimuli were produced using specific program settings to process two distinct sound sources. In each experiment, at least twenty participants were asked to rate the similarity of each possible pair of stimuli including identity pairs that existed among these stimuli.  The author then used multidimensional scaling (MDS) to develop a graphical representation of the perceptual organization exhibited by participants.</p>
<p>Differences between stimuli included the processed sound source and settings for the grain duration and grain period parameters.  Visual analysis of the MDS solution showed that participants clearly distinguished between the two sound sources.  Processing descriptors based primarily on the review of literature were tested for correlation to the MDS dimensions.  This analysis revealed the significance of three processing features: (1) a base-2 logarithmic scaling for differences in grain duration, (2) the minimum and maximum boundaries for randomized grain durations, and (3) the mean value and total deviation for randomized grain periods.</p>
<p>Between-subject variables relating to experience with electroacoustic music were also examined.  However, the results of this secondary inquiry were deemed inconclusive overall based on the relationship between participants&#8217; responses to pre-experiment questions and a priori operational definitions.</p>
<p>The findings were used to inform the design of a new graphical user interface (GUI) for granular processing. The resulting GUI helped to verify this study&#8217;s conclusions by successfully demonstrating their practical application to software development.  The GUI features unique controls for managing randomization and a feedback display for monitoring differences between the control input and audio output.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.lowkeydigitalstudio.com/2006/04/a-simplified-granular-processing-interface-based-on-perceptual-research/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>granular toolkit v1.10</title>
		<link>http://www.lowkeydigitalstudio.com/2005/02/granular-toolkit-v1-10/</link>
		<comments>http://www.lowkeydigitalstudio.com/2005/02/granular-toolkit-v1-10/#comments</comments>
		<pubDate>Thu, 03 Feb 2005 18:42:38 +0000</pubDate>
		<dc:creator>Nathan</dc:creator>
				<category><![CDATA[maxmsp]]></category>
		<category><![CDATA[granular toolkit]]></category>

		<guid isPermaLink="false">http://www.lowkeydigitalstudio.com/?p=17</guid>
		<description><![CDATA[This is an older pre-Universal Binary version of the Granular Toolkit for Mac users out there that may need it.

Download StuffIt archive &#8211; 212 kb
Download Zip archive &#8211; 364 kb

See these other post for more information about GTK:

granular toolkit 1.49
journal SEAMUS article

]]></description>
			<content:encoded><![CDATA[<p>This is an older pre-Universal Binary version of the Granular Toolkit for Mac users out there that may need it.</p>
<ul>
<li><a title="GTK v1.10 StuffIt" href="http://www.lowkeydigitalstudio.com/maxmsp/granular_toolkit_1.10X.sit">Download StuffIt archive</a> &#8211; 212 kb</li>
<li><a title="GTK v1.10 zip" href="http://www.lowkeydigitalstudio.com/maxmsp/granular_toolkit_1.10X.zip">Download Zip archive</a> &#8211; 364 kb</li>
</ul>
<p>See these other post for more information about GTK:</p>
<ul>
<li><a title="GTK v 1.49 post" href="http://www.lowkeydigitalstudio.com/2007/03/granular-toolkit-v1-49/">granular toolkit 1.49</a></li>
<li><a title="journal SEAMUS article post" href="http://www.lowkeydigitalstudio.com/2003/07/journal-seamus-granular-toolkit-v1-0/">journal SEAMUS article</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.lowkeydigitalstudio.com/2005/02/granular-toolkit-v1-10/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Journal SEAMUS &#8211; Granular Toolkit v1.0</title>
		<link>http://www.lowkeydigitalstudio.com/2003/07/journal-seamus-granular-toolkit-v1-0/</link>
		<comments>http://www.lowkeydigitalstudio.com/2003/07/journal-seamus-granular-toolkit-v1-0/#comments</comments>
		<pubDate>Wed, 09 Jul 2003 18:26:04 +0000</pubDate>
		<dc:creator>Nathan</dc:creator>
				<category><![CDATA[publications]]></category>
		<category><![CDATA[granular toolkit]]></category>

		<guid isPermaLink="false">http://www.lowkeydigitalstudio.com/?p=11</guid>
		<description><![CDATA[Journal SEAMUS, Volume XVI:2, pp. 34-46.
ABSTRACT - Since the generation of granular textures was first automated using a computer (Roads 1978), granular synthesis has grown to become a popular tool for creating new sounds in electro-acoustic music.  Many effects can be achieved through the granulation of sampled sound including time compression (Jones and Parks 1988) [...]]]></description>
			<content:encoded><![CDATA[<p><em>Journal SEAMUS, Volume XVI:2, pp. 34-46</em>.</p>
<p>ABSTRACT - Since the generation of granular textures was first automated using a computer (Roads 1978), granular synthesis has grown to become a popular tool for creating new sounds in electro-acoustic music.  Many effects can be achieved through the granulation of sampled sound including time compression (Jones and Parks 1988) and expansion (Truax 1990) independent of pitch alterations.  Such effects can be created using Cycling74&#8217;s Max/MSP software, allowing them to be utilized in real-time.  However, the software does not include sufficient externals to meet the efficiency and flexibility needs for creating such effects.  This paper details a collection of externals and abstractions for Max/MSP that the author has created with the aim of meeting these needs.</p>
<ul>
<li><a title="journal SEAMUS - GTK paper" href="http://www.lowkeydigitalstudio.com/docs/wolek_journalSEAMUS2002.pdf">Download PDF file</a> &#8211; 132 kb</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.lowkeydigitalstudio.com/2003/07/journal-seamus-granular-toolkit-v1-0/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Granular Toolkit for Cycling74&#8217;s Max/MSP</title>
		<link>http://www.lowkeydigitalstudio.com/2002/04/a-granular-toolkit-for-cycling74s-maxmsp/</link>
		<comments>http://www.lowkeydigitalstudio.com/2002/04/a-granular-toolkit-for-cycling74s-maxmsp/#comments</comments>
		<pubDate>Fri, 05 Apr 2002 02:41:39 +0000</pubDate>
		<dc:creator>Nathan</dc:creator>
				<category><![CDATA[presentations]]></category>
		<category><![CDATA[granular toolkit]]></category>
		<category><![CDATA[Iowa]]></category>
		<category><![CDATA[SEAMUS]]></category>

		<guid isPermaLink="false">http://www.lowkeydigitalstudio.com/?p=66</guid>
		<description><![CDATA[SEAMUS 2002 National Conference @ University of Iowa.
ABSTRACT -Since the generation of granular textures was first automated using a computer (Roads 1978), granular synthesis has grown to become a popular tool for creating new sounds in electro-acoustic music.  Many effects can be achieved through the granulation of sampled sound including time compression (Jones and [...]]]></description>
			<content:encoded><![CDATA[<p><em><a title="SEAMUS website" href="http://www.seamusonline.org/">SEAMUS</a> 2002 National Conference @ University of Iowa.</em></p>
<p>ABSTRACT -Since the generation of granular textures was first automated using a computer (Roads 1978), granular synthesis has grown to become a popular tool for creating new sounds in electro-acoustic music.  Many effects can be achieved through the granulation of sampled sound including time compression (Jones and Parks 1988) and expansion (Truax 1990) independent of pitch alterations.  Such effects can be created using Cycling74&#8217;s Max/MSP software, allowing them to be utilized in real-time. However, the software does not include sufficient externals to meet the need for maximum efficiency and flexibility in creating such effects.  This lecture/demonstration will detail the toolkit for Max/MSP that the presenter has created with the aim of meeting these needs.</p>
<p>The toolkit includes four new externals that handle the generation of grains using various control methods.  Each strikes a unique balance between different levels of precision and processor usage so that users can choose the approach best suited for their desired results.  The externals are able to apply interpolation for smooth playback at various sampling speeds.  In addition, the new externals allow the user to be confident that grain parameters are updated precisely at the beginning of each grain.  The grain generation techniques will be explained along with additional details about companion externals that the presenter has created to generate control data.</p>
<p>In addition to providing new externals for low-level granular manipulation, larger abstractions have been included in the toolkit to provide &#8220;ready-made&#8221; effects.  Each is built with a simple, consistent design intended to allow for easy incorporation into larger patches.  Two forms of each effect exists, one allowing for a fixed sampling buffer into which a sound file is loaded and another for continuous sampling that can be applied to any input signal (even those that are live).  These abstractions may also act as a guide for users on how to assemble custom granular effects.  A description of the different effects available via these abstractions and how they are intended to interface with a larger patch will be given. The presenter will also explain how he has been using this toolkit in his own research to develop granular techniques that expand the amount of achievable granular sounds.</p>
<p>With its externals and abstractions, the granular toolkit should appeal to both the novice and expert user of Cycling74&#8217;s Max/MSP.  Novices will find useful effects built to be easily incorporated into their own work.  Experts will find useful tools that allow them to freely experiment with the possibilities of granular synthesis.  Both should be pleased with the efficiency and flexibility that the granular toolkit offers to all.</p>
<ul>
<li><a title="SEAMUS 2002 paper" href="http://www.lowkeydigitalstudio.com/docs/gtk_SEAMUS2002.pdf">Download Paper in PDF</a> &#8211; 116 kb</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.lowkeydigitalstudio.com/2002/04/a-granular-toolkit-for-cycling74s-maxmsp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

