Chipsynth update

Community Forums/Showcase/Chipsynth update

AdamStrange(Posted March) [#1]
Been doing some major work adding sample loading to the chipsynth.
Here's the results:

This one shows loading of a stereo sample with the left channel only having sound. you can see the display shows this


and here with a mono sample loaded

the envelope hold now has the added ability to hold a note indefinitely. so Loaded samples need a switch to make the loop or not loop (shown below the sample loading.


Although never designed to deal with samples, it does very well with full envelope control, panning (mono samples only), etc.
Also of note is the chip FX also works brilliantly on samples giving some completely mad effects I didn't plan for.

The tracker portion is now being tinkered with to make sure everything is fully supported there too.

Lastly, I will need to write a sample editor to complement all this. luckily I have all the code form Wave2 to do all the really nice stuff...


daaan(Posted April) [#2]
Duuuuude, this is awesome.


AdamStrange(Posted April) [#3]
thanks - still a work in progress, but working great


Rick Nasher(Posted April) [#4]
Niceee! BlitzTracker here we go!
Demo vid?


AdamStrange(Posted April) [#5]
the tracker is fully operational:


no videos, but here are a couple of old sound tests:
https://soundcloud.com/mavryck-james/8bit-chiptune-test

https://soundcloud.com/mavryck-james/8bit-chiptune-test


Rick Nasher(Posted April) [#6]
Cool, very nostalgic! :-)


Hardcoal(Posted April) [#7]
Hi Adam im into music.. I always wanted my own app..
Can i give you ideas, advices?
Tnx :)


AdamStrange(Posted April) [#8]
mmm, interesting subject

ok. In blitzmax I rewrote the entire audio subsystem.

The above is actually monkey2, but uses some interesting concepts from traditional synthesis:

1. sound is just a single looped waveform. sin, square, etc. this is very simple to set up. You can then modify it to make it more custom.

So, we now have a looped playing waveform (Sound if you will). this can be played by a channel.

Now. the first thing we are not going to be able to do is any realtime modelling or changes to the waveform (filter, etc), these need direct access to the sound buffers and get complex quickly.

So... we are going to do the next best thing:
set up a timer to tick 120 times per second

We have control over pan, volume and pitch. so you basically change each of these every tick for every channel playing.

So....

You now need to make a class that will 'know' what channel is playing, what sound is playing, what is the time from when the sound started playing.
Using the time you can work out ADSR, LFO, and pitch control.

It then come down to how you want to do it all.

Most (even basic) system from 7-8 years ago can handle this without much problems...