Here we are once again speaking about midi files and how to use them in flash through actionscript. In my previous article "from fruityloops to actionscript" where I am explaining deeply my approach of loading midi files and play them with a certain predefined samples set, I did mention that dealing with acoustics instruments could be a waste of time due to the complexity of waveforms and how we link them making transitions smoothly. What I meant is that all samples of an acoustic instrument recording rely each other and they have to be played in the same sequence order otherwise it sounds just broken. Well, that's true but it is not too bad at all and there are some things we can do with it.

Recording elements

One of the tricky parts of this was cutting the recordings in tiny small samples, so I can have control on them and manipulate important things like time (tempo) and audio pitch completely separated, and even more interesting, doing it per channel.

All it comes during the new years eve, I actually got an idea (among some whiskeys) of making a very simple equation that could give me a hand for positioning the tiny samples in the fruity loops time line (or any audio software time line) and then I allocate a midi channel for each instrument... It took me a while, it was completely a manual procedure (monkey job) but at the end it wasn't that bad, I didn't spend more than 2 hours on that. I actually made an excel file using the equation per every single sample (per instrument) and then I went through the whole fruity loops time line placing all the samples that excel told me, in the right position and assigning channels. Does it sounds complicated? nah! guys, it is actually very simple.

Here is the equation I used for generating the samples positioning once I cut the recordings: 
SQR = 96 //sequencer resolution, ticks per square note
BT = ?? //how many beats (square notes) the whole recoding uses
TT = BT x SQR //total amount of ticks used in the sequencer for the whole recording
TS = ?? //total samples used in the whole recording based on 44100 per second
SPW = ?? //amount of samples per unique waveform
waveform_position = round(((SPW / TS) x TT ) mod SQR)

You can find out more on this excel file as an example, that was the one I used for generating the cavaquinho recording. Don't forget, each sequencer uses different kind of resolutions, in fruity loops you can adjust it by clicking in options > project general settings > Timebase (PPQ). I use it in 96, it is good enough for doing whatever you want.

fruityloops tempo settings

The Brazilian "Pagodinho" test 300KB

Guys, I love everything about music, plus I'm a very curious person, so every time I hear something that takes my attention I won't rest till learn and discover it all. I have been involved with music since I am 7 or 8 years old, unfortunately I never took the music to a professional level and make a living of it, I don't consider myself a musician but I am always looking forward and learning new things about it, music is the biggest hobby I have. I would like to say that one of the best challenges I got so far while playing around with music was... learning Brazilian Samba (Pagode), it is very interesting, it is complex, at the same time simple, it is elegant, it has a very unique character. I got the chance of living in Brazil for about 3 years, part of it was in Rio de Janeiro, where I met a crazy 3D designer who taught me how to play some Brazilian percussion instruments and together we used to play within a band in a crazy city towards Rio called "São Gonçalo", holly moments, amazing memories.

I have chosen record a Brazilian tune for this article for 2 main reasons, the first one is because of it is bloody tricky to handle all the percussion and acoustic recordings (probably the hardest rhythm ever, Samba) which it was a very good challenge, and the second reason is because of I am so happy that I am going to be soon on very long holidays in Brazil (I will stay longer than 2 months) and also I am going to be in Flash Camp Brasil 2011 which made it feel inspirited, Huuuuhuuuu galera, já to com a passagem comprada e com as malas prontas... to com muita vontade de conhecer o pessoal que mexe na plataforma flash aí no brasil, acho que vai ser bastante interesante, quem sabe agente poderia trabalhar junto no futuro, valeu! até...

Dude! put your headphones on a have a go with it, let me know what you think!

yeap, as usual, here is the source code (including all waveforms files separated)


Alex Nino -