Depending on what you have engaged, it can get quite expensive as the combine/grain modules are somewhat costly, and there’s 8 of them. My old mac mini (dev computer) idles around 15-20% with nothing happening.

1 Like

Good to know actually

the idea seems similar enough that i always linked the two

If anybody has suggestions on how to best handle this, I’m open to the idea. At the moment the ‘pitch’ thing doesn’t show the reality of everything, for example going into reverse doesn’t show “-1.00”, and halfspeed doesn’t change to “0.50”, so it’s kind of its own independent parameter, with half/reverse (and the monome equivalents) being independent of that.

I could change it to be “real”, but I think that would get really confusing as it’d be hard to tell whether it’s the GUI half speed, or manual control, etc… Plus seeing a pitch setting of “0.06” may not effectively communicate how many octaves down that is, visually.

I could ditch the “number (pitch) + button (half/reverse)” paradigm altogether, since in the end, it’s only a single speed value that’s being fed to karma, but then you lose the MIDI-mappable access to common playback speeds.

all this is in reference to monome-specific usage:

I guess the gradient is the thing I need quick confirmation of – it seems that doing the gesture for ‘slower’ a few times will eventually bottom out, as will the gesture for faster. I don’t need the exact pitching, I just need to know that I set the top row down three times so I have two more down to play with, or can go up a few times before I get back to the original pitch.

the way that the tilt shows me where I’m at is perfect. I’m wondering if there’s a way to use the three alt buttons that are unassigned as a way to toggle between ‘tilt’ ‘pitch’ and maybe a ‘reset block’? that way, the gradient in the middle would show me how far up or down I’m pitched on a row. and then the gesture for ‘pitch reset’ could be easier to access by pressing in the middle of the gradient and would be stored away from accidental multitouch in the play view?

for the case of having ‘reset block’ functionality: I played with TPB for a few hours today, loading up a few songs in an ableton set that I hadn’t yet finished and let them play through TPB as an external effect. I had a fucking blast and found a new way of working, it was truly transformational! only problem is I didn’t have a clean way of clearing the buffers or adjustments I had made from one song to the next, short of restarting the app. in a live setting, this would be stressful. I am likely totally missing something already built in, but if there isn’t a quick shortcut to reset a block, could this be considered?

truly, thanks so much for the tool. it’s perfect as is, just found some me-specific things that might have resonance.

Holy Smokes!

This is Badassery at the next level! And, so far, it is working brilliantly! WOW! Blowing my mind!

I am in love!

-M

Yeah, having some kind of visible ‘state’ would be useful, especially since I plan on moving the slicer/grain/combine/pattern stuff out of the alt menu eventually. I’ll think on this as I want to keep the interface kind of clean at the same time too. Maybe the alt menu can allow you to enable things but also show a dim state too (kind of how the playhead is visible ‘behind’ the alt menu).

(There’s some cool stuff in there that limits the amount of steps up/down, depending on where the master ‘pitch’ is set. Basically it’s limited to -8.0/+8.0, and if you manually adjust pitch, it lets you go up/down, but still stops before that, so if you turn the pitch up to 3.5, it will only let you go jump up in pitch once using the ‘double fingering’)

What do you mean by ‘reset block’, like restart from the beginning? Having something that lets you transpose quickly might be interesting, so you can do more erratic jumps. I was thinking of keeping just up/down octave, so it’s kind of like a MIDI keyboard type octave down/up control that you can move through quickly (for example, if you hold down 0 0 1 1 0 0, you can quickly scroll through octaves by alternately pressing 1 0 1 1 0 0 and 0 0 1 1 0 1 (with the middle 2 never being released)). (it’s easier when you use two hands, with the outer finger ‘crossing over’, piano style)

2 Likes

the terminology got away from me – I just mean an individual reset for each instance of a block (which I think is what you call the combined house for the looper, grain, varispeed, etc modules, right?), a single button on each grid lane that will reset all the changes done to that block’s parameters.

currently, if you record into a block’s looper and then mess with the pitch and tilt or even turn on the grain or slicer, all those changes need to be individually undone if you decide you want to record something new into that block’s buffer (which requires more short term memory than i have). it’d be easier to do if there was a single command that could reset all those changes in one go: clear the looper buffer, reset pitch, reset tilt, push all modules back to their neutral state.

you’ve done a remarkable job with varibright on this app. the background playhead, the use of gradient, even the opening animation: all wonderful. I think co-opting the visual split of the alt menu’s left side triggers from the tilt gradient would be a good way to bring three more triggers onto the right side. so when you load the alt menu, you have the dimmed varibright four, eight empty spaces, then a dimmed varibright three, and the fully lit alt menu button. when you hit a right side button, it illuminates the varibright seven button gradient so that those eight buttons appear contextually to whatever button on the right is fully activated.

what’s the maximum length of a ~karma buffer?

Damn. Now I really have to get a 128 kit. Damn you Rodrigo Constanzo. Damn you to hell!

2 Likes

60 seconds at the moment, although that’s really arbitrary.

I ask because it dawned on me, with buffers in the 5-10min range this would make a quirky 8 track recorder

That’s an easy change. If you go inside the karma_sampler.maxpat, and inside the buffers subpatch (yikes, I left this patch a bit of a mess, hehe). You can change the pink [buffer~ #1cg 60000] to whatever length you’d like.

Looks like I had that blocking some funky ‘maximum’ calculation, so that might impact how other bits are calculated down the line (I think that was for the buffer slicing/onset detection of the slicer module).

1 Like

I don’t have a device that can run fugue but it looks like great fun
mixing this idea with monome controlled karma modules sounds fantastic

ok rad

i will def be tinkering with this and report back with audio evidence

1 Like

[quote=“Rodrigo, post:80, topic:247”]
the big empty stripe at the bottom is kind of funny looking.
[/quote] how feasible is a barebones mixer to fit the space? i found myself want to boost and cut certain karmas when i did a quick test run last night

1 Like

Easy peasy. You can just add this to each of the ones you want to control. Each submodule has similar naming structures (e.g. [prepend combine rate] will control the rate of the combine module).

I’ll probably have “karma core” level presets, which will include a ‘default’ option I think. I need to think about how I want to structure a local/global preset system, as that’s a big part of what TPV2 will be about.

Lost me here. Do you mean like an alt-menu within the alt menu?

3 Likes

precisely. If you’ll excuse the insanity of the following, I made some visuals because I realized how confusing text about a visual thing is.

for acclimation, here’s how I understand the current TPB alt menu structure:

I propose the following (I accidentally inverted ‘grain’ and ‘combine’):

I think that the four buttons to the right of the tilt (termed ‘multipurpose gradient’ here) can be utilized to change the context of the seven buttons in middle. I think it makes sense for tilt, pitch, and volume to be elements that are readily available for grid-based manipulation.

so when you hit ‘alt’ you get this:




and ‘tilt’ would look like this (no change):



but ‘pitch’ (or playback speed, really. oh christ, I just realized I’ve been talking about playback speed this whole time. FAAAAAACK.) would look like this:

I think that having a pulsing button to indicate pitch would be helpful to separate visually from ‘tilt’ and for both quick changes and general lay of the land. L is slowest playback speed/lowest pitch, R is fastest playback speed/highest pitch.

then ‘volume’ would be:


here, the gradient is used to show loudness – L is softest, R is loudest.

and then ‘block reset’ would set everything back to preset. if you recorded into the looper and engaged ‘slicer’ and made a pattern and messed with pitch and volume, pressing ‘block reset’ would clean the slate.

really hope this isn’t a mess or too much to have posted. I am also very sorry to all for hijacking the latter half of this thread. just want to provide feedback in the most helpful way I can and my excitement really overpowered my self censure. I also COMPLETELY understand that this is an intermediary app, but it’s exactly how I want to work with audio processing, so TPB has really struck me in a profound and primal way.

thank you @Rodrigo! thank you all!

3 Likes

Rodrigo - you’re probably sick of hearing suggestions, but a single keypress to randomise the spread of playback speeds across steps, maybe starting from a given amount of tilt, would be cool. Just a thought.

2 Likes

Rodrigo! Crazy cool app. You’re a hero.

Some buggy stuff happening for me:

  • Recording into a buffer seems fine, plays back fine, but if I stop that row it won’t start back up again.
  • About half the time the “playhead” chaselight doesn’t appear on the monome. Doesn’t seem to be channel/row specific.
  • Dropped the monome connection once or twice.

+1 for a “buffer clear” option and some sort of integrated volume controls.

Do you mean like choosing a random tilt, or like an altogether random distribution of speed? (so fast/slow/medium/fast as it moves across?).

Not even with GUI play control? Does it show up as being recorded into still?
There’s a small bug I’ve found in karma~ which I’m looking to fix with raja, that when messages arrive very quickly (e.g. “record, stop, play” they don’t all register correctly. So I’ve had to incorporate a workaround that delays each message when received that way, but it’s possible that it’s not ‘bulletproof’.

Interesting. If you go to the alt-row, do you see a ‘dim’ version of the playhead, or no playhead at all?

I’ll stick a temporary MIDI mappable mixer at the bottom of the next beta while I figure out a long term solution. I think this will come from a UI rethink where each row has more local controls to it, and maybe even I/O routing options (so being able to send loops into other loops).

@dan_derks
Will read/respond to yours once I’ve woken up a bit more! (uber detailed!)

3 Likes