[PD] mc – multichannel extension for Pd

Miller Puckette msp at ucsd.edu
Thu Dec 9 19:55:29 CET 2021


I'm hoping to make this part of a major change that will have to introduce
a new version of t_signal to hold extra info (overlap factor for sub-blocked
windows; separate sample rate and number-of-samples-per-second; at least one
additional dimension for multichannel signals and/or images; some sort of
control by which objects can specify whether they require the same sizes
of input and output signals, ....)

Not for 0.52 though...

cheers
M

On Thu, Dec 09, 2021 at 06:22:33PM +0100, Winfried Ritsch wrote:
> Hello,
> 
> Yes, thank you Christof for your notices,there are a lot of ideas about 
> PdSnake  ( https://urldefense.proofpoint.com/v2/url?u=https-3A__git.iem.at_pd_pdsnake_-2D_blob_master_docs_&d=DwICAg&c=-35OiAkTchMrZOngvJPOeA&r=XprZV3Fxus2L1LCw80hE4Q&m=FHyiZea0TQQHi-c8JicPAalOfO_9XMXhmhxsnmN7P0xA3uFhfF4Gg7Kkf4qx1aRs&s=_fc1CYUxloktEjjWR0XonNafTenxp_VB2uPhCQHo7_M&e= 
> , which Miller can laugh about sometimes  ;-)
> 
> We started this repository in case someone want to implement it, maybe a place 
> also for ideas  ideas in there...:
> 
> - https://urldefense.proofpoint.com/v2/url?u=https-3A__git.iem.at_pd_pdsnake&d=DwICAg&c=-35OiAkTchMrZOngvJPOeA&r=XprZV3Fxus2L1LCw80hE4Q&m=FHyiZea0TQQHi-c8JicPAalOfO_9XMXhmhxsnmN7P0xA3uFhfF4Gg7Kkf4qx1aRs&s=BIBlqd_xWxkn1fV7w3udY6bIkmfCCT27GUvTl1fZBqk&e= 
> 
> mfg winfried
> 
> 
> Am Donnerstag, 9. Dezember 2021, 16:44:33 CET schrieb Christof Ressi:
> > Lots of nice ideas! I will definitely look at your abstractions for
> > inspiration.
> > 
> > On 09.12.2021 16:34, Thomas Grill wrote:
> > > Hi Christof,
> > > i didn't know about the initiative, but good that this is on a todo list!
> > > Many of your ideas listed here are implemented in my mc project.
> > > One drawback is definitely that the send~/receive~ based architecture
> > > can't cope with varying block sizes.
> > > 
> > > There are other problems concerning state preservation of mapped objects
> > > upon changed in the signal graph which i think can't be solved within the
> > > abstraction-based system.> 
> > >> FWIW, after talking to Winfried about Pd-snake a while ago, I worked out
> > >> a backwards compatible multichannel solution in my sketch book but never
> > >> came around making a proof of concept implementation (yet). AFAICT, it
> > >> should be possible to do.> 
> > > It is possible to also implement a detection whether a signal has been
> > > generated through mc._out (and represents a multichannel transport), or
> > > it is a normal signal. This can be done using some watermark, but
> > > clearly, this will not be 100% safe.> 
> > >> * [mc~ join <nchannels>] join several (single-channel) input signals into
> > >> a multi-channel output signal.> 
> > > i named that mc.pack~
> > > Currently, there is also mc.concat to join two multi-signals.
> > > 
> > >> * [mc~ split <nchannels>] splits a multi-channel input signal into
> > >> invidual (single-channel) output signals> 
> > > there is mc.unpack~, but also mc.index / mc.slice to select channels (for
> > > example interleaved pairs) out of the multi-signal.> 
> > >> * [mc~ sig <nchannels>] creates a multi-channel signal from several float
> > >> inlets.> 
> > > not implemented yet, but easy to do
> > > 
> > >> * [mc~ <obj>] tells an object to operate in multi-channel mode. If the
> > >> object doesn't support it (or knows about it), it operates as if the
> > >> inputs were single-channel and Pd prints a warning.> 
> > > mc.map maps (currently only mono) signal objects onto the multi-signal.
> > > Other mappings (most notably stereo) should be possible. mc.effect maps
> > > the mc multi-signal to an abstraction with many signal inputs/outputs,
> > > like vstplugin~
> > > 
> > > 
> > > best, Thomas
> > > 
> > >> On 09.12.2021 09:41, Winfried Ritsch wrote:
> > >>> Am Sonntag, 5. Dezember 2021, 17:22:44 CET schrieb Thomas Grill:
> > >>>> Hi all,
> > >>>> i'd like to make you aware of an abstraction library i have made
> > >>>> because of
> > >>>> working more with multi-channel loudspeaker systems lately.
> > >>>> 
> > >>>> Dealing with many parallel signal connections was cumbersome, so i have
> > >>>> come up with the mc library in order to abstract multi-channel
> > >>>> processing. It consists of pure-Pd abstractions using dynamic object
> > >>>> creation and it is NOT related or compatible with the similarly named
> > >>>> Max approach. I hope there are no similar libraries out yet, i have
> > >>>> not come across anything related.
> > >>> 
> > >>> There was an discussion 2013 on a workshop with Miller on the IEM and a
> > >>> solution was proposed:
> > >>> 
> > >>> "Pd-snake was an idea 2013 within a workshop with Miller Puckette at the
> > >>> IEM to extend Pd with multichannel signal connection, which is
> > >>> backwards compatible, but has not been implemented yet."
> > >>> 
> > >>> The main idea (trick) was to hold an parallel info about a signal which
> > >>> multichannel or not... to be upward compatible and add some multichannel
> > >>> natives object to collect and distribute.
> > >>> 
> > >>> In the meantime I did a sime multichannel objects for Ambisonics and
> > >>> other
> > >>> purposes as abstraction library only, using dynamic patching and used it
> > >>> in
> > >>> some projects (mainly Auditory Environments) until today:
> > >>> 
> > >>> - https://urldefense.proofpoint.com/v2/url?u=https-3A__git.iem.at_pd_acre-2Damb&d=DwICAg&c=-35OiAkTchMrZOngvJPOeA&r=XprZV3Fxus2L1LCw80hE4Q&m=FHyiZea0TQQHi-c8JicPAalOfO_9XMXhmhxsnmN7P0xA3uFhfF4Gg7Kkf4qx1aRs&s=3I57zeDTxk31Z-W3qj0nAnHVdAhFXGSxAFSlOA2EH8M&e= 
> > >>> 
> > >>> mfg winfried
> > >>> 
> > >>>> Please check it out at
> > >>>> https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_grrrr_mc&d=DwICAg&c=-35OiAkTchMrZOngvJPOeA&r=XprZV3Fxus2L1LCw80hE4Q&m=FHyiZea0TQQHi-c8JicPAalOfO_9XMXhmhxsnmN7P0xA3uFhfF4Gg7Kkf4qx1aRs&s=19rlRR3fFxTSNDGOemkzQSNV12nPRG3pYHgemxHBMo0&e=  <https://urldefense.proofpoint.com/v2/url?u=https-3A__github.com_grrrr_mc&d=DwICAg&c=-35OiAkTchMrZOngvJPOeA&r=XprZV3Fxus2L1LCw80hE4Q&m=FHyiZea0TQQHi-c8JicPAalOfO_9XMXhmhxsnmN7P0xA3uFhfF4Gg7Kkf4qx1aRs&s=19rlRR3fFxTSNDGOemkzQSNV12nPRG3pYHgemxHBMo0&e= >
> > >>>> 
> > >>>> It is definitely not more than alpha quality and currently has only
> > >>>> basic
> > >>>> functionality (as much as i have needed so far). But i'd like to put it
> > >>>> out
> > >>>> to the public since i don't know how much i will be able to work on it,
> > >>>> and
> > >>>> i'd like to hear about your feedback and suggestions for further
> > >>>> functionality.
> > >>>> 
> > >>>> There are rough edges, for example message boxes popping up when
> > >>>> closing
> > >>>> patches with dynamic modifications, but i am not sure to which extent
> > >>>> these
> > >>>> effects can be handled on the patcher level.
> > >>>> 
> > >>>> A technical note:
> > >>>> The connection logic works both on signal and message connections (the
> > >>>> latter over send/receive). In principle message-only would be possible,
> > >>>> but
> > >>>> signals seem to be necessary for the correct ordering of the message
> > >>>> graph.
> > >>>> Right now the same information is sent on signals (2 integer numbers
> > >>>> per
> > >>>> vector: ID and channel count) and messages. There is definitely a lot
> > >>>> to
> > >>>> optimize, maybe the signal connections can be dummy, without any
> > >>>> information sent at all. However, the connection logic overhead seems
> > >>>> to be
> > >>>> absolutely negligible compared to the DSP load.
> > >>>> 
> > >>>> Please let me know what you think.
> > >>>> 
> > >>>> best, Thomas
> > >>>> 
> > >>>> --
> > >>>> Thomas Grill
> > >>>> https://urldefense.proofpoint.com/v2/url?u=http-3A__grrrr.org&d=DwICAg&c=-35OiAkTchMrZOngvJPOeA&r=XprZV3Fxus2L1LCw80hE4Q&m=FHyiZea0TQQHi-c8JicPAalOfO_9XMXhmhxsnmN7P0xA3uFhfF4Gg7Kkf4qx1aRs&s=SLlX76795vGE10lM0fehh4jT_c4actWZmOV4nVhEcPo&e=  <https://urldefense.proofpoint.com/v2/url?u=http-3A__grrrr.org_&d=DwICAg&c=-35OiAkTchMrZOngvJPOeA&r=XprZV3Fxus2L1LCw80hE4Q&m=FHyiZea0TQQHi-c8JicPAalOfO_9XMXhmhxsnmN7P0xA3uFhfF4Gg7Kkf4qx1aRs&s=bGt99Jf5X7hHnsKA3aH1AvFHEaLAoXpA7T522ODp_kM&e= >
> > >> 
> > >> _______________________________________________
> > >> Pd-list at lists.iem.at mailing list
> > >> UNSUBSCRIBE and account-management ->
> > >> https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.puredata.info_listinfo_pd-2Dlist&d=DwICAg&c=-35OiAkTchMrZOngvJPOeA&r=XprZV3Fxus2L1LCw80hE4Q&m=FHyiZea0TQQHi-c8JicPAalOfO_9XMXhmhxsnmN7P0xA3uFhfF4Gg7Kkf4qx1aRs&s=S98AW4VXI9Aa00v5fCLMKqNdmgIBOoXJW5AT9h32-NU&e= > 
> > > --
> > > Thomas Grill
> > > https://urldefense.proofpoint.com/v2/url?u=http-3A__grrrr.org&d=DwICAg&c=-35OiAkTchMrZOngvJPOeA&r=XprZV3Fxus2L1LCw80hE4Q&m=FHyiZea0TQQHi-c8JicPAalOfO_9XMXhmhxsnmN7P0xA3uFhfF4Gg7Kkf4qx1aRs&s=SLlX76795vGE10lM0fehh4jT_c4actWZmOV4nVhEcPo&e= 
> > 
> > _______________________________________________
> > Pd-list at lists.iem.at mailing list
> > UNSUBSCRIBE and account-management ->
> > https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.puredata.info_listinfo_pd-2Dlist&d=DwICAg&c=-35OiAkTchMrZOngvJPOeA&r=XprZV3Fxus2L1LCw80hE4Q&m=FHyiZea0TQQHi-c8JicPAalOfO_9XMXhmhxsnmN7P0xA3uFhfF4Gg7Kkf4qx1aRs&s=S98AW4VXI9Aa00v5fCLMKqNdmgIBOoXJW5AT9h32-NU&e= 
> 
> 
> -- 
> - ao.Univ.Prof. DI Winfried Ritsch 
> - ritsch at iem.at - https://urldefense.proofpoint.com/v2/url?u=http-3A__iem.at_ritsch&d=DwICAg&c=-35OiAkTchMrZOngvJPOeA&r=XprZV3Fxus2L1LCw80hE4Q&m=FHyiZea0TQQHi-c8JicPAalOfO_9XMXhmhxsnmN7P0xA3uFhfF4Gg7Kkf4qx1aRs&s=3CHzM1QEpJpzFqR1wnFsh3DIFc4lql0zCiAWa1nViYQ&e= 
> - Institut fuer Elektronische Musik und Akustik
> - University of Music and Dramatic Art Graz
> - Tel. ++43-316-389-3510 (3170) Fax ++43-316-389-3171 
> 
> 
> 
> 
> 
> _______________________________________________
> Pd-list at lists.iem.at mailing list
> UNSUBSCRIBE and account-management -> https://urldefense.proofpoint.com/v2/url?u=https-3A__lists.puredata.info_listinfo_pd-2Dlist&d=DwICAg&c=-35OiAkTchMrZOngvJPOeA&r=XprZV3Fxus2L1LCw80hE4Q&m=FHyiZea0TQQHi-c8JicPAalOfO_9XMXhmhxsnmN7P0xA3uFhfF4Gg7Kkf4qx1aRs&s=S98AW4VXI9Aa00v5fCLMKqNdmgIBOoXJW5AT9h32-NU&e= 





More information about the Pd-list mailing list