Tag Archive: clock


DMX Sequencer Module…

Yes, it’s been a little quiet on the blog front lately, so I though I’d give you a little teaser of what’s in development…

DMX Sequencer V1.0The new DMX sequencer, which is very lovely. Can sequence up to 512 channels with 2 levels of brightness. Uses the timecode protocol for the clock signal so requires either Gener8 or the Timecode module to run, which is great because this means you’ll also be able to sync it to midi clock.

Great for working with L.E.D.

 

Available in the online library already : )

 

In the brewing is an updated version which allows for full RGB output, and a more refined UI. I will give full instructions and perhaps a video when it’s available. : )DMX Sequencer RGB

Gener8 LFO Tutorial

As promised, here’s a little tutorial on the new LFO feature in the Launchpad module 😀

This Tutorial goes through some of the ways to implement LFOs into your compositions by effecting controllers and settings in the (at) Filter module.

 

Gener8 Upd8 0.62

Today is the day for the latest incarnation of Gener8. Exciting new features. Bugs defeated. What more can you possibly want.

LFO 2 Full

NEW FEATURES 0.62

  • LFO generator integrated into the Launchpad module.
  • DMX input & output triggers from the Launchpad.
  • Novation Launchpad S Support.
  • Novation Launchpad Mini Support.
  • New media select mode behaviour in Novation Launchpad. Now changes media of ‘selected’ Clips, rather than ‘active’. Active Clips can now have their media changes quantised by using the Novation Launchpad’s media mode.

 

FIXED BUGS

  • Korg NanoKontrol2 issue fixed – (I hope, cannot test yet – please feedback if this re-occurs. The Nano2 is not yet supported, but should not cause problems as did with version 0.60-0.61.)
  • MIDI clock now produces timecode correctly in Loop mode.
  • Zero Division Error’ in Editor module corrected. Mostly – there may be more situations which cause this.
  • Duplicating Clips problem fixed. Copy / Paste of Clips now works correctly again.
  • Loading Clips from the library issue causing scrambled Clip data fixed.
  • Probably some other fixes I forget…

 

Tutorials of the new features to follow…

Follow1

One of the powerful but hidden delights of Gener8 is a sequencing method which can quickly produce small Clip sequences in a live situation: Follow Actions

So, here’s a short tutorial to help you master it.

Some salient points to remember:

  • Each Clip can have its own ‘Follow Action‘.
  • A Clip’s ‘Follow Action‘ will occur a set number of beats after that Clip has been triggered.
  • There are a number of different types of ‘Follow Actions‘ which can be applied: Increment, Random, Other, etc.

Step 1 – Prepare your Clips

To do any kind of sequence of Clips, we’re going to need some Clips to sequence. So let’s get started:

  1. Spark up Modul8, make sure you have a ‘New Project’ so things don’t get confusing.
  2. Open up the Gener8 Launchpad and Editor modules (these are the core modules and you’ll need to run these together).
  3. Once the Launchpad is ready, create yourself a few Clips on the 1st layer. To do this simply click on the preview panels on the empty Clip holders. NOTE: It’ll be useful for the sake of this tutorial to create your Clips in the same clip-slots as the image below.

Follow2

Step 2 – Assign Media to your Clips

You can skip this step, but the final result will obviously be more effective with media!

  1. Chuck some of your favourite media in your Media Panel. (select a few files from a Finder window and drag/drop them into the Media Panel)Follow3
  2. Activate a Gener8 Clip.Follow4
  3. Select a media for that Clip from the Media Panel.Follow5
  4. Activate the next Gener8 Clip (make sure the Clip trigger has stopped flashing – a useful tip when you are assigning a lot of media’s is to turn off the quantise to speed the process up)Follow6
  5. Select the next media for the second Clip. 🙂
  6. And so on, repeat until all your Clips have media assigned to them.

Tip: You can also change the media assigned to a Clip in the Clip Inspector (top left – Trig pane). There is a value for ‘Media’ number there.

Step 3 – Create a Follow Actions

As I mentioned before, there are quite a few different types of Follow Actions, but first we will have a play with the ‘Increment’ action.

  1. Select the topmost Clip by clicking on the media preview of the Clip in the Launchpad (it doesn’t need to be active, you can do this on the sly during your performance.)  Selected Clips have an orange square around them.
  2. Okay, the Clip Inspector will now be open on the top left of the Gener8 Launchpad, and will be displaying the properties of the selected clip. Select the ‘TRIG’ pane to view the Follow Actions settings.Follow7
  3. Next, set the Follow Actions menu to ‘Increment’. You will see a further setting appear, we’ll leave this at the default setting of ‘1’ for now. Time for some explanations…Follow8

How Does a ‘Follow Action’ Work?

Okay, now we have a Follow Action in place (in the above instance it’s an ‘Increment’ action), the next time this Clip is triggered, it will send out a secondary trigger which will occur a set number of beats after the initial Clip is triggered. You have options for which Clip is triggered next, and how many beats will occur before the ‘follow trigger’ happens.

You can only:

  • Trigger Clips in the same layer.
  • Delay triggers by whole beats.

Everything else is pretty much game, but remember – changes to a Clip’s Follow Actions settings will not take effect until that Clip is re-triggered.

Step 4 – Let’s make a Follow Loop.

We have an Increment action on our 1st Clip, let’s see if we can make a simple sequence which works in a loop.

  1. Select Clip 2 and make a further ‘Increment’ action for this Clip, only this time let’s set the ‘INCR.’ value to ‘2’.Follow9
  2. Now select Clip 4 and again make another ‘Increment’ action. This time we will set our ‘INCR.’ value to ‘-3’.
  3. Re-trigger Clip 1 and sit back while you sequence plays…Follow10

So, how is this working?

Our 1st Clip has an increment value of 1, which means it will trigger the Clip ‘1’ space below it, which is ‘Clip 2’.

Clip 2 has an increment value of ‘2’, so it will trigger the Clip ‘2’ spaces below it: ‘Clip 4’.

Clip 4 has an increment value of ‘-3’, so it will trigger the Clip 3 spaces above it: ‘Clip 1’.

Clip 1 has an increment value of ‘1’, so…. are you getting the idea?

Positive incremental value trigger Clips below the current Clip. Negative incremental values trigger Clips above the current Clip. Zero values simply re-trigger the same Clip.

Play around with the settings.

The most enjoyable way to learn something is through play, so have a go at changing the values until you’re happy with how they behave.

  • Change the ‘beats’ value to adjust the timing of the Follow Action.
  • Change the style of Action to get familiar with the different results.
  • Make sure you make some other pages to see how far this can go.

What are all these settings?

Okay, explanation time again. Here’s a little run through all the options.

  • Increment – Triggers to a specific Clip by using a numeric value (positive = move down, negative = move up, zero = re-trigger).
  • Random (All) – Triggers any Clip on the layer, on any page.
  • Random (Page) – Triggers any Clip on the same page.
  • Other (All) – Triggers any Clip on any page except itself.
  • Other (Page) – Triggers any Clip on the same page except itself.

Okay everyone, I’ve spent enough time on this now and it’s reached that lovely point of readiness. 0.6 is finally here!

Gener8-Logo-3d

Tons of updates and improvements. More bug fixes than I can remember.

It’s been nearly a year since the last release (where did all that time go?), and many of those hours have gone into refining almost every function of this module suite.

NEW FEATURES IN 0.6

  • Recordable and editable Timeline for clip changes.
  • Full native Novation Launchpad support.
  • Native Korg Nano control support.
  • Syphon input support.
  • Support for new Modul8 2.7 keywords.
  • Enhanced Scrub bar for stutter free scratching.
  • Clip transition auto-fade feature. (Available in the Editor preferences)
  • Improved BPM Tap functionality.
  • Option to disable Auto-Loop function during Logical Render. (Available in the Editor preferences)
  • Deselect envelope points by clicking off the selection in the Editor timeline.
  • Edit the keyword of envelopes by text input (useful for envelopes that are difficult to pick in the main Modul8 UI)

Timeline Module:

  • Record your Gener8 Launchpad performances.
  • Dedicated module to view and edit your recording.
  • Select recorded clip events, drag to adjust timing, or delete them.
  • Adjust loop range from the timeline.
  • Zoom in for fine editing of your performances
  • Beat snapping. When dragging clip events they will stick to the nearest beat for easy editing.
  • Quantise function to tidy up your performance.
  • Beat/seconds counter display.

Novation Launchpad Support:

  • Create, Select or Trigger clips in Gener8 from the Novation Launchpad
  • Novation Launchpad displays all active clips automatically – no MIDI mapping required.
  • Select or create layers
  • Scroll pages
  • Tap BPM
  • Start/Stop Clock
  • Arm Timeline recording
  • Dedicated page for selecting media.
  • Works alongside Ableton Live (User 2 Mode)

Korg NanoKonrol Support:

  • Works in nanoKontrol Scene 3, leaving you plenty of space to map you own controls.
  • Toggles between A/B layers (top push button 9)
  • Adjust layer transparency/alpha values (faders 1-5)
  • Adjust layer audio volume (knobs 1-5)\
  • Select active row (knob 9)
  • Trigger clip on active row (bottom buttons 1-5)
  • Trigger entire active rows (bottom button 9)
  • Dedicated crossfader slider (fader 9)
  • Show/Hide layers (top push buttons 1-5)

If you’re on the mailing list you will receive a download link, and if you’re not join up and I’ll send you the goods.

I’ll be posting more info about this update over the next few weeks so keep your eyes peeled. So much to teach you all. I am in the process of building more tutorials and updating the manual at last too.

Hope you like it!

8 )

One of the things I get asked fairly regularly about is how to sync Gener8 to other audio applications (Ableton, Traktor, Logic, Reason, etc.) via MIDI clock. So I thought I’d put this simple tutorial together to explain the basics.

I don’t intend to get into the nitty gritty of producing MIDI clock signals from each and every DAW out there (there’s plenty of info on the web for that, or in your favourite software’s manual, which if you haven’t already read it cover to cover I suggest you do as you’ll be surprised by some key features that are hidden away in there). And I don’t want to delve too far into getting MIDI signals into MODUL8 itself either, but I will say a little bit:

MODUL8 receives MIDI through the IAC (Inter Application Communication) Driver, so make sure you are sending your MIDI clock signals to IAC.

Also, be sure to check the IAC driver is enabled before starting up MODUL8. You can access your system MIDI settings with the ‘Audio MIDI Setup’ OSX app.

So then, we’ll begin by assuming you can get a MIDI clock signal into MODUL8. Okay then, let’s get this going…

STEP 1

Open up MODUL8, and get your GENER8 modules running. You’ll need a minimum of the Launchpad and Editor modules. (In this tutorial, we’ll be using the 0.53 version of GENER8)

Do not open any BPM module, and if you have one running, close it! – You won’t need it while running GENER8, and it will likely clash and may cause it to bug out. GENER8 has its own clock signal, which can also be accessed by other modules (info here for developers).

STEP 2

Start your MIDI clock running in your Audio app, and output it to the IAC driver.

STEP 3

Now is the time to check if we are receiving a MIDI clock in GENER8.

The Launchpad module has its Clock section to the top right. If all is good and well, it should be looking something like this:

Clock

You’ll notice the ‘MIDI CLOCK’ button. This toggles between external MIDI clock and GENER8’s internal Timecode.

Set the ‘MIDI CLOCK’ to the on position. Your clock section will now look like one of the following:

NoClockIn this image, the Launchpad is listening for incoming MIDI clock signals, but cannot find any, and gives the ‘PAUSED’ message. If you see this message, double check you are sending your MIDI clock correctly, and if in doubt: Restart MODUL8.

NoSyncQuantIn this image, the Launchpad has found a MIDI clock signal and tells us that its running at ‘BPM : 120.00’. If you see this, all is good. But we are still paused.

One more step…

STEP 4

A MIDI clock consists of 2 messages, the CLOCK message (which runs at 24 counts per beat), and the START/STOP message. So, although GENER8 is receiving a MIDI clock signal, it’s still waiting to be told when to Start.

Before you restart your DAW’s clock, now is a good time to check your Time Signature is correct.

The Time Signature of a piece of music is defined by the number of beats played in each bar. In most modern dance and western music this will likely be 4 beats per bar (Gener8’s default value), but if you happen to be performing to a Waltz you’ll want to adjust your ‘BAR BEATS’ value to ‘3’ (for 3/4 time).

Adjusting the Bar Beats value will also adjust your possible Quantize values too.

So, when you’re quite happy, restart the Clock in your audio app. Once this is done, GENER8’s clock should now look like this:

Synch-NoQuant

You may notice small fluctuations in the incoming BPM, but do not despair – GENER8 will even this out to give you a steady beat.

So, your performance should now be in perfect Sync with your audio app. Also note that any Clips using the Editors ‘Auto-Loop’ function will magically adjust to any changes made to the clock timing from your audio app. Good times. Lovely!

And while I’m at it, the ‘LINK MASTER’ option is to control Modul8’s Master Speed with the BPM. That’s this guy:-

M8 Master Speed

So then people, get creative!

Going back sometime last year, I had the fortune of being passed one of the new Faderfox controllers by Boris Edelstein (creator of Modul8). The controller is Boris’s own design and is being manufactured by Faderfox. For my part I was asked to come up with some modules for the device. Which I have done.

IMG_1292

User1Map

And here is a screenshot of the mod I have made.

For those of you on the ball you will know that with the release of M8 2.7 there is some simple integration of for the controller itself (including feedback for the LED’s etc).

What my module does is go much further, allowing full control of all your maps, some system set-ups for useful & complex procedures (media selection, syphon sources, colour swatches, sequencing), and allows you to easily produce an an infinite amount of patches, which can then be exported to XML.

For those of you interested you can download the manual.

The module will be available in the online modules library (through the app itself under the Modules menu).

Timecode Protocols

I have now finalised the Timecode protocol for the Gener8 modules. If you are developing your own module(s) and wish to access this data, here’s a brief explanation of how it works.

I have tried to ‘future-proof’ the Timecode, giving it a full spectrum of possible data types. And although I have made changes to it with this last release of Gener8 (0.52), I promise not to meddle with it further (at least not too much).

The Timecode data is output from the Gener8 Launchpad module, and is available through the sharedDict library as:
sharedDict[‘TIMECODE’]

The Timecode is of data type Dictionary, and contains the following values:

sharedDict[‘TIMECODE’][‘BPM’] – The number of beats per minute.

sharedDict[‘TIMECODE’][‘BAR_BEATS’] – The number of beats in a bar.

sharedDict[‘TIMECODE’][‘BEATS’] – The number of elapsed beats. This value is in the form of a list with values for Bar, Beat, Percent of Beat. (ie, sharedDict[‘TIMECODE’][‘BEATS’][0] = Bars, sharedDict[‘TIMECODE’][‘BEATS’][1] = Beats, sharedDict[‘TIMECODE’][‘BEATS’][2] = Cents,)

sharedDict[‘TIMECODE’][‘SEC’] – Elapsed time in Seconds (This could be used to calculate SMPTE values if required).

sharedDict[‘TIMECODE’][‘START’] – Boolean value to indicate if Clock is running. 0 = Off

sharedDict[‘TIMECODE’][‘LOOP_ON’] – The Timecode can also work in a looped form, this is a Boolean value to indicate if the loop is in effect.

sharedDict[‘TIMECODE’][‘LOOP_START’] – An offset value for the loop in beats. Do not use values of 0, a start value of 1 indicates there is no offset.

sharedDict[‘TIMECODE’][‘LOOP_LENGTH’] – Length of the loop in beats.

Note: Timecode values will be output when clock is controlled via external Midi clock.

Announcing Release 0.52!

Mostly bug fixes and problem solving with this release, although some important issues have at last been tackled.

  • MIDI CLOCK Issues:

Right then, as some of you may have noticed, depending on your external clock source, when running from MIDI clock, the Launchpad clock tended to drift slightly. It is now as tight as a pair of speedos!

Any issues that affected the Clip Follow function under MIDI clock are now resolved with this update.

  • TIMECODE Update:

I have also tightened up the TIMECODE scripts and adjusted the TIMECODE protocol, making it easier to use for the developers community, and also improving performance.

Unfortunately this involves the upsetting of any other modules which use the previous TIMECODE protocols. so I am including an update of:

(at) Timecode Viewer

(at) LFO (global)

(an explanation of the new TIMECODE protocols is available here.)

  • Improved Clip Transitions:

I have made some headway into improving the visual transition between Clips, you may have noticed that it is not always as smooth as it should be….

Here we have an issue which I thought I wouldn’t be sorted till the end, but I have made a major leap in understanding. Although I feel a real solution may be at the very limits of what is possible with modules.

To explain a little:-

When sending a keyword control to update the media, Modul8 has a short delay (depending on the codec type, file size, disk access time, etc. etc.) while it preloads that media before it can be displayed on the output. Previously I have ignored this, and the results have been quite ugly in many cases. With simple media changes this problem is unnoticeable, however when changing from Clips with a complex set of filters, scaling or other effects, Modul8 was updating the other control properties before the new media kicked in (usually about 2 frames), and therefore briefly applying those effects to the previous Clip.

So, I have introduced a user definable delay, so that the media can preload before the other controller values are applied.

To access and adjust this value, click on the ‘Preferences’ button in the Editor module. Here you will find a value called ‘Media preload’. The default value is 2 frames, which seems to behave fairly well. If in doubt, leave it alone, but if you are experiencing ‘Transition Glitches’, by all means have a play. I am considering introducing a clip specific delay – let me know what you think.

This, I feel is a solution in progress, and sometimes tight delays can glitch out Modul8 to the point where controllers in the main window do not correlate to the results on the output.

This is the kind of annoying issue that users should never have to deal with, but as it is so media specific I’m afraid the ball does land in the user’s court.

  • Other Improvements:

And it’s not all boring bug fixes and stuff, some new tools have been added too.

SET WARP POINT – Accurate setting of time warping point can now be applied at the click of a button. Note, warping is still in its infancy and I will be working to smooth it out in the future.

ZOOM TO FIT – Zoom the timeline editor to fit the In-Out points of your loop.

NUMERICAL ENVELOPE VALUES – Adjust envelope points with a numerical value. Just select the point (also works with time warp markers) and adjust its value. Certain controllers still go out of range of the timeline display, but the numerical value can overcome this. I will be addressing the vertical envelope range in future updates.

 

IMPORTANT NOTE:

If you are upgrading from version 0.51, the Editor module will bug out on first run. Do not be alarmed, just restart the modules and all will be happy again. This is a symptom of the transition to the new Timecode protocol.

%d bloggers like this: