<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[current keydown arpeggiator]]></title><description><![CDATA[<p>I want to make an arpeggiator that tracks the current midi keys that are down and plays them in the order they were pressed, and removes them from the pattern when they are released.  Basically loop through steps and play the current position in the list of current notes with <code>makenote</code>. I started trying to make this with <code>list</code> objects and it doesn't work well. Often keys stay &quot;stuck&quot; or will not register they were pressed. Is there a better way to accomplish this goal? <a href="/uploads/files/1474941902463-arp.zip">Here</a> is what I have. <code>arp-help.pd</code> is the example. Any suggestions on making it work are greatly appreciated.</p>
]]></description><link>http://forum.pdpatchrepo.info/topic/10340/current-keydown-arpeggiator</link><generator>RSS for Node</generator><lastBuildDate>Sun, 15 Mar 2026 14:38:56 GMT</lastBuildDate><atom:link href="http://forum.pdpatchrepo.info/topic/10340.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 27 Sep 2016 02:06:13 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to current keydown arpeggiator on Tue, 27 Sep 2016 02:07:28 GMT]]></title><description><![CDATA[<p>I want to make an arpeggiator that tracks the current midi keys that are down and plays them in the order they were pressed, and removes them from the pattern when they are released.  Basically loop through steps and play the current position in the list of current notes with <code>makenote</code>. I started trying to make this with <code>list</code> objects and it doesn't work well. Often keys stay &quot;stuck&quot; or will not register they were pressed. Is there a better way to accomplish this goal? <a href="/uploads/files/1474941902463-arp.zip">Here</a> is what I have. <code>arp-help.pd</code> is the example. Any suggestions on making it work are greatly appreciated.</p>
]]></description><link>http://forum.pdpatchrepo.info/topic/10340/current-keydown-arpeggiator</link><guid isPermaLink="true">http://forum.pdpatchrepo.info/topic/10340/current-keydown-arpeggiator</guid><dc:creator><![CDATA[konsumer]]></dc:creator><pubDate>Tue, 27 Sep 2016 02:07:28 GMT</pubDate></item><item><title><![CDATA[Reply to current keydown arpeggiator on Tue, 27 Sep 2016 04:22:17 GMT]]></title><description><![CDATA[<p>Lists can be difficult to operate when you need to delete items from them on the go. You can use [list-find] to identify and [list-delete] to remove items one by one (both from the list-abs library). This works, though it's not very efficient as each object has to iterate through the list.</p>
<p>A better way might be to write the values to an array, or even to a text object. Arrays will work the fastest, but text might be best in this case because you can search for the items you want to remove. So if you're using a recent version of Vanilla, [text search] and [text delete] are probably your best bet. You can then use [text set] to add items and [text get] to retrieve them (in place of your [list-nth]).</p>
<p>Looking at your patch, I would also guess that part of the problem has to do with order of operations. The [o] right after the metro and the [arp] sub-patch both have two connections coming out of the outlets, but which one gets sent first? The patch won't work if you get the order wrong. Use [trigger] to define the order, and you might find that you've fixed the problem.</p>
]]></description><link>http://forum.pdpatchrepo.info/topic/10340/current-keydown-arpeggiator/2</link><guid isPermaLink="true">http://forum.pdpatchrepo.info/topic/10340/current-keydown-arpeggiator/2</guid><dc:creator><![CDATA[LiamG]]></dc:creator><pubDate>Tue, 27 Sep 2016 04:22:17 GMT</pubDate></item><item><title><![CDATA[Reply to current keydown arpeggiator on Tue, 27 Sep 2016 04:27:39 GMT]]></title><description><![CDATA[<p>Yeh, I was thinking I should combine the bang outlets by just inputting the current step (instead of a bang.) I suspected your advice, but I appreciate the confirmation. I will report back if I get it working.</p>
]]></description><link>http://forum.pdpatchrepo.info/topic/10340/current-keydown-arpeggiator/3</link><guid isPermaLink="true">http://forum.pdpatchrepo.info/topic/10340/current-keydown-arpeggiator/3</guid><dc:creator><![CDATA[konsumer]]></dc:creator><pubDate>Tue, 27 Sep 2016 04:27:39 GMT</pubDate></item><item><title><![CDATA[Reply to current keydown arpeggiator on Tue, 27 Sep 2016 17:55:26 GMT]]></title><description><![CDATA[<p>I would do it with linked lists, it's not simple to do though!</p>
]]></description><link>http://forum.pdpatchrepo.info/topic/10340/current-keydown-arpeggiator/4</link><guid isPermaLink="true">http://forum.pdpatchrepo.info/topic/10340/current-keydown-arpeggiator/4</guid><dc:creator><![CDATA[nuromantix]]></dc:creator><pubDate>Tue, 27 Sep 2016 17:55:26 GMT</pubDate></item><item><title><![CDATA[Reply to current keydown arpeggiator on Tue, 27 Sep 2016 18:34:29 GMT]]></title><description><![CDATA[<p>What are linked lists? I liked the idea of using the new <code>text</code>, as I am already using a fairly new vanilla.  I built <a href="/uploads/files/1475000617044-arp2.pd">this arpeggiator</a>  with <code>text</code> objects. It seems to work much better, but there is still a pause when it loops around. Am I using <code>text sequencer</code> incorrectly, or is there a better way to use this?<br />
<img src="/uploads/files/1475001266092-screen-shot-2016-09-27-at-11.34.01-am.png" alt="Screen Shot 2016-09-27 at 11.34.01 AM.png" class="img-responsive img-markdown" /></p>
]]></description><link>http://forum.pdpatchrepo.info/topic/10340/current-keydown-arpeggiator/5</link><guid isPermaLink="true">http://forum.pdpatchrepo.info/topic/10340/current-keydown-arpeggiator/5</guid><dc:creator><![CDATA[konsumer]]></dc:creator><pubDate>Tue, 27 Sep 2016 18:34:29 GMT</pubDate></item><item><title><![CDATA[Reply to current keydown arpeggiator on Tue, 27 Sep 2016 18:39:31 GMT]]></title><description><![CDATA[<p>I fixed it with a bang to step, which seems a bit hacky, but it works.<br />
<img src="/uploads/files/1475001567992-screen-shot-2016-09-27-at-11.39.02-am.png" alt="Screen Shot 2016-09-27 at 11.39.02 AM.png" class="img-responsive img-markdown" /></p>
]]></description><link>http://forum.pdpatchrepo.info/topic/10340/current-keydown-arpeggiator/6</link><guid isPermaLink="true">http://forum.pdpatchrepo.info/topic/10340/current-keydown-arpeggiator/6</guid><dc:creator><![CDATA[konsumer]]></dc:creator><pubDate>Tue, 27 Sep 2016 18:39:31 GMT</pubDate></item><item><title><![CDATA[Reply to current keydown arpeggiator on Tue, 27 Sep 2016 22:33:46 GMT]]></title><description><![CDATA[<p>It's not perfect, but here is a video of it working pretty well:<br />
<div class="embed-container"><iframe src="//www.youtube.com/embed/DAUVevpw2wA" width="640" height="360" frameborder="0" webkitallowfullscreen mozallowfullscreen allowfullscreen></iframe></div></p>
]]></description><link>http://forum.pdpatchrepo.info/topic/10340/current-keydown-arpeggiator/7</link><guid isPermaLink="true">http://forum.pdpatchrepo.info/topic/10340/current-keydown-arpeggiator/7</guid><dc:creator><![CDATA[konsumer]]></dc:creator><pubDate>Tue, 27 Sep 2016 22:33:46 GMT</pubDate></item><item><title><![CDATA[Reply to current keydown arpeggiator on Wed, 28 Sep 2016 08:46:52 GMT]]></title><description><![CDATA[<p>Seems like you are getting there…. I was not aware of the [text] object before…….</p>
<p>In case it's useful to you:<br />
The idea of linked lists is that you would have 2 arrays -<br />
1 storing the note values<br />
1 storing a pointer to the next value to be played</p>
<p>for example if your arrays are<br />
NOTE and POINTER<br />
when the player presses C you might store<br />
60 in NOTE (0) &amp; 0 in POINTER(0).<br />
if the player adds E then you would store:<br />
64 NOTE(1) &amp; 0 in POINTER (1) &amp; 1 in POINTER(0)</p>
<p>so each time the player adds the nth note to the arpeggio, you store the note in NOTE (n) and you store a 0 in POINTER (n), and you store n in POINTER (n-1)</p>
<p>If the player releases a key then you just have to update the POINTER array so that the value BEFORE the released key now points to the value AFTER the released key. you don't have to bother tidying up the NOTE array until all keys have been released.<br />
So you would search for a member of NOTE that matches the released key.<br />
if you call that the nth member, then all you have to do is set POINTER(n-1) to the same value as POINTER(n).</p>
<p>This would also definitely be a useful technique if you wanted to do an up/down arpeggiator where the player can add and remove notes.</p>
]]></description><link>http://forum.pdpatchrepo.info/topic/10340/current-keydown-arpeggiator/8</link><guid isPermaLink="true">http://forum.pdpatchrepo.info/topic/10340/current-keydown-arpeggiator/8</guid><dc:creator><![CDATA[nuromantix]]></dc:creator><pubDate>Wed, 28 Sep 2016 08:46:52 GMT</pubDate></item><item><title><![CDATA[Reply to current keydown arpeggiator on Sun, 30 Jun 2019 22:28:52 GMT]]></title><description><![CDATA[<p>Thanks so much for this instructions! I had no idea how to achieve it, but I just followed it through and it really is working like a charm! Hope this topic is at all still interessiting for anybody. Well, here's my result (Ialso incorporated velocity):</p>
<p><img src="/uploads/files/1560085012683-2019-03-14-033132_1824x984_scrot.png" alt="2019-03-14-033132_1824x984_scrot.png" class="img-responsive img-markdown" /></p>
<p>Now I'm scratching my head over, how to achieve the up/down mode of the arpeggiator. Any Tipps on that? Do I need another array for the notes, so that they are read from the nore array, that's already there, sortet and written into a new array? No, seems not very elegant to me...</p>
]]></description><link>http://forum.pdpatchrepo.info/topic/10340/current-keydown-arpeggiator/9</link><guid isPermaLink="true">http://forum.pdpatchrepo.info/topic/10340/current-keydown-arpeggiator/9</guid><dc:creator><![CDATA[Johann]]></dc:creator><pubDate>Sun, 30 Jun 2019 22:28:52 GMT</pubDate></item></channel></rss>