hmm ok.. I'm on a new computer now and it seems I still have lots of modules missing in my /sss/ list and some are still not changed although I know have.. So I think I've kinda messed up my axoloti-github loggin..
So also not sure whether to hit "sync library" button at the moment as the list is incomplete in comparison to my other computer..
SirSickSik Contributions
there is a 'status' option, it will tell you if its going to start deleting things...
what I would do is - do a reset libraries, on your new computer (with missing stuff) , and see if the things are there.
if not, then I would go to
are the objects there?
if not, then you have some how, either not committed them, or deleted them
you can see a history of your commits with :
http://github.com/axoloti/axoloti-contrib/commits/1.0.12/objects/sss
if the object are missing on GitHub, then you could transfer them to your new computer to then upload them?
sorry, I cant say do x or y, as Im not really sure of the situation you have found yourself in, or how you got there
well, I think I screwed up when re-entering my folder in the patcher. When I started coding it was right, but after I updated a couple of times I probably entered a wrong link somewhere..
So I think I just need to first re-connect my old computer, set up the library right this time and hit sync. Fingers crossed that it won't sync in the wrong direction... but I need to go now, so that's probably for tonight/tomorrow..
oh.. hm... it's a bit weird.. last one was 19 days ago, but I'm pretty sure I added some others in between before changing computer.
though, also, I can see that I've uploaded the bppBIQ, but it doesn't show up on my new computer.. lol... ok.. that's for tonight I guess haha
sweet, I've finally understood how to mod the blit-synthesis of the audio sample&hold so it can be added behind an oscillator with hard edges. eg. a phasor oscillator is turned into a blepped-saw (the blep-method of the native saw/square/pwm oscillators).
So hopefully this could remove wavetable problems with hard edges causing unwanted overtones
I've copied all the files from my old computer to my new computer and just hit "sync" again.
Could somebody check for me whether these modules are now present in the community library:
-delay: factotum
-filter bbpBIQ and bbpSVF
then it's about time to save some of my new oscillators . I've been modding the native "blep" oscillators so they're able to do much more like thru-zero fm, phase modulation and soft-syncing. Also got a new delay that morphs/mixes between different timings depending on host-rate, like my wavetable-oscillators.
NEW MODULES (highly probably more then I'm telling here as my "sync" didn't work right lately)
OSC
"blepped3" and "blepped4"
Two new versions of the native oscillators that use the "bleps" method featuring a couple of more goodies.
First of all.. 4 or 5 waves in a single oscillator. Depending on the oscillator: sine, triangle, saw, square and PWM.
Blepped 4 has inputs for quick multiplying, dividing and octaving of root frequency. Blepped3 has pitch-offset and beat-offset inputs. Both are very useful when doing FM/AM. FM-width is root-frequency-dependent. Both oscillators can FM themselves, which enables eg. the sine to turn into a saw-wave.
Also features a soft-sync that's kinda PLL.
Anyways, take a look, they can create quite a lot of timbres!
PATT
"ctrl16Rec"
A dual-input (X/Y) control recorder for 16 output channels that I created for my doepfer MTV16 midi2CV module to have a 16 channel knob-recorder.
Both channels have individual inputs for:
-"rec": when high, starts recording, when low stops recording and starts looping the recording. Use a clock-synced latch before the "rec" input to beat-sync your recording. Max record length is the total table-size divided by 16 (=pretty long).
-"dub": overwrites the recorded buffer, but keeps the same length, looping back to the start of the buffer when it passes the pre-recorded buffer length.
-"channel": output channel (1-16) selection for the recording.
-"steps": sets the amount of steps the whole recording will be divided to. So eg. when set to "12", it forces the recording into 12 steps although the total recording might have a length of 16 beats. Use step=0 for continuous output.
MIDI/OUT
"continuousCC16"
continuously sends out the 16 inputs as midiCC messages. Be warned though! It's as quick as it possible could.. so any more midi messages probably mean wrong or missing midi-messages..I created this to be used with the ctrl16Rec and the doepfer MTV16. For direct use, just keep channel to 1 and cc to zero. No need to change anything on the doepfer.
NEW MODULE
FILTER
"2facedFilter" and "2facedCtrl"
A dual allpass/filter and dual multimode SVF-filter.
8 filter modes for both filters are selectable (all lp/hp/bp/br, but the second row of modes control different ways of combining the phasers and filters->phaser/allpass, filter/crossover, serial/parallel)
The 2facedCtrl module has an internal routing matrix to connect several modulation-sources and randomly set the modulation widths of each of the modulation inputs for each of the time/frequency outputs.
Features inputs for: key-tracking, velocity/volume-envelope, filter-envelope, lfo and (stepped/one more extra) modulation.
Up to 64 presets can be randomly generated and stepped through using a pattern generator.
Use "leveler"(dist) or "copyComp"(dyn) to quickly get the signal level back to "normal" volume in case of heavy filtering.
some new modules:
LFO
"sloped8xlfo"
8 lfo's with a shared slew-control to go from saw->triangle->ramp. 7 different division settings for the 8 LFO's are given by a preset-control (divisions could be altered when you embed the module->local settings). First output always is the 1/1, the others are slower depending on the preset-divisions.
"multiLFO"
LFO with 6 different waveshape outputs (sine,tri, saw, ramp, square, pulse) which can all be independently set to a harmonic based on root-rate.
ENV
"shelves"
kind of like the LFO above, but done with an envelope. The first envelope is triggered with each high-gate, the others are clock-divided (every n'th trigger) Γ‘nd have their attack/decay rate divided by the division-amount.
Above modules are very nice for drone-patches and work very nice with the smthRotator and smthSelector to smoothly morph the eight inputs along the eight outputs.
"Env2"
-dual mode envelope. The mode is controlled by the trigger-number (1 or 2, 0=off)
mode1=AD
mode2=ADSR
"Env3"
-tripple mode envelope. The mode is controlled by the trigger-number (1,2 or 3, 0=off)
mode1=AD
mode2=ADSR
mode3=AHR (sustain controls hold-time)
MUX
"smthSelector"
has 8 inputs and 1 output and smoothly morphs through the inputs (just a stripped-down version of the smthRotator)
OSC
"classic"
not really a classical oscillator, but to me it already sounds like a classic!
The oscillator is based upon internal phase-(self-)modulation to be able to go from sine, saw, "shark" or pulse-like waveforms. Internally, a low-frequency phase-modulation can be added to create a kind of morphing "supersaw" sound.
Depending on the oversampling rate, the oscillator does sound quite a bit different as feedback paths go quicker and quicker, allowing higher frequencies to have a more correct modulation-effect (though also taking lots more cpu of course!). I'ld say this oscillator shines as a bass-oscillator!
EDRUM
"DR5"
A basskick/snare module having different parts to use as "bottom", "hit" and "noise".
Though both "bottom" and "hit" are both sinewaves, the latter can be modulated by the noise (modLvl). Also, each have their own pitch-envelope-modulation-width, though, both listening to the envelope of the "hit", and the "bottom" creates a steeper exponential curve from this "hit" envelope. Their respective envelopes do directly modulate their respective volumes. The envelope of the noise is only modulating the noise.
The noise itself exists of a pink-noise function that is modified to be retriggered by the gate, so the same noise-wave will happen at each new trigger. A seed-parameter+input allow to sequence different attacks/punches for the kick. Next to this, a phase-oscillator is added as a continuous seed for the noise (controlled by noise-pitch and pitch-envelope (punch), which gives it a bit more body at certain frequencies.
The "bottom", "hit" and "noise" all have their own outputs, so these could be independently muted/mixed/waveshaped/"use different effects" later on. Next to this, the kick also has a "bass" input and output which ducks the bass when the kick is triggered (no need for heavy-cpu side-chain compression!). This has a bassFade and fadeLvl control and the fade-curve is exponential to shortly allow more room to the kick and then quickly fade in the bass.
"CY4"
Cymbal/hihat generator based on a self-modulated delayline. Though it was just a try-out, it got me pretty impressed!
FILTER
"trippass"
tripple allpass filter using three different allpass-topologies:
1=Phaser: delayline based "phaser" allpass. Delays the incoming signal at audio-frequency delaytimes.
2=biquad allpass
3=(2x)6dB LP/-HP allpass: inverses the lowpass and adds back to the highpass. The toggle switch allows to do second order, creating a band-pass that is inverted and summed to LP and HP.
Sounds awesome together with the "classic" oscillator. The phaser and biquad-allpass are written as functions in the "local data", so these could be easily copied and used in your own modules! (eg. I heard some requests for allpasses in reverbs? )
and some more modules:
PULSE
"lfsrburstMod"
a modded version of the lfsrburst that has a knob to control the burst-shape and a velocity-sensitive trigger input. To be used with the "CY4" cymbal/hihat module
SEQ
"polymodeGateGenerator"
a single channel gate-sequencer with 16 modes for each step:
0=gate OFF
1 to 5 are chance-controlled, set by the chance inputs. So when a step is set to 5 and the chance5 input is at 32, there's a 50% chance that it will generate a gate.
6-10 are "cycle" inputs. So, eg. when cycle6-input is set to 3, an internal counter is triggered each time the sequencer comes along a step set to "6" and loops back to 0 after the 3rd step. Only when the internal counter is 0, a gate is generated.
11-12 are selected by an internal 0/1 counter that is triggered at each first step of the sequence. When it's 0, it will play the "11" steps, when 1, it will play the "12" steps.
13-16 are the same like above, but the internal counter will count 0, 1, 2, 3 (-> 13, 14 ,15, 16)
DIST
"tubey"
Transistor/tube-like amplifier/waveshaper
MATH
"morphController"
the phase-input creates a positive triangle to the outputs one by one like:
/__
_/_
__/\
__/
The width of the triangle as well as the spreading between these and the start-position (which one(s) is/are high at phase=0) can be controlled.
The width goes from very narrow spikes to all 4 overlapping, though mixed.
Spread allows to change the order of the triangles, to make 2 triangles go high at the same time or follow-up shortly after each other while having "blank" spaces in the middle. Very nice to use for modulation-widths of different modulations!
HARMONY
"scaleChord7"
chord-module to be used with the scale7bank (use scale7generator to create the table and save to SD-card! otherwise, just use the scale7generator if you don't have a SD-card)
Has root, chord, invert and spread inputs. Though the "chord" input is wrapped, the invert and spread inputs don't have a limitation! Take notice of this as going beyond about -4 or +4 will soon create very low/high notes!
PATT
"gateSpreader"
This module generates an x-amount of steps within the given max-count (input). Use my "countExt" or "polyCount" module to connect the "max" input/output.
After hitting "generate" it will generate new gates one by one, each time checking which distance between gates is the longest and then randomly divides this distance into 2 gates.
The maximum amount of gates being generated is set by the "gates" selector and their timing can be quantised with the "qnt" selector (powers of 2!).
The amount of gates ACTUALLY TO BE PLAYED depends on the "gates" input which is scaled to the "gates" selector (which just sets the maximum amount of gates to be generated in the array).
When the "gate" input is 0, no gate will be generated.
When "gate" input goes higher, it adds the gates in the order they were created, making smaller and smaller sections by adding gates in the longest "pauzes". Up to the amount of gates set by the "gate" selector.
LOGIC
"countStp"
cyclic up counter with modifiable stepsize and maximum output.
IMPORTANT:
Counter-length is set by "max" INPUT.
Output-value is wrapped between 0 and "maximum" SELECTOR.
THUS THE LENGTH OF THE COUNTER BEFORE IT RESETS IS SET EXTERNALLY AND THE MAXIMUM OUTPUT IS SET ON THE MODULE ITSELF!
Made be used with the "gateSpreader" module, but whatever, use it for anything
NEW MODULES
BE WARNED! next modules are like "expert modules" (read: I'm the experimenting amateur here), they can easily screw up your patch if used wrong!
They enable to randomise and "preset-morph" knobs of lots of other modules together at the same time.
Please read their "overview" carefully
"presetRandomiser"
THIS MODULE CANNOT BE USED RIGHT AWAY! It's code has to be editted customly for your patch for it to work!!!
I've tried to give enough descriptions and hints in the code for others to somehow get to know what to do..
As it is, it allowed ME to randomise different parts of my patch (osc's, lfo's, envelopes etc), skipping the parameters that I didn't want to change or which weren't allowed to change anyhow.
So if a parameter should be skipped, the "PEXCH" should skip one index (explained in code->green text).
Also, each parameter-randomisation is custom-scaled for each parameter, so this should also be changed for your own patch!
"presetMorpher"
This module allows the user to morph between an x-amount of presets of an x-amount of parameters saved into the module (presets*parameters=amount of values saved/length of table).
AGAIN, ALSO THIS MODULE CAN SCREW YOUR PATCH IF USED WRONG!
First of all the attributes have to set right:
-amount of parameters to be morphed:
count from your first parameter to be morphed, all parameters up to the last one to be morphed, from left to right and top to down(->module-wise. All parameters on a single module count as being one row, the module right next to it will have the next parameters.)
-amount of presets:
guess this one should be self-explanatory
(eg. when using a 64-note pad-controller, you can morph between 64 presets using note-info for preset-number)
-preparams:
selects how many parameters there are between the presetMorpher and the first parameter that should actually be morphed. These ones get skipped.
The controls!
First of all... try to have a "final" patch with all modules you need inserted. Saves lots of time.. but, after that:
-create a nice soundpreset
-select a preset-number
-hit "get" (or send high-gate to get-input)
-create another soundpreset
-select another preset-number
-hit "get" or... etc etc.... repeat until you've filled up your max amount of presets.
then...the play begins
you can connect a midi2CV module to the "morph"(gate), "rate"(touch) and "preset"(note) inputs to morph through all your presets. The harder you press a pad, the quicker it morphs to the respective preset.
(ps. you can also do the preset-making using a midi-controller. Use a "demux" for the midi-gate to select between "getting" a preset and "morphing" a preset.
pdrdrdrdrddrdddrrdtttttttttrrrrrrrrrrrrrrrrrr padum!
oh do I?? finally?? seriously, do I? O yes I did upload it!
NEW MODULE
MIDI
"polymidiXL"
high-rate&voice polyphonic midi-recorder/player.
Can be driven by a normal "counter" (sss/logic/countExt)! Use BPMext to clock-sync multiple destinations (eg. also my midi-clock out module).
how many voices? How fast? How long? How many notes?
As many as your midi-cable can take, as fast as the axoloti can run (without going over k-rate nyquist, though that would be a bit pointless to do actually), the length your counter can reach and up to uhm.... lots of bits amount of notes... I got it at 8192 atm and it's all I need.. Also could do about 100.000, but seems a bit pointless to do.. XD Though still.. you could make a recording of several minutes (or hours) with a whole bunch ( couple of thousands of hundred-thousands..) of notes if you want.. Just depending on how many notes you allow to be saved and how slow you allow your clock to tick.. If it's in 32bit range, you're save.. (for counting that is, not for the amount of notes to be saved. If you actually need more then a couple of million notes... I'm actually going to ask you to pay)
Also features a copy&paste and midi-delay&transposition for parts of channels to other parts of the same or other channels.
Records midi for sending internally as well as for DIN-midi out, so that's 32 channels.(you could also make a polyphonic patcher that converts the internal midi over to midi over usb)
Tried to name all the parts and explain what they do. Hope people will understand it and get it to work
important things to start-off:
-high gate at "active" input!
-load LFO (sss/lfo/BPMext?)+counter (sss/logic/countExt)and connect counter to read/write inputs. Set it to a high rate and high count.
-connect "max" output from countExt to "maxcount"-input.
-set Port-input to low for internal midi or high for DIN-midi (midi cable to other synth(s)/axoloti(s))
-set "edit" channels you want to record to, to "high"
-start patch, play your midi-keyboard/pads with the same midichannel as you've switched on, send it to a synth that listens to the same midi-channel and listen to the result.
-ehm, not sure I've added the midi-thru to the module..perhaps you want to add my midiTHRU module to directly listen to what you play, instead of having to wait a full cycle of the counter..
Wow! Thank you very much for sharing so many awesome modules so quickly here! I couldn't imagine my patches without your contributions. Rock on!
I really like these objects, but they seem to be a lot more square-like on D keys. Could it be some sort of aliasing? Is oversampling a possibility?
you mean when playing a D-note?
Oversampling could be a possibility, but I think it might limit it's use a bit too much as it would be taking way more cpu, unabling you to do some serious polyphony (like a 6-string guitar)
NEW MODULE
DIST
"corruptor"
heavy distortion module based on "quadrant" modulation->depending on position (pos/neg) and direction (up/down) the incoming waveform is "corrupted", creating lots of heavy distortion. Musically? Not necessarily... Noisy? Definitely!