Yarns firmware update


A couple of features have been added to Yarns since February 2017, it’s time for a mini release!

  • New STEAL MOST RECENT voice allocation mode, which steals the most recently played note (duh!) when the maximum polyphony is reached. This allows you to hold a note or chord on the left hand, and play legato a melody on the right hand that won’t cut the chord.
  • When several parts are receiving on the same MIDI channel, and when recording is enabled for one of them while a sequence is playing on the other parts, the received note on MIDI messages no longer cause spurious transpositions of the sequences (original fix proposed by Chris Rogers).
  • New Tx TUNING FACTOR setting which multiplies or divides the output voltage in order to obtain interesting scales (for example, a whole octave stretched to 24 keys, or reversely, 2 octaves crammed in 12 keys). Here is a nice illustration from the D50 manual showing what can be achieved with this feature. Note that the TR TUNING ROOT setting determines the central key around which tuning is stretched.
  • The O/ OUTPUT CLK DIV and B- BAR DURATION settings are now available in the 4T layout.
  • The swing setting is no longer limited to the internal clock only, but can also be applied on top of an external MIDI clock.
  • A new setting, NUDGE FIRST TICK, increases the delay separating the reset pulse sent at every bar or when the master clock is started, and the first clock pulse. This may solve synchronization issues with some sequencers that do not like receiving those two almost simultaneously.

yarns.1.5.syx.zip (44.2 KB)


Nice !
I recently (re)discovered the 31-TET, so this release is just on time !

split this topic #3

2 posts were merged into an existing topic: Yarns firmware wish list


Seriously! Somehow Yarns ended up being my most used MI module, thanks for continuing to maintain the code and bring in new features. :slight_smile:


This is great! Thanks for the update.


Any chance of a .hex file?


Hi Emilie - not sure if it’s intentional or not but the github hasn’t been updated yet (I’m definitely not nagging or complaining if it’s intentional :slight_smile: )

I only mention it as I’m playing with your scales and quantisation code and keen to see the changes :slight_smile:


I’m not quite sure how to interpret the diagram or what the actual accessible options on the module would be, but may be someone could point out for me if these options would allow to use Wendy Carlos’ Alpha Scale (or other non-octaval tunings)? Because Alpha can’t be described as a simple integer based ratio. It would mean having 78 (77.965) cents per step and an odd 15.3915 steps per octave. (Alpha on Wikipedia)

I currently use an O+C for attenuating pitch-CV to Alpha and the results are very very nice, even with just using a normal keyboard. (I’m also experimenting with isomorphic-layouts on lemur and it looks very promising.)


Please elaborate :heart_eyes:


Ok I found the hint in Roland’s manual, it states the ratios represent how many octaves are changed over 12 keys. Now the diagram makes more sense. Unfortunately that means the Alpha lies somewhere in between 7/8 and 3/4 and is not accessible that way. So one would need to set the ratio in yarns source to add that mode. :wink:


I found out, that most of the harmonic table layout (as introduced by the C-Thru Axis) still works when just shifting notes around a bit for alpha. So the note-steps change of course but common chord shapes basically stay the same. Overall instead of octaves you “just” need to start thinking in perfect fifths and all starts to make sense. :wink: Here a small sketch I made for the note steps when mapping to alpha scale with MIDI.

Also there are all kinds of beautiful new chords that basically have no names, yet.


Am I correct in thinking that this is like taking VPO and attenuating it by 7/12?


I don’t know how you came to that ratio and I don’t think its correct. Look at the formula in the wikipedia article. So it is about 78 cent per step instead of 100 in 12 TET and what you want to do is convert quantized pitches from 12 TET to Alpha. So 0,08333 V per semitone have to become 0,0649709255 V per “semitone” or better per 'step"


Errata: I’m sorry for having wrongly used “semitone” and “tone” instead of “steps” in the posts above. It is only “tone” or better “step” because semitone by itself is defined as 12th of an octave, but we loose octaves in alpha so well… I find this chart very helpful btw.


7 semitones is a “perfect” fifth in equal temperament. so I was scaling the octave down to the perfect fifth. But after reading wiki I see that it’s a weird just intonation approximation scale that defines a step as (3/2​)^(1/9) as opposed to the Western semitone which is 2^(1/12)

I patched it up in Audulus and it is a very interesting scale, when I just sweep through it chromatically it sounds quite sonorous. But I have no clue what constitutes a consonant diatonic scale. Fun times!

I guess the next step is converting those frequencies back into VPO and trying it out in modular.


So a TUNING FACTOR of 3/2 will give a Bohlen-Pierce tritaval scale, right?


According to the wikipedia article you linked to, the Bohlen-Pierce trivail scale uses 3^(1/13) as it’s fundamental unit.


Yes, sorry, I should have also specified that a 13-TET or a just tempered 13 tone scale must also be used.


Thanks for the update! :hugs:

In my module the new firmware seems buggy though, In 2P for example, with POLY voice allocation, if I press a note I get a repeatedly retriggered note on Voice1, the TEMPO setting seems to dictate its retriggering speed. The “normal” gating behaviour has moved from Voice1 to Voice3 and from Voice2 to Voice4, the LEDs have not moved so they are indicating actions.

In 4P mode, POLY voice allocation, the first note (LED 1) is gated by voice3 and the second note (LED 2) is gated by voice4.

I’m unsure if I get correct CVs on correct voices too.


Are you sure this isn’t because you have a sequence running, or the arpeggiator on?