677 Members
Discussion around vvvv, a visual live-programming environment for creative coding. Download & Changelog: https://thegraybook.vvvv.org/changelog/5.x.html37 Servers

Load older messages

25 May 2023
@ravazquez:matrix.orgravazquezSounds like a nuget versioning issue which is likely my bad. In any case there is a bit of cleanup to do on that lib so we should be fixing it rather soon22:07:20
@ravazquez:matrix.orgravazquez Thanks for the report motzi 22:07:36
@lecloneur:matrix.orglecloneurThere is a tfx that can do it too22:16:49
26 May 2023

i'm not entirely sure if this is on you because i believe the problem is in the version number of the old nuget (2020.2.6) that is greater than the one on nuget.org (1.0.7). what i'd like to know is, where i got this from.

i've got these nuget feeds:

Registered Sources:
  1.  nuget.org [Enabled]
  2.  vvvv teamcity [Enabled]
  3.  Microsoft Visual Studio Offline Packages [Enabled]
      C:\Program Files (x86)\Microsoft SDKs\NuGetPackages\
  4.  Stride [Enabled]
  5.  Stride Dev [Enabled]
@motzi:matrix.orgmotziand nuget.org doesn't list the old versions...06:57:02
@motzi:matrix.orgmotzimaybe the are from the teamcity feed?06:57:16
@motzi:matrix.orgmotzii guess deactivating is also not a solution to maintain the possibility to download the older version if needed...06:58:48
@gregsn:matrix.orggregsnHad the same issue and removed the vvvv feed10:06:26
@gregsn:matrix.orggregsnnuget sources remove -Name vvvv teamcity10:42:02
In reply to @gregsn:matrix.org
Had the same issue and removed the vvvv feed
thanks for the clarification!
@chk:matrix.orgchkAre global channels now the new send and receive nodes?15:56:49
@gregsn:matrix.orggregsnRedacted or Malformed Event18:58:33
@gregsn:matrix.orggregsnRedacted or Malformed Event19:00:46
@gregsn:matrix.orggregsnRedacted or Malformed Event19:02:58

Simply put: yes.
When we look at them in detail however: no.

This is a bit confusing, but maybe it's just some details that don't really matter often. You be the judge. The details where they differ are:

intro to s & r
s & r nodes in beta were ensuring - via lazy evaluation - that everything above a s node gets computed before the r node consumes the value. why? Well, beta was all about lazy evaluation and we wanted that s & r nodes could be imagined simply as invisible links.

In gamma we don't have lazy evaluation, but we stuck with the idea that s & r should behave very much like an invisible link. why? Because you probably come from a dataflow oriented thinking when using s & r nodes. There is one data source (the sender) and then potentially many invisible links to data sinks (the receivers).


  • you can't have many senders on the same "channel". You'll get a warning. This is coming from dataflow oriented thinking. You can have one value source, but many sinks.
  • you get a warning if a receiver reads before a sender has written to the channel. (We can't easily enforce execution order, but we can make you aware when something seems to be off)
  • you also get a warning when no sender exists at all.

Those warnings are meant to tell you that the invisible link in your head doesn't match what's actually happening.

But other then that: yes a sender just writes to a globally available memory location, accessible via some key.

The mental model of global channels:

Sure, again you make values globally available via some key. So of course from a distance this sounds very familiar.

You could even compare this basic idea to global fields/properties/variables in other languages.

However, the main difference to s & r nodes is the mental model regarding data source / data sink.
The Channelness is basically what's different to the s & r idea.

What's a Channel?

A channel allows to think in shared data streams. The mental model is that different contributors get access to a data stream and may modify and listen at will. This is more a jam session now not a performer/listener relationship...

  • Channels can inform every subscribers asap (known from Observable<T>)
  • Channels have operators for syncing different channels, many of them doing bi-directional binding: GetSlice (Channel), Select (ByPath)... Pushing a value on a channel will sync all bound channels. When using those operators you won't get into situations where channels keep on firing events to each other in an endless manner.
  • Channels have a non-generic view onto them. Without knowing the type at compile time, you can build programs that push objects to Channels, whose type only becomes clear at runtime.

All in all

  • Channels simplify scenarios where you have back & forth communication needs (e.g. a UI shall show the current model, but also be able to modify it).
  • I like to think of a channel as some atomic entity, which just happens to show up here and there. Like variable in math.
  • Channels simplify scenarios where you want to think of something that shall be shared.

Now obviously sharing gets a lot easier with global channels.

Disclaimer: Global Channels don't come with any logic for frame synced data. And don't warn you like the r node. This area could get some overhaul

  • e.g. frame-synced global channels could be global channels that only in the next frame inform the subscribers of the new value. This could be an option on a global channel. [ ]
  • warnings when reading from an uninitialized channel (...)
@gregsn:matrix.orggregsnyes. We might steal from this answer when diving into next documentation sprint19:07:52
@chk:matrix.orgchkThank you!20:48:25
27 May 2023
@blacktronics:matrix.orgblacktronicshow do i roll back a nuget package? i just installed VL.IO.MIDI 1.0.9 and the NoteState node doesn't work at all00:46:33
@blacktronics:matrix.orgblacktronicsI'd rather be back on 1.0.3 where NoteState worked and also deal with the BPM node being broken00:47:24
@gregsn:matrix.orggregsn In main menu go to Manage Nugets->Show Installed. Delete the folder 01:03:45
@gregsn:matrix.orggregsnSorry to hear that the new version has problems. Will have a look.01:05:12
@chk:matrix.orgchkokay, and they operate on the level of an application and not across several documents in the whole environment, right? so they also work in exports?08:19:29
@chk:matrix.orgchkwell, the channelbrowser updates its view depending on the document in foreground... so yes, in the scope of an application and also works in the exported application, just tested ✌️ cool feature, thanks!08:22:52
Download image.png
@levoxtrip:matrix.orglevoxtripHey everyone, i try to move a file with a keypress. Delete version seems to work but this one actually doenst move the file to the path i want11:32:41
@lecloneur:matrix.orglecloneurTry to make a patch we could read because the screenshot doesn't speak much at the moment.13:18:15
Download image.png
@gregsn:matrix.orggregsnfix is upcoming16:59:44
@gregsn:matrix.orggregsn blacktronics: ok 1.0.10 is up. hope you can play again... 19:05:13

There are no newer messages yet.

Back to Room ListRoom Version: