SirSickSik Contributions


#870

Hi @SirSickSik!

Wow, just going through your modules for the first time, thank you for your generous work.
I was trying to program a simple MIDI looper when I ran into your PolymidiXL, which is great, but a few things don't seem to work:

  • The module is always active, independently of what I connect to the "active" inlet. I have a toggle button connected, when i switch to off, there's an all notes off, but it will keep recording. If I erase all, and set active to off, it will still record;

  • channel delete and delay don't work- i tried buttons and toggles and there's no effect; -> edit: _channel delete does work, but the drum machine i was using for clock master was also sending notes which would trigger the channel delete - maybe a way to filter out channels from the device input could be useful

  • undo and erase work, and so does the midi port selector.

Is this an error only on my device?

I also have one request- two, actually:

  • would it possible to switch the midi monitoring on or off (I mean the MIDI through for the notes)? I only need the MIDI clock to pass through (could use clocktx, for eg), but, in most situations, I'd rather not have the notes pass. Is this possible?

  • the other request would e for a way to turn edit on or off for each (or selected) channels via MIDI.

Again, thank you for your work, and for reading this. I'll keep digging around your library folder for a while.


#871

Hi Tau, thanks for the report!
Though I have to work this afternoon, I'll look into it this week to see if there are bugs.

The edit-channels, to be short, can be controlled over midi. If you look at the code in the midi, you can see that you can select an "edit" channel (which row you want to edit: edit, mute,solo,scaled).

channel 0, CC57 toCC60 should select which row you want to edit (any value from any of these CC's will select a row).
with channel 1, CC1 to CC16, you can toggle off/on the channels in the row (also any value, it just listens whether the CC changes).

About the "active" input, this indeed just only sends an "all-note-off" message.
You should also use the control for this input to stop the counter module that's driving the polymidiXL.
I added this just for resetting the midi-on-notes when the counter would be made inactive.


#872

Thanks, really appreciate you looking into it.

I see a way now to toggle record or play with MIDI- but how can I send MIDI over channel 0 from an external controller?


#873

oh sorry, channel 0 is midichannel 1..
the axoloti works internally with values 0 to 15 as midichannels (midichannel-1).


#874

harpsy osc0.1.axp (33.9 KB)

just hit play, sit back, close your eyes and dream away :slight_smile:


#875

NEW MODULE

PATT

"noRepShiftReg"
No-repeating shift register
When the add input goes high:
-All values at the d1-d8 outputs will shift down one output, d8 will be removed.
-Except when the new value is given by an output somewhere in the middle. In that case, this output is removed and only from the first output up to that output, the outputs are shifted down.
-The value at the index input will always be send to the first output (d1)

Useful for manually making orders of index numbers that may not be repeated in the order.
eg. a set of footswitches that you can press to set an order of an fx-chain, where each footswitch selects it's own index number to enter and put at the end/start (dependent on connection-order) of the chain .
eg. if you only need 4 outputs to chain 4 effects, use only the upper four outputs.


#876

NEW MODULE

ENV

"pulseEnv"
An edit of the factory AD-envelope.
Attack/hold/decay envelope with treshold, linear attack, exponential decay to enable square shaped envelopes.
-The treshold (t) amplifies the envelope, but also lowers it with the treshold level, while clipping it when below zero. Peak stays at max 64 (=1<<27). Enabling quick stops as if the exponential decay is partly linear.
-Added a hold stage by amplifying the envelope and clipping it afterwards.
With hold and treshold all the way up, the envelope is almost squareshaped. In this case, the decay sets the pulse length.


#877

finally found a way to get the minimum&maximum values of available parameters, so I could make my preset randomiser/mutator/mixer/morpher based on the nord modular patchmutator :stuck_out_tongue:

As you can see at the module, I'm currently editing 116 parameters using the module.
It dóes take some bit of cpu when morphing or mixing, but the effects can be pretty awesome when you morph this many parameters all at once :smiley:

-randomisation sets all parameters to a new random value within the bounds of the parameter.
-morph morphs the current settings to the preset selected by the toPreset inlet.
-mutate either select the parameter of either two mixpresets or a random position in between the parameters of two mixpresets (either preset1 or preset2, or a random mix of both presets).
-mix mixes from mixpreset1 to mixpreset2.
-any produced preset can be saved to a location within the preset list.

the "init" can be used to set which parameters to actually control in case there are parameters in-between parameters that shouldn't be controlled by this module, but be left alone.

the module can also be used as an embedded preset module, using multiple modules to control seperate parts of your synthesizer, each having their own set of presets.

note though, that if it's all about being able to morph values, you can better use a module that internally morphs arrays/presets and output these morphed values through outlet's, which can then be connected to the modules. Morphing parameters directly surely isn't the best way as it also communicates these changes back to the computer, but in some cases it can be really useful and straight forward. Eg. you can save a set of parameter settings, that you dialed in manually on the modules themselves, to any preset number or just hit the randomise button until you got a nice sound and save it. Using array's and setting up parameters from there will mean that you'll have to memorize which position in the array is connected to which control...


#878

almost ready with the preset morphing/randomisation (been creating lots of different things at the same time lately).

Also made a second module that's able to morph lots of outputs at the same time.
This new module allows quick and easy modification to add/remove outputs to any amount that you need. Just embed the module and follow instruction (Overview-tab)

Both modules have the same morph-rate ratio's and capabilities, so can be used together.
Also, this multi-output-module is less CPU intensive and less prone to produce clicks when CPU use is high then the parameter-based morpher.

an extra module is able to save the current state in a temporary preset and paste it back. Useful for comparison of presets or when you need to change the order of presets and need to temporarily safe a state.


#879

@SirSickSik

Just out of curiosity, are you using a full Axoloti, like the above, to controlpresets for all the other boards?

I gave up on using Axo for preset stuff, it just takes to much ressources away. Instead I use Pure data to control everything, it works super cool and I can do preset morphing too. I just assign a CC number to a parameter and PD takes over and controls everything :slight_smile:


#880

You could do that in several ways, but I think the most useful is to put this in each axoloti and control the preset modules seperately through midi, updating only parts of your setup.
If you update your entire synth's parameters using midiCC, you're probably overloading the midi buffer and skipping parameters. Also midi-clock and midi-note data will be influenced a lot, skipping notes on/off or producing an irregular clock. So it's best to keep the midi-data amount as low as possible to prevent mishappenings.
That's why I do the morphing inside an axoloti in it's own patch.

You can also use multiple morphing modules side to side to load different parts independently (eg. fx, osc's, modulators)


#881

Yeah when I use axo presets it works like this. Some problems.

But for now, not when I use PD for presets, I can change as many parameters I like with no glitches, spread out over several boards, no glitches. AND i also can change only part of the preset system. For example if I have a delay, it can be controlled from both main presets system, but I also have a dedicated control for the individual parts, like the delay for example. So its possible to change WHOLE arrangement ith a single click of a button.. Or I can also switch presets for the individual parts, like delay etc. to make subtle changes.

I have no problems with skipped parameters, no problems with skipping notes. I use same presets system for my pd patches, controlling hundreds of parameters at the same time with no glitches.

Oh yeah the sequencer which uses Launchpad mini as control surface is the ONLY thingy that uses presets internally in Axoloti, tablebased. The only reason for that is the Launchs LED's that needs to be updated, caused some midi issues. But as long as the Launchpad mini is connected via usb to Axo there is no issues.

Anyway, was just curious how you were using it. I am very happy with my own system and no plans to change it, but its always fun to see how other people does it :slight_smile:


#882

it will function as a quick way to create presets on the fly while being live.
I've put 5 axoloti's in a single case, feed it with 2 5v powerbanks (able to go on for 48+ hours XD) and control it all using the quneo midi controller. This way I can take it anywhere I want and always create something new without the hassle of hundreds of parameters to remember.

Using the pads on the quneo, I can morph to any of the presets: the midinote-pads set a preset between 1 and 64 (16 pads, 4 banks) and the pressure sets the rate of morphing. This way I can also record these midinotes plus their pressure and replay this over a loop. Thus while some melody is playing I can choose to morph the melody over time as well as morph the synth that's playing the melody and loop this.
At any time I can create new presets by mixing/mutation/randomisation/combination.
Nice thing about the morphing is that you can stop morphing anywhere in between presets and morph to another preset from there. If you loop this, each loop will have slight differences.


#883

ok, not coming out much lately, but that doesn't mean I'm not building anything. I've got quite a bunch of modules in the pipeline, but some first need some extra testing before I'm letting them out (preventing unnecessary updates like I have done lots of..).

But this one "filter" I just really liked the character of.

NEW MODULE

FILTER
"sreamo"
Screaming resonance lowpass filter with low-boost control and audio-rate input-minus-self-cutoff-modulation.
This is not a normal "take away all those frequencies" filter,
but depending on resonance, low and mod amounts, the resonance will scream with lots of overtones, tonality can be adjusted with the mod (or resonance tempered), the low might be completely overdriven or, in case of inverse low, a kind of a bandpass/highpass can be created. Just throw it over your baseline and let it scream :slight_smile:


#884

I'm having great fun with your Flooper - it's beautifully stripped down to just the features I need. However, I don't understand how the sync works. I've tried experimenting with it, but without much success. Could you point me in the right direction? Thanks


#885

I guess you've maybe solved it already but there's a fix for unresponsive pads of NanoPad:


#886

The "syncIn" input expects a clock signal like a LFO that is set to the host BPM.
When "syncOn" is high, it will quantize the recording times, so it will always be in sync with the host while repeating the recording (though on the long run, it might still slowly get out of sync with tiny amounts)


#887

hmmm.. how to re-order a more or less random list of 2295 recorded general midi drum patterns in a logical and automated way..
(the 47 drumchannels are combined into just 8 drumchannels: kick, basekick, toms,snares, open HH/other,closed HH/other,cymbals,percussion/other).
Idea is to have a general drum sequencer where you just have to select&sequence&combine rhythms instead of having to write them all out.
Guess I'll just start trying to line up according to kick pattern..


#888

Interested to see how you approach this one.

a|x


#889

I've made an automated midi-file player in synthedit which reads from a list of midifiles being called MD1000 up to MD3995.
So I just added a counter output to the name "MD", drove this with a 120BPM LFO and let all the midifiles play at 120BPM.

After this a module in the axoloti gets in the midi data from the 47 general midi drums and reads from a small list to which of the 8 drumchannels the sound "should" belong to.
Then it records the incoming midi data (only velocity) to a position in an array, where each channel has 96 steps per pattern, so one pattern is 8*96 steps of velocity values.
The position is driven by the midiclock, which, as these are midifiles, restarts with every new pattern, so automatically puts the incoming midi at the right position of the array.

After all the midi had been played (this literally took a couple hours haha), I saved the table in the axoloti.
Loading the table takes about 2 seconds
It then just reads out the table using another counter in the patch that you can set to it's own rate with clockswing, errors, patchswitching and all :slight_smile:

Reordering all this data will be quite an enterprice though as of course, there is the limited amount of memory for temporary storage..