randy's Recent Posts

Sorry, I sort of hid this information. It's in the readme: http://madronalabs.com/media/kaivo/_read_me_first.txt
I use Audacity (free) to make the files.

Thanks for the report, I'll try to duplicate this.


Oops, sorry I missed this the first time around. I'm glad to hear Virta is making creature voices! No promises about AAX but I hear you and I'll check into AAX support again one of these days.

These posts asking for DIY help appear to be fairly elaborate spam. The questions are copied from electronics.stackexchange.com and links to kynix.com have been added. The other poster has a kynix.com email.

I have suspended the users.

Hmm. Can you get this problem with any of the factory patches? If not, can you please email me the broken patch?

Thanks for the report. Can you send me the scale that is failing to work?

Well, I definitely appreciate the sentiment behind this idea. I want to play Aalto forever too. And longevity of tools is also a big concern.

I do still have plans to work toward a kind of general-purpose music appliance that could run Aalto. So imagine this: a little box with great audio I/O on it, and a cable from that box to a tablet running a graphical interface. So you put your tablet + appliance on the shelf and 20 years later, they should still run.

I guess that's not too terribly different from just having an extra laptop that you never update and putting that on the shelf.

To make a really good hardware Aalto, I would have to put a touchscreen with the patcher UI in the middle. And then engineer a custom rotary encoder / display for the scope dials... OK, I can imagine it still being useful without full-on oscillating dials. This is maybe within the realm of possibility.

It makes sense that a "Madrona host" would have Soundplane input.

For something very minimal, savihost is a pretty cool idea.

Ableton Link looks interesting for syncing with other apps.

I have been thinking about a very simple host with an audio recorder. doing it that way keeps the number of versions of things I have to build lower, which lets me make more things.

Hi and welcome aboard! Thanks for the nice feedback.

Safe travels!

Hi Michael. Thanks for the report—I'm sorry you're having trouble. Can you send me the patch you are using? You can just choose "Copy to clipboard" from the main menu then email it to support at madronalabs.

I'm surprised to hear that freezing has become worse for you. I tested here any couldn't get any freezes with these versions. But maybe there's something that instigates the freeze that I was not doing. I would love to fix this once and for all.

I see a few requests for help about electronic circuits. That's fine but this probably is not the best place to get an answer! I started this section more to answer questions about the Soundplane theory and help people making a homebrew version. I'm not that skilled at electronic design myself, in general.

Here are a couple of online forums where people seem willing to respond to newbie questions:

Here are links to the Mac beta versions of everything. These should fix the major outstanding bugs and improve performance significantly. Fixes include:

  • fixed dial display updates when changing number of voices
  • fixed hanging notes problem with some hosts including FL Studio, Reaper
  • fixed an issue with dial quantizing
  • fixed a problem that could cause Kaivo audio to freeze

CPU use for Aalto and Kaivo should be reduced by around 20%.

Please see the readme files in the installers for more info.

Windows versions and a release will be coming early next week, hopefully.




Oops! Will do a quick fix release soon.

Also any thoughts on the quantisation issue posted above ?

It's clearly a bit out of whack, and something I will look at after this version is out. I've noticed that certain scales are not loading correctly, so a review of all scales / tunings / pitch related code is probably in order.

I see! I can reproduce this. I never tried it before because I never load Virta as an instrument. Out of all the DAWs I have, it looks like Logic alone presents Virta as a software instrument. I'm not sure why it does this. Virta is intended to be used as a MIDI-controlled audio effect. I'll see if I can stop it from showing up as a software instrument in Logic.

Here's how I tested your issue:

  • open Logic
  • add a new mono track with an "ES M" (track will be mono)
  • add Virta in the Audio FX slot (track will turn to stereo)

now Virta takes the mono input and generates stereo output. It also works with a stereo synth as before.

Can you confirm you see version 1.3.2b5 at upper right? If so please give me detailed info of how I can reproduce your issue.

One hopes, please try it.

OK, these should be the final betas. I'm planning to release on Monday.

I fixed an issue with the mono->stereo processing and channels for Virta. Hopefully this works better for people who were having trouble using mono synths.



That doesn't sound familiar. MPE has something similar but I'm not sure if they use the same control #.


All Madrona Labs synths can receive notes and control information over one of three protocols: MIDI, MPE, and OSC.

MIDI stands for Musical Instrument Digital Interface, it's been around since 1983, most synths understand it and you are probably familiar with it.

MPE, which stands for Multidimensional Polyphonic Expression, is a more recent way of using MIDI to enable new controllers like the Linnstrument, Continuum and Soundplane. The short story with MPE is, each note gets its own channel. There are a lot of details to enable this to perform well---see the MPE specification (currently at expressiveness.org) if you are interested in them.

OSC stands for Open Sound Control. It's a very cleverly designed protocol that takes advantage of what modern computers and ubiquitous networking hardware can do to provide high-resolution, jitter-free connections. The newest protocol of the bunch, not as many synths and controllers understand it as MIDI, but it has a bright future ahead of it. For more info, see http://opensoundcontrol.org.

KEY module signals by protocol

Selecting different protocols in the setting (gear) menu of Madrona Labs instruments causes different kinds of incoming information to be turned into signals and sent out of the KEY module. Here is a table of what
information each protocol sends.

        out1    out2    out3    out4    out5    out6    out7    out8    

        ------- ------ ---------------------------------------------------

MIDI    pitch   gate    vel     vox     after   modcc   modcc+1 modcc+2

MPE     pitch   gate    vel     vox     after   modcc   cc73    cc74

OSC     pitch   gate    vel     vox     z       dy      x       y

pitch: The pitch of the played note, on our familiar 1.0 / octave scale.

gate: High while the key is held down, low otherwise. Kaivo only.

vel: This signal represents the velocity of each note. It goes to a new value when the note starts, then stays at that value, even after the note is released. Very useful for controlling sounds that may ring out after the key is released.

vox: Which voice of the synthesizer is playing. Voices have values 0.0, 1.0, 2.0...

after: MIDI aftertouch. In MIDI mode, channel pressure and poly key pressure (aftertouch) are added to make this signal. In MPE mode, only channel pressure is used. Using poly key pressure, each note can have its own envelope played live, even with all notes on the same MIDI channel.

modcc: The MIDI continuous controller with the number selected in the KEY interface.

modcc+1: The MIDI continuous controller with the number selected in the KEY interface plus one.

modcc+2: The MIDI continuous controller with the number selected in the KEY interface plus two.

cc73, cc74: Continuous controllers 73, 74. From the Soundplane app these are how x and y are sent over MIDI. 74 is the standard per-note expression control in the MPE specification.

z: Per-note pressure from the Soundplane or any t3d touch messages.

dy: Change in y for each touch. This control is 0 at the start of each touch, then changes as the touch moves up or down. Calculated from y in the t3d messages.

x, y: The x and y positions for each touch. The behavior of these signals may be configurable through the app or instrument sending t3d data. For example, x and y may range over the entire playing surface, or over each note, be unipolar or bipolar.


In MIDI mode without MPE, all the touches will be on the same channel, so touches cannot send pitch bend or other controllers independently. In this case the most recently played touch is used to control the pitch or controller value of all held touches.

Ableton Live, unfortunately, has a simplified approach to MIDI in which all MIDI notes play on the same channel internally. As far as Aalto or other synths can see, all MIDI notes sent to them from Ableton Live are on channel 1. So it is currently impossible to implement MPE mode in Live. Soundplane players who want to use Live can choose between MIDI without MPE (no independent pitch or controllers, but recordable) or OSC (great individual control, but not recordable).

In addition, Ableton does not pay attention to the Poly Key Pressure (Poly Aftertouch) part of the MIDI specification. So in single-channel MIDI mode, there is no control possible over invididual notes.

A lot of presets i had which were functional in the last release are no longer functional . these exploited the previous behaviour whilst rate was 0.00

This was pointed out here and fixed.

I also note that when changing between presets which both share a Rate of 1.0, the rate dial will momentarily jump up to 220 for a split second then revert to 1.0, it is interrupting audio

That's new to me, I'll investigate.

One other comment, i'm curious, has anything changed with regards to the output of the sound engine in a manner which might affect the tone, something isn't quite right with my presets, i can't quite put my finger on it ..

It's possible that the sound has changed very subtly. My intention was not to change the sound, however many things have been rewritten. When I make changes to the audio engine I listen to a series of reference patches I know very well. If these sound as they should, then all is well.

If you have a patch that sounds different enough between versions as to constitute a bug, you are welcome to send it to me for listening.

Thanks for the comments. I could not reproduce the issue with 0 giving any change or +12 not being an octave.

Are you sure you have your attenuverter set to 1.0? Try double-clicking it to restore the default.

Do you have glide on? If so, the output value will always be a linear combination of two adjoining sliders based on the current time value. So if you are doing testing like this you have to make sure glide is off, even when the rate is 0.

I tried all the quantize ranges, and I did find some oddness with |range|

Out of all of these, Reaper is the one I have tested with and, I think, that the most people use. So that may be a plus. Not to say the others won't work and maybe provide some advantages.

Reaper does have a down side in that the graphical handling of plugins is not the smoothest. But that's improving and I've always found its audio engine to be top notch, it's an excellent value.

I would check the Live intro as well.

Traction has a sort of simplified approach to a DAW that you may find very usable.

On Audacity: I don't know why it would sound "thin." Basically any program capable of recording should be getting the same bits from your interface to the hard drive. I would look at your interface setup to see if there's some big incompatibility, or, failing that, use a spectrum analyzer plugin to try to quantify the difference.

That's great to hear. New betas for Windows coming very soon, I think.

I really want to. Need to find some reliable local help to do provisioning.

I'm making progress here. To get some of these big speedups I moved the plugins onto my new madronalib framework sooner than I had planned to. (More on that soon.)

Unfortunately there was a big hurdle with this new and awesome code on the 32-bit Windows platform in particular. It's taken me some time to figure out a solution. I just compiled something that works on Win32, so I'm hopeful that I can get to these other reported issues and release soon.