November 17th, 2011
Over the last months I was watching myself surfing to my own blog hoping that I have written something new. I have not. The last months were filled with a lot of work in serving new technologies. Joa did quite a job on moving Audiotool to various platforms and there was not much time for new experiments or research. Besides providing general information and conference dates - talking about new stuff was the actual reason for this blog. However moving to new technologies means rewriting existing code to other languages. I could talk about the current situation as a developer. It might not be the easiest time, but even it was easy to target the only reasonable platform Flash in the past, the new options and possibilities are very promising.
To make it short: I'll be back - probably in a different format than a blog.
Thanks for reading since 2005!
March 23rd, 2011
Nur noch wenige Tage bis zur Flashforum Konferenz in Köln. Es gibt auch noch einige freie Plätze in meinem deutschsprachigen Workshop Audio Code Clash. Ausserdem sponsert Audiotool wieder eine erstklassige Party in neuer Location. Lasst euch das nicht entgehen. Ich freue mich drauf.
March 22nd, 2011
Just a couple of days left to the excitement of the year. John Davey, well known as organizer of Flash on the beach has setup Geeky By Nature in New York and I am happy to present my latest stuff as well as Audiotool 2.0.
If you do not have a ticket yet - you should run.
March 10th, 2011
I have uploaded a very rough demo of sound-sheets in Tonfall. The idea is to bring real instruments to Tonfall by using samples remaining a reasonable file size.
Usually you might think a single pitched sample can do the job, however pitching a sample one octave already means doubling the speed. It would sound very unnatural.
I decided to take 11 samples with a difference of 6 halftones (covering ~5 octaves). Hence the maximal speed difference (when the note is inside the provided range) is 25%. There is still space for improvements. The duration of each sample is fixed and needs to be small to respect the file-size. By looping a proper range of the samples after a certain attack duration, enough to maintain the characteristic of the instrument, it should reduce file-size again and sound better. However this will then implemented into Audiotool.
Listen to the piano.mp3 to get an idea how it works.
February 11th, 2011
February 10th, 2011
Before I started programming in 1998, I was completely into electronic dance music (formerly called Techno). I produced hours of tracks stored on digital audio tapes. Few weeks ago I bought a DAT-Player on ebay and now I am traveling back into the years 1995-1997. Most productions are just crap. Two tracks caught my attention though, since they were on an unlabeled DAT. I guess they must be from 1997. At least they sound like that time. Still like them, so I uploaded them on SoundCloud.
February 8th, 2011
FITC Amsterdam 2011 is just around the corner!
I am happy to announce another Audio Code Clash Workshop, where I am teaching to work with Tonfall, an open-source library to create all kind of music and sound creations. Furthermore I will talk about sound creation and music in Flash in my session Pulsatile Crackle. Do not miss it. I won't! See you in Amsterdam.
December 14th, 2010
The Steiner chain is a set of circles inside an outer circle, where all circles are touching their neighbor in a single point. Naturally the first version within Flash is already made by Mario Klingemann in 2002 to create some nice artwork. He also has a AS3 version in his libs.
My version is rather optimized for runtime purpose, does not create objects in runtime.
Press UP/DOWN to add/remove circles to the steiner chain.
Press RIGHT/LEFT to adjust the rotation speed.
Ensure keyboard focus (Click once in the Flash movie)
December 12th, 2010
December 10th, 2010
November 14th, 2010
Decoding a WAV results in the flash.media.Sound data format 44.1Khz,Stereo,32bit (float).
You can play it with the dynamic Sound API. Encoding can be done by simply passing the data you created in SAMPLE_DATA_EVENT to the encoder after specifying the target wav-format. You have to finalize the encoder after writing. Both processes are on the fly - processing block by block. They do not have to be processed in a single Flashplayer frame time.
Read the rest of this entry »
October 28th, 2010
After having Tonfall released, I think it might be a good idea to go a bit deeper into some audio-dsp subjects. The easiest way to create a sound is by creating a wave out of an algorithm. You usually take a normalized variable between zero and one as the phase and pass it to a function. The phase itself must be incremented every sample by the following expression.
phase += frequency / samplingRate;
phase -= int( phase ); // [0,1]
amplitude = waveshaper( phase ); // [-1,+1]
Read the rest of this entry »
October 19th, 2010
I am not sure, if this makes any sense at all, but if you ever need to draw antialiased circles in Pixelbender, here is a quite simple solution. I had the idea after watching Mario Klingemanns and Ralph Hauwerts sessions at Flash on the Beach. They were talking about the bad idea of using conditions like if/else in Pixelbender shaders. So this solution runs without any branches and makes just use of built-in functions min/max.
Read the rest of this entry »
October 12th, 2010
Tonfall is not meant to be a fully implemented audio engine but you may learn a lot about signal processing and sequencing in common. It covers most questions I am receiving by email and is not that far away from the audio engine we use in Audiotool.
- Holding a list of processors and time information
- SignalProcessor for audio generation taking TimeEvents (like notes) into account
- Design Pattern to process polyphonic audio generation (e.g. synthesizer)
- Static Delay as a template for other effects
- Note to frequency mapping
- WavFile Encoder
- Samples of the Casio RZ1 drumcomputer
- AmenBreak sample
- Super Mario playing Sequencer
- Fully launchable Metronome (Hello World of Audio DSP)
- Simple implementation of ToneMatrix
July 16th, 2010
June 28th, 2010
This years amazing Flashbelt 2010 has just ended and the next great conference is appearing at the horizon. FITC 2010 is landing in San Francisco in August and according to its schedule it will be an outstanding one. I am personally looking forward to meet Yugo Nakamura in person, the guy that makes me actually starting with Flash more than 10 years ago.
My session this time is called Pulsatile Crackle and will combine audio synthesis with physic simulations. And of course I give you a quick overview of what our cute baby Audiotool is already capable of. Never forget: Audio is the next big thing in Flash
Early bird price for this event ends Friday July 2nd, so get your tickets NOW. and use the code 'andre-michelle' for an extra 10% off!
May 9th, 2010
One of my favorite conferences is just 5 weeks away and I am already excited to travel to Minneapolis for the fourth time. Dave Schroeder is always a very caring host, which makes Flashbelt a very social and special conference. I especially look forward to the parties where I suppose Keston Westdal to make live - music at one evening. They are amazing!
If you don't have your ticket yet and are able to take a trip to Minneapolis, do not hesitate!
May 3rd, 2010
This will be some conference and I will also have my session Pulsatile Crackle!
I am really excited about all this. If you don't have tickets yet, go sack them quickly. I am pretty sure, that they are leaving John's hands right away.
Also, John was asking me how I find myself being Marilynized.
Ah! That's it! Marilynized! Hell yes, I like that ;) That's what makes FOTB so special, right?
April 20th, 2010
Workshop Audio Code Clash
I am sure, attendees will learn a lot more than I can usually cover in my sessions.
Besides the workshop, I will show some pretty nice stuff on audio and physics called "Pulsatile Crackle".
See you at Flash on the beach.
April 9th, 2010
This is one of the most frequently asked question in my inbox.
Is it possible to loop MP3 without gaps?
Yes, but to answer the question I like to explain, why gap-less MP3 looping was actually not possible before Flash10 (Except for Flash-IDE encoded MP3 or ugly hacks). Read the rest of this entry »
March 24th, 2010
March 22nd, 2010
But listen: In Audiotool 1.0 (Public on Thursday!) you can also control the Pulverisateur (our new synthesizer) with the simple user-interface from the ToneMatrix. It is fun!
February 4th, 2010
We are coming closer to the release. Still a long todo-list, but I see light. While developing the last months, I sometimes completely forgot, what we are actually building. This morning I decided to play around for half an hour to test the usability, sounding and performance. Despite the new complex features like the sequencer and zoom-able desktop the performance seems to be outstanding.
So here is D'n'B at 175bpm, composed with two audio loops (heavily spliced), 303, two instances of our new synthesizer that I love and some effect devices.
Estimated release date early march 2010.
January 2nd, 2010
Happy new year everybody!
This will be a big year for me and the Audiotool team. After a long time of research, refactoring, conception, politics, rethinking and building frameworks of any kind, we will finally launch V1.0. We also expect to update the application in a more frequent manner 2010 since we are safe on core technologies as far as the Flashplayer is capable of. Flash is indeed the most widespread browser plugin, but actually the worst choice for a music application. You decide soon - if we did the necessary magic. In any case I hope, that the project will be a success so Adobe feels the need to enhance the Sound API in Flash11 again (Vorbis, Latency, Midi,..).
Joa Ebert, Kai-Philipp Schöllmann, Alan Ross, Andre Stubbe, Philipp Granzin, Axel Philipsenburg and to all organizing forces beyond us. You guys are simply amazing!
I have never been so busy and occupied by a project in my coding life. I am sorry for all the unanswered emails and the lack of posts on my blog in 2009.
December 1st, 2009
August 8th, 2009
According to the posts from Joa Ebert and Nicolas Cannasse I put my personal opinion on stack. Starting with Flash4 I see the long run of Actionscript for 10 years. It became truly a serious language since then. Back at the time, where no type-safe programming was possible and Actionscript errors were caught silently by the virtual machine, it was a pain in the ass to debug and create bigger projects. I was used to that, so I never complained the situation. I had no experience in other languages which features would make me jealous. Everything I have ever wanted were new features, new possibilities to create graphics and deal with sound. So every new Flash version extended my tool kit and I spent a lot of fun-time with the new toys. The only thing that annoyed me was that Actionscript was the slowest language thinkable. That has changed 2005 with Actionscript 3.0, which I am very thankful for. Actionscript 3.0 came with some stunning new features like dealing with bytes on the lowest level, manipulating the display-list in runtime without destroying the DisplayObjects and the fastest language in the Flashplayer since then. And with Flash10, my dream of dynamic audio programming came true, after ringing the bell.
Read the rest of this entry »
July 2nd, 2009
Pitching MP3 (Not PitchShift!) is possible since Flash10s new Sound API. Today I saw Lee Brimelow's post about doing so, providing some source code. Cause we spend a lot of time to keep things running more smoothly in the AudioTool, I created another version which has some advantages.
- No objects are created in runtime (memory usage)
- The SampleDataEvent is receiving a static blocksize (steady latency)
- Linear interpolation (sound quality)
- Speed can go down to zero
June 16th, 2009
Coming back from two weeks of traveling through the states with my co-worker Alan Ross. Starting in Boston, we attended Flash on Tap, where I spoke about Digital Audio Signal Processing in Flash10. FOT was great and the beer-tastings were delightful. A lot of local breweries shown up to present their beers. Cheers! Looking forward for next year. Thanks to Chris, Rebecca and the rest of the team!
Read the rest of this entry »
May 13th, 2009
Catchy title, worth to consider. While working on the AudioTool, we are continuously searching for better workflows. Joa Ebert has written two plugins for Eclipse that helps us a lot to deal with such a huge project.
To make it clear: I don't love Eclipse. It is still a love-hate relationship and I am often fighting against its philosophy. So far, nothing comparable platform-independent in sight.
If your project consists of a bunch of SWCs, you often want to compile them first and your application afterward. Use MetaLaunch to launch several Eclipse launchers from a list.
PBDT - PixelBender Development Tool (free)
Adobe PixelBender Toolkit is not event worth to consider as a code editor, I am afraid. PBDT instead supports semantic highlightning and basic refactoring for your PixelBender shader source code. It even compiles your code in the background. This gives you a very nice workflow in developing shaders.
FDT - Flash Development Tool
Not to forget the sophisticated Actionscript development tool by powerflasher. People often think, you need to be an expert in Actionscript to get benefit from it and still prefer to use the Flash IDE. On the contrary, using FDT helps you learning AS3 with tons of useful features.
May 12th, 2009
Time flies! Yet two weeks and I am heading towards Boston to speak at Flash on tap.
Lucky me, Flashbelt in just one week ahead then. Thus I decided to stay in the states and try to find a way from Boston to Minneapolis with my colleague Alan Ross. It is more than 2.000 km, so I am pretty sure, there are a lot of things that we should visit on our way.
(Any suggestion where to rent a car for the trip?)
We are free for proposals. I am personally more interested in nature than visiting big American cities, but if you live nearby our route and offer food and accommodation we could hang around for some beers and chat.
May 1st, 2009
Endless Karplus Strong - Click to feed noise:
An enhanced version emulating a guitar can be found here.
It is basically the same code as above!
John Davey was able to make a very nice shot from Mario and me. Great conference indeed.
April 24th, 2009
Bothering about the Pixel Bender Toolkit? It is just a pain in the ass to work with an code editor that even does not provide simplest text selecting features as textEdit.
Joa Ebert developed a very nice Eclipse Plugin for Pixelbender coding, which also compiles Pixelbender code before compiling and launching your SWF. This saves a LOT of time. There is no need to open the Pixel Bender Toolkit at all.
Last thing I am waiting for is a command line compiler from Adobe to allow one and two channel inputs. That would be great for audio processing. I am pretty sure, Joa would implement the compiler in no time.
April 17th, 2009
Okay, we did it. The same simple ToneMatrix is now implemented in the Hobnox AudioTool. To be honest, I wish we had more time to add more features to it, but at least you can mix now the little cute toy with drumcomputers, the bassline and add a couple of effects. Furthermore, as a registered user of Hobnox you are able to record your session and upload it in the community.
Some new features besides:
- Better performance while scaling the desktop
- Autoconnect (Removing an effect device will connect the source and the target automatically
Alongside we have completely rewritten the audio engine form the scratch, which is not part of the update. This already allows us to add automation and modulation. The audio event system is running with its own garbage collection, pooling all events to reduce glitches from the real garbage collection.
Furthermore there is event postprocessing (Ever heard a super-mario midi file shuffling?). We are working hard to make 1.0 a serious application. I cannot wait to see, what you guys will do with all that new stuff.
Listen to what our team member Alan Ross did with it: