RSS feed

A bunch of research

Posted by Stefano at 20/09/2022, 16:11:45 UTC.

This year's DAFx conference, in which we have presented two new scientific papers, is now just behind us and we're now announcing our participation to the upcoming CIM and ADC conferences.

So, what are we doing at conferences?

Read more

Conditionals in Ciaramella

Posted by Stefano at 06/08/2022, 11:03:41 UTC.

Ciaramella is not the first declarative dataflow language around. Remarkable members of this category of languages, at least to some degree, include FAUST, Lustre, Kronos, Reaktor Core, and Max's Gen.

Last time I discussed why we were unsatisfied with them and had to invent our own. Essentially, to me they don't really seem to be designed for actual development of music tech products (Lustre being innocent here, as it is openly not designed for that). Plus, I am somewhat irritated by their strong coupling between syntax and complier internals which cripples modularity (details in this paper, and I have to admit we might have mistreated Reaktor Core somewhat, but it's still practically unusable for other reasons IMO).

Another aspect in which these languages are lacking or needlessly complicated is branching/conditional execution (vulgarly, "if"s, "switch"es, etc.). There are valid technical and historical reasons for this, but I believe it's time to get past them. In this post I'll tell you what we're doing about it in Ciaramella.

Read more

An A-SID trip, part 4

Posted by Stefano at 15/07/2022, 10:25:55 UTC.

After all it's however 2022 and musicians/producers want the affordability and ease of use of today's technology, understandably. Here's how we modeled the MOS 8580 SID chip and "ported" everything to the modern world.

Read more

An A-SID trip, part 3

Posted by Stefano at 12/07/2022, 16:01:13 UTC.

This time I'll tell you about the hoops through which I've been going to run the program on real hardware.

Spoiler: it was an expensive nightmare leading to a huge final reward.

Read more

An A-SID trip, part 2

Posted by Stefano at 08/07/2022, 15:45:08 UTC.

Getting the design to actually work was easier said than done, to put it mildly. This second part of the story is about the implementation details.

Read more

An A-SID trip, part 1

Posted by Stefano at 04/07/2022, 14:19:01 UTC.

I've been playing with the C64 ever since I have memory. I probably even learnt to read and write on it. Yet I haven't asked myself how it generated sound until a few years ago, when I accidentally stumbled upon the MIDIbox SID. Since I do the work that I do, I looked around for information on the SID chip as well as on classic game music composers (such as the genius named Tim Follin) and modern chiptune music acts (YMCK are amazing). As I found out that:

  • the SID chip contains a digitally-controlled resonant analog filter which can take analog audio as input;
  • analog audio input and output are actually accessible through the A/V port on the back of the C64;
  • people went as far as decapping the chip and taking die shots using light microscopes at micrometer resolution, and then reverse engineering the schematics from such pics;

I knew that one day or another I had to do something about it. And here we are now. Let me tell you about the long journey towards the creation of A-SID and its release on 2022-06-04. (should we call it C64 day now?)

Read more

Ciaramella, a declarative audio programming language

Posted by Stefano at 27/05/2022, 14:04:12 UTC.

Domain-specific languages (DSLs) are ubiquitous in computer science and engineering today. You can find one or more successful examples in most engineering subfields, e.g., MATLAB for numerical computing, R for statistics, Mathematica and Maxima for symbolic computation, VHDL and Verilog for hardware description, SQL for querying relational databases, HTML and CSS for web hypertext and layout… and the list goes on and on.

When it comes to audio programming languages there’s no shortage of proposals either, yet in my experience none is taken seriously enough in the music tech industry to be used in actual products or even for prototyping (perhaps I might be partly wrong, but this is what I’ve witnessed so far). The academia also seems to largely ignore them, with the exception of the people directly involved in their development and a few enthusiasts. In pratice, it seems to me that prototypes are actually developed in Matlab and Python, while production code is mostly written in C/C++.

While I don’t necessarily believe that experts tend to choose their tools wisely, I think I can easily see why these tools are failing at being useful enough to get adopted for their intended purpose, and I also think we can do better. That is why we funded a doctoral position last year to research and develop Ciaramella, a new audio programming language that can actually be used.

Read more

A music technology blog

Posted by Stefano at 25/05/2022, 13:46:38 UTC.

Hello and welcome!

This is Stefano writing, the founder and CEO of Orastron. I've been working with some of the top music tech companies wordlwide for about 7 years now, and have been doing DSP programming for more than a decade at least — if you care about the details, you can check my personal website (which would need some updates as of today…)

I decided to start this blog to share news, stories, tips, and tricks, but also, and perhaps more importantly, to fuel some discussion with and between end users, industry, academia, and enthusiasts about anything music and/or tech.

Read more