App - The Party Van

@Rodrigo, please don’t make me buy an Arc4 :wink:

1 Like

Hehe, we’ll see what I can do.

The arc2 will definitely work with it, you’ll just have 2 less knobs is all. That scales easier.

(a little OT, and somewhat inspired by the 2020 app thread in how cool that app looks, but are any of you graphic designer types and/or is anyone interested in helping me revamp the look of tpv for tpv2?)

1 Like

Yes, I would love to help with UI design tasks. (Happens to be my day job as well.)

I would be sincerely absolutely thrilled to help out. We should chat more about your ideas. TPV is already one of the sexier Max apps around, so I’ll be eager to hear about how you’d like to improve on it.

And I agree that 2020 looks super slick. (I really liked the way the grid sequencer elements resized in the videos)


Man, that would be amazing! Like super super amazing!

In general I think I want to keep the general ‘tightness’ of it, with everything being compact, and number-oriented-ness, but really like how differentiated each section of 2020 looks. Plus, it doesn’t looked as cramped (as tpv), even though there’s tons more (visual) things going on.

It would actually be really interesting to hear your thoughts on UI stuff, especially as you’re an actual designer!

Probably best to move this out of this thread as to not jam it up, but my email address is .




So here is the first beta of Block Party: <==updated!

(it’s packaged up as a “Max project”, so you shouldn’t need to deal with any externals or anything like that, it should just run as is)

I’m still working on the pattern recorder, so at the moment it only captures/plays back on-screen controls, but everything else should be working.<== (no longer the case, pattern recorder is implemented)

The basic gist is that it’s 8 rows of newschool ‘karma core’ modules, build around varispeed 128s. Everything is basically new and improved under the hood, but the main layout and control paradigms are different.

Here’s the mapping details from the ‘info’ window in the patch:

Each row represents a karma core module (looper, slicer, grain, combine, pattern, and brain modules).
Everything is controlled by using monome “fingering”, which can be used anywhere on the row.

The fingering patterns are as follows:
1 = play from that position
1 1 or 1 0 0 1 or 1 n 1 = create a loop between two points
1 1 1 = stop
1 1 1 1 = record (or overdub, if in play mode already)

1 0 1 1 = half speed
1 1 0 1 = double speed
1 0 1 1 0 1 = reset speed
1 0 1 0 1 = reverse

Fingering combinations can be combined, for example:
1 0 1 1 0 0 0 1 0 1 0 1 = half speed AND reverse
1 0 1 0 1 0 0 0 1 1 1 = reverse AND stop

These fingering combinations can happen anywhere on a row:
0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 = play from 5th slice
0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 = reverse
0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 = stop

Pressing and holding the right-most button brings up the alt menu. The alt menu allows you to control the “tilt” of the row, as well as enable the slicer/grain/combine/pattern modules.

The alt menu is broken into two main parts.
The first four buttons are the on/off for the slicer, grain, combine, and pattern modules, respectively.
The middle 7 buttons are the “tilt” controls. When in the central (default) position, all sample slices are equal, with increasingly eased in and out versions moving outward from there. When changing the “tilt” or the row, everything recalculates so any loop that has been defined will be redefined based on the new tilt.

Here’s a real short video showing the general ‘lay of the land’ for a single row:

So the main things to test are just the general playability and control of the “fingering” paradigm. I think I have it tuned pretty nicely, but occasionally some things misfire. It’s a tradeoff between accuracy and latency, as is often the case in programming.

I put a ton of time into the different animations for each mode, so let me know if they are distinct enough and/or communicate enough about the state of the system. Moving completely away from one-to-one button mapping and state LEDs has required a bunch of signifiers and stuff to communicate info (e.g. what happens when you engage half or double speed).

Other than that, just have a play with it and let me know if any issues crop up.

Once the pattern recorder is working fully/correctly, I’ll post a 2nd beta that includes that along with any bugfixes that have cropped up. Plus I want to revamp the GUI, though that might properly wait until TPV2, with Block Party retaining that oldschool TPV1 look. Either way, the big empty stripe at the bottom is kind of funny looking.

Also, here’s a clarification on what the ‘tilt’ does. It applies the following ease in and ease out functions to the karma~ playhead, jumps, and loops. So it gives you higher resolution towards the ends, and overall different sized loop slices in the same row, so it doesn’t sound so ‘evenly spaced’ overall.


If anyone uses windows, I’d like to include the MuBu externals for Max in the same package, but for some reason they are distributed as an .exe. So if a windows user is up for downloading/installing the 32/64bit versions of MuBu from here and sending me over the package folders that these installers presumably generates, I can add them to the ‘package’. This should hopefully solve the mess of having to manage/install a bunch of different externals.


i hate you
don’t make me need a 128 again!


Even without a monome, all the guts are still really useful, with everything being a better version of what was there before. But the monome mappings/animations are pretty sweet I gotta say, hehe.


Could potentially use that space for a grid fingering cheat sheet.


it’s perfect

i’m all about misappropriation but these gestures are so logical
part of the app dna

fantastic way to get everything on one panel

my mind jumps to this this and this immediately

building on what soren started which has spilled over almost all the monome trilogy controls

such a simple yet revolutionary idea!

oh blimey. that’s great.

The ‘reset speed’ fingering is slightly awkward, but it seems to need to be the way it is, given the other fingerings that are available.

Yeah I know what you mean. I wasn’t going to include it with the presumption that you could just ‘walk’ your way back to reset position, but it works out well since it’s a combination of both half/double fingerings.

For TPV2 proper I might add some more fingerings as I’d like to be able to turn on the slice/grain/combine modules quickly too. Will see.

1 Like

how did I miss out on triggers?!

Yeah I was bigtime inspired by the trilogy modules, in terms of mapping/interface (though I’ve never used one). But given how I approached TPV1, that wouldn’t work with twice as many buttons. It would be a headache to remember what single button did what.

At the moment stuff is self contained, but it might be cool to explore cross row stuff later on. I’m going to add a feature where you can change any row to work off any buffer, so you could have 4 of the same module going at once, to do Fugue-like playback. It would be cool to have fingering that crosses rows that controls how the rows play with each other or something.


this is so great! this is exactly how i’ve wanted my life! ahhhh!

just been doing vocal layers/loops for the last 20 minutes, but already making fun stuff. can absolutely see how this will make its way into my live sets.

weird things (quite possibly my own misunderstanding):

  • everything maps correctly on screen when I change a parameter on the 128 (eg ‘pos’ on screen changes when I set a new position on the monome), except for the ‘reverse’ and ‘pitch’ on the loop module. for some reason those aren’t changing with my monome input, which makes it harder to quickly identify what’s happening with those parameters four or five blocks in (after I’ve forgotten what I’ve done to prior loops).

  • I don’t think my screen size is being accurately anticipated (see screenshots below), which makes the app massive and hinders quick glancing during performance.

  • I didn’t run into any issues triggering the pattern recorder, though it’d be useful if recording a pattern didn’t require interrupting the pattern playing to set end point. I know finger triggers are overloaded at the moment, though, and this is a minor request. if anything, it keeps things organic.

otherwise, good goddamn. thank you @Rodrigo. changing lives.

max errors re: screen size

app on screen (default)

edit: just realized I was running slightly outdated Max 7. updating to newest to see if that fixes window issues.

Yeah this is ‘as intended’ in that the monome-centric controls are independent of the GUI half/reverse. They work ‘underneath’ that layer, and take the GUI state as a multiplier (e.g. if you have the GUI set to 1.5 speed, double on the monome will go to 3x speed). Hmm, might be worthwhile to make all of that ‘flat’ so what you see is what you get (though the ‘half speed’ button would become problematic, as that only shows one of 8 possible speeds).

8 of the modules are pretty effing big. They don’t really fit in two rows of four either. Oops, I turned off scrolling too I think, so you probably can’t see the first few modules at all? Maybe I’ll leave scrolling on for now, until the GUI gets reworked.

That’s on my radar already. Sticking that stuff in the alt-menu is a good short-term solution, but the pattern recorder becomes a lot more useless this way as there’s no way to have it start/end exactly where you want as you have to switch over to the other screen. I need to figure out a sensible way to treat the on/off of those modules without overly complicating “fingering” in general.

re: mubu errors. Is anyone else getting that? Hopefully the ‘make project’ grabbed all the mubu objects that are needed but it’s possible that it didn’t, requiring the installing of the MuBu package manually. It’s my first time trying to use the project structure thing, and I’m still dubious of it actually grabbing all the dependencies it needs.

1 Like

scrolling would totally help, thank you!

makes sense re: GUI and monome split. any way to have visual synchronicity would help my short term brain, but your responses clarified those questions. thanks sir!

edit: update to 7.2.1 didn’t solve mubu. also, just noticed that pipo is also not found.