(the product formerly known as) Epoch

Official support for: loomer.co.uk
Locked New Topic
RELATED
PRODUCTS

Post

pinki wrote:
bungle wrote:1 month shy of 5 years, it really has to be the greatest plugin ever made at this point lol well either that or the biggest waste of developer time ever, i dont even dare to think what sequent could have been with this much development time !!
A slight exaggeration....3, not 5!
Stupid fat fingers on phone keyboard haha
Duh

Post

It just FEELS like 5 years. :P
? ? ? wrote:
colin@loomer wrote: I developed a lock-free event system for dealing with real-time parameter changes and interface synchronisation, which has already found its way back into Sequent.
What exactly is this? Can you explain in more detail please? Sounds interesting.
It's actually fairly boring, unless you're interested in the technical details of lock-free structures, but it's the method that all our plug-ins now use to communicate changes from one system to another. In the case of Sequent, for example, parameter change may be due to a preset loading, or tweaking the UI's rotary control, or the pattern changing, via MIDI or even (future teaser) via OSC. This system collates all the messages together in a lock-free way, which guarantees - absolutely ensures - that it will be handled in a fixed amount of time. It's essential if you want proper real-time operation.

It's a lot more complicated with Epoch - I've probably spent six months working on various lock-free and message passing routines over the past few years - but it means all changes can be made without interrupting the audio. It also deals with things like reclamation, (ie, how do we know that a module is safe to delete); a doubly-complicated issue because modules have both real-time and non real-time elements (and by that, I don't mean that the modules don't run in real-time, it's just that the non real-time elements - the UI, the arrangement, the scenes - exist on a different thread to the real-time audio thread.)

Once this is out of the door, if anyone is interested, I could take the time to write up the details of how it all works. It's very clever, if I do say so myself, although not necessarily pioneering to those who've already studied the literature. Still, with these routines now coded, I'd be happy to never have to think about this ever again; it's one of the most difficult areas of code I've ever tackled.

And apologies; I've nearly put myself to sleep just writing that, so I can't imagine how boring it must be for everyone else to have to read it!
Architect, the modular MIDI toolkit, beta now available for macOS, Windows, and Linux.

Post

Nah. As a developer in other areas of computing I'm very interested to read more about it. Maybe start another thread or if you have a blog where you out some stuff on...?

Thanks for the explanation btw. :-)

Post

Yes, an explaination of the programming involved would be very interesting indeed!

Opening that door is paramount though ;D

Post

Do I hear the jingling of keys, the sqeaking of hinges, the handle turning perhaps?

Post

No; what you actually hear is me swearing angrily at installer scripts and Linux virtual machines.

I can't remember who first brought up the subject of micro tuning, but I must admit I've become quite taken with various MIDI tuning presets. My current micro tuner patch, as simple and minimal as I suspect this could be, consists of just five modules (plus some constants, which define the various pitch bend ranges for each pitch class; a MIDI input module, and a MIDI output module.)

MIDI In goes to a Note Priority module [*1], which then goes to an Unpack Note module [*2]. We then take the unpacked pitch value, and perform modulo 12 arithmetic on it [*3], essentially producing a CV stream with 0 for C, 1 for C#, 2 for D, etc, up to 11 for B. This then controls a 16:1 switch (although we need only twelve of the 16 inputs, there is no harm nor cpu usage in leaving the unused inputs unconnected), where inputs 0 to 11 are connected to constants which dictate the amount of pitch-bend per pitch class.

This value is routed into a Pack Pitch Bend module [*4], which takes the trigger and channel from our Unpack Note and the value from the multiplexing switch. We then connect both the MIDI input and Pack Pitch Bend to the MIDI output module. Result: a simple MIDI micro tuner.

For bonus points, you may also want to use an Order MIDI [*5] module before the MIDI output to ensure that the pitch-bend messages occur before the note ons.

*1 Which takens a potentially polyphonic MIDI stream and produces a monophonic MIDI stream of either the lowest, highest, or last MIDI note. This isn't the only way of monophonic-ising polyphonic MIDI, but it's generally the one you'll use most.

*2 This converts a MIDI note to discrete trigger, gate, pitch, velocity, and channel CV streams. (There is also a Pack Note which takes the trigger, gate, pitch, velocity, and channel, and convert them to MIDI notes. The fun occurs when things are wired between these two.)

*3 A modulo module has two inputs, a and b, and produces a single value equal to the remainder when a is divided by b.

*4 Takes a trigger, value, and channel, and produces a MIDI pitch bend message.

*5 Order MIDI has two inputs and one output, and guarantees that MIDI messages to input a are processed before MIDI messages to input b. You can cascade them if you need to order more than two streams. A very rarely used module, but handy for those occasions when you have two MIDI message occurring at the same logical time and absolutely need one message to be handled before the other.
Architect, the modular MIDI toolkit, beta now available for macOS, Windows, and Linux.

Post

colin@loomer wrote:[interesting stuff] ... installer scripts ... [interesting stuff]
You can't stop us feeling cheered at reading those words :party:
Textur for ACE
After Hours for Lounge Lizard EP-4
Prism Sticks for Chromaphone 2

Post

:tu:
"Out beyond the ideas of wrongdoing and rightdoing, there is a field. I’ll meet you there." - Rumi
ScreenDream Instagram Mastodon

Post

Wait for payday, I'm broke.
You can't always get what you waaaant...

Post

colin@loomer wrote:No; what you actually hear is me swearing angrily at installer scripts and Linux virtual machines.

I can't remember who first brought up the subject of micro tuning, but I must admit I've become quite taken with various MIDI tuning presets. My current micro tuner patch, as simple and minimal as I suspect this could be, consists of just five modules (plus some constants, which define the various pitch bend ranges for each pitch class; a MIDI input module, and a MIDI output module.)

MIDI In goes to a Note Priority module [*1], which then goes to an Unpack Note module [*2]. We then take the unpacked pitch value, and perform modulo 12 arithmetic on it [*3], essentially producing a CV stream with 0 for C, 1 for C#, 2 for D, etc, up to 11 for B. This then controls a 16:1 switch (although we need only twelve of the 16 inputs, there is no harm nor cpu usage in leaving the unused inputs unconnected), where inputs 0 to 11 are connected to constants which dictate the amount of pitch-bend per pitch class.

This value is routed into a Pack Pitch Bend module [*4], which takes the trigger and channel from our Unpack Note and the value from the multiplexing switch. We then connect both the MIDI input and Pack Pitch Bend to the MIDI output module. Result: a simple MIDI micro tuner.

For bonus points, you may also want to use an Order MIDI [*5] module before the MIDI output to ensure that the pitch-bend messages occur before the note ons.

*1 Which takens a potentially polyphonic MIDI stream and produces a monophonic MIDI stream of either the lowest, highest, or last MIDI note. This isn't the only way of monophonic-ising polyphonic MIDI, but it's generally the one you'll use most.

*2 This converts a MIDI note to discrete trigger, gate, pitch, velocity, and channel CV streams. (There is also a Pack Note which takes the trigger, gate, pitch, velocity, and channel, and convert them to MIDI notes. The fun occurs when things are wired between these two.)

*3 A modulo module has two inputs, a and b, and produces a single value equal to the remainder when a is divided by b.

*4 Takes a trigger, value, and channel, and produces a MIDI pitch bend message.

*5 Order MIDI has two inputs and one output, and guarantees that MIDI messages to input a are processed before MIDI messages to input b. You can cascade them if you need to order more than two streams. A very rarely used module, but handy for those occasions when you have two MIDI message occurring at the same logical time and absolutely need one message to be handled before the other.
See I knew it!

This thing aint ever gonna see the light of day. 2016 if we're lucky but more likely 2017

Post

Today I am going out to buy a new fast MacBook for the waiting the next years with Numerology working!
At the end of 2014 there it were only a few hours more.
Have to find a developer here to define or to be more specific about the term "a few"

Post

Well "early 2015" is the latest. So that means...what....at the latest .....APRIL? I think May does not count as "early 2015"

Therefore absolute MAXIMUM time to release is, as of today...

93 days

(2015)

Post

It does seem like time is beginning to be of essence now.

The MAC boys are already sorted with Numo but...

Namm 2015 has seen a real surge in the development of cross platform sw/hw sequencing tools arrive.

The Koma elektronik komplex sequencer (daddy) midi/cv/gate $pricey$

The Beatstep Pro midi/cv/gate $reasonable$

The Korg SQ-1 midi/cv/gate ...ect $as chips$

People are craving step-sequencers and the devs are listening. I fear Colin might arrive too late to the party if he doesn't make haste and release soon.

Post

Don't panic ;-)
"Out beyond the ideas of wrongdoing and rightdoing, there is a field. I’ll meet you there." - Rumi
ScreenDream Instagram Mastodon

Post

Panic?

Isn't that the heightened emotional state reserved for when something suddenly happens that you were neither prepared for or expecting, thus causing your thinking pattern to be disrupted and your reactions compromised?

Not much chance of that then ;D

Locked

Return to “Loomer”