kyma•tweaky . Share . CAGAsyRelease1

Finally Release 1 of my amazing asy-code.

Just unzip the files and put these in an appropiate directory. Initialize the Capy with the "User Microsound Classes.asy" (This will only work on a Capy 320!). Open the "AsyRelease1.kym" soundfile, to see the new soundfiles from release 1. The LUT directory contains lookup tables and a waveform needed for these sounds.

Where to start?

Run "DemoCAGRelease1" for a simple demo of the sounds. Or just run this: DemoSongRel1.mp3.

Why did I make this?

Somehow I am interested in DSP. It was an ongoing wish for me to make my own sounds from scratch. I must say this wish is pretty strong (I do not now why), because I would rather program "C" or "C++". Writing assembler for the motorola really s....(pardon me) is not nice. In the Capy one has almost no debug capability and also the fixed number size is not fun to work with. With many hours spent reading the moto manual, moto docs from internet, a document from C&K and offcoarse looking at DSP code from Pete and David, I finally come to a point that I could write my own dsp sounds. When one masters this, one must also need to learn the nasty syntax of smalltalk. I still do not like it. Is there someone among you, who thinks he is very good at it? I still like some constructions solved in smalltalk.

What is in Release 1?

The following modules are included:

Module name Short description
WhiteNoise Mono Pseudo Random Noise
TPDFNoise Mono dither noise, triangular powerdistribution
WhiteNoiseStereo Stereo PRN
VCO1 Oscillator with audio input for frequency control
BitReduction? Mono Quantizer with lot of extra's (my first DSP sound)
BitReductionCheap? Stereo cheap Quantizer
Aliaser Stereo Downsampling (Sample&Hold) distortion effect
iiLowPass_1st_order Simple 1st order LP filter(s)
AddHardLimit This is an add function with smooth hardlimiting

I do need response!

I would like to get feedback! This can be negative, but I rather get positive.

Some selected feedback from users:

I find the help unsable... etc (CAG: Yes, I know the help is not that what you expect to get with ready to use programs. I will try to explain more above)

Known bugs/misunderstanding

None for now.

Wishlist for next releases

CAG: More VCO functionallity and MANY MORE FILTERS!

Volunteers wanted

Can someone make nice icons for my prototypes? Can someone check my english spelling? -- ChristiaanGelauff - 22 Sep 2005


Questions and Answeres

I find the help unsable (ex:"Lambda"; pick this one very carefully)(!) What does inputshift means in the addhardlimit module? That may be very clear for the programmer, you, but it's not so clear for me!! -- KarlMousseau - 05 Oct 2005

Oke, better negative response then none: I hoped you gave me an E-mail, so I would know you had a question. I can not check tweaky every day or week. -- ChristiaanGelauff - 08 Oct 2005


Hi Christiaan, Could you please give directions on how to use the BitReduction module? How to choose the values? Which values work best, and for which reason? I am interested in using it for 24 to 16 bits high-quality reduction. Like Cristian, I think this could be a great mastering element.

-- CamilleTroillard - 20 Apr 2007

How to use it: I should really dig into the code and articels out of the AES-journal again. I really need some time for this. If I have time left, I will make a first investigation to see if I can give you a quick intro into what I made in this sound. Describing it thoroughly is really time consuming: I could write a complete +/- 10 page document on this module alone! I do not have the time for this, sorry. How to choose parameters I can make clear in a more easy way, I hope. Which values work best depends always on your material, but general rules can be defined. When creating this module I aimed a bit for mastering purposes, but mostly just make my first meaningfull DSP microsound.

-- ChristiaanGelauff - 20 Apr 2007

I have studied my code again and made a drawing for myself of the internal flow in the assembler code. During the investigation of my prototype I realized there is a mistake in the InputAtt parameter. I have created a new prototype and have splitted this InputAtt parameter in two: InputAtt (= Constant input attenuation) and DitherGComp (= Dither gain compensation). With release 5 the old module will be replaced and a simple example with OscilloscopeDisplays is provided, I also consider making an electronic block diagram of the internal flow.

I also realized that the quantizer/BitReduction I have developed does not sound exactly as your final quantized pcm file will sound. To explain this, an example: say you are downscaling to 4 bits. With 4 bits one can have 2**4 = 64 levels in the signal. In most pcm audio files one considers the signal to be signed integers. This means the signal can have the absolute values -32,-31,...,-1,0,1,...,31. You see on the upper side there is one value/level less! We call this a non-symmetrical quantization. The BitReduction module however can place these 64 levels within the full 24 bit range, making it (almost) a symmetrical quantization. Even more illustrative: with a quantization to 1 bit only, the BitReduction module is allowed to output -2**23,0,2**23-1 (-1 is due to the 24 bit non-linearity). That is one value/level more then can be saved in a 1 bit pcm audio file. In mpeg audio files this is however possible! It could well be that for 16 bits (in case of creating a master for CD) this issue is not worth mentioning. Only a blind listing test could reveal if the effect is worth thinking about. I do believe that with special constructuced sound materials (test signals) one can reveal it. It will result in a sort of non-linear distortion. Setting the InputAtt = ((2**15)-1)/(2**15) could be a simple solution to make sure this distortion is at a minimum.

Making it stereo is not an issue I hope, one can just use one module for each channel. It is however advisable to set micro in the right channel to a different value (for example 3545447 i.s.o. 3545443). This will make the dither uncorrelated (I did a quick listening test with two TPDFNoise modules).

-- ChristiaanGelauff - 29 Apr 2007

Cool - thanks for going back to your code - looking forward to this unique dither.

-- CristianVogel - 03 May 2007

To have an idea what is going on inside this sound see the description on my webpage http://www.christiaangelauff.nl under Kyma->CAG Asy Release 1->ModuleTable->BitReduction. It is the description of the sound delivered with CAG Asy Release 5 (=Updated version).

-- ChristiaanGelauff - 08 May 2007

----- Revision r1.15 - 08 May 2007 - 18:38 GMT - ChristiaanGelauff
Copyright © 1999-2014 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding kyma•tweaky? Send feedback.