Jump to content

LFO sequencer


Sasha

Recommended Posts

I find out about this cool project of Eric Carter over flickr. It is LFO sequencer that can be very useful for dubstep, DnB style of music. I immediately thought it would be best to employ MB for similar thing. Hopefully it could be easy to do it with MB so it receives MIDI clock and output CC with predefined frequency  (1/2, 1/4 note...) and wave shape that is stored in memory for each preset?  It could have very simple hardware with just buttons to directly access the LFO presets. I`m out of programming but it might inspired some of you programmers to do it. I believe it could be simple to do the software based on the provided skeletons of maybe to modify clockbox. What do you think?

Here are some samples from Eric`s website:

http://ericarcher.net/wp-content/uploads/2008/09/synclfo-1-9-16-08.mp3

http://ericarcher.net/wp-content/uploads/2008/09/synclfo-2-9-16-08.mp3

http://ericarcher.net/wp-content/uploads/2008/09/synclfo-3-9-16-08.mp3

And, link to the page: http://ericarcher.net/devices/another-box-o-techno/

Check out his other cool projects.

Link to comment
Share on other sites

Search don`t give me any results for modular seq, nor I find some info in your wiki page so I suppose that is some secret project of yours.  :P

Will you bee so kind to tell us more about it? Have you already got some results with LFO sequencing? If you did please give us some info. Is there a way to integrate the piece of your your modular seq to the current MB and have something like this LFO seq?

Link to comment
Share on other sites

hah, no so much "secret" as "poorly documented"... my bad! You might have heard about the vX sequencer, this is an evolution of that. Or rather, a de-devolution of it - I got some extra power from the new core, so I can bring back all the stuff I had to remove to make it work on a PIC.

The short version:

You have a virtual rack in which you can dynamically insert or remove virtual modules.

The modules (yes you can code your own, and add them into the project) have a number (any number <127, defined as part of the module's design) of 'ports'. They'd be the equivalent of the jacks in an analog module, but you can read or write them (they're outputs and inputs, simultaneously).

You can patch the modules together, from any port to another. 

When a module's port(s) is updated, it runs a processing function (that's the 'guts' off the module design). That function should update ports which are intended as outputs. it's pre-processing, essentially.

Modules carry a timestamp which they can set themselves (say, by reading a clock module for the timestamp when it will tick next). Each time the MIDI clock (at 384ppqn) ticks, each modules timestamp is checked, and when this timestamp matches the time 'now', then the module is marked as 'ticked' and the processing function is called.

The 'outputs' of the module should already be pre-processed at this stage - they are ready to be sent immediately. This allows the processing function to quickly fill a buffer (each module has it's own buffer) with outgoing data. once all modules have done this, the buffers are sent using an output type (also extendable by coding your own) like MIDI or OSC or AOUT or whatever.

Sequencer/LFO/etc modules do not hold their own note data; rather, the data is stored separately in a 'pattern' (just an array of chars). Each pattern is like a 'layer' in MBseq, and can be shared with as many modules as you like. So for example if you have a pattern full of 0x7f, you can use it for all your modules where you want to send full velocity. Or you can have a pattern which you can use as a 'gate' for various modules, so in effect, you can store rhythms independent of harmonies. blah blah blah.

The long version is coming, when I finalise a few things .... i'm working on making the ports cross-compatible with all port types, like clock signals (32bit timestamps), analog voltage-style variables (8bit vars, like a midi note number for example), analog gate-style messages (1 bit, like an accent on a seq), etc).

I do have some "examples", but they are very basic (enough to show that the code works and is performant). It's not at a stage where I'm willing to share it publicly yet, but as mios32 development progresses I will post updates.

Link to comment
Share on other sites

I'll quit building that sequencer when I quit making music, which will be when I quit breathing ;) It never stops, I write new code on it at least once per week as a rule.... just sometimes it moves so slowly that people *think* it's dead/vapour. It's not, it's just not publicly available :)

Link to comment
Share on other sites

Alternatively to StrydOne's vX (which is the most flexible solution of course), you could simply use the MBSIDV2 firmware, and output the modulation path values via MIDI.

The easiest solution would be to write a special "AOUT" driver, which outputs MIDI instead of accessing the AOUT module. MBSID V2 has some nice integrated sequencers as well (e.g. wavetable or bassline), and beside of LFO you can realize portamento, ADDSRR envelopes, mathematical operations, Sample&Hold, etc. as well - and all this synchronized to the MIDI clock, with an already available user interface, and with an already available SysEx editor.

Best Regards, Thorsten.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...