Umz tzz Buzz tzz Umz tzz Buzz

Finally I found some time to start another dream project of mine. Remember 1984 where Roland released the TR-909 drum machine? Well, probably not, but I remember 1988, where the first tapes (remember, do ya?) from Detroit and Chicago arrived with some ass kicking beats. Truly, a lot of house and techno tracks to date are based on the sound of Rolands TR909.

More than 20 years later it is time to start X0X-emulation in flash. I just finished my first approach and too proud – I figured out the design on myself. The instruments from the emulation are all sample based. But the bassdrum and snaredrum have a special role. They are based on a very short waveform to provide the pitch envelope the original has. The snare drum noise is created by a noise algorithm I found somewhere and is modified by a highpass-filter. Actually to bring it more close to the original I need the original TR909 to analyse the sounds. My model was Rebirth and I think it sounds already different than the original.

Live should be enhanced in future. I would like to add a SH-101, MC-202 or a TB-303, also produced by Roland even earlier than the TR909. And of course, this could be an endless game with recording parameter modulation and so on. But we are still developing Splicemusic, where I hope to embed the emulation as a plugin.

You should read the instruction. There are some hints using the shift-key in certain situation and how the memory works. Though I know, the pixel font is hard to read. Not much text anyway.

Wait I forgot something important to say… It is great!!! I love it! ;)

update: digg it!

go

38 thoughts on “Umz tzz Buzz tzz Umz tzz Buzz”

  1. It’s really cool, great work !

    If you think to make some changes on it, why not make it larger ? I am using it with native Flash player zoom on it, experience is quite better. Support for copy/paste of a pattern to another would be great too :)

  2. love it.. im using drumazon in Live .. now to wrap it up in an AU.. or get it to send midi out

  3. >Support for copy/paste’ is implemented.
    >Just Drag&Drop your pattern.
    Allright, it works well. :) Was the 909 hardware trick was to maintain the two buttons down to do the same?

  4. Awesome work, as always! (Though I’d prefer the 808 :)
    btw. the run-led only moves when I turn on the speed dial, otherwise it just sits still. Is that a bug?

  5. sascha: This is weird and shouldn’t happen. Actually the LED animation is another hack to syncronize them to the current playback (Computation of the samples and playback are asyncron). Which system are you running? If you like, you can email me in private am at andre minus michelle dot com. Thanks.

  6. Klingt ziemlich authentisch ,

    vorallem – wie sein in Hardware gegossenes Original
    – es macht süchtig nach Schrauben ! :)

    die Krönung währe noch eine .wav export funktion ?

  7. Andre, today I’ve tested it again and the led seems to run like it should. But … the playback is _very_ stuttering. This is strange because the movie only takes around 20% CPU time. I’m running it on a Dualcore 3GHz, 2GB RAM, Win Vista, Firefox 2.0.0.3 and Flash PlugIn 9.0.45. The only crappy thing on my system is currently the soundchip as there is still no Vista driver for the M-Audio card. This however doesn’t explain the stuttering because otherwise the sound is ok.
    Btw The preloader seems not to work on IE7, The screen stays black there. Hth, Sascha.

  8. @ Sascha,

    i am using M-Audio Firewire 410 in conjunction with
    Windows Xp and havent experienced any stutterings running the X0X – there are no problems with xp here

  9. I love watching your progress as you push the forefront of sound with in flash.

    About those early house tapes from Detroit and Chicago, what tape are you talking about, i love to know the titles so i could try and find them?

    Also Andre have you been to Ishkur’s Guide to Electronic Muisc, It’s almost a college cousre of material and song samples.
    http://www.di.fm/edmguide/edmguide.html

  10. he andre, very nice! at some point, i cannot trigger the red led anymore (full punch)… only the yellows continue to work (half punch). is this a bug or a feature?

    cheers!
    ram

  11. aaah! sorry, my mistake! of course no bug! :)

    thx
    ram.

    ps: i am having a party right now! bounce, bounce!

  12. hey André, let it run on desktop please!! on Safari every 2 or 3 loops it starts to sutter a little :(

  13. @Freddy: I think an Apollo version would be better. But I don’t know, when I will have some time for.

    Cause actually, I am rather looking forward to get a girl-friend for the 909. I found some hours yesterday to build a prototype. Since all parameters are controlled by code yet, I rendered out a preview as a Mp3. All 303 typical controls as Cutoff, Resonance, Envelope-Modulation, Decay and Accent are implemented and it runs already in sync with the 909.

    preview

  14. OMFG – i owned a 909 for 10 years. The Dudes in the studio here now cant believe how close you came to the real thing. They wont stop playing with it.

  15. hello
    congrats on your amazing experiments

    i have a tr 606 (sorry no 808 or 909) and tb 303 available for sampling if you wish ;)

    in the meanwhile i have been conducting my own experiments with as3 and although they are not generating sound related they have todo with expanding sound capabilities, maybe you can point a solution :)

    so here is my issue:

    i have loaded a mp3 file data in a custom class item
    but as i cannot get it to play as it is not a Sound class element…
    neither can i load it into a Sound instance as the Sound class does not have a loadBytes method, only the load one that expects a URLRequest

    i suppose nowadays pretty much is possible with as3, after seeing all kind of parsers, and expecially your tapping into the flash sound engine

    i have tried a couple of possible solutions with no success:
    i tried to cast my item as Sound trying the old __proto__, the new as3 casting methods, ApplicationDomain.getDefinition …, but got all sort of of coercion errors , etc…

    the other solution was to try to implement a custom sound class with a loadBytes method like the Loader class has, but i could not get a way for this to work by trying to get it from a Loader instance, neither could i found the loadBytes method code anywhere on the net, probably adobe does not disclose all the as3 trickery that easily…

    so i am still left with an element that has the mp3 data loaded but cannot do anything with it…

    how do you think this can be done ?
    is it even possible ?

    at this time this does not seem so hi tech or farfetched that is impossible to do… expecially seeing the amazing stuff some people are doing with as3

    once again thanks alot !

    nonnus

  16. Amazing!!! Is there a link to the SWF file so it can be embedded or linked to on MySpace pages? I would love to have it there on my page (with a link to yours of course) so visitors could play with it.

  17. Andre this is amazing. Thank you! any plans for making it VST?… would much rather use this than Drumazon…
    But keep up the excellent work!!! Nuff Respect.

  18. Andre,

    This is the same Matt who posted in the “Playback MP3-Loop (gapless)” topic. I run an “official” fan website for the dance group Underworld and I am currently developing a Flash application whereby fans can remix Underworld tracks (as the band does live). It is completely voluntary and I am not paid anything!

    What I want to do is incorporate the FL 909 with this 10-channel mp3 mixer I have been working on:
    http://www.darktrain.jp/dtm_2.php

    I just had a couple of questions.

    1) Is there any way to synch up the 909 with a looping mp3 player? What I mean is what should I do to set up a master clock? It seems to me that this would be better placed in the “mixer” rather than the FL 909 since the mixer is absolutely precise (44,100 samples/second and I know the precise BPM for each track)!

    2) Is it easy to port the FL 909 over to the new Flash 10 sound API? If so, I will attempt it! I have figured out how the data is serialized in preparation for passing it off to the sound card, however, I can`t seem to find the class where/how the data is actually passed to the sound card!

    Thanks you so much!

    Matt

Comments are closed.