randy's Recent Posts

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.

http://madronalabs.com/media/aalto/Aalto1.8.2b3.pkg

http://madronalabs.com/media/kaivo/Kaivo1.3.2b3.pkg

http://madronalabs.com/media/virta/Virta1.3.2b3.pkg

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.

Mac:
http://madronalabs.com/media/aalto/Aalto1.8.2b5.pkg
http://madronalabs.com/media/kaivo/Kaivo1.3.2b5.pkg
http://madronalabs.com/media/virta/Virta1.3.2b5.pkg

Win:
http://madronalabs.com/media/aalto/AaltoInstaller1.8.2b5.exe
http://madronalabs.com/media/kaivo/KaivoInstaller1.3.2b5.exe
http://madronalabs.com/media/virta/VirtaInstaller1.3.2b5.exe

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

Protocols

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    
                (Kaivo 
                only)

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

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.

Limitations

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.

I think what the original poster is referring to may just be the oscillator drift. I can investigate more after this release.

Hi Brendan,

Sorry, I don't do license transfers. I have a very unobtrusive demo version, and I advise people to try before they buy. Please see the License Terms section on the Aalto page for all the details.

[EDIT March 2017] NOTE: This conversation is from 2013! Currently license transfers are allowed for a small service fee. Please contact me for details.

-Randy

I'll send out a new Windows beta soon. Please stay tuned and give it a try.

Thanks a lot! There is so much stuff rewritten for this update, we're bound to run into a few things. Will investigate.

OK, thanks for the report. Checking audio input incl. meter response would be part of my normal testing checklist. However, it's possible for things to break in ways that manifest only randomly. I'll check this for the impending release.

A setup with a single instance in a minimal DAW seems like a good solution for you. DAWs do not take too much CPU, generally. They add complexity but you can set this up once and forget about it.

Reaper is a good option and inexpensive.

A newcomer on the scene is called Gig Performer. They are trying to support just the use you envision. I have no experience with it myself yet.

To get a multitimbral use I would make two instances of Kaivo on different tracks and use each on a different MIDI channel.

Your kind words are appreciated here! Stay tuned for an update very soon.

Other people have asked for the ability to store Kaivo samples on a different disk. I'll be adding that feature when I can.

I do use Seib's VSTHost sometimes on Windows. For really quick launching I use the "Plugin Host" that comes with JUCE. You have to compile it yourself though.

Welcome aboard and thanks for the good words.

The "mod cc#" dial controls the number of the cc message that comes out of the "mod", "+1", and "+2" outputs. So if you set the dial to "14", the three outputs send the values of CC messages 14, 15, and 16. This is in the manual on p.32–33. The explanation could probably be better.

The pitchbend control is added to pitch before coming out the pitch output of the KEY module. As you note, it can't be assigned to anything else. I have never seen a synth that's able to to that, so I never really thought of it! MIDI kind of sets us up for this because pitch bend is not a CC#, it's a separate kind of message.

I think Kaivo should let you import samples in demo mode. The readme file that comes with the installer has a quick rundown of how to make your own multichannel files if you want to do that. Otherwise you can just use the "import" feature in the granulator. If you are just adding your own files by hand, you have to move them into the Madrona Labs directory. There is a maximum length of 8 seconds for the sample files so if you just moved them in yourself, it may be choking on that.

Grain length is totally independent from sample files and is set up in the granulator engine by the "pitch" and "rate" and "overlap" dials.

I don't know what you mean by "can I use all samples."

Out of the two synthesizers I recommend getting started with Aalto, it's the main one a lot of people reach for every day, and you don' t need external samples to make great sounds. Kaivo is more specialized.

Great news! This kernel bug was preventing isoch USB, is that right?

I'm excited to see your setup in action when you have time to document it. I would also like to put together a guide to making the raspberry Pi solution work and get it up on the web site.

This also fires me up to complete v.2 of the touch detector.

Are you using the Linux Soundplane driver that Per Eckerdal came up with? That was created "on the way" to getting a Windows driver working, but we never got all the way there. If you need any kind of assistance or encouragement with the Windows work, let me know!

MEC seems like really interesting work and I can't wait to check it out.

Thanks for the detailed feedback. I'm getting back to the Soundplane software now.

The first thing I'll be working on is the new touch detector. Hopefully this will improve CPU usage a lot, as well as the edge effects you are noticing.

A lot of these other things were on my list too, and now they all are.

I would like to improve Kyma support, but it's a bit slow for me to get feedback. Maybe I could get a loaner machine from Symbolic? I'll ask them after I can get some of these more major things under way.

Thanks for the update. I'll try the most recent Reaper.

The fixed size refers to the block size used when processing audio. you should be able to set this to a fixed value in Reaper's audio device preferences. I just checked it out and I don't see the "fixed" language, so sorry for the confusion. That is from FL Studio, I had it mixed up. In Reaper it looks like you want to click "request buffer size" and enter a value like 256 or 512.

The next Soundplanes will be Model Bs. There hasn't been much movement on it because I've been so focused on software here. Well, I do have the table saw set up. :-) I'll be excited to show pics of prototypes, etc when I can!

Working on it here. There's no one big thing to fix, so I'm fixing 100 little things. I'll post a new beta soon.