app : The Party Van

  • Finished my first app. It's an all-in-one kind of thing which is basically my setup. Most of the apps I've seen are kind of one trick ponies, so I wanted something that could do a ton on it's own.

    It's here:

    http://docs.monome.org/doku.php?id=app:the_party_van

    For some reason the embedded video isn't showing up for me, but here it is:
    http://vimeo.com/34111855

    It's for monome64 (varibrightness), and eventually arc2 (should be having one arrive soon).

    It's pretty alpha as far as all the stuff I want to do with it, but what's there is working pretty solidly.

    I'm totally open to suggestions on improvements etc...
    One major thing I plan on adding down the road is a 'pages' type thing where the top row of buttons/leds lets you pick between completely different setups/modules.

    Description of the app:
    All in one setup incorporating many different modules/effects. For monome64 (and soon arc2).

    Features: 2 sample/loopers with overdub, halfspeed, and reverse functionality. Each with a sample slicer/dicer, granulator, pattern recorder, and MLR style buttons/display. Each looper can be put into 'lofi' mode to simulate the WTPA 8-bit sampler that inspired each module.

    A series of realtime effects (stutter, pitch shift, lofi, filter, dirt, reverb, and chopper).

    There is also a “reminder” row that circularly records all incoming audio and lets you play back any of it up to 10minutes in the past. (Great for real time sampling when you missed something awesome).

    There is no quantization. And all the modules play really nicely together. You can start recording a loop while in slicing mode, or switch between grain/normal and start where you left off, or record every knob wiggle in the pattern recorder, or reverse while creating your original loop etc…

    This patch is an ongoing project for me. It is currently in an alpha state as far as what I want, but each module is tested and working pretty solidly.

    Things that will get added: -Buffer analysis to dynamic preset creation (so depending on what you record into the loopers, it sets slice/grain/etc.. parameters intelligently). -Concatenative synthesis (realtime grain replacement of incoming audio with audio from the buffers) -Arc2 functionality. Arc stuff everywhere!

    created by: Rodrigo Constanzo

    prefix: /party

  • lovely app! wonderful video! live input! looking forward to trying it out.

    great looking interface also-- is this max6?

  • Thanks!

    Yeah Max6, I should've specified. There is one effect that is gen~ based, but it's "true-bypass" so I would imagine it works in Max5 if you just don't use that effect (Chopper).

    The interface is largely 'inspired' by stretta's Beat Factory, in terms of gradients and grey-ness. And a little bit of wood grain never hurt anybody!

  • I did some looking yesterday but couldn't find anything (hence my 'scanned' monome image for the instructions), but are there images of front panels in hi-res? Or vector versions?

    I threw the instructions together so people could diddle with it, but it looks pretty shoddy what I have.

  • awesome 'reminder' recorder, thats good functionality. Looks really nice!

    ps there is a pdf schematic of the top plate kicking about for the 40h at least, but im damned if my googlefu can dig it up...

  • I didn't specify much about it, but the 'reminder' row goes from left to right, with left being the most recent, and right being the furthest in the past.

    It's 10minutes total with sort of a log scale to the timing. So button one is 5sec in the past, button2 is 15sec, then 30sec, then 1min etc... working with the assumption that things that happened more recently will need the most stratification and as you go further into the past, it's a more 'general' type thing you are fishing for.

    You can press any of the buttons at once (so multiple presses work) and they play back for as long as you have your finger down (so not latching).

    The audio from those gets injected right at the input stage (before the input effects/loopers).

    I'll look around for that as I want to make a proper pdf of the instructions at some point.

  • !!! Can't wait to try it out!

  • This looks and sounds really great !

  • Cool! Will this work ok with non vari nomes?

  • there's a gif of an 8 by 8 grid you could use in the mlr tutorial...

  • That's a good question. I would hope that serialosc sort of backward-compatibilitizes stuff (making things binary) rather than just ignoring messages and spitting out error messages.

    The only things which are varibrightness are the snazzy startup sequence, then the 'recording' indications for the main loops and pattern recorders. Not really essential to the workings of the patch, but kind of pretty on the eyes.

    So I guess the answer is, I don't know!

  • i'm floored

    the video captured my imagination
    and i'm itching to get my hands on this now

    absolutely
    gorgeous song btw

  • wow..
    looks great..congrats on your first app..

  • Thanks!

    It's a real ambitious undertaking as nearly every part of the patch, as it was coming, was the hardest thing I'd ever done up to that point.

    All the logic around the MLR stuff alone was such a kick in the ass. I started off with that (really well made) tutorial on here and built on that. I know there's tons of stuff in my patch that can be done more efficiently, as I was just problem solving stuff as I went.

    A big thing for me, with this, is to make an 'all in one' type thing. Most of the apps I've seen are the 'single note' type jobs. Which is great, but difficult to incorporate into a practice as they are so specific. The video doesn't touch on too much of what it can do, it's mainly the loopers, the mlr stuff, and the grain stuff, but I'm planning on this patch being my 'always' setup.

    I do lots of quite varied stuff, so having a tool that works across that is difficult to plan.

    As a point of reference, here are my main two types of things I do:

    http://vimeo.com/21670658

    http://vimeo.com/31460738

  • Hehe, I feel like I can fight the good fight. Coming from a hardware based background/setup, shit was difficult to change, and I got good at using the setup I had, so I'm aiming to do that again, but in software.

    I'm sure I'll change/add bits here or there, but the fundamental workings/modules of the patch will likely stay the same.

  • good job on this rodrigo! i'm excited to give it a go.

  • This app looks pretty awesome! Quite an economical use of the 64 grid. I also like the idea behind the "reminder" row. Just another reason I need to get my shit over to serialosc!

    Really dug your videos, especially the shellfish concern one. There really does seem to be a blend of mediums there. It seems at times the painter is leading the sounds and at others the sounds leading the painter. Really really interesting! I can imagine that the outcome must be very different each time you do it.

    Don't want to hijack the thread but: How are you recording the painting? Is there a contact mic on the canvas or does the brush have a microphone somehow? Are you using this app for those performances? I could see how the reminder row would be helpful in this setup.

  • @egon
    For Takahashi's we use contact mics stuck to the back of the canvas. Sometimes running into DIY buffer/preamps, sometimes not.

    Each contact mic goes to each one of us (the dudes). Anton (the other guy) goes into guitar pedals (DL-4, whammy, wah, etc...). My half goes into this:
    http://www.rodrigoconstanzo.com/the-party-bus/

    I've not used this monome/app live yet. Still building it up. I think I will need the Arc incorporated before I can make the switch, for all the gestural/shifts/vectoral stuff.

    It's a really satisfying project. My wife (the artist) and I have been doing this kind of mixed/improv/performance for like 7-8 years, through different versions.

  • seems pretty cool. i've got audio coming in and the effects work, but i can't seem to get audio into the 2 loopers. does input 1 route to looper 1 and input 2 route to looper 2?

  • Audio goes like this:


    input -> reminder -> fx -> loopers (in parallel) -> morefx (dirt/reverb/chopper).

    Make sure you have the 'thru' knob turned up to hear your 'dry' audio.

    To test the little thing that says "adc" at the top is a drop down menu, there's a test tone in there which should go into the loopers too.

  • weird, still not getting any audio getting into the loopers. there should be a visual representation of the wave in each of the looper box correct? i'm not getting anything passing though. after the FX stage.

  • Yeah, should be getting stuff in there.

    Are you seeing a little line indicator moving in the buffer window? (along with the record button going pink)

    Do you hear all of the effects? (from pitch shift through reverb)

  • I'm having the same problem with the looper.

    The line indicator is showing up in the buffer window and all of the effects are working properly.

    Pressing the record button for either of the loopers should record a sample of whatever sound is currently playing in the input window, right?

    And man is this a tease...just listening to the effected 'Reminder' audio underneath the thru input is making me wanna cry.

  • Yeah it should record any incoming audio.

    Do you get any error messages in the max window? It should complain about now having descriptors~ but that's not really integrated at the moment.

    I'm working on a big update at the moment, so if I can figure out what's happening, I'll fix it for that.

    I've added pages, so everything there is 'page1' and all level/volume controls are 'page8', and adding a full blown mlr type thing to page2 at the moment too.
    might even have the buffer analysis stuff done soon too.

    Has anyone gotten the looper to record audio fine? Trying to narrow down the problem as it works perfectly on both of my computers.

  • No error messages for me.

  • Can you guys that are having a hard time with the loopers try this.

    Press the little "adc" button and select "file". Then press the "open" button next to that and load up an audio file. Then press the "stop" button next to that one (it should toggle to "play". You shouldn't hear any audio yet. Then turn up the "thru" level all the way (to 1.0). You should then hear audio coming through. Try recording some of that into a looper.

  • I followed the instructions, I'm still not getting any response from the looper.

  • Here, test this out. This is a stripped down version of the looper core.
    Press space bar to start recording, and press it again to stop recording.

    http://rodrigoconstanzo.com/party/party_core.zip

  • Works like a charm

  • Baffling.

    So when you turn up 'thru' do you see the meters under dsp/configure go up?

    You can test this one out. It's the nearly complete v2 of the app. Only need to change out the main file out, all the subfiles are the same.

    http://rodrigoconstanzo.com/party/party02.zip

  • Yes, the meters under dsp/configure go up.

    I switched out v2, awesome design...but still no functional record.

  • Are you using the 'record' button in the UI or the button left button on the monome? (or both).

    Do you have max runtime or full? If full could you open up and stick a [meter~] object onto the wire leading to [poke wtpa1] inside the pink [looper1] subpatch (if you unlock, there's several massive 'blocks' of code). the {wtpa1} area has the looper to check out in. poke is in the bottom left corner of that.

    This is just to see if audio is making it to poke.

    If the little needle is moving, that means groove~ is playing/working as the needle is being driven by groove's output.

    If this doesn't work, perhaps we can take the troubleshooting to email, not to clog this thread up completely.

  • I'm using both the UI and monome button, neither is responding properly.

    I only have max runtime.

    webba48@gmail.com

  • email sent.


    V2 is almost done and looking pretty badass. Pages are setup and working, Page1 is the current version, Page2 is a whole MLR type thing (4 of them) but using the paradigm of my original looper (4 buttons, record/overdub, play/stop, halfspeed, reverse). and Page8 is volume/levels with the buttons as faders.

    All of that is working fine, I'm just trying to finish the buffer analysis module so that's included too.


    I've got some ideas for other pages to add, but at this point, I'm kind of open to suggestions.

    Other page ideas at the moment:

    A "cocolase" 8-bit sampler with mad modulation based on this:
    http://www.ciat-lonbarde.net/cocoquantus/index.html

    A whole concat/grain replacement/granular stuff page.

    An 'instrument' page, being a hybrid of stuff like straw, press cafe, fourths, etc... but with some kookier stuff in there too.

    A 'quick fire' sampler/looper page based on microlooper/grainstorm with oodles of mini samplers, and a more elaborate "reminder" area.

    And that's kind of it at the moment.

  • I think I've narrowed down the problem.

    This is a Max6 app. It makes use of [scale~] which comes as part of the standard objects in Max6. There is an external version of it for Max5 (though I think there are two versions of it if I remember right), so it will likely work in Max5 with that external.

    It also uses a bit of [gen~] though not as integrally as it does [scale~].

  • Yup, it's a Max6 vs Max5 thing.

  • Max6 Runtime is downloadable here, if anyone needs to upgrade:
    http://cycling74.com/downloads/

    I... don't know if [gen~] support is included in the runtime.

    Maybe.

  • Hmm. That's a good point. The [gen~] usage is only in one effect at the moment, so it's not integral.

  • Massive update to app!

    "Pages" functionality added.
    Everything described up to this point is now Page1. Page2 is a 4-chanel mlr type thing, with 4 pattern recorders, and 4 channel kill/mutes. Page8 is a fader-style input/output level page.

    The "Brain" is now alive and working. The two samplers on Page1 each have a "Brain". When engaged (on by default) it analyses the audio recorded into each buffer and intelligently creates slicer/granulizer presets based on the material. It looks at 13 different characteristics of the sample, ranging from duration and loudness, to spectral centroid and kurtosis. It then weighs those things together, and against the previous value of the parameter in question, and creates a new parameter. The "Brain" also has a 'morph' parameter that lets you morph between the current preset, and the previous one.
    If you turn off the "Brain" it returns all the parameters to their defaults.

    There's also a pdf manual with clearer button/layout explanations. The manual is also a work in progress so I will keep adding to it as I change things. It doesn't touch on the UI at all, but it explains all the buttons.

    Lastly, system requirements:
    Max6. As discovered in this thread, it needs Max6 to work, though if you really want to stick with Max5 you can, as long as you download the external [scale~} and don't use the chopper effect.
    Varibrightness monome - I've not heard from anyone one way or another as to the backward compatability of the stuff. At the moment varibrightness is only used as a cool looking 'throbbing' record indicator, but that's not always going to be the case.

    http://docs.monome.org/doku.php?id=app:the_party_van
    http://www.rodrigoconstanzo.com/the-party-van/

  • ... been having lots of fun with this app!

    http://vimeo.com/35600697

    looking forward to future versions!

  • Upcoming version in the works (thanks to some help from ithkaa).

    Nailing down a couple of bugs, and updating the manual.

  • Oh, and almost done with a new arc2 app that's sounding pretty effin awesome.

  • incrdible app,THANK YOU!

    this will get me occupied for weeks. cant wait for some arc carnage...

  • It took me some time to find out how to get the party van going, but late at night in my small chamber I won..., haha.
    So, Max 6 is definately needed, because it will just not record into the looper with max 5 (I tried max 5.9)...and I really did everthing right, but it just would not work.

    So, I downloaded and installed max 6 to find out if recording into loopers works.
    I finally had it running using pages.
    Nice app!!!
    I am curious what the next versions will bring. I hope non arc users will benefit as well...that would be nice. :))

    How will the effects be integrated?
    They worked mostly via file/input, but not all worked when audio was going out. Got some nice results using them.

    Thanks for doing party van. Looking forward to the next versions.

    osx 10.6.8
    monome 128
    maxruntime 6.0.3

  • Yeah it's pretty Max6 only at the moment. If you were really desperate you could make it work in Max5 by using an external, but as it's growing it's using more and more Max6 only stuff.

    The app is pretty much ready to go. ithkaa has been helping me test/troubleshoot on nonvaribrightness monomes (lots of big improvements in that respect), so as soon as I get a thumbs up from him in terms of a couple of nonvaribrightness issues, I'll post it.

    As far as the effects, some are "pre" and some are "post". chopper/dirt/reverb are "post" loops, so they will effect things playing back. The rest of the effects (stutter, lofi, filter, etc...) are all "pre" so they won't effect a loop playing back, but they do effect dry audio coming in.

    There's no Arc related stuff yet, but here is the changelog so you can get an idea of what's coming

    v03
    -added "Cocolase", modulated delay/sampler to Page3
    -added Instrument page(Page7) with adaptations of "Fourths" and "Straw". (requires fluidsynth~)
    -added MIDI learn by Johannes Schmidt (implemented by Benjamin Van Esser)
    -added waveform drop to wtpa/mlr modules. Just drop an audio file onto the waveform display
    -added output record to disk
    -added "Shuffler", buffer shuffler effect
    -added "Trigger" row to Page1 that triggers different effects based on incoming audio
    -changed how the Random mode of stutter works. It can now be engaged but won't take effect until you engage the effect (as opposed to immediately)
    -changed "Dirt" engine
    -some non-varibrightness testing and adaption
    -lots of minor bugfixes

  • Thanks for the infos Rodrigo.
    Big update. Nice!

    I have a nonvaribrightness monome as well, so it is nice to see that there will be improvements, but I also do not know what I missed, hahah.

    I´ll be happy to check it out as soon as it is ready.
    Thanks.

    edit: mmh, sorry to have odd news.

    When I use max runtime 6.0.2/0.3, party van does not get connected to serial osc/find my monome. Display above sys/prefix/party stays blank. This is not with using pages.

    When I tried max runtime 5.0.9 party van it does find the connection. Display shows monome 128 blabla..., but it does not work with max 5, no action possible on the monome.

    Am I missing something here. Do I have to put something in a specific folder first.

    It does work with pages and max 6.0.3, but that is a bit tricky as well.
    Any suggestions?

  • It doesn't connect or it doesn't show up in the menu?

    I built it so that it should autoconnect/prefix when a monome is plugged in (as in my videos), but it should show up either way.

    Well the newest update is causing major problems and breaking a ton of stuff for nonvaribrightness, so trying to fix all that stuff before putting it up.

  • O.K., all is good!!!
    I totally forgot to put the "zeroconf-max5-osx" objects into the new downloaded max 6 folder and that probably solved it. It´s been too long ago I did that and haven´t thought of it quick enough that I have to do it again when I want to use max 6.
    I also installed serial osc new and did a reinstall of the driver.
    Works with and without pages now. Really sorry for the user error.
    That also explains why it connected with max 5.

    Take your time. Happy to check it whenever you think you need some testing.

    Peace
    Mark

  • sorry if a bit off topic but i want to try this app but at the same time don't want to mess with the Max5 runtime already installed on my system. will Max6 coexist peacefully with Max5? that is, if i install Max6 it won't affect Max5 running my usual apps?

    thank you! :)