Tuesday, 15 July 2014

TX16Wx in BEAT magazine

Here is a little update from the press department.
The latest issue of German BEAT Magazine has a great workshop article on using the TX16Wx:

Four pages of neat tips and work flow guides, courtesy of the very nice Marco Scherer.  It is of course in German, but there are some great stuff, especially for those just beginning to use the TX, so get a copy today.  

Sunday, 13 July 2014

Oh, the silence...

Time flies, and I barely notice that I haven't written anything here in ages. This is of course due to my severely limited social media skills, and my general dislike of communication in general.
Those of you that follow the KVR forums however know that TX16Wx development has not been standing still.

The 2.4.0 release, which is currently in release candidate status, is slowly but steadily moving forward. Having been slightly overwhelmed by feature requests, some quite big, it has taken longer than anticipated, though I am hopeful it is near finished now.

Check out the release candidate information at the forum.

Looking further ahead, there will be a 2.5.0 release later this summer, focusing on sampling workflow. After this, work on the highly anticipated version 3.0 will commence. The feature list for this is still fluent, but let me tease as much as saying that a number of features that has been requested to death will be included, hopefully finally making TX16Wx the only sampler instrument you will only need. :-)

Stay tuned.

Friday, 10 January 2014

Happy new year - first bugfix release of 2014

Just a small update to let you know I am still alive, even after all that Christmas ham. And, to celebrate that the year is new and the KVR forums are almost functional again, here is a small bugfix update of TX16Wx. It contains the cumulative hotfixes done earlier, and some additional fixes:

TX16Wx 2.3.1 (2014-01-10):
  • Fixed Soundfont parsing broken on OSX
  • Fixed slot MIDI transpose broken in certain cases
  • Fixed slot detune broken
  • Fixed storing program with root key override broken on OSX
  • Fixed OSX menu issue
  • Fixed loading of modulation preset containing legacy "Amp" destination
  • Fixed filebrowser hanging when opening unmounted drive on Windows
Nothing huge, except maybe the transpose thing. Download as usual from http://www.tx16wx.com/

Happy sampling

Sunday, 1 December 2013

TX16Wx 2.3.0 Released

Hello all!
'Tis the season to be sampling, time to load up those sleigh bell sounds and make some Christmas songs. To that end, here is this years gift from CWITEC; its finally time for another TX16Wx update release.

This one has been brewing quite some time. Those of you who frequent the KVR forum knows that this version has been in beta since late July. And boy it has a lot of features.

Version 2.3.0 (2013-12-01):
  • Fixed MIDI note names not being refreshed in some hosts
  • Fixed load failure with certain banks created with older versions 
  • Fixed send:pre-fader not loaded from bank
  • Fixed delay feedback issue
  • Fixed bug loading performance with tempo delay
  • Fixed dry/wet mix issue in Chorus/Flanger
  • Fixed some sound fonts imported with bad play mode
  • Fixed mouse wheel scrolling for large windows
  • Fixed crash in Sonar X2 when loosing window focus 
  • Fixed turning automated knobs not sending automation data to host
  • Modified LFO and Seq modulators parameter UI disposition to be more powerful
  • Added Mono and Ping-pong mode to delay
  • Added lo/hi frequency cut for reverb
  • Added 3-band equalizer effect
  • Chorus/Flanger/Phaser inserts now converts mono to stereo for nicer sound
  • Added note priority selector for playing Mono/Legato modes
  • Added override root key functionality to splits 
  • SFZ and SF2 import now uses overriding root keys
  • Added name-based auto keyboard mapping tool
  • Added Soundfont sample and patch loading. SF2 files can now be browsed and partially loaded
  • Soundfont import now uses much less memory
  • Added BPM/R modulation source (host/wave relative tempo)
  • Program files now store wave metadata overrides such as root key, loops etc to allow more local modifications of waves without needing to save them
  • Added setting to save reapeaks files in separate folder
  • Added group crossfade regions (pro version)
  • Introduced crossfade between sample sources when playing in ono/legato mode to reduce clicking
  • Voice stealing now produces smoother sound
  • Intersecting groups can now be selected by Ctrl-rightclick on mapper keyboard
  • Playing notes on the key mapper keyboard can now vary velocity with Ctrl, Shift and Ctrl+Shift
As you can see, its a big update. Enjoy the new features, and don't forget: Nothing makes a better Christmas/Hanukkah gift than a TX16Wx license.

Download from http://www.tx16wx.com/.

Happy sampling

Saturday, 27 July 2013

TX16Wx Version 2.2.3 Released

Summer heat is slowly giving way to rain and misery again, so to ease your pain I present once more a new release of TX16Wx. This is a pretty big update that has been brewing in the beta section for a while now, containing numerous fixes and new features.

Among the highlights is the ability to now replace loaded waves with new ones from disk, either through dragging or file dialog, much improved zooming in the editors, and wave point "jump" buttons to make editing easier.

Oh, and the Mac version now once again supports OSX 10.7.

Version 2.2.3 (2013-07-27)
  • OSX version now again supports MacOS 10.
  • Added "goto" buttons with automatic zoom for wave and loop start/end 
  • Added looped preview playback of samples in sample editor
  • Added drag and drop "replace" wave mappings
  • Added copy/replace loops between samples
  • Added Key/P and Vel/P modulation sources (program range based)
  • Made filter lowest frequency 20hz
  • Manual can now be opened from the plug-in
  • Zooming using mouse wheel now keeps note/sample focus correctly
  • Sample editor can now scale waveform amplitude display
  • Scrolled views can now be dragged using the middle mouse
  • Scrolled views now respond to "drag gestures"
  • Fixed scrollbars getting to small for extreme zoom-in
  • Fixed key switcher "Sequence/R" now working correctly
  • Fixed regression: VST Speaker layout handling not working properly
  • Fixed regression: Parameter names truncated in viewer
  • Fixed amplitude/volume modulation not working as expected
  • Improved list selection and usage
  • Fixed loop metadata reading from wav slightly broken for some files
  • Improved layout handling for small sized UI
Download as usual from http://www.tx16wx.com/

Happy summer sampling

Thursday, 27 June 2013

Version 2.2.2 - features and fixes galore

Hello all.
New week, new version, that is the way we do thing, no?
This build contains a number of fixes as well as some neat features suggested by people at the forum.
One pretty neat feature is the waveform overlay in the sample editor. Basically, when active, it will overlay the loop start with wave data from the loop end and vice versa. This can help quite a bit when trying to find that perfect loop point. 

As you might have read in a previous blog entry however, I found what I think is a quite serious bug when trying to use the XCode 4.6 C++11 toolset with the OSX 10.7 SDK, so version support for Mac has been set to 10.8 only. Sorry about that.

Version 2.2.2 (2013-06-27)
  • Added loop point overlay in sample editor for easier loop edit
  • Added selectable MIDI velocity curves
  • Added scrollbar arrows for easier scrolling
  • Mono/legato mode now gives trigger priority to held notes when sustenuto is on
  • Mono/legato mode now always re-triggers the last held note on note-off
  • Mono/legato mode re-trigger now respects keyboard switching properly
  • Mono/legato mode can now be forced to always re-trigger waveform/modulators by using choke groups.
  • OSX support now reduced to 10.8 due to exception linkage bug in apple sdk
  • OSX version now handles finder aliases in browser
  • Fixed poly limit not working properly
  • Fixed loading of SF2 files with illegal names inside
  • Fixed dB display in sample editor not drawn correctly
Downloads as usual from http://www.tx16wx.com/

Happy sampling

Monday, 24 June 2013

Clap & Clang

Note: Much of this post uses terms and concepts from C++ programming and ABI implementation. If you don't know about things like that, just nod, smile and try to take in the conclusion at the end. 

So I had a bug report from a Mac user. He tried to load a slightly broken AIFF file in Logic Audio 9, something that should normally have led to a little message box saying "Could not load file", and nothing more. Instead however, the whole application crashed, without so much as an apology.
He sent me the file, and I fired up AU lab and loaded it into the TX. As I expected, I got the error message I knew should be there. So what is going on?
Firing up Logic Audio, I could indeed reproduce the behaviour he described; As a matter of fact, even the trusty Reaper exhibited the same pattern. Some debugging showed that while the appropriate exception was indeed thrown, the catch clause did not take at all. In these two hosts. But they did in AU Lab. Oy wei...
So, some more debugging, and stepping through the disassembly of the exception handling framework for C++ compiled against libc++ in OSX, which is libcxxabi. Now, the exception is thrown properly, and the stack unwinding happens as it should, using libunwind. But the type matching breaks and fails to recognize that std::runtime_error is a subtype of std::exception. For this unfamiliar with how this is done in exception handling, basically an application or library exports a type table which identifies exported types, in this case the table comes from libc++. The exception handling will use soft type analysis to determine if types are related and compatible, which in turn means that to be able to handle exceptions across DLL boundaries for example, you must make sure that you both agree on the types you are exchanging (i.e. link to the same C++ runtime). But here is the funny thing; In my case, the exception handling is not across DLL boundaries, but inside a single plug-in library. And still, the type handling breaks when the plug-in is loaded in certain hosts?
I ran a number of different compiles to ensure that symbol visibility was not broken at my end, all symbols required for exception handling properly pointed out etc. No difference. I also made sure to test the behaviour on a much smaller example, the Apple "FilterDemo" sample AU plug-in.

This is where I found the culprit: OSX toolset 10.7.

I seems that a plug-in compiled with the XCode 4.6 Clang compiler, C++11 and libc++ while linking against the OSX 10.7 system headers will have broken exception handling when loaded in some applications. My guess is that something in these headers contain declarations that are not fully llvm compatible and causes a conflict in the somewhat fragile system that is the dynamic type handling in C++ exceptions when certain other compatibility libraries are loaded. And this is pretty much where I will stop my debugging of this, because it is exhausting.

And now for the conclusion:
The bottom line is; There is what I would categorise as a bug in the c++11 toolchain when targeting OSX 10.7 (unless this is explicitly unsupported, though I did not find any docs to that fact), so from the next build TX16Wx will only support OSX 10.8 and above. It might still work on a 10.7 machine, since I am not making use of any particular 10.8 features, but given that this is Apple, I would not hold my hopes up. I'm sorry for those on 10.7 eager to use TX16Wx, but since I cannot find any other way to provide a stable functioning plug-in this is how it will be.

New service release will be out in a few days.
Happy sampling

Edit: So, it seems that while the above is correct, there is a relatively simple solution, namely usign the 10.8 SDK but set targeted version 10.7. This is documented, though with a slightly pouty face I'd still like to point out that the documentation in question is not very close to the settings themselfes. So, at least partially this seems to have been a little bit of SBS on my part. Though, seriously, its still quite a weird thing to happen. Anyhow, the good news here is that there will be a 10.7 version of TX16Wx after all.