thetechnobear's Recent Posts

excellent work :)
ok, I'll hold off a bit, shout when your ready - excited here too!

Hi randy, How is the new touch tracking software going?

I've seen the check-ins on the repo, is it a stage where its worth playing with? testing? have you been mainly working on detection, or also lowering cpu loads?

If there is anything I can do to help, let me know
Cheers
Mark

p.s. great to see you having some time for this, thank you for your efforts.

I did this list for someone else, but thought it might be valuable here....

so what synths do you use with the Soundplane? and support MPE etc?

(I know we all have and enjoy Aalto/Kaivo... but Im sure many use others , no?)

anyway ,this is not an exhaustive list, more the ones I use,
but before we start we should group into categories

  • MPE, fully supports MPE ( or at least notionally, including PB range)
  • MPE compatible, actually really this is 'continuum' mode, polyphonic x/y/z via Ch Pres, CC74, PB, may need configuring/scripts etc, not 'automatic'
  • Voice per channel - polyphonic x/y/z but uses different CCs etc
  • Multitimbral, any of these can be used 'as' voice per channel, but some are easier than others, due to how parts can be duplicated/linked etc (Im not going to list)

OSC/T3D

  • Madrona Labs Aalto
  • Madrona Labs Kaivo
  • NI Reaktor (with my blocks/macros in user library)
  • Oscillot (M4L, Ive a modular for this if anyone is interested)

MPE

  • Axoloti (hardware)
  • Madrona Labs Aalto
  • Madrona Labs Kaivo
  • Futuresonus Parava (hardware -I don't have it)
  • Softube Modular (via 'RISE' module)

(ok, none are strictly compliant yet, but very close)

MPE Compatible

  • NI Reaktor (with my blocks/macros in user library)
  • UVI Falcon (since 1.0.2)
  • PPG Wavegenerator / Wavemapper
  • FXP Strobe 2
  • Max/MSP

Voice Per Channel

  • U-he Bazille
  • U-he ACE
  • U-he Diva
  • U-he Hive
  • Logic Pro X (various inbuilt synths)

DAWS

  • Cubase Pro (possibly Artist) - per note expression
  • Bitwig - MPE support
  • Logic Pro X - can host VSTs very well, and some built-in synths are multi channel , but no recoding facility, need to use track channel or audio
  • Ableton Live - a pain, need to use track per channel or audio

BTW: Id really recommend checking out UVI Falcon, its turned into a powerhouse for MPE controllers :)

yes, you'll need the soundplane client - but I'm working on eliminating the laptop ;) see MEC

with this I'm currently able to run the Soundplane on a raspberry PI,
which can be battery powered, which then connects directly to hardware synths... testing with Axoloti and my Virus so far.

not yet finished/released, I'm still working on it, but it works, just a matter of finding the time to complete it ;)

What is a simple host? One users necessity is another's complexity.
Eg why a recorder, but no midi clock? What about send fx, given virta?
Fullscreen would be nice, for small screens, but a bit bare for larger ones ;)

One idea, perhaps integrate it into the soundplane app?
(soundplane tabs could be hidden when not needed)
So no extra app to maintain, and could make the soundplane act like a standalone instrument (direct communication to plugin rather than IPC), similar to what eigenlabs did with eigend.

Cool, it's really interesting to hear your progress

my experience with the BBB/Bela (A9 1Ghz running Xenomai) was it was the higher level TT code that ate all the cpu, it coped fine on the lower level stuff and 'crude detection' layer, but struggles with the full tracker. (the rPI2, now its kernel is fixed, runs fine, but thats got 4 cores)

I look forward to hearing how you get on, improved efficiency in the TT will help us all :)

will the firmware be open sourced?
it seems in many ways, we are going in a similar direction...

Ive mentioned before that I think they make a good team :)

in this video, Im using Axoloti as the only sound source/fx and playing it with the Soundplane, using MPE.

Tres Amigos

@andrew
with the soundplane (and other expressive controllers) , I tend to keep patches simple, as much of the character comes from the player thru the controller.

one thing, I like, is whilst all my patches sound different, I like them to behave in a similar way ,this (for me) makes the SP feel more like an instrument, because it has a 'character'.

what I tend to do is control level directly with z,(usually with LP enabled) this leads to subtle control, as the SP is relatively 'slow'. (you need to use velocity,envelopes if you want punchy) . then y, i often use to drive timbre/cutoff, to brighten the sound. z sometimes also does this, so when you push in it accents the notes.

one 'problem' I have with Aalto (and Ive mentioned before ;)) is the modulation amount is per input ... this means you are limited in how you can use multiple modulation sources, as you cannot tune in the effect correctly
e.g. imagine your using Y to modulate cutoff freq, and you want it to be quite 'pronounced', but you also want cutoff freq to track pitch, you cant really get a good balance.

in code we have amt * ( y + pitch) when we really need ( yamt * y ) + ( pamt * pitch)

anyway, this is just how I use Aalto with the soundplane, for sure there are lots of other ways, Id love to hear more about others approaches.

Id also love some advice on Kaivo, Ive alot more difficulty getting good things out of it with SP, than aalto.

Great stuff, thank you

Looking forward to Soundplane enhancements :)

I have some great news for Soundplane owners :)

the Raspberry PI kernel bug (in dwc_otg) which prevented the SP working has now been found/fixed. ( not released yet)

Yesterday, I ran a patched kernel on a rPI2, and have the SP working perfectly using MEC!

my setup:
Soundplane + rPI2 + Axoloti (midi mpe)

all perfect, Soundplane using 80% cpu on 1 core, other 3 cores very low cpu.
(Eigenharp tested too, and only uses 10%, others low)

the Soundplane and axoloti directly powered from the rPI2, so connect this to a USB battery and you have a completely portable setup, just add headphones/speakers :)

the rPI2 probably has enough cpu power left also to run a (light) synth... or you can add another couple of Axolotis or Belas (you have 4 usb ports to play with)

p.s. with MEC on a PI (or anything else), you can also send T3D OSC messages over ethernet or wifi ;)

use a rPI3, or an Asus Tinkerboard (mine arrived a couple of days back) , and you have even more cpu to spare.

of course it will still be great for the TT cpu to drop, as then the BeagleBone Black with Bela could be used, Bela providing low latency audio, and analog out (useful for modular cv ;))

oh... I've also done a successful technical test with the Eigenharps using libusb running on windows. (with usb iso traffic).
this means when my windows laptop arrives, I will be able to get MEC running on windows, and yes that includes the Soundplane on windows!

Im really excited, the fixing of the PI2/3 make this so much easier for everyone,
its freely available and only $35 (ok, perhaps tiny bit more for case, power, sdcard)

once Ive 'finished' mec, Im going to look at using buildroot, to turn this into an embedded appliance...so users just see the MEC/PI as a 'magic box' you just plug in.

thought id start a thread on this.. with my experiences so far, and perhaps others can elaborate, or suggest betters ways.

goal: Virta taking audio input and being controlled via midi (i.e. both audio input and midi input)
my experience is with Mac OSX, but I think relevant to windows too.

generally there seems to be 2 approaches:

  • use virta as a effects plugin, then route midi to it from a separate midi track.(most common)
  • create virta as an instrument, then select the audio input as a sidechain input.

Note: when I say use virta as an insert effect, you can almost certainly instead place as a separate send effect , assuming the DAW allows you target midi to the send effect.
this way can be use for multiple tracks.

Live 9.6
a) Create an instrument or audio track , put Virta as an audio effect on the same track
b) Create a midi track, then in the output destination (press IO button to reveal) select track you created in (a), and channel 1.
(limitation: no MPE, without lots of tracks, but thats Live for you ;) )

Bitwig 1.3.6
a) Create an instrument or audio track , put Virta as an audio effect on the same track
b) Create a midi track, then in the output destination (press IO button to reveal) select track you created in a (a), and channel 1.
Note: MPE works, if you select force MPE, the midi channel on the output destination is ignored, so doesn't matter what channel you set :)

Cubase 8.5 Pro
this is not working... is there a better way, or its a bug?
the way i think it should work is (as i use for other plugins) :(
a) Create an instrument or audio track , put Virta as an insert effect on the same track
b) Create a midi track, and target virta which is listed instrument track
(i.e. its similar to lives approach)

This doesn't work, as Virta is not listed as an effect,only as an instrument.... so cannot be selected as an insert etc. as an instrument it also doesn't have anything like a side chain input as far as i can find.

Logic 10.10.2
a) Create your audio/instrument track as normal (i.e not virta)
b) Create a BLANK instrument track then select virta as the instrument.
(under midi controlled effects)
(note: I'm having issues with logic selecting this from the normal new track dialog)
c) create a bus, and send some/all of your audio/instrument track (from a) to it
d) in virta dialog, select side chain input, and select the bus you created in (c)

Numerology 4 Pro
just add virta, route audio to it, route midi to it... simple ;)
... and wow, Virta + Aalto + N4 could have been made for each other, such a fun combination, most fun Ive had so far with the audio mangling side.

OSC option (e.g. soundplane), any daw
if you use OSC input, you don't have to do any of this, just use as an effect.
(but alas no recording)

Harrison Mixbus
(courtesy of phil999)

  • create a stereo audio track. Add a MIDI port to it
  • in that track, right click, New Plugin, select Virta
  • create a MIDI track without instrument, select keyboard input
  • in the MIDI track, click output, select Routing Grid
  • in the Routing Grid, patch MIDI out to audio track

In Traction 7
(courtesy of secretkillerofnames)

there seems to be a number of ways to get it working:
1) Drop Virta on a track - select MIDI input channel - drop audio into the track and it works fine for playing. You can even add a MIDI and an AUDIO input
BUT if you want to record and playback MIDI notes will processing an audio file
2) Create 2 tracks - one for MIDI, one for AUDIO - create a new plugin rack / wrapper for Virta on the MIDI track. Add the AUDIO track as an input to the wrapper and disconnect one of the track outputs (either AUDIO or MIDI - doesn't matter.)
BUT if you want to record live input and MIDI notes
3) change number of inputs to 2 - select MIDI input and audio input in the two boxes - arm them - make sure live input monitoring is selected - press record and go. It records both MIDI and AUDIO to the same track!

FL Studio
(courtesy of levendis)

PDF external link

I recommend PrEditor...
https://isotonikstudios.com/sigabort/isotonik-preditor/
this allows you to setup your own pages of controls (unlike Ableton 'out of the box')
Ive done this and find it pretty useful for a few VSTs,including Aalto.

takes about 10 minutes to setup a VST the first time, but then its done...

the end result for ML synths I find 'variable', its great for modifying a preset you already have created , since you can organise the parameters logically, but you cant change the routings so its limited for creating new patches- but I still find it very useful.

(hopefully Ableton might include something in a future version of Live, Live 10 :))

Ableton Push supports browsing in the same way as Ableton Live generally does... i.e. what you can view in Lives browser is available in Push. (so doesn't need special testing)

basically there are two (actually 3) ways ;)
two described here;
https://help.ableton.com/hc/en-us/articles/209776485-Browsing-plug-in-presets-with-Push

a) AU - save your presets as aupresets... this works for everthing (well thats is an AU :))
b) VST - save as PC banks (ML doesnt support this)
c) put plugin in a instrument rack, and then save the rack.

I use (a) the most, but of course this wont work if your on a PC (only Mac), (c) is ok but a bit cumbersome, but has the advantage that you can assign some macros whilst you are there :)

In some ways I quite like saving these presets separate outside the ML preset system, as it means I have only my presets on the push :)

the main 'pain' is if you use other DAWs (that dont support AUs) then you cannot get to these saved presets...
to get around this I save in both .aupreset and in the ML browser, which of course means there can be 'discrepancies'

its a pain, plug in developers dont like the au/fxp format as they are limiting, and of course means you need to dupe au and fxp formats (and others if you support aax etc), but its not ideal for users either, as DAWs can only use these standards... they know nothing of internal presets. (though bitwig, seem to know something about u-he's preset)

Native instruments are trying to get around this with NKS, and a few developers have jump on board... but Im not sure they are making this technology available to DAWs, or if its just for their controllers.

anyway, its only really a pain, if your using multiple daws, otherwise there is a way to get these things to work :)

Cubase 9 now supports Audio IN for VST3 instruments.

are you planning to support VST3?
(https://www.steinberg.net/en/products/cubase/what_is_new_in_cubase_9.html)

there were some problems reported with some recent MBP - I think Randy fixed these, so you might want to see if you have the same issue with the betas Randy has recently posted.

yup that fixes crash for both Cubase 8.5 and 9.0 :)

btw: Im not really able to test much more than loading, cant live with demo restrictions :)
if you send me my license keys, I'm happy to install all the betas and then use daily.

its also crashing Cubase 8.5 (Sierra)

 0   com.madronalabs.aalto          0x000000013d5a6aa7 juce::BigInteger::BigInteger(juce::BigInteger const&) + 23
 1   com.madronalabs.aalto          0x000000013d53ae81 JuceVSTWrapper::getSpeakerArrangement(VstSpeakerArrangement**, VstSpeakerArrangement**) + 449
 2   com.madronalabs.aalto          0x000000013d5371af AudioEffectX::dispatcher(int, int, long long, void*, float) + 767
 3   com.madronalabs.aalto          0x000000013d539d1b JuceVSTWrapper::dispatcher(int, int, long long, void*, float) + 427
 4   com.madronalabs.aalto          0x000000013d537fa7 AudioEffect::dispatchEffectClass(AEffect*, int, int, long long, void*, float) + 23

looking forward to trying these, once all the keys are sent out :)

Softube Modular has just added a RISE module, which can also be used with MPE mode on the soundplane ... lots of fun :)

Put Aalto/Kaivo in MPE mode, and set on range to 48 .
Seaboard in MPE. mode

... and your good to go

X maps to glide, but often not needed since for pitch it's already taken into account

Y is slide.

( this is all standard MPE stuff, glide / slide etc are just Roli speak)

ok, so tested on 10.11 / same issues as macOS sierra

also I think the audio glitch, is possible a bug in the LowPass GATE

easy to demonstrate, ( I use Live/ but same in BWS)

a) load VST
b) load preset Virta Key Synths/Fuzz Trumpet Fifths

you will hear a noise on loading it despite no midi

and if you wait , you will hear it repeats

turn off the low pass and it will stop

(to prove its this, you can also disconnect the inputs on the gate, and also the vocoder, so now the gate has no possible signal input nor, any activation (mod =0, and disconnected, level =0)

interestingly you can only hear it on the wet delay line... I guess some very brief spike from the lowpass gate, which gets amplified?

awesome!
protocol bug is fixed, Im really happy, this is so useful to me .. thank you, thank you :)

I did a bit more testing and found 2 bugs ...
macOS, Live 9.6.2(64 bit)

a) AU audio 'glitch' on loading

  • load Virta (AU) on to a track,
  • select a ML preset (i used comb organ)
  • use the 'save as preset' on the LIVE device (is not a ML preset, we are doing a live preset) , save as VirtaAuTest (it will create VirtaAuTest, that you can see in Lives browser)
  • delete track,
  • create new midi track
  • select VirtaAuTest from Live browser

bug:

  • you will hear a loud glitch/click/bang when the device loads

b) VST not loading selected ML preset when in group (and audio glitch, as per (a))

ok, we are going do a similar thing as (a) , except with a group track and VST
so...

  • load Virta (VST) on to a track,
  • select a ML preset (i used comb organ)
  • put it in a group (select virta device , then CMD+G)
  • on the group device use the 'save as preset' (disk icon), save as VirtaVSTTest (it will create VirtaVSTTest, that you can see in Lives browser)
  • delete track,
  • create new midi track
  • select VirtaVSTTest from Live browser, you will see the group

two bugs:

  • first you will hear the same 'bang' that we got in (a)
  • second, the patch window has no wires AND in fact the preset you selected (second step) whilst being shown in the ML preset box, is actually not loaded.

(b) may only is preset with VST, AU seems ok

anyone tested the Soundplane software on Sierra yet?

on my main music mac, I wont be upgrading till its stable, but Im considering upgrading my MBP since I need to test (and potentially fix) other open source software that I contribute too (mainly Axoloti and Eigenharp).

on the MBP, I only really use Live, Soundplane and a few plugins (including Aalto/Kaivo), so I'm wondering if it will 'get away with it'...as Id still like to be able to use these after then upgrade.

thoughts? issues? experiences?

BTW: Randy, any news on the touch tracker development ? ;)

EDIT: decided I will upgrade due to the number of other things I need to test/support, so I'll use this thread to detail my 'experiences'.

Status:

Platform: MBP / 10.12.0/ latest SP software/Live9.6.2/Aalto 1.7(osc)

  • Soundplane software appears to work, and CPU load seems similar
  • Aalto seemed ok with OSC, in Live 9.6.2

testing so far very limited, as Im doing a number of hardware devices etc, but I'll do more soundplane testing after initial round on all devices.

good news.. it looks like the USB iso issue has been fixed in 10.12... in 10.11 unplugging the Soundplane before exiting app, or the soundplane app crashing - would cause a fatal OS crash. Early testing, it appears Apple has fixed this bug - huge win for stability!

soundplane update- any idea when? Ive been working on my ARM/Beaglebone Black/Bela app - which Id like to migrate to the new tracker.
perhaps you could get the work in progress into github? last commit was over a year ago :(

(of course, I recognise the soundplane is a low priority, given its small userbase - so really just after an indication of timing... are we talking weeks/months/years? ;) )

USB hang
yeah, its seems quite reliable, though then doing the above app, I did find if the app crashed, it could still take down the whole machine - so its not a total fix, but definitely more stable.

btw: not really sure what to do about this... but you may have some ideas
the SoundplaneAppState json file cannot be read in by Max as the calibration array is too big.... perhaps it would be possible to split this up into multiple entries?

I was planning on making a calibration editor in Max, but had to abort due to the above.
I could of course write in C++, or write an max external that can handle it. but thats a 'bigger project', so is not going to happen in the short term.

fixed an issue where the protocol type (MIDI, MPE, OSC) was not loading if the plugin editor did not exist - still not working

its simple to test:

  • create a live session with Virta on, select keyboard patch, select OSC.
    (test you can hear sound) - save session.

  • now re-load the session, no sound... open the editor - bingo it works!

ok, some good news... with port audio installed I can load virta AU/VST in both Live and Bitwig on Sierra.

auval shows same error as bitwig, so confirmed the dynlib is the issue

(otool -L confirms this is the only lib missing)

$ auval -v aumf Vrta MLbs

AU Validation Tool
Version: 1.6.1a1 
Copyright 2003-2013, Apple Inc. All Rights Reserved.
Specify -h (-help) for command options

VALIDATING AUDIO UNIT: 'aumf' - 'Vrta' - 'MLbs'

Manufacturer String: Madrona Labs
AudioUnit Name: Virta
Component Version: 1.2.0 (0x10200)
Component's Bundle Version: 1.2.0

* * PASS

TESTING OPEN TIMES:
COLD:
2016-09-23 17:50:22.164 auvaltool[1898:95626] Error loading /Library/Audio/Plug-Ins/Components/Virta.component/Contents/MacOS/Virta: dlopen(/Library/Audio/Plug-Ins/Components/Virta.component/Contents/MacOS/Virta, 262): Library not loaded: /usr/local/lib/libportaudio.2.dylib
Referenced from: /Library/Audio/Plug-Ins/Components/Virta.component/Contents/MacOS/Virta
Reason: image not found
FATAL ERROR: OpenAComponent: result: -50,0xFFFFFFCE

macOS Sierra - not working....

Live 9.6.2 AU shows, but wont load , VST doesnt show

Bitwig, shows an error for VST (which might be helpful)

com.bitwig.flt.library.metadata.reader.exception.CouldNotReadMetadataException: could not read metadata: Could not read VST plug-in metadata
64 bit plugin host reported errors: Pluginhost returned non zero exit code 255
Error messages:

2016-09-23 17:40:50.879 BitwigPluginHost[1837:92385] Error loading //Library/Audio/Plug-Ins/VST/Virta.VST/Contents/MacOS/Virta: dlopen(//Library/Audio/Plug-Ins/VST/Virta.VST/Contents/MacOS/Virta, 262): Library not loaded: /usr/local/lib/libportaudio.2.dylib
Referenced from: //Library/Audio/Plug-Ins/VST/Virta.VST/Contents/MacOS/Virta
Reason: image not found
2016-09-23 17:40:50.879 BitwigPluginHost[1837:92385] Error loading //Library/Audio/Plug-Ins/VST/Virta.VST/Contents/MacOS/Virta: dlopen(//Library/Audio/Plug-Ins/VST/Virta.VST/Contents/MacOS/Virta, 262): Library not loaded: /usr/local/lib/libportaudio.2.dylib
Referenced from: //Library/Audio/Plug-Ins/VST/Virta.VST/Contents/MacOS/Virta
Reason: image not found

32 bit plugin host reported errors: Pluginhost returned non zero exit code 255
Error messages:

2016-09-23 17:40:50.948 BitwigPluginHost[1838:92392] Error loading //Library/Audio/Plug-Ins/VST/Virta.VST/Contents/MacOS/Virta: dlopen(//Library/Audio/Plug-Ins/VST/Virta.VST/Contents/MacOS/Virta, 262): Library not loaded: /usr/local/lib/libportaudio.2.dylib
Referenced from: //Library/Audio/Plug-Ins/VST/Virta.VST/Contents/MacOS/Virta
Reason: image not found
2016-09-23 17:40:50.949 BitwigPluginHost[1838:92392] Error loading //Library/Audio/Plug-Ins/VST/Virta.VST/Contents/MacOS/Virta: dlopen(//Library/Audio/Plug-Ins/VST/Virta.VST/Contents/MacOS/Virta, 262): Library not loaded: /usr/local/lib/libportaudio.2.dylib
Referenced from: //Library/Audio/Plug-Ins/VST/Virta.VST/Contents/MacOS/Virta
Reason: image not found

perhaps you meant to static link libportaudio rather than dynamic link on your build machine?

Give avantronics is saying same for Mavericks,and the above error doesn't look Sierra specific, Im going to assume its on all versions of OS 10.x

I guess i could install libportaudio... I need it for another project anyway ;)

USB has protocols for various types of devices, if the device supports that protocol it is said to be 'class compliant'

there are quite a few, but the most useful ones for music are:

  • Audio Interface - as per this topic

  • Midi - USB midi

  • Mass Storage - appears as a 'hard disk'

the protocol details are all detailed on the usb specification pages:
http://www.usb.org/developers/docs/devclass_docs/

I think midi and audio interface class compliance have become a lot more common recently due to iOS (iPads/iPhones) which are 'class compliant hosts' , and are also impossible to add propriety drivers... i.e. hardware devices don't have a choice if they want to support iOS