https://ccrma.stanford.edu/mediawiki/index.php?title=MultiGrain_Granular_Synthesis_in_Chuck&feed=atom&action=history
MultiGrain Granular Synthesis in Chuck - Revision history
2024-03-28T22:44:47Z
Revision history for this page on the wiki
MediaWiki 1.24.1
https://ccrma.stanford.edu/mediawiki/index.php?title=MultiGrain_Granular_Synthesis_in_Chuck&diff=4426&oldid=prev
Carrlane at 00:10, 5 March 2008
2008-03-05T00:10:08Z
<p></p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr style='vertical-align: top;'>
<td colspan='2' style="background-color: white; color:black; text-align: center;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black; text-align: center;">Revision as of 00:10, 5 March 2008</td>
</tr><tr><td colspan="2" class="diff-lineno">Line 93:</td>
<td colspan="2" class="diff-lineno">Line 93:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>[http://ccrma.stanford.edu/~baeksan/220a/final_project/grain_control.ck Multiple Grain Instances]</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>[http://ccrma.stanford.edu/~baeksan/220a/final_project/grain_control.ck Multiple Grain Instances]</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">[[Category: Projects]]</ins></div></td></tr>
</table>
Carrlane
https://ccrma.stanford.edu/mediawiki/index.php?title=MultiGrain_Granular_Synthesis_in_Chuck&diff=3403&oldid=prev
Baeksan at 00:10, 12 December 2007
2007-12-12T00:10:42Z
<p></p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr style='vertical-align: top;'>
<td colspan='2' style="background-color: white; color:black; text-align: center;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black; text-align: center;">Revision as of 00:10, 12 December 2007</td>
</tr><tr><td colspan="2" class="diff-lineno">Line 8:</td>
<td colspan="2" class="diff-lineno">Line 8:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>[http://ccrma.stanford.edu/~baeksan/220a/final_project/chiko.wav Original sound file]</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>[http://ccrma.stanford.edu/~baeksan/220a/final_project/chiko.wav Original sound file]</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>[http://ccrma.stanford.edu/~baeksan/220a/final_project/grain_size.wav Varying Grain Length] - Grain length is <del class="diffchange diffchange-inline">change from </del>1 - 150 ms.</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>[http://ccrma.stanford.edu/~baeksan/220a/final_project/grain_size.wav Varying Grain Length] - Grain length is <ins class="diffchange diffchange-inline">changed between </ins>1 - 150 <ins class="diffchange diffchange-inline">ms.  Randomness is set to 5 </ins>ms.</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>[http://ccrma.stanford.edu/~baeksan/220a/final_project/rand_position.wav Varying randomness of position] - Changing the parameter which controls how far from the starting position the patch should play grains.  This essentially chops up the sound file into desired grain lengths and orders them randomly one after another.  A grain length of 80 ms was used.</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>[http://ccrma.stanford.edu/~baeksan/220a/final_project/rand_position.wav Varying randomness of position] - Changing the parameter which controls how far from the starting position the patch should play grains.  This essentially chops up the sound file into desired grain lengths and orders them randomly one after another.  A grain length of 80 ms was used.</div></td></tr>
</table>
Baeksan
https://ccrma.stanford.edu/mediawiki/index.php?title=MultiGrain_Granular_Synthesis_in_Chuck&diff=3402&oldid=prev
Baeksan: /* Usage */
2007-12-11T06:24:24Z
<p><span dir="auto"><span class="autocomment">Usage</span></span></p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr style='vertical-align: top;'>
<td colspan='2' style="background-color: white; color:black; text-align: center;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black; text-align: center;">Revision as of 06:24, 11 December 2007</td>
</tr><tr><td colspan="2" class="diff-lineno">Line 87:</td>
<td colspan="2" class="diff-lineno">Line 87:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'>−</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;"><div>== <del class="diffchange diffchange-inline">Usage </del>==</div></td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div>== <ins class="diffchange diffchange-inline">USAGE </ins>==</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Download both chuck files.  In "grain.ck" change the sound file to the specified location.  Then add a shred from "grain_control.ck"  Midi controller numbers might have to be changed for your midi controller.  Tweak some knobs and ENJOY!</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Download both chuck files.  In "grain.ck" change the sound file to the specified location.  Then add a shred from "grain_control.ck"  Midi controller numbers might have to be changed for your midi controller.  Tweak some knobs and ENJOY!</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<!-- diff cache key wikidb-ccrma_:diff:version:1.11a:oldid:3401:newid:3402 -->
</table>
Baeksan
https://ccrma.stanford.edu/mediawiki/index.php?title=MultiGrain_Granular_Synthesis_in_Chuck&diff=3401&oldid=prev
Baeksan at 02:34, 11 December 2007
2007-12-11T02:34:03Z
<p></p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr style='vertical-align: top;'>
<td colspan='2' style="background-color: white; color:black; text-align: center;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black; text-align: center;">Revision as of 02:34, 11 December 2007</td>
</tr><tr><td colspan="2" class="diff-lineno">Line 37:</td>
<td colspan="2" class="diff-lineno">Line 37:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>   Machine.add( "grain.ck" );</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>   Machine.add( "grain.ck" );</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Adding multiple instances of grains with different phase.  This allows for a more dense/cloud like sound, compared to using one grain instance.</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Adding multiple instances of grains with different phase.  This allows for a more dense/cloud like sound, compared to using one grain instance.</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td colspan="2" class="diff-lineno">Line 72:</td>
<td colspan="2" class="diff-lineno">Line 73:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>         }</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>         }</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Midi controller mapping.</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>Midi controller mapping.</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>         Std.rand2f(pitch-randpitch,pitch+randpitch) => buf2.rate;</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>         Std.rand2f(pitch-randpitch,pitch+randpitch) => buf2.rate;</div></td></tr>
</table>
Baeksan
https://ccrma.stanford.edu/mediawiki/index.php?title=MultiGrain_Granular_Synthesis_in_Chuck&diff=3400&oldid=prev
Baeksan at 01:38, 11 December 2007
2007-12-11T01:38:46Z
<p></p>
<table class='diff diff-contentalign-left'>
<col class='diff-marker' />
<col class='diff-content' />
<col class='diff-marker' />
<col class='diff-content' />
<tr style='vertical-align: top;'>
<td colspan='2' style="background-color: white; color:black; text-align: center;">← Older revision</td>
<td colspan='2' style="background-color: white; color:black; text-align: center;">Revision as of 01:38, 11 December 2007</td>
</tr><tr><td colspan="2" class="diff-lineno">Line 7:</td>
<td colspan="2" class="diff-lineno">Line 7:</td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>== EXAMPLE SOUND CLIPS ==</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>== EXAMPLE SOUND CLIPS ==</div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>[http://ccrma.stanford.edu/~baeksan/220a/final_project/chiko.wav Original sound file]</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>[http://ccrma.stanford.edu/~baeksan/220a/final_project/chiko.wav Original sound file]</div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;"></ins></div></td></tr>
<tr><td colspan="2"> </td><td class='diff-marker'>+</td><td style="color:black; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;"><div><ins style="font-weight: bold; text-decoration: none;">[http://ccrma.stanford.edu/~baeksan/220a/final_project/grain_size.wav Varying Grain Length] - Grain length is change from 1 - 150 ms.</ins></div></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"></td></tr>
<tr><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>[http://ccrma.stanford.edu/~baeksan/220a/final_project/rand_position.wav Varying randomness of position] - Changing the parameter which controls how far from the starting position the patch should play grains.  This essentially chops up the sound file into desired grain lengths and orders them randomly one after another.  A grain length of 80 ms was used.</div></td><td class='diff-marker'> </td><td style="background-color: #f9f9f9; color: #333333; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #e6e6e6; vertical-align: top; white-space: pre-wrap;"><div>[http://ccrma.stanford.edu/~baeksan/220a/final_project/rand_position.wav Varying randomness of position] - Changing the parameter which controls how far from the starting position the patch should play grains.  This essentially chops up the sound file into desired grain lengths and orders them randomly one after another.  A grain length of 80 ms was used.</div></td></tr>
</table>
Baeksan
https://ccrma.stanford.edu/mediawiki/index.php?title=MultiGrain_Granular_Synthesis_in_Chuck&diff=3397&oldid=prev
Baeksan at 01:30, 11 December 2007
2007-12-11T01:30:10Z
<p></p>
<p><b>New page</b></p><div>== IDEA ==<br />
Implementation of real time, time granulation synthesis in Chuck, with the ability to be used in live performance. The synthesis parameters (grain length, position, position randomness, pitch, and pitch randomness) can be tweaked in real time.<br />
<br />
== DESIGN ==<br />
SndBuf stores a sound file into a buffer, which is then chucked to a linear envelope for the grains. The envelope is used to prevent pops and clicks from starting the sound file from a random position. The envelope used in the sound files below has a rise time that is randomly chosen from 0.45 to 0.5 ms. This can be altered to achieve a more varying asynchronous envelope for each grain. For granular synthesis, grain length is usually from 1 - 100 ms. The grain length, position in the sound file, the randomness of the position, pitch transposition, and randomness of pitch are the parameters that can be controlled in this patch. All the parameters were mapped to a midi controller, allowing for real time control of each parameter simultaneously.<br />
<br />
== EXAMPLE SOUND CLIPS ==<br />
[http://ccrma.stanford.edu/~baeksan/220a/final_project/chiko.wav Original sound file]<br />
<br />
[http://ccrma.stanford.edu/~baeksan/220a/final_project/rand_position.wav Varying randomness of position] - Changing the parameter which controls how far from the starting position the patch should play grains. This essentially chops up the sound file into desired grain lengths and orders them randomly one after another. A grain length of 80 ms was used.<br />
<br />
[http://ccrma.stanford.edu/~baeksan/220a/final_project/pitch_shifting.wav Transposing pitch] - The pitch of the grains is transposed. The randomness of the pitch of each grain can be controlled as well.<br />
<br />
[http://ccrma.stanford.edu/~baeksan/220a/final_project/time_stretching.wav Time stretching] - Time stretching of the sound file can be achieved by changing the grain position in the buffer. Granular synthesis allows to time stretch the sound file, without altering the pitch. In this example, the grain length is 80 ms and the position randomness is set to 0. This was done in real time with a knob on a midi controller.<br />
<br />
[http://ccrma.stanford.edu/~baeksan/220a/final_project/time_stretching_pitch.wav Time stretching with transposition] <br />
[http://ccrma.stanford.edu/~baeksan/220a/final_project/Time_Stretching-1.wav Time stretching another example] - These examples show time stretching and pitch transposition of the sound file.<br />
<br />
[http://ccrma.stanford.edu/~baeksan/220a/final_project/everything.wav Everything all together with reverb control on top] - All the parameters are tweaked simultaneously in real time. The dry wet mix of the reverb is also controllable<br />
<br />
== CODE ==<br />
<br />
Machine.add( "grain.ck" );<br />
Std.rand2f(5,20)::ms=>now;<br />
Machine.add( "grain.ck" );<br />
Std.rand2f(5,20)::ms=>now;<br />
Machine.add( "grain.ck" );<br />
Std.rand2f(5,20)::ms=>now;<br />
Machine.add( "grain.ck" );<br />
Std.rand2f(5,20)::ms=>now;<br />
Machine.add( "grain.ck" );<br />
Std.rand2f(5,20)::ms=>now;<br />
Machine.add( "grain.ck" );<br />
Std.rand2f(5,20)::ms=>now;<br />
Machine.add( "grain.ck" );<br />
Adding multiple instances of grains with different phase. This allows for a more dense/cloud like sound, compared to using one grain instance.<br />
<br />
<br />
while(min.recv(msg))<br />
{<br />
if( msg.data1 == 176 && msg.data2 == 74 )<br />
{<br />
msg.data3*150/127 => duration;<br />
<<<duration>>>;<br />
}<br />
if( msg.data1 == 176 && msg.data2 == 71 )<br />
{<br />
msg.data3*samples/(127) => position;<br />
<<<position>>>;<br />
}<br />
if( msg.data1 == 224 )<br />
{<br />
msg.data3*2.0/127 => pitch;<br />
<<<pitch>>>;<br />
}<br />
if( msg.data1 == 176 && msg.data2 == 1 )<br />
{<br />
msg.data3*4.0/127 => randpitch;<br />
<<<randpitch>>>;<br />
}<br />
if( msg.data1 == 176 && msg.data2 == 73 )<br />
{<br />
msg.data3*samples/127 => randompos;<br />
<<<randompos>>>;<br />
}<br />
if( msg.data1 == 176 && msg.data2 == 72 )<br />
{<br />
msg.data3/127.0 => R.mix;<br />
}<br />
}<br />
Midi controller mapping.<br />
<br />
Std.rand2f(pitch-randpitch,pitch+randpitch) => buf2.rate;<br />
Std.rand2(position-randompos,position+randompos) => buf2.pos;<br />
0.4 => buf2.gain;<br />
e.keyOn();<br />
duration*0.5::ms => now;<br />
e.keyOff();<br />
duration*0.5::ms => now;<br />
Control of the play back rate (pitch transposition), position, and envelope. <br />
<br />
<br />
<br />
== Usage ==<br />
Download both chuck files. In "grain.ck" change the sound file to the specified location. Then add a shred from "grain_control.ck" Midi controller numbers might have to be changed for your midi controller. Tweak some knobs and ENJOY!<br />
<br />
[http://ccrma.stanford.edu/~baeksan/220a/final_project/grain.ck Granular Chuck code]<br />
<br />
[http://ccrma.stanford.edu/~baeksan/220a/final_project/grain_control.ck Multiple Grain Instances]</div>
Baeksan