prob needed to hit sync first. just did
Module requests
unlike the weighted note generator , it would be amazing to have a weighted rndchorder..
Wich follows the note generator....
also a sine bank with presets would be very welcome
(inlet_preset is missing)
also good integrated vcas
I already got several like that..
though there are often computations for the harmonics instead of per-sine controls.
the "guitarTableOsc" can do this too if you set the amount of generated harmonics to a low value.
the new version has a save-option for the generated waveforms. Use the guitarAllocation module to save the tab in, this way the table won't be copied for each voice so you can have many voices in your synth.
next to this we got the spectralOsc, the 6xhrmMorp, hrmMorph and hrmOsc, which are all sine-additive oscillators, though with real-time calculations for each sine
MODULE UPDATE
MIDI
"polyA8Recorder"
changed the channel-select selector for a channel minimum and maximum (selectLow/High) selector, so you could record split-polyphony.
eg. you could record 4-voice polyphonic to channel 1,2,3 and 4 and use the other 4 channels monophonically for drums, bass and melody.
ps. for a polyphonic synth with lots of timbres, I'ld advice to use one of the low-CPU wavetable oscillators and using my monophonic table allocator->all voices will read from the same table instead of using their own (though the same table values).
pfieuw.... almost screwed up the module.. sorry for that ..but I luckily managed to rewrite a bit, still allowing the new channel-range control AND improve the midi handling.
also, I just removed the 4th mode of the poly setting (poly mode 4 should have been using polyindex to assign notes to certain channels, but it didn't seem to work at all..)
best to use the module is to put it into a monophonic patch and send the midi to synthesizer-subpatches set to polyphonic
that should indeed be possible very well.
maybe later this day, I'll give it a try, first gonna make a parametric biquad stereo&mid/side equaliser with lots of stages. just figured out how to do that maybe there's even gonna be a visualisation of the filter response
Ahh FInally an EQ.... I have made something with allpasse filter and badpass filters but it is not really that good comapred to how many ressources it uses.,.. Look forward to see what you come up with
I'm using the inbuild biquad filter, which should save up some memory I think.
I just turn bs and bc into arrays (eg. bs[5] and bc[5] to create 5 biquad filters).
so you first set the amount of stages with an attribute and then, while live, you set the internal parameters (which can be saved/loaded) for all stages one by one.
To reduce space, I only added the controls for a single stage and select the stage with an extra control (controls will be updated to thenew stage-settings when changing stage).
So the module almost looks like a simple biquad filter, but can actually hold lots of filters and "unlimited" presets.
At the moment I'm using 8 stages (1x lowshelf, 6x peak and 1x highshelf) in stereo (2 modules of 8 stages, so 16 filters in total) and it's using between 30% and 31%, a bit less then 2% per filter.
(for 16 stages->32 filters, it's using 56%)
As the module always saves its presets to the same prefix (0:/para"index".tab), you can easily set one of the sides (left/right), save the preset and load it into the filter of the other side.
Also added a stereo/mid-side switch that inverses the gain parameter of the module. So when you switch that on either one of the sides (just on one of the two modules), the 2 modules functions in mid-side mode.
@SirSickSik if you are up for a request I'd like to request something like this delay from GRM-tools:
I build something similar in G2, but I kept running out of memory, because of the huge amount of delay lines. Maybe you have an idea about how to make something more efficient in Axoloti?
well, first of all, with such a load of (quite long) delaylines, you're bound to use 16bit array's or even 8bit.. otherwise you just won't be able to generate the needed delaylength. If I'm right, at 16 bit you should be able to create a total of 92 seconds of delaytime.
Next to this you will need lots of "readers" for the array to create all the delay-taps.
To save cpu, you should use both multiple "writers" as well as "readers", like I did in the "repeater" module. By summing the incoming signal into the array together with the value at that position in the array, you can pre-make a set of delays, which would sound in the normal way if you'ld only use one readout. But by using multiple readouts, the amount of delays will be multiplied with the amount of readouts. So having 5 "writers" and 5 "readers" you'll have 25 taps. Note though, that the first "writer" should "overwrite" the array, while the other should sum to it.
To make it complex.. to have a specific response, the write and read times should be spread such, that in combination they create the desired delay-times
eg when writers are spreaded given 1 sec difference for each tap and the readers are given 0.25s difference per tap, each having 2 taps, the times will be:
1s
1.25s
2s
2.25s
anyways, I think it's kinda possible to make, but it will be very hard to intuitively set the timings right...
Hi all, can anybody could make a version of:
factory/wave/play
but with pitch control (if it has an inlet for it, better).
Basically what I want is a simple sample player with pitch control and a string inlet to select the sample. So adding pitch control to the above module will be perfect.
Thanks in advance.
Did you try the table/play pitch object?
For a simple sample player with pitch, its imo good enough
Besides that I actually already made a simple sample player called jaffa/sam/simsam1, with pitch and a build in adsr envelope
I was aware of this module, but didn't know that was possible to assign the sample that way.
Thank you!
You have to load the file into a table first. I think this is the simplest way to set that up:
for this to work it is important that you give the table/alloc 16b sdram load object a name. And then after given the name, write the exact name into the object reference. In this case "SAMPLE1".
In the help patch you use the table/load module that have the string inlet so I can change the sample dinamically, I think I would do it that way...
But I have a few concerns, as I'm short of recurses, if I turn off the envelope, will it consume extra DSP?
Also, as the samples have different lenghts, and I will use up to 8 at the same time, what size should I choose for the alloc module? I think that choosing a size as big as the biggest sample will be fine...
Yeah I also prefer that way, its much better, so yeah go with that if you want to change files dynamically. And the table you see in the help patch also has a build in "bleeep" silencer. Without that build in, you will hear an anoyying BLEEEEEP every time you change sound. With this specific table version you get silence instead of bleeep.
No there wil be no change when utning on/off the envelope. The envelope uses very very little, DSP, so dont worry too much about that.
Here is a list of what the different tablesize are equivalent to:
8192 = 0,17066666666667 seconds
16384 = 0,34133333333333 seconds
32768 = 0,68266666666667 seconds
65536 = 1,36533333333333 seconds
131072 = 2,73066666666667 seconds
262144 = 5,46133333333333 seconds
524288 = 10,92266666666667 seconds
1048576 = 21,84533333333333 seconds
2097152 = 43,57816666666667 seconds
4194304 = 87,38133333333333 seconds
Since you want to load many samples, you should probably only assign the table size needed for each sample. And you need to use a different table for each sample . Dont use bigger tables than you need in general, since you have kind of limited resources.