I would love a simple midi looper (mono would be simpler, but poly would be amazing), with gate, note, velocity and maybe a few extra CC's as inputs, as well as a clock input (or start / stop), and have the same outputs too.
I tried to make a mono version sometime ago with tables, but it doesn't work very well
I could be really useful for looping live midi through a load of sounds / instruments, and be able to play around with the synths while they loop (not like audio).
Module requests
Just looked at a midifile and I wouldn't know how to read these...
Have you checked my pianoroll module? it can record polyphonically and play up to 8 voices. Just connect internal CV2midi modules to play polyphonic synths.
Thanks, I'm quite sure your pianoroll module is what I want, I didn't really mean midi in the first place, just note and gate information seems great. I'll test it out strait away
I've just tried work with the pianoroll module, but I can't seem to find the "8voice2rec" submodule, or the "CV2midi" either.
I can't seem to take microtuning or bends either. I was imagining something with a yellow input for clock input (fed with a high speed square lfo for high precision values) a yellow input for gate, a few blue inputs (for pitch, velocity, and touch or whatever) and a yellow "record" input (and switch) and a seq length input (and selector).
on output you would have just the gate, pitch, velocity and touch.
I imagine this very much as a mono sequencer, but with a lot of expression (pitch and aftertouch, and maybe more).
It's just a load of tables being written then read, but I can't seem to get the gate information right when doing long notes with long decays (the tables don't latch properly or something silly)
here is my simple version (that only works with no decay sounds)
The gate in also acts as a through when you record, so that you can hear it while it's being played (and recorded)
I would love the same kind of object but that would work :), and maybe something more HD with a 24ppq resolution, where you could just chose the number of beats for the sequence.
Anyway, thanks for all your great stuff, I'm still discovering old modules everyday, so much slower than it takes you to create new ones.
here are the subpatches I use:
8voiceMidiSplit.axs (8.6 KB)
8voice2rec.axs (9.2 KB)
for aftertouch/pitchbend automation you can just use those table/read modules in conjunction with the pianoroll
NEW MODULES & UPDATE
OSC
"guitarAllocation"
a table allocation module to use with the guitarTableOsc and guitarTable modules. Instead of making a new table for each extra polyphonic voice, it just creates 1 table for all the voices.
It has a "size" setting to set the size of each created waveform (8129 is a nice low-distortion size) and a preset setting to set how many waveform-presets can be made.
"guitarTable"
Added a preset control. Now you can create multiple quitar-waveforms in a single table and select from those.
"guitarTableOsc"
added a preset control. Now you can set each (polyphonic) guitarTableOsc to read it's own guitar-waveform or just be able to select from a set of created waveforms.
"guitarDualOsc"
this module has a second wavetable that plays at a slightly different rate. The pitch is offset by a LFO that is synced to a signal connected to the sync input. The tempo-synced rate can be set in integer ratio's (M is multiply->faster, D is divide->slower). This creates extra phaseshifting.
Also added a preset-selector on this module.
NEW MODULE
OSC
"hrmMorph'
quad morphing sine oscillator
morphs both through a scaled pitch (use scaleBank module from my harmony folder) as well as harmonic overtones.
-use a triangle LFO or smoothed-out LFO to control the mix-inputs->morphs through the notes/harmonics.
-noteQuant and hrmQuant set the amount of pitches/harmonics that will be played when mix goes from zero to max.
-hrm/noteStep sets the stepsize of each next played note/harmonic.
-noteRepeat wraps the note-count, making it repeat after the set amount of steps. For the notes, you have 2 patterns which are added together before being "ranged" between minimum (zero) and maximum (noteRange).
-jump sets the offset size that will be added to the note each time the repeat wraps the count.
-hrm/noteRange sets the maximum range for the harmonics/notes.
-the note-pattern consists of 2 generators, so more complex patterns can be made.
Don't forget to add the scaleBank module!
This oscillator could be used alongside another oscillator to give it some "shine". As long as the pitch-controls are set the same and the other oscillator is using the "46scales" module to scale the incoming pitch, they both follow the same scaling.
NEW MODULE/UPDATE
LFO
"qtsLFO3"
quad tempo synced LFO
now the LFO has a selector for choosing between triangle and sine waves. Use this LFO, set to triangle, to drive the mix-inputs of the tablemorph and harmMorph oscillators,
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.