Question on bpatcher

    Oct 08 2011 | 9:49 pm
    I've jury rigged a subpatch that allows me to play a vst instrument. Midi flows in, Audio flows out. Now what I want to do, and I'm thinking I can use bpatcher for this, is to have a little box. Not a regular object, but a little box with controls on it. Say for adjusting the volume, or opening the vst plug in, so I dont have to go into the subpatch to tinker. A box with inlets, outlets, and a couple controls.
    I want to be able to save this so whenever I want to use a vst instrument it has its own little box Ive designed for it. Ideally all I would have to do is make a new object, type in the name, and the box shows up with the controls. If you could help me that'd be great.

    • Oct 08 2011 | 10:06 pm
      [bpatcher] is just a method for opening subpatches, without having the subpatch object in the main patch. In order for this to work, you would have to have a system created as normal in a patcher window, which has the controls and inlets and outlets as you desire. You then save this in the project file, or in one of your file preferences, close it, then in the inspector for bpatcher (which will be in your main patch) you select the patch which you wish to display. Patch chords have to be routed to it as normal.
      An advantage of this method is the patch in the [bpatcher] can be in presentation mode, so it can be like having a little application of it's own running, which is I assume what you are looking for.
      1st Creative Labs Support Team
    • Oct 08 2011 | 10:20 pm
      Thanks for your reply. One more noob question: How would I get the sub-patch inside bpatcher into presentation mode?
    • Oct 08 2011 | 11:08 pm
      You might want to look at part 3 of a set of articles I've been writing on my blog on this topic. In particular, part 3 is specifically about seamlessly integrating VST patchers into my environment making the whole process of using (and editing and saving) VSTs quite easy
      I'm happy to provide snapshots of what I've built with anyone who asks
    • Oct 09 2011 | 2:20 am
      Thanks. Bookmarked. I'll keep myself updated on this but why doesn't C74 just include an abstraction that does this? Is it too "high-level" or something? I'm completely new to Max and am trying to figure out why C74 doesn't just have this very rudimentary, music utility stuff built for you. Would that be un-cool? I dont know of any reason why not.
    • Oct 09 2011 | 2:39 am
      Rudimentary? Thanks a bunch!
      Probably for the same reason a C++ compiler doesn't have an accounting package built in!
    • Oct 09 2011 | 3:38 am
      bpatcher does just what you want, I think:
      First create the patcher you want, with inlets, outlets and whatever other controls and objects you want.
      Set up presentation mode to be pretty.
      Open the patcher inspector for this patch, and select Open In Presentation.
      Save it.
      Now in your top level patcher, place a bpatcher graphical object, Set that to point to the bpatcher you saved in the step above, et voila.
    • Oct 09 2011 | 10:36 am
      Chris Muir has it in one.
      1st Creative Labs Support Team
    • Oct 09 2011 | 2:36 pm
      if it is "rudimentary" or not depends on how far you go.
      have you ever programmed a VST player in max which offers you the same options like the plug-in slots on cubase or protools? with total recall, automation, automatic parameter mapping, save-with-song and write/read from disk?
      it is quite some work, and you will easily end up with more code than 90% of the vizzie patches together.
    • Oct 09 2011 | 2:38 pm
      p.s. i dont know why you would need presentation mode.
    • Oct 09 2011 | 3:06 pm
      Uhmmm, well, errrr, .... the whole point of the environment I built was to replace the functionality of Apple MainStage for my purposes. Apple Mainstage does the kinds of things you talk about with cubase, protools (and almost any audio host).
      That includes the ability to load arbitrary "songs" (identical concept as a MainStage patch) each of which can trivially load a collection of routings from keyboards to devices seamlessly (including external MIDI devices and internal VSTs, complete with splits, layering, mappings (velocity maps, transpose, control rerouting, etc) quite painlessly.
      Clicking a "button" will open a VST for editing and clicking another button will save the changed state (which will then be reloaded automatically). I can trivially associate a knob on one of my controllers with an arbitrary parameter on a VST. That piece isn't completely automatic right now, but it just requires me to turn a "knob" on a VST so I can see that parameter number (in the Max patcher editor) after which point I can wire up a knob/slider/button on any of my control surfaces to control that parameter by just using a [VSTParam] object.
      Specific instruments can easily be created that just expose the parameters (as inlets that take MIDI values) that I want to be able to control from a surface and the right thing just happens (such as the LeadSaw example on my blog).
      Is it perfect? Not yet --- I would certainly like to add the ability to automatically save parameter changes that I make in real time but that turns out to be less important right now as typically, the parameters are initialized as desired when a song is loaded and so changes are mostly supposed to be temporary.
      But I can certainly have multiple VSTs open easily per song, including the ability to feed instrument VSTs into effects VST, with nothing more than some trivial wiring.
      Works flawlessly in live performance (which Apple MainStage did not).
    • Oct 09 2011 | 3:41 pm
      Yeah, I know there is a lot of logic behind it. I come from a DAW background so I'm used to taking all of that stuff for granted. I mean rudimentary in the sense that playing a vst instrument is probably an activity that a lot of people want to do in Max. It is a very common thing to do nowadays if you make music. Vst~ is geared towards processing audio, right? Why not ship out an object (i'm not talking about bpatcher or little programs anymore) geared towards playing virtual instruments?
      Thanks for your help Chris I'll try that when I get home.
    • Oct 09 2011 | 4:15 pm
      Well, I can't speak for anyone else but I think this is like asking why your compiler doesn't come with a spreadsheet application. Max is a programming environment for developing apps in the music domain. It provides all (well, most of) the tools needed to develop whatever one wants to do. The VST~ object IS the core object you need and it fits into the Max programmig model. It's up to the users of Max to develop/extend the capabilities for their needs, and even to sell, in some cases.
      If your goal is just to play VSTs then use any DAW that you want. I used to feed my external MIDI data into Max and after processing it, I would pass it Into to Digital Performer and MainStage (before gave up on the latter)
      In particular, if you like the kinds of processing that Max lets you do but mostly want to play, then Ableton Live (including Max For Live) is your friend.
      If you don't like Ableton Live, then what makes you think you would like whatever VST player was included with Max?
    • Oct 09 2011 | 5:07 pm
      Roman - Why wouldn't you use presentation mode here? If the patcher in the bpatcher has much of anything in it, presentation mode is useful.
    • Oct 09 2011 | 5:11 pm
      Thats the answer I saw coming, thanks for clearing that up. Its funny that you mention Live. I had been using it for a couple years up until recently. Things got tight and I decided I'd sell Live, switch over to max, and have a little left over. I had max for live but didn't care to use anything besides granulator. The sequencers seemed pointless and it seems like most people are using it for randomization or gimmicky things of this nature.
      Max is a more intriguing way of creating song structure than a grid/timeline scheme, but Ill probably cop a Live license again someday just so there's something to get ideas of a musical sort down quickly. Things like writing a melody down or doing sort of traditional music activities. My main interest right now is music through systems/parameters though so Ill just bite the bullet and embrace the bottom up design.