Category Archives: Coding

Busy, Busy, Busy…

So we’re only at March and I think I’ve already let my “update this blog at least one every 2 weeks” target slip… Oh well, I’ll have to try harder!

I’ve been busy working on a conference paper with the main conclusions of my listening experiment. It’s limited it 6 pages in length and it’s actually quite hard to fit everything into that sort of space.

SARCoder – Ambisonic Decoder

I’m going to try get working on the decoder VST again. It’s really stalled and I need to get back to it – there’s not much point having two encoder VSTs without a decoder (although there are others out there). The first version I get released will probably be pretty basic but once I can get it into a good form I’ll be able to add new features more easily.

Continue reading


Sometimes coding is just so… ugh…

I’ve been updating my Ambisonics decoder and it was all going swimmingly until I put in the near field compensation (NFC) filters. I’d changed the implementation from that used in the B-format encoder to something that should have been more efficient. It is. However, it also gives me a load of noisy garbage along with the filtered sound. Not good.

After a quick inspection I can’t see what’s wrong with it but the whole code has become a bit messy in the upgrade from the previous version so I’ll maybe have to cut my losses and start afresh. That way I’ll hopefully avoid any problems and can fix whatever has gone wrong with my current implementation. It’s probably something really stupid that I’ve done but it’s so frustrating.

The worst thing is that I don’t have the time to work on it. I’ve a whole bunch of other things to be getting on with that debugging code isn’t at the top of my to-do list. Annoyingly, until I get the time to work on it and fix it, I’ll have this nagging away at the back of my mind.

Anyway, I’d best get back to looking for the problem.

B-Format Encoder Update

I’ve updated the B-format encoder. The first change was to make the GUI a bit lighter so the text is easier to read. The second change was more serious. There was a memory leak that was causing a build up in the RAM over time and, if used for long enough, a crash. This is now fixed and it seems to be working stably.

I’ll be spending this weekend updating the code for the decoding plugin. I doubt I’ll have the time to make a GUI but if I can get the code and a usable GUI ready then I’ll be sure to post them.

Continue reading

Windows 8 upgrade

I decided to upgrade to Windows 8 because… well, mostly I was curious.

I’ve not had much time to play with it yet but it looks pretty good. It’s fast, seems stable and (to my surprise) the Modern UI is actually quite nice. I’m in the process of finding some good news apps and a couple of more lighthearted ones.

Some time later this week I’ll have to get Visual C++ installed so I can get back to coding. Until then I’ll not be doing any VST work, except for maybe a little on Mac for an experiment I’m designing. I’ve plenty of other stuff to do anyway so the VSTs might have to wait. I’d not had any complaints yet anyway.

Time will tell if upgrading to Windows 8 was folly for audio and coding work. So far it’s looking pretty positive.

The joys of coding…

I spent the whole day looking for an error that caused intermittent compatibility problems with Sonar X1 Producer and, even though it’s now fixed, I’m still not really sure what was causing the problem… It seemed to be something about how the plugin was reporting its name to the host. The weird thing is that the error in Sonar was related to “receiveVstTimeInfo” and I didn’t end up changing that dealt with the time information.

Anyway, live and learn… or, live and do without learning…

So now that I’ve done the alpha version of the encoder it’s probably time I should tackle the decoder. There are already changes I want to make to the encoder but I’m going to wait and see what other feedback so I can make all the changes at once.

I’m not looking forward to the decoder because I’ll probably have to scrap my previous version and start again from scratch. It’s hard to know how to structure it, what features to include and what to leave out. I’ll probably spend a while thinking about it before I just into it.

As always, suggestions are welcome!