Update your bookmarks! This blog is now hosted on http://xoofx.com/blog

Thursday, December 24, 2009

Dynamic audio synthesis with Silverlight 3

While WebGL is going to be something really cool for some online demomaking (although i would be happy to have an equivalent under Silverlight), it seems that audio is going to be a bit more limited.
Few months ago, Iwas very excited about a new feature in Silverlight 3.0 : dynamic raw audio access. That was something I was asking (with others) to the XNA team, but they sadly rejected totally such a feature request. Hopefully, Silverlight was more listening to its community and they brought this feature. Notice that this is the first time we have such an access under .NET. You don't have this under the normal .NET Framework, what a shame!
At that time, the dynamic raw audio access in the Silverlight beta had a bad latency... but they solved this issue and believe it or not, it's working GREAT.

It's now possible to achieve a latency as low as 20 to 30ms, although that might not be sufficient for a professional audio system, that's already really cool to have it on a browser.

I did a very small experiment with just a plain cosinus to output some dynamic sound and the result is quite cool, under 7ko in xap archive (push the button and move the slider)

You can download the Visual Studio C# Project here.

Friday, December 11, 2009

RMasm, a new generation of macro assembler

I have not updated this website for a while... that's because I was actively working on a new exciting project called RMasm!

What is RMasm? It's a new generation of macro assembler, using the Ruby language as its main "macro" language and supports, in the beginning, the x86 assembler syntax. You may ask "Why developing another assembler while there are plenty of them around? (look at Nasm, Fasm, Masm, HLA...)". Well, while I was coding the new softsynth for FRequency in assembler (project that is temporally suspended because of RMasm, oops, sorry ulrick for the delay!), I found current assemblers to be very limited by their macro language. Although I was using Masm that is recognized to have a "strong" macro language, I found this language very ugly, not really powerful, syntax hard to learn and in definitive, quite limited.

So i started to think about a new kind of assembler...