SirSickSik Contributions


#643

working on a new polyphonic midi recorder as the one I was working on was a bit problematic and I started out the wrong way saving the data (making it impossible to change the size of the array without losing data, even if the amount of data would fit in the smaller array).
Also, the new way should make it possible to save ANY normal midi-data polyphonically (exept sysex) at any rate and any "count-length" :stuck_out_tongue:
Hopefully I get it working at the end of the afternoon :slight_smile:


#644

Sounds very cool, SirSickSik!

I was about to ask if there was an object to record and play-back unquantized MIDI, but it sounds as if you're already onto it!


#645

NEW MODULE

OSC

"blepped"
for anti-alliased oscillator enthousiasts, I've created a single oscillator for all the blep-function waveforms (factory oscillators) together with the tables that are made with the "waveformGenerator" module (the last couple of modules in my sss/osc/ list)
still working on it, but should be able to be used already
...
..
AND it's finished....
oscillator can now also be used polyphonically where the poly-index is able to select between different waveforms.

ps, the way I'm building it should allow easy editing of the codes, using the different waveforms by just adressing to the right waveform name:

sync=param_sync;
int32_t preset=param_wave>=5?param_wave-5:0;
preset=(preset-preset/attr_table.Waveforms*attr_table.Waveforms)<<attr_table.LENGTHPOW;
int wave=param_wave>5?5:param_wave;

for(i=0;i<BUFSIZE;i++){
in[i]=inlet_mod[i];
}
if(wave==0){SIN(inlet_pitch+param_pitch,param_mod,param_self);}
if(wave==1){TRI(inlet_pitch+param_pitch,param_mod,param_self);}
if(wave==2){SAW(inlet_pitch+param_pitch,param_mod,param_self,1);}
if(wave==3){SAW(inlet_pitch+param_pitch,param_mod,param_self,-1);}
if(wave==4){SQR(inlet_pitch+param_pitch,param_mod,param_self);}
if(wave==5){TAB(inlet_pitch+param_pitch,param_mod,param_self,preset);}
for(i=0;i<BUFSIZE;i++){
outlet_wave[i]=out[i];

just woke up and realised I could also build in a karplus-strong synthesis inside the oscillator, using the internal table, which is already included. anyway :stuck_out_tongue: It just happens to be I just created a karplus strong that needed the same amount of controls :stuck_out_tongue:
ehh, holy shit, it even asks less cpu then the blepped-oscillator modes, sweet!


#646

I've uploaded a subpatch (sss/synth/AAsynth) that shows how to use the module

this is a demo patch using that subpatch:
blepped.axp (22.7 KB)


#647

quite an important NEW MODULE/MODULE UPDATE

HARMONY

I've updated the "scaleGenerator" and "scalebank2" modules, so next to the 46 scales, it now also creates 137 (!!) different temperaments used by lots of different composers, given offset-cents for the note-information (the normal fractional data you're using to control the pitch).

The NEW MODULE is the "137temperaments" to be able to use this saved temperament-data. Next to this it has an "octave-stretch" inlet to be able to stretch/narrow octaves. This doesn't influence the ratio's within an octave, but stretches each octave relative to the former octave.

So to use this: (you need a SDcard!!!!!)
1. first add the "scaleGenerator" module to your project and press play (this will save the scale and temperament data to your SDcard), after play, you can remove this module again and never use it again as the data is saved to your SDcard. (unless a new update comes around)
2. add the "scaleBank2" module, this will load the saved scale/temperament data from SDcard.
3. add the "46scales" and "137temperaments" modules and connect the output of the "46scales" to the input of the "137temperaments" module. Then connect the output of the latter to your oscillator.

the 46scale module will first decide which notes may actually be played and which not, after this, the 137temperaments module will add an offset to each of the played notes.


#648

Ha, this I am going to try out, sounds cool :slight_smile:


#649

it can have some pretty drastic effect on how each of the scales sound.
For documentation about which temperament is which, you can check the scaleGenerator module as it also contains the names of the temperaments. Though I now figure it might be helpful to add the numbers to the names haha wait a sec.. :wink:


#650

I have made my "own" version of the scale object, so I hope I can adapt it to that. The temperaments, are they fixed for each scale, I mean is each temperaments for a specific scale?


#651

I got the temperament tables from the internet, from another site then I got the scales from, so they're not one-on-one.
But the way I see it, this should not be a problem per-sé as it's like tuning by key. Each of the scales has it's strengths and weaknesses when it comes to ratio's between different majors/minors/fifths/etc and the same will count for the temperaments. So it's up to the user to listen by ear what he likes most, depending on it's key and notes being used. Some of the temperaments are able to make scales sound very beautiful and heavenly, but others will pull them down into hell.


#652

http://www.instrument-tuner.com/temperaments.html
so as you can see, some temperaments are actually for certain keys/scales, but not all of them and personally I think it's up to you to transpose temperaments if you like the sound better.. it's mostly subjective, though some temperaments are quite drastic, which might make them hard to be liked with any scale..


#653

also, have you added the names of the scales to your module? as I've forgotten to do that back then... and I can't find back the source.. If you got more scales anyways AND have added the names I would like to copy that into my scales module too..


#654

though it would be nice to have an integer-control the same way as the combo-attribute, so you could add names to the selector..


#655

NO NO NO NO NO NO NO NO, wtf....
I have just saved the scaleGenerator with the extra code, synced libraries and now the code is gonne :scream:

pfieuw... luckily the data was still in the saved file :cold_sweat:


#656

In reaktor there is the list object. You first set how many entries you want and then you can add text to each entry, like this:

This would be super awesome... And also an updated version of the ctrl/i that works with midi cc.


#657

for reasons explained elsewhere, the midiCC for the ctrl/i wasn't possible.

but what you can also do is:
take a normal fractional knob called "selector" and two integer selectors called "min" and "max" and add an integer output called "out".
int32_t range=param_max-param_min+(param_max>0?1:-1);
outlet_out=___SMMUL(param _ selector<<3,range<<2)+param _ min;

(remove the spaces between param _ selector and param _ min, as this text editor screws up the code otherwise, )
the knob will now output the values between the set minimum/maximum values and is midi-controllable.


#658

Yes I know the reason. It has to be done in firmware, not in object itself. ANd there are worries about scaling etc.. Well, I still think that having an extra version of the ctrl/i that can be assigned to midi cc would be super awesome. And I think it is one of the most requested features in here. Many people have requested this. It is a really simple object, so maintainance should be the biggest issue. But imo this is really a missing link in Axoloti.

We will see what the future brings.....

WIll definatly try your suggestion out... Maybe can come of with something cool that can be used.

But I thik it could be made in other ways to. I though about filling a table with 0-127. ANd the use the paramexchange trick to control the ctrl/i with the numbers from the table. You can sue anything to control to the table, so that opens up for using any control input to control the ctrl/i.... Hmmm have thought about this a few times now.. Going to try it and see if it is actually plausible to do


#659

ehhh what?!? I'm trying to update the harmony modules, but after syncing they just return to their former state.. I've resaved the modules twice this morning and the new code still got lost again..

well, just saved them under new version names now.. let's see what happens..


#660

NEW MODULE

DELAY

"Flooper"
Friendly 4 channel looper module with seperate ins/outs/triggers/looptime
BPM-syncable with global overdub mode.


#661

Great name! Coincidences apart, just got back my AKAI Head Rush E2... delays and looping; de-looper :wink:


#662

a bit of help needed overhere..
Over the last weeks I've been updating a couple of modules as they had some mistakes by them, but it seems my contributors prefix had been reset, causing the sync-libraries to overwrite my fixes of the old codes and not upload any new ones... If you find a module which isn't behaving like it should, please notice me.. I can't remember all of the modules I've been trying to fix..