for the upcoming "wave" players (though, used in tables as the streaming is still buggy of the waveplayer), here's a new envelope already:
NEW MODULE
ENV
"AHDSR"
envelope generator with a hold-stage added between the attack and decay stage.
for the upcoming "wave" players (though, used in tables as the streaming is still buggy of the waveplayer), here's a new envelope already:
NEW MODULE
ENV
"AHDSR"
envelope generator with a hold-stage added between the attack and decay stage.
on request:
NEW MODULES
TABLE
"samplePlayer"
"sampleController"
two modules that work together to provide you with key-controlled sample triggering.
IMPORTANT:
-You need to make a table containing your samples first!
-Though you could also load an entire drum/melody pattern, use the "sample select" as overall search and then use the start/end parameters to finetune your loop points.
-To find the right sample-length settings (sample length, amount of samples), see the "overview" on the samplePlayer module
"samplePlayer"
this is the module that actually plays the samples. Only 2 parameters are on-board: "samplelength" and "intExt".
When "intExt" is high, it uses the samplelength set by the samplelength control. If it's low, it uses the samplelength-input of the module. This can be used with the controller to save the samplelength of your samples for each table.
Though this "samplelength" "should" be set to the right value, you could of course still set it to the wrong value and read out multiple samples after 1 trigger within a single stage.
'sampleController"
This is the module that can be used to control the samplePlayer with a keyboard (don't forget to offset your notes with +64 to stay in the "positive" readout of presets).
Each of the inputs of the samplePlayer has it's own control on this module, that can be saved into an array and later recalled and sequenced with the preset-input.
The array is being read out and set to the outputs of the controller.
During play, while the controller is automated by the preset-input, you can still select a preset with the onboard preset selector and adjust the preset.
You can also select the internally selected preset to be send to the samplePlayer by setting the "intExt" button to high.
When changing the preset-selector to edit another preset, the controls will be updated from the table of the newly selected preset.
NOTE though, that when this module is used inside a polyphonic subpatch, the parameter-update might not work.. I noticed that in another project of mine.
the controls:
-the samplePlayer is divided into 3 parts: start, loop and end. Each have their own controls for play positions, pitch and sample select.
-if loop is off, it just plays from startStrt to endEnd (these are the names of the controls) and these decide the start and end positions of a "normally" played sample without loop. Note that when start is behind the end, the sample will be reversed.
if loop is on, there are 3 loop-modes: forward, reversed and alternate.
when triggered, the samplePlayer will start playing the "startsample" from the startStrt position to the startEnd position.
When that is reached, it will jump to loopStrt position and move to loopEnd position. (for reversed, loopStrt and loopEnd are switched).
For forward and reversed, if the start/end position is reached, it will jump back to the other position and plays again in the same direction as long as the incoming gate is high.
For alternate, if either position is reached, the samplePlayer reverses it's play-direction, alternating between forward and reversed play as long as the incoming gate is high.
When the gate is release, the module will go into the end-stage.
It will then play it's own stage's sample from the selected endStrt position to the endEnd position.
Next to this, there is an internal oscillator that can be added to the readout position, creating FM effects.
Of course, the width of this can be saved along side with the other settings (or use this to save some other parameter for another effect).
To top it all off, the sampleController has a sample-display which shows the sample that you are adjusting(start/loop/end-sample of selected preset) along with the start and end positions of the parameters belonging to that stage (start=high peak, end=low peak)
no, I STILL haven't updated to the new version, sorry, lots of "normal" work and just a couple of hours of spare time every day to work on any ideas..though, the module should be on github.. haven't had the need to try it myself, but I heard my modules can still be found there if technobear hasn't merged a module yet (and I'm not asking him, as I'm the one staying with the older version haha)
NEW MODULE
MIX
"multimorpher"
module to morph through 8 inputs and their negative counterparts (thus 16 signals in total) for 16 different output channels.
Each channel has it's own controls to set how many inputs you morph through when mix goes from 0 to 64 (quant knob) and a control to skip channels (step knob)
All of this is controlled by a single mix-input that let's you morph all the outputs simultanously (though as each channel has it's own amount of steps and step-size, lots of different modulation combinations will be created).
When using tempo-synced patterns, envelopes and LFO's, this module can create a whole bunch of seriously wicked modulations!
I havent had time to play around with your sampler module yet... but to get around the tables thing, i saw this. I have no idea if it is actually helpful:)
nope, I'm afraid he's still using the native wav-player, which still crashes when going unlive..
I've just created a HQ sampleplayer based around the interpolated wavetable reader, which can use the same sample-tables as my former sampleplayer module.
In between stages, it now also has extra stages with their own rate to go from "start end" to the "loop start" and to move from the "loop end" to the "end start" to remove clicking when changing from stage.
Each stage still has it's own sample-selector, though using this might add clicks again.
As I'm now using a normal phase-generator to drive the sample, actual linear fm is now also possible.
And it sounds awesome...
I cant seem to see your sample player etc modules? I refreshed and everything.
Meh? I'm sure i made a mistake somewhere
NEW MODULE
OSC
"chaosGuide"
chaotic oscillator, useful for percussion sounds and waveguide sounds with a noisy "pluck" part for as long as the gate is high.
X, Y, and Z are the initial "pluck" values when either gate or sync goes high.
Connect an oscillator to the sync input for syncing the waveguide and using it as a timbre-controlled oscillator. Depending on the values of the controls, the timbre can be totally different.
Control the gate's length to provide different "pluck" times.
As the sync will be off as long as the gate is high, the oscillator will be in it's chaotic state.
This state can either be repeating, noise or decay quickly with random quirks.. everything is possible.
As the output-max is limited by a sine function, any value (into thousands) can be used to send to the parameters, though the "b" parameter seems to respond better to low values (max 32).
guess what?
still finishing some loose ends, like a demo for a sample-table creator and sampleplayer. Sampletable-creator took me a time as there were still some weird problems, but it seems I got that fixed now
NEW MODULES
MUX
"smthRotator4": same version as smthRotator, but with 4 ins and outs
"smthRotSeq", an extended version of the smthRotate, also with 8 ins and outs, BUT you can create a 16-step sequence for each output independent, selecting which inputs it will morph through.
-set the "output" selector to the output you want to make the sequence for.
-press the buttons in the order that you want to mix through the inputs.
ps. at the moment, this sequence isn't able to be saved to the SD-card, so you'll need to make a new sequence every time you start a new play (ok, I'll probably add that somewhere later today..). Module is still open to more suggestions.
TABLE
"tableload"
this module will be used for the sample-table creator, which is used to make sample-tables for the samplePlayers:
sample2table creator.axp (19.7 KB)
This module can load a sample to a part of the table-allocator, so multiple samples can be copied to the same table quickly. You need to set the sample-size on the module to set the maximum size of each sample. So each table can have it's own size samples, but all the samples in a single table need to be the same size for the samplePlayers to work.
"samplePlayerHQ"
this is the new high-quality version of the samplePlayer with a couple more functions added.
"sampleControllerHQ"
this is the controller module for the samplePlayerHQ, which can be used to set different settings for each preset. Use a sequencer or midi2CV module to select which preset/sample will be played. The settings can be saved in their own table for future recall.
demo-patch:
sampler HQ DEMO.axp (23.8 KB)
NEW MODULES
OSC
"guitarTableOsc"
"guitarTable"
these modules are the same as the guitarOsc BUT:
-primary use would be in a polyphonic synthesizer
-table-creator and player are seperate modules.
-table is saved "monophonic", so the table doesn't get copied by the amount of voices, filling up the available memory.
a simple 10-voice polyphonic guitar synth takes about 50% (while using my LPG module for volume control, which takes a bit more then the normal "gain" module)
NEW MODULE
PATT
"riotCell"
This module is based on the eurorack module "trigger riot"of tiptop audio., though this can be seen as a single cell so you can set the size of your sequencer-matrix yourself and use logic functions between cells.
The module expects a main BPM value (just an integer control)
All internal counters are reset at a trigger-high in the reset input.
-M multiplies the main BPM, speeding up the clock in integer ratios
-D divides the main clock, slowing the clock down in integer ratios
-bars set how many times a bar is repeated
-barlength sets the count-length of each bar
the following settings are based upon the barlength:
-start offsets the count within a bar, thereby offsetting the timing of the gate based on the set tempo and stepsize.
-stepsize sets the euclidian stepsize, generating a beat every number of counts set by this control. So putting it to 16 will generate a gate at each quarter (->16/64) of the barlength. For a drum&bass kick with a barlength of 16, value would be around 41. The snare would have a start offset of 16 and stepsize of 32.
-pulselength sets the length of the gate within the range of the stepsize. Set the "1" button to set minimum size to 1, otherwise low values will generate no gate (which would also be usable as a "mute" control).
-probability sets the chance that at any given count a random gate is being generated.
-timeoffset offsets the internal LFO which triggers the counter, thereby offsetting the count, but not fixed to the main tempo. It's more like a clock-swing.
NEW MODULE
EDRUM
"DR1"
drum synthesizer with an extra wavetable shaper to add higher harmonics to the sine-base.
Can make anything from basskick, snare, hihat, cymbal etc..
Uses wavetables made with the wavetable creator "Creator" (1024 waves of 1024 samples long each)
Seperate envelopes for pitch, volume and noise levels.
Volume envelope can be fed to the end-LP filter (E2C knob)
Noise part has it's own SVF filter with cutoff, resonance and selectable mode(LP,HP,BP,NOTCH)
Best to trigger this with a trigger instead of a gate.
Hmm. Cant seem to find your new HQ sample modules? Did an update. Restarted and re-updated. Still nothing. Could you doublecheck please? And thanks for the demo projects!!
Ah! Sorry! Last time I wrote that, I was referring to the old non HQ version that I couldn't find:) but now I can find them. Now I just need your new hi fi amazingness version!
Thanks!
Downloaded the objects and placed them in my objects folder, and got a couple of these types of errors. Am i doing something wrong?
Thanks:)
Error reading object, try relaxed mode /Users/TRJ/Documents/axoloti/axoloti-contrib/objects/sss/table/samplerPlayerHQ.axo
java.lang.ClassNotFoundException: is-copy-enabled emoji-size-boost
java.lang.ClassNotFoundException: is-copy-enabled emoji-size-boost
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at org.simpleframework.xml.strategy.Loader.load(Loader.java:50)
at org.simpleframework.xml.strategy.TreeStrategy.readValue(TreeStrategy.java:163)
at org.simpleframework.xml.strategy.TreeStrategy.read(TreeStrategy.java:102)
at org.simpleframework.xml.core.Source.getOverride(Source.java:360)
at org.simpleframework.xml.core.Factory.getConversion(Factory.java:207)
at org.simpleframework.xml.core.Factory.getOverride(Factory.java:139)
at org.simpleframework.xml.core.ObjectFactory.getInstance(ObjectFactory.java:63)
at org.simpleframework.xml.core.Composite.read(Composite.java:139)
at org.simpleframework.xml.core.Traverser.read(Traverser.java:92)
at org.simpleframework.xml.core.Persister.read(Persister.java:625)
at org.simpleframework.xml.core.Persister.read(Persister.java:606)
at org.simpleframework.xml.core.Persister.read(Persister.java:584)
at org.simpleframework.xml.core.Persister.read(Persister.java:543)
at org.simpleframework.xml.core.Persister.read(Persister.java:521)
at axoloti.object.AxoObjects.LoadAxoObjectsFromFolder(AxoObjects.java:249)
at axoloti.object.AxoObjects.LoadAxoObjectsFromFolder(AxoObjects.java:214)
at axoloti.object.AxoObjects.LoadAxoObjectsFromFolder(AxoObjects.java:214)
at axoloti.object.AxoObjects.LoadAxoObjects(AxoObjects.java:306)
at axoloti.object.AxoObjects$2.run(AxoObjects.java:351)
at java.lang.Thread.run(Thread.java:745)