tml - tehn micro looper


  • simple yet effective - this is serious fun

  • v0.22 updated with ability to load audio into each buffer

  • we like TLAs

  • From the quick start: "Adjust second encoder to raise voice volume."

    Could you explain this a bit more? Are you just referring to the lfo volume effect controlled by the second encoder, or a way to somehow adjust the input level while recording?

    It would be cool to be able to fade voices in and out. Would it be possible to add a way to control individual voice level? Maybe a press of the second encoder switches it to level control for the voice in focus? Or maybe press and hold a pad in the fourth row, then press the pad above for level up, the pad below for level down (kinda makes sense to give that control to those poor, lonely pads that are only getting to display the vu meter...)


  • Okay, I get the volume deal now. You can already use the second knob to adjust voice level, but you need a really steady hand to adjust it without getting the lfo effect going.

    So I guess what I'd like to see as a push-turn function on encoder 2 is really volume threshold control. So the lfo volume range is relative to the max set by the encoder.

    Does that make sense?

  • great app! thnx

    on my grid, rows 1 and 2 step an octve in pitch in the respective buffer

    and somebody show this to william burroughs, he may want to rewrite electronic revolution

  • thank you !

  • followed instructions thusly:

    Select grid device and press connect button. [check;256]
    Select arc device and press connect button. [check;arc4]
    Enable DSP. DSP button should be lit yellow. [check]
    Select input source. [check] You should see input meter activity. [check]
    Put voice one in focus. [check; button 1;8 lit] LEDs on arc should light. [check]
    Press and hold record button. [check; button 1;7 pressed]

    when I press record button it lights, I have input meter on tml showing activity, but when I press button 1;6 after holding down button 1;7 and releasing to stop record, I get no activity on the grid and no sound output...

    Arc encoders 1 and 2 are lit and responsive.

    Am I missing something simple here?

  • row 6: voice enable button?
    (not mentioned under quick start)

  • ya pressed that... row 8 is on so there is focus, then I hit row 7 while the tml input activity meter is going (plugged in synth)... then I let go of row 7 and hit row 6 and nada.

    I am mimicking the video in the docs page, which looks like row8, then row 7, then row 6. When I hit row 6 though there's no playback although it is lit up, as if it did not record at all.

    All other values in tml are default if that helps. 2011 mbp.

    dsp driver coreaudio, input device line in (which I know is working because there's activity in the tml input meter) output device internal speakers. Playthrough input "not supported."

  • have you tried pressing the buttons in row 1 or 2?

    i'm really enjoying the simplicity of tml. i played with the same 6 samples for a long time, and kept things constantly evolving. i'm thinking of how to capitalize on the extra real estate of the arc4 though, can't help it.

  • @GetTheLEDOut

    Have you tried loading some samples into the buffers?
    Are you able to get audio out of max out from other applications?

  • @GetTheLEDOut

    Forgive me if I'm stating the obvious, but once you press a pad in row 6 to enable the voice, there will be no sound until you move the 2nd encoder to adjust the voice volume. Though I know you said both encoders are responsive...

  • I fixed it sort of... first problem was I didn't have the tml output level set to above zero.... knew it was something obvious.

    Now I get sound, the last issue is I'm not seeing any light response on rows 1-5. I can press rows 1-5 to jump around the sample but no lights.

  • @gettheLEDOut i'm not seeing any meter activity in those rows either, maybe a little flicker on row 1 occasionally.

    @hypnosapien voice level control on the second encoder would be great if it worked almost exactly like the first encoder. level could go from zero to full and back to zero around the ring. a held press-turn would expand/contract the boundaries of the possible levels. a regular turn would adjust the speed of the change of the level within those boundaries, and the led would bounce off of each boundary when reached. a momentary press then turn could move the boundary zone around the ring. when boundaries were set to minimum, the level would be static as selected by the position around the ring. this way maximum/minimum level and speed of change could be controlled with one encoder. hope that makes sense, i wish i had time/skill right now to do this and intend to in the future but it might be a while.

    edit: my first recording with tml:

  • this is such a fun instrument to play, like discovering something previously hidden, a reductionist audio microscope..
    really immediate and responsive, often beautiful...

    all seems to work well here

    that is save for press turns only working three out of every five times or so.. it's often stuck in sample width selection after releasing the encoder, a quick swap to another row often frees it though not always. -when using it carefully to " compose " with in a live situation it can really through things out.

    anyone else getting this issue, ?
    / thoughts as to it being hardware or software related ?


    OS 10.6.5
    runtime 5.1.8

    end edit:

    -while possibly not relevant ( at least to this thread ) there's similar unpredictable behaviour in other apps as well.
    plates, selection of states works only occasionally.
    In the arc two grainstorm edit push turn on the right encoder is unpredictable, only registers a push to select the filter as opposed to volume 1 in every 10 tries ... :[ )

    I second hypno|sapien and goik's ideas re: individual level control, either one ( or concievably both ) ideas would be great..

    many thanks to tehn and stretta for sharing this patch, so much fun...

  • row 1 & 2 can be used to raise the pitch of the audio up / down one octave.

    can't believe i never noticed that.

    great application!

  • Just got an arc2... Amazing instrument.

    I'm going crazy with all these incredible apps!

    tml is so elegant, accessible, and deep. I'll definitely be using it in my gig at The Tank next week!

  • hey all,

    i've just added a new version of tml that supports 64/128/256 and arc 2/4. a few bug fixes and some additional functionality included.

    all feeback/bug reports/feature requests happily received.

  • Also not getting led feedback on rows 1-5. loving the app tho.

  • v031 released:

    fixed the LED feedback bug on 64/128 - thanks to r1v1era/flyingoctopus/watson
    added midi record functionality


  • was just taking a look at the patch... for the 64 version it appear that you have not connected the number box to change the incoming midi note to the route object... just a heads up

  • so great!

    trying to send audio to Ableton but not having any luck.

    Any suggestions? I'm stuck. Thanks!

  • mac or pc?

  • mac, i tried soundflower but couldn't get it to work. maybe i'm just doing something wrong.

  • yep, sound flower's the way to go.

    what do your dsp options look like in tml?

  • here's my dsp options

    I wonder, has anybody put this into a Max4Live patch? How hard would that be for a newbie programmer like myself?

    thanks for the help

    640 x 478 - 197K
  • hey all

    i've just uploaded v032. i've made a couple of small improvements in line with your requests:


    added vu sensitivity dial in the ui
    increased the playback speed encoder range from 3x to 6x
    added adjustable gain and output channel for each voice

    head over to for the download.


  • oh sweet! nice one.

  • @rj

    You've got the i/o options covered up with the menu!

    Regardless, select soundflower 2 ch as the driver. select your audio interface as the input or whatever the input device might be. In your Live prefs, select soundflower 2 ch as the input and your audio interface (or whatever you might be using) as the out.



    awesome! will test today.

  • eureka!

    not sure why it wasn't working before, but running great now. Thanks very much for the help Watson.

  • excellent!

  • i probably need to fiddle with the max dsp settings, but can two applications (in my case, renoise and max) share the same sound device at the same time?

    basically, i want to have an external audio source being piped into tml, and then route tml output into a channel in renoise, which also has a bunch of send channels set up which are routed out to a number of different external fx pedals.

    however, i couldn't set this up at the weekend with my motu ultralite. one application would always "steal" the ultralite focus.

    am i just being stupid? this should be possible right?

    is this how other people roll with tml?

    ext instrument > TML > DAW > ext fx > DAW?

    ...i'm on osx.

  • @tini

    I was having a very similar problem the other week.

    Someone recommended Jack and soundflower. Neither of which did it.

    Creating aggregate devices 1) didn't work 2) borked max runtime to the extent that I had to reinstall it.

    I remain frustrated. :(

  • what i'm going to try is routing all the internal/external stuff into and out of the DAW (in my case renoise).

    and then use two rewire devices, one to send audio to max, and the other to receive audio from max..

    if that's even possible. does rewire allow for bi directional traffic at the same time?

  • I don't know much about renoise. Is it not available as a plugin version?

  • nope. the DAW shouldn't make a difference. it's a rewire host. but trying to set max and to have the same audio device is bad mojo.

    i'll see if i can set it up tonight.

    edit: looks like rewire is one direction only. poop.

    peeps must do this in mlr all the time though no?

  • I use Live so I'm thinking maybe I should purchase maxforlive to achieve this. But can m4l run any max app or does it need someone to have converted it? :S

  • There are some adjustments that need to be made for m4l, but they're very straightforward...

  • I don't have a max license so I wouldn't be able to change any patches myself. Still it would solve my routing problems... :)

  • i can't promise an immediate turnaround, but if you let me know what you need i can try and mod it for m4l for you.

  • Oh, well I was just thinking aloud really. I don't even have m4l yet so couldn't ask you to do any modding yet. I'm sure no one would object to tml being ported but don't do it specially on my account. :)

  • an m4l port of tml would be well loved on my part. you're out-doing yourself already tenmen!

  • m4l would be amazing! i was looking into that last night

  • I actually did an m4l port for myself last week so I could take a look at the process. I'm out of the country till Monday, but I'll test and upload next week. I thought m4l ports were going out of fashion!

  • a m4l port would be awesome. explore sync options.

  • @away message sync is an interesting question. i've always quite liked that tml finds its own syncopation....

    where would you envision the sync anchor being? beginning of the loop? reset on the 1 or time stretch to fit?

  • ... what might be interesting would be to use an fft or similar to extract the meter... could then try and sync that regardless of loop placement.....

  • it's hard to say without feeling it out. beginning of the loop / reset on the 1 could work.

    i like how tml establishes syncopation too, but the ability to 'sync' quantized amounts would open up new possibilities. and you could always turn 'sync' off.