Recording from an Eigenmike (32 channels)
I am trying Max 8 for the firs time, so I am a complete beginner. I was attracted by the availability of new multichannel objects. Now my first task is simply to record the audio stream from my microphone (an Eigenmike 32, which has 32 capsules in a spherical body) into a multichannel WAV file on the SSD.
I managed to instance mc.adc, and get the 32 channels from the microphone, passing them to mc.live.gain for display the 32 VU meters, and recording the multichannel WAV file by means of mc.sfrecord.
That was easy.
But now I would like to process the signals before recording, using the VST plugin provided with the Eigenmike, and named Eigenunit-em32-Encoder.
This VST plugisn gets the 32 inputs from the microphone, and converts the signals to Ambisonics signals of various order, up to 4th order (25 channels).
I want to use it for third order (16 channels).
I see the plugin under Collections - Plug Ins, but when I drag it to the patch, it appears as an old stereo-in stereo-out plugin, not as a multichannel plugin.
How do I enable the multichannel operation of this plugin?
I suppose I has to use the new mc.vst, but I do not find a way of making it to instance properly the VST plugin.
Thanks in advance...
Here my current patch, everything works except the VST plugin:

I suppose you're creating 32 instances of a single VST plugin instead a VST handling 32 channels.
You can try with simple [vst~ 32 32 eigenunit] to enable 32 input channels and 32 output channels.
[mc.adc~ 32 ] should be just fine, no need to specify all the channels.
try the following patch (copy compressed format)
Yeas, but doing this vanishes the advantages of the mc. structures, as we are expanding the 32-channels single wire into 32 mono wires...
Wasn't mc.vst designed exactly for doing this? I switched to Max from Plogue Bidule exactly for avoiding that mess of dozens of separate wires, which the new Max 8 version should avoid entirely...
Ok, there is a second reason for switching to max, that is the ability to record the 4k equirectangular live video coming from a Ricoh Theta V camera together with the audio stream from the Eigenmike. And I did not figure yet how to record a muxed audio+video .MOV file containing the 4k video stream together with the 32ch audio stream (or 16ch, if I manage to already encode to Ambisonics through the VST plugin)...
But this is another question, sorry for going offtopic. This topic is mostly about how to use mc.vst ~ , not how to use the older (and deprecated) vst ~ .
based on mc.* tab on vst~ help object, mc.vst~ just replicate a single vst instance for the number of input mc.* channels.
about 4K video recording my suggestion is to record the video and the audio separately and then mux with FFMPEG without re-encoding.
To properly record a 4K video in real-time you need to use jit.gl.asyncread object and be sure you have a fast SSD.
In my experience I've never found jit.gl.asyncread the best solution to record 4K high bitrate videos,
and I've ever used externald devices, Spout or NDI to another machine, but it's strongly related to your needs and gear.
my 2 cents: Max is just unrivalled if compared to Plogue Bidule from many points of view.
mc.* is not properly intended for "multi channel" in a traditional manner, but more as an object instance replicator that can work both for polyphonic stuff, multichannel stuff or just instance replicator in a very better way than the poly ~ object.
Probably it's not what you need but you have two powerful HOA libraries in Max, take a look at:
ICST that is part of the Max8 package
HOA https://github.com/CICM/HoaLibrary-Max/releases
Sorry, I am still a very beginner of Max. I did not figure out how to use jit.gl.asyncread for recording the 4k panoramic video from the Ricoh Theta V.
Indeed I managed to create a patch which also records video, albeit this goes to a separate file, which is not what I wanted (I want to get a ready-to-go muxed MOV file, containing the panoramic video and the 16ch 3rd order Ambix audio, possibly already fitted with proper Google metadata, so it is ready to be played on HMDs). Here how I managed to make it working, using the Viggie-Input-Grabbr and the Vizzie-Output-Recrdr objects:

I will try now that trick of splitting the 32ch audio wire to 32 mono wires, insert them to the old vst ~ object hosting the Eigenunit VST plugin, which converts to 16ch Ambix, and save that stream on disk, instead of the raw 32ch capsule signals...
I am yet not convinced of what mc.vst ~ is doing: most VST plugin suites are multichannel (Sparta, IEM, Ambix, O3A, etc), so what's the meaning of mc.vst ~ not managing properly their multichannel input and output? Why does it replicates many instances of a single plugin, instead of just enabling its multiple inputs and outputs? It appears that it is assumed that VST plugins are only capable of 2 inputs, 2 outputs, and hence when a multichannel stream is sent to a plugin, you need to use several copies of it for managing more than 2 channels. Absurd!
As I explained before, if you have multichannel plugin you need to specify input and output channels number directly on vst~ object:
You can try with simple [vst~ 32 32 eigenunit] to enable 32 input channels and 32 output channels.
mc. vst~ in meant to be used to have multiple instances of a single vst
Further refinement, inserting the plugin which converts from 32ch A-format to 16ch B-format, with the trick of unpacking and repacking the mc stream, as suggested by OFZR.
Everything is working fine, except a small latency of video lagging behind audio, so I will probably need to insert an additional mc.delay ~ before the recorder...
I still do not understand why one has to use this trick of unpacking and repacking, it is really boring me! It is pure nonsense... It disrupts the elegance of the new mc workflow.
But it is working, so I am ready for recording the Christmas concert on next Thursday.
Thanks for the help given to a true beginner!

Juts discovered the existence of an alternative to Vizzie-Output-AVRecordr for saving a single MOV file containing both audio and video. It is called jit.vcr. Unfortunately also this module seems to accept just 2 audio channels. I wonder if a multichannel version of it exists, allowing to record a video with multichannel audio (16 channels in my case)...

Hi Angelo - ran across this old thread. Glad you were able to use the EigenUnit-em32-Encoder (I'm the author). Looks like you are using it with vst~ which is how I originally envisioned it (there are also example Max patches on our website). The plugins were created before Max 8 was released.
I haven't revisited Max since v7. I'm not familiar with the new "mc" objects in v8, but looks like they are very powerful and great for getting rid of all the wires!
Did you try using "mcs.vst~ EigenUnit-em32-Encoder 32 16" instead of "mc.vst~ EigenUnit-em32-Encoder 32 16"? Maybe using the "mcs" version instead of the "mc" version gives the result you are after (one instance of the encoder with support for 32in/16out).
https://docs.cycling74.com/max8/refpages/mc.vst~?q=vst
"When vst~ is instantiated as mcs.vst~, the plug-in's audio inputs are combined into a single multichannel inlet and its audio outputs are combined into a single multichannel outlet."
I'll have to revisit this soon and take a look at the new stuff in Max 8. The EigenUnits (and examples) will probably also get an update sometime in the near future.
Best regards,
Steven
Hi Steven, and thanks for your reply. I was not aware at all of the MCS version of VST ~ .
It appears to be what I was searching for. I still find Max very, very hard to manage compared to Plogue Bidule, making the things unnecessarily complex. It is very powerful, indeed, but the initial steps are high to climb...
And to me it seems carrying a number of obsolete assumptions, like that a "standard" VST plugin, or a video recorder, has just 2 audio channels.
I am also confused by the fact that there are multiple objects doing the same thing, but appearing in different points of the user's interface.
And some objects do not appear, you must know that they exist and invoke them "by name"...
I will report here if the MCS trick works for managing properly multichannel VST plugins.
Thanks again!
Angelo
it is not an assumption.
the problem is that when a max object changes its number of outlets, it will reload. that´s why they dont do this from outside, but only by arguments-to-object.
if a vst objects reloads, the plug-in you just loaded will be gone again. :)
there is another problem. if it would automatically adapt to the number of vst inputs and outputs, deviation from that number would be impossible.
what you could do is load the plug-in, ask it for the number of inputs, then use scripting to delete it and recreate a new instance, load the plug-in again.
but this isnt a patching for beginners i am afraid.