SirSickSik Contributions


#993

NEW MODULE

WAVE

"tablestream"

A modified sample stream module (factory/wave/play) that streams it's sample right into a table instead of the audio output without glitching the audio output or needing a output-buffer muting.
Only downfall is that the loading of each sample/table takes as long as the length of the sample as it's being played realtime.
To ensure a sample-loading won't be stopped until it's finished, a "ended" output goes high if it's ok to load the next sample (eg. use a logic-and to allow triggering of the load-input only when ended-output is high).

"streamplay"
a sampleplayer to use with the tablestream module featuring pitch, play direction, start/stop and sample-select input.

and a simple test-patch with some extra modules to show the possibilities. Note that you'll have to set your own sample directories!
I've named all my samples like BD053.wav/HH022.wav/etc.. so the file selectors just randomly choose samples from the folder to upload to the table. (bank1=kicks, bank2=snares, bank3=hihats, bank4=cymbals/percussion/glitch/bla, each with 8 different samples, so 4 banks, 8 variations->32 samples directly available. And you can load new samples while playing.) The patch automatically detects whether the streamer is finished loading a sample and then starts uploading a new random sample at the next trigger to a randomly chosen bank and variation. Also has a module to automatically start loading 32 samples at startup.
table stream midi triggered.axp (110.3 KB)


#994

Hey remco I'm trying to use your button functions object but unfortunately I cannot really get it to work, no matter what number I enter for the time attribute.
It always seems to miss clicks. I hooked up some counters to check wich confirms that the object more or less misses every second click. Am I using this wrong or what's the problem?


#995

I opened the project and found that it's a toggling function to set the outputs either high or low depending on how you triggered it with the button.
1 short press switches output 1, 2 presses output 2 etc.
if you want pulse-triggers, you can add a logic/change module behind it, so it generates triggers each time you change the state of the outputs from low to high or from high to low.


#996

cool thanks, now it works great!


#997

I'm extremly low on ram so I try to change the code with my amateur skills to give me pulses but it's not working...would you mind making a version that already spits out pulses? Or point me out how to change the code?


#998

just reset all the values back to 0 after they've been send to the outputs in the local code.
So just add to the end of the local code like:
Short1=0;
Short2=0;
Short3=0;
etc..

This way, when the "Short1" goes high, it first sends out this pulse and then immediately resets it back to zero at the next buffer update.


#999

Nice thx that worked! I made a very reduced version of the object. maybe I should start uploading things to the library too :thinking:


#1000

let's say it's a special kind of audio modifying delay in a simple "electro" patch.
module (write_1) might
not be finished yet.. if you have some more ideas, let me know..

pitchshifting up down.axp (47.4 KB)


#1001

Haven't synced yet, but...
I've created two new modules to create "songs" with.
-patt/songsetup
-patt/songtracker

It's like a tracker with which you can setup several counters to divide:
-song into parts
-parts into bars
-bars into measures
-measures into steps (nominator)
-set the rate within the measure (denominator)
-loop several parts as a whole for several times before going further

The songsetup module is used to setup the song structure (above parameters)

The songtracker module outputs the counter values depending on the songsetup module.
It has lots of counter outputs with different combinations of the counters to control pattern and gate sequencers as well as independent outputs for the seperate counters:

-step counter within measure
-measure counter within bar
-bar counter within part
-part counter within song
-"preset" index number saved with the part

combo's:
-3 step counters within bar/part/song
-2 measure counters within part/song
-1 bar counter within song
(!!!NOTE!!! at this moment (12/6/2019 at 15:20) the step/measure/bar counter within the song is still wrong as different parts can have different settings!
Shouldn't be too hard to fix and in the meantime you can use external counters fed with a "change-module" connected to the step/measure/bar/part outputs.
)

The songtracker also has inputs for play/pause/stop.
Also, a reset input allows to reset the song to a certain part immidiately

Whether they are actually useful.. not sure yet.... just finished them and tested them for a short time without any sound/pattern generators

this is the patch I've build them in:
ps. don't forget to go live when editing the parameters. The module needs to be live to update the internal array from the part settings!
song tracker0.1.axp (25.4 KB)

a couple of updates and a "song" created with the tracker. Lot's of modules that have been freshly written!
I have also added an "init" attribute, allowing you to write a text based track of your song with which your patch will start.
This can be saved to your SD-card for later use and to combine it with other songs written by either text-tracker or the edit parameters.
I have added comments here and there to explain how to work with it.
12 synth voices and a song-tracker in one patch!
Each time you play, it uses randomised settings, so each "song" is different!
An automatic "stop" is done by using a counter, so after repeating the tracker 6 times, it stops. Just press play again or remove the counter that's connected to the stop input for endlessly looping the track
song tracker using0.2.axp (146.5 KB)


#1002

one of the best here i got it that thing - -inbuild HP filters for FM signals make sure the pitch isn't offset from the right tuning (no DC-offset) and output has no DC-offset. [RaJJi]( One Way Taxi from Ludhiana to Delhi Airport )


#1003

NEW MODULES

quickly..
chamberlin SVF (chamSVF) in the filter folder
some new oscillator types for my blep oscillators (blepcore2 and bleposcS2) in osc folder
midi clock thru in midi folder

and for those who own a korg kaosspad3
"midi/korgKP3control"
a controller object to control your kaosspad3. I've selected the factory settings for the midi controls and notes, so you should just hook it up over DIN-midi and send the object some sequencers/lfo's/etc.
-patch change + trigger (best do this in between fx-on, not when the fx is on)
-gate/X/Y inputs to control the touchpad
-trigger inputs for sample A-D
-clock input select: object clock&active input / external midi thru


#1004

NEW MODULES

MIDI
"clkOUT" and "clkIN"
a pair of midi clock modules with some more features then the standard clock modules.
sends both midi clock messages as well as the position that the song is in, given by the position input (14bit value max) on the clkOUT module.
two "dedicated" labeled trigger in/outputs and 3 extra ones.
These triggers are combined as a single CC message when they change to reduce message count.
Only the "on" message is send, not the "off" message of the triggers, as the receive module resets these automatically.


#1005

Hi friend. I have a quick question about your "syncking" oscillator. How can I do an hardsync for exemple with two basic oscillator from axoloti patcher ? I understand what hardsync is I think, it means when the first waveform hit zero, the second one restart. I'm I wrong ? but I completely don't understand how did you do it on you syncking (so great) oscillator...

Also you made so many great objects for us. Thanks again. :slight_smile:


#1006

a hard-sync normally is the reset of the internal phase of the oscillator, so the waveforms restarts from it's beginning (most often at zero for sine, triangle or saw, though pulse of course is either high or low, but depending on what you need to do, you can offset the reset-phase to another position, eg. the sine lfo has this option).
All the native oscillators that have a sync-input, will do this type of hard sync this way (though probably nicer then the syncking, as they're anti-alliased).
Though as you've seen, I've added a couple of other types of syncs.
If I remember correctly, the soft sync adds a type of highpass filter that, when a trigger comes in, adds the current phase value to the filter, resets the actual phase to zero, but adds the value of the filter to the phase when creating the waveform, so it's as if the phase hasn't been reset to zero. After this, the filter dampens down it's value back to zero as if the phase gets synced slowely.
Another type of soft sync is when the direction of the phase gets reversed with every sync, so the waveform will travel the other way.
I see I've also added some other "sync" modes like the position and stepped sync, though these are more modulations that work best when used together with the soft and hard syncs.

In general a soft-sync will produce less higher harmonics then a hard sync as there are less discontinuities in the waveform, but the basic idea is that the oscillator will tend to run at the same frequency as the syncing oscillator.

But to actually do all this to the native oscillators is a bit of pain in the ass, as these are anti-alliased and you cannot just inverse the frequency value (this will actually produce an error that disconnects the axoloti) or add a phase offset to the internal phase.


#1007

Hard syncing, basically resetting 2 oscillators phase, can be done by feeding the sync inlet with a dirac pulse. See the factory library to find the dirac object.


#1008

what do you mean with this?
the dirac pulse is a pulse that's being triggered at control rate, so that ain't usable between two audio rate oscillators to get them running in sync.
Most of all, the sync inputs of all the oscillators just respond on a signal going from zero/negative to positive and don't need a pulse to do this.
Though I might be misinterpreting your example?


#1009

Feeding the dirac to a sync inlet resets the phase to 0(or any phase offset that you made).

If you send the dirac to both oscillators at the same time, I would assume that they would be in sync, cause both of them are reset?


#1010

but that will just be a momentary reset, eg. for resetting the phase when a gate opens up the envelope. If the oscillators run in harmonically unrelated frequencies, they will not be in sync within one cycle..
But I think he means to actually let the oscillator phases run in sync with each other all the time, which needs one oscillator's output be send to the other oscilator's sync input at audio rate. And with a hard-sync input, you don't need to use the dirac function for this.. it's just extra cpu usage that doesn't do anything extra.
If you want to add extra sync options, I would rather go for:
- a pulse divider, so you can sync to sub-frequencies of the sync-oscillator.
- add offsets, so the syncing happens at another point of crossing of the sync-oscillator
- rectify and negatively offset the syncing oscillator to sync to higher harmonics
- make the sync rate dependent on the slope of the zero-crossing (though this would be something to do in the synced oscillator itself and this way would actually make your idea of the dirac pulse useful to reset instantly to zero)


#1011

btw. I was already working on a new oscillator based on a sample&hold and an array of randomisable values to get all types of weird waveforms.
I've just added some of these sync types and the result is awesome! Super weird, deep and evolving sounds :stuck_out_tongue:


#1012

That is true :slight_smile:

But there was not a lot of info on the use case, what he wanted to do. If it was a simple reset of the oscillators at same frequency, dirac is a simple way to do so.