<?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>codehop &#187; strings</title>
	<atom:link href="http://codehop.com/tag/strings/feed/" rel="self" type="application/rss+xml" />
	<link>http://codehop.com</link>
	<description>#code #art #music</description>
	<lastBuildDate>Mon, 23 Apr 2012 18:37:35 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.2.38</generator>
	<item>
		<title>Roll Your Own Score Syntax</title>
		<link>http://codehop.com/roll-your-own-score-syntax/</link>
		<comments>http://codehop.com/roll-your-own-score-syntax/#comments</comments>
		<pubDate>Mon, 05 Apr 2010 23:54:13 +0000</pubDate>
		<dc:creator><![CDATA[Jacob Joaquin]]></dc:creator>
				<category><![CDATA[News]]></category>
		<category><![CDATA[csound]]></category>
		<category><![CDATA[module]]></category>
		<category><![CDATA[notation]]></category>
		<category><![CDATA[score]]></category>
		<category><![CDATA[strings]]></category>
		<category><![CDATA[syntax]]></category>

		<guid isPermaLink="false">http://slipmat.noisepages.com/?p=73</guid>
		<description><![CDATA[A music language that comes with a fully-loaded set of string capabilities, including regular expressions, would allow users to develop their own methods for notating music. For example, here is a horizontal representation for rhythm guitar. @0 strum('C', '/... /... &#8230; <a href="http://codehop.com/roll-your-own-score-syntax/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<p>A music language that comes with a fully-loaded set of string capabilities, including regular expressions, would allow users to develop their own methods for notating music. For example, here is a horizontal representation for rhythm guitar.</p>
<pre style="font-family: 'Courier New', courier, monaco, monospace, sans-serif; font-size: 1.2em; padding-bottom: 16px">
@0  strum('C',  '/... /... /./. /...')
@4  strum('Dm', '/... /... //// /./.')
@8  strum('G7', '/... /... ///. ../.')
@12 strum('C',  '/... /... /... ///.')
</pre>
<p>The slash triggers an event and advances time by a 16th note. The dot just advances time by a 16th note. A space does nothing.</p>
<p>These 4 lines of code represent 24 events. Not only does this shorten the score and save keystrokes, but is far more readable than if each individual event was explicitly written. In fact, I bet there are many guitar players out there that could play this as it&#8217;s written, providing he or she was given a brief explanation about the notation.</p>
<p>What about a system for triggering drums? Here&#8217;s the all-to-familiar 4-beat rock pattern with 8th note hats.</p>
<pre style="font-family: 'Courier New', courier, monaco, monospace, sans-serif; font-size: 1.2em; padding-bottom: 16px">
trigger(hat(),   'x.x. x.x. x.x. x.x.')
trigger(snare(), '.... x... .... x...')
trigger(kick(),  'x... .... x... ....')
</pre>
<p>Once again, the music is notated horizontally. Instead of 12 lines of code, there are only 3. Let&#8217;s take a look at the vertical equivalent:</p>
<pre style="font-family: 'Courier New', courier, monaco, monospace, sans-serif; font-size: 1.2em; padding-bottom: 16px">
@0   hat()
@0   kick()
@0.5 hat()
@1   hat()
@1   snare()
@1.5 hat()
@2   hat()
@2   kick()
@2.5 hat()
@3   hat()
@3   snare()
@3.5 hat()
</pre>
<p>In theory, people could write slipmat modules that mimic other text-based notation systems, such as the Csound score language.</p>
<pre style="font-family: 'Courier New', courier, monaco, monospace, sans-serif; font-size: 1.2em; padding-bottom: 16px">
import CsoundScore as CS
from MyLibrary import bassFM
from MyLibrary import pad

# For mapping slipmat instruments to a Csound-styled score
instrs = {"i1": bassFM(), "i2": pad()}

# A Csound-styled score
score = '''
i 1 0 2 0.5 7.00
i 1 + . .   6.05

i 2 0 8 0.333 8.09 0.77 1000
'''

CS.playScore(instrs, score)  # Play Csound-styled score
</pre>
<p>That would translate to:</p>
<pre style="font-family: 'Courier New', courier, monaco, monospace, sans-serif; font-size: 1.2em; padding-bottom: 16px">
@0 bassFM(2, 0.5, 7.00)
@2 bassFM(2, 0.5, 6.05)
@0 pad(8, 0.333, 8.09, 0.77, 1000)
</pre>
<p>Much of this can be done with some of the existing music languages out in the wild. The guitar strum and drum trigger examples can be accomplished in pure Csound code (see <a href="http://www.csounds.com/journal/issue8/dseq.html">dseq &#8212; A Drum Machine Micro-Language</a>). Even more so, Csound combined with the Python API can do some truly amazing things along these lines. Though it probably wouldn&#8217;t be nearly as fluid as a language that had this in mind when being designed from the ground up.</p>
<p>If you haven&#8217;t done so yet, take a moment to ponder the possibilities. And be sure to think about the things others will dream up that can be simply imported into your own compositions/synthesizers/sequencers/etc&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://codehop.com/roll-your-own-score-syntax/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Synth Secrets @ Sound On Sound</title>
		<link>http://codehop.com/synth-secrets-sound-on-sound/</link>
		<comments>http://codehop.com/synth-secrets-sound-on-sound/#comments</comments>
		<pubDate>Wed, 06 Jun 2007 16:52:11 +0000</pubDate>
		<dc:creator><![CDATA[Jacob Joaquin]]></dc:creator>
				<category><![CDATA[the cosmos]]></category>
		<category><![CDATA[audio]]></category>
		<category><![CDATA[books]]></category>
		<category><![CDATA[drums]]></category>
		<category><![CDATA[envelopes]]></category>
		<category><![CDATA[filters]]></category>
		<category><![CDATA[formant]]></category>
		<category><![CDATA[gates]]></category>
		<category><![CDATA[organs]]></category>
		<category><![CDATA[physical]]></category>
		<category><![CDATA[sampleandhold]]></category>
		<category><![CDATA[soundonsound]]></category>
		<category><![CDATA[strings]]></category>
		<category><![CDATA[synthesizers]]></category>
		<category><![CDATA[synthsecrets]]></category>
		<category><![CDATA[triggers]]></category>
		<category><![CDATA[vocoder]]></category>

		<guid isPermaLink="false">http://www.thumbuki.com/20070606/synth-secrets-sound-on-sound.html</guid>
		<description><![CDATA[At any given moment, I have at least four synthesis/audio books sitting on my desk for quick reference. Sometimes up to eleven. However, there are only a handful of websites I consider to be true tomes of synthesis knowledge. One &#8230; <a href="http://codehop.com/synth-secrets-sound-on-sound/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<div id="postimage" class="right" style="width: 252px"><a href="http://www.soundonsound.com/sos/allsynthsecrets.htm"><img src="http://www.thumbuki.com/images/SynthSecretsThumb.gif" width=250px height=176px /></a></div>
<p>At any given moment, I have at least four synthesis/audio books sitting on my desk for quick reference.  Sometimes up to eleven.  However, there are only a handful of websites I consider to be true tomes of synthesis knowledge.   One of these is Sound On Sound&#8217;s <a href="http://www.soundonsound.com/sos/allsynthsecrets.htm">Synth Secrets</a>.</p>
<p>Here is a sample of topics you will find there:</p>
<p>Envelopes<br />
Gates<br />
Triggers<br />
Filters<br />
Sample and Hold<br />
Vocoders<br />
Formant Synthesis<br />
Drums<br />
Strings<br />
Organs<br />
and much more&#8230; </p>
]]></content:encoded>
			<wfw:commentRss>http://codehop.com/synth-secrets-sound-on-sound/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Drum Sequencer Event Generator</title>
		<link>http://codehop.com/drum-sequencer-event-generator/</link>
		<comments>http://codehop.com/drum-sequencer-event-generator/#comments</comments>
		<pubDate>Wed, 02 May 2007 19:18:50 +0000</pubDate>
		<dc:creator><![CDATA[Jacob Joaquin]]></dc:creator>
				<category><![CDATA[the cosmos]]></category>
		<category><![CDATA[csound]]></category>
		<category><![CDATA[csounds]]></category>
		<category><![CDATA[drums]]></category>
		<category><![CDATA[eventgenerators]]></category>
		<category><![CDATA[sequencer]]></category>
		<category><![CDATA[strings]]></category>
		<category><![CDATA[synthesizers]]></category>
		<category><![CDATA[thecsoundblog]]></category>
		<category><![CDATA[zakmixer]]></category>

		<guid isPermaLink="false">http://www.thumbuki.com/20070502/drum-sequencer-event-generator.html</guid>
		<description><![CDATA[thumbuki200700502.csd The Csound Blog Issue #8 Getting lost within a list of instrument events is sometimes less desirable than being able to place events on a grid or lattice. This is especially true when working with rhythms. I&#8217;m a firm &#8230; <a href="http://codehop.com/drum-sequencer-event-generator/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
				<content:encoded><![CDATA[<div id="postimage" class="right" style="width: 268px"><a href="http://www.thumbuki.com/csound/files/thumbuki20070502.csd"><img src="http://www.thumbuki.com/images/drumSequencerEventGenerator.gif" width=266px height=130px /></a>
<p><a href="http://www.thumbuki.com/csound/files/thumbuki20070502.csd">thumbuki200700502.csd</a></p>
</div>
<p><a href="http://www.thumbuki.com/csound/blog/">The Csound Blog</a><br />
<a href="http://www.thumbuki.com/csound/files/thumbuki20070502.csd">Issue #8</a><br />
<blockquote>
<p>Getting lost within a list of instrument events is sometimes less desirable than being able to place events on a grid or lattice. This is especially true when working with rhythms. I&#8217;m a firm believer that the interface influences the compositional process. This is why I&#8217;ve begun development on dseq, an instrument that allows me to input drum patterns in a manner that is much more user-friendly.</p>
</blockquote>
<p>Topics:</p>
<ul>
<li>Strings
<li>Drums
<li>Sequencer
<li>Event Generators
</ul>
<p>More at <a href="http://www.thumbuki.com/csound/blog/">The Csound Blog</a>.  For more information about Csound, please visit <a href="http://www.csounds.com/">cSounds.com</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://codehop.com/drum-sequencer-event-generator/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>
