Stochastic Telegraph Announcements

This is such an interesting idea to me, both as a patch performer and a plugin developer.

As a performer, I like how each of the modules by itself has a clear and direct purpose. I like how they can be combined in an unlimited number of creative ways. And I love the visualization of what’s happening in Depict. It feels like I can focus more on creativity, without having to study the modules for an hour before I can start doing anything interesting. And I can always see what’s happening. That’s incredibly valuable to me because I’m a visual thinker.

As a developer, I love the use of extender modules not as optional accessories but as the primary way of getting things done. I have often thought in terms of designing chains of adjacent modules to optimize a left-to-right signal path without cables. This is different in that the readers/writers have no explicit signal flow direction; I suppose everything reads/writes the memory in whatever order their process functions are called?

I imagine if you have multiple Embellish connected to Memory that you might get inconsistent results if they try to write to the same sample of memory at the same time. Is this correct? I know that’s an edge case; most of the time the writes could happen in whatever order and the result will be about the same.

1 Like

Love this, this takes a lot of ideas I’ve had with ways to use things like tape recorders or PdArray, and exposes all the controls one would want.

1 Like

Thanks, @cosinekitty, and yes, two Embellish’s writing to the same point will, mmmmm, produce a noisy blend, no doubt of interest to someone.

I considered using messages instead of just sharing the same pointer, but messages appear to have an inherent latency to them (one sample per module to module movement). So yes, the process calls come in what ever order they like.

2 Likes

Love the idea of the Memory System. It sounds beautiful!! All depends what you record but they are something to look forward to.

Wow this looks awesome!

I was hoping that something like this would appear, and tried to pitch the idea once :slight_smile:

The only thing that is missing from making this perfect, would be to be able to move the read head freely, allowing scratches, slowdowns, speedups etc… and some good interpolation/anti-aliasing. Also it might be really useful to be able to set the buffer in multiples of a clock, to sync it to BPM.

If I remember correctly, @baconpaul said all this could be done easily with his universal delay buffer from the Surge XT stuff, he even wanted to build that, but is probably very busy with everything else he’s doing. Maybe you can use his technology, though, to make this thing fly af.

He said he got the buffer ready for all that, perfectly interpolated, so maybe you can plug it into this thing. I’m no programmer, but I hope this might just work :smiley:

Anyways, very good idea! very cool!

I don’t think I used the word easily :slight_smile:

1 Like

:smiley:

It’s probably not, I don’t know - it’s a cool module anyways, just thought maybe this could help to make it better.

almost every delay line has a good interpolator, right? It’s not very expensive. As has been determined over and over again here.

The difficult thing seems to be to manipulate the playhead directly while keeping a good sound quality.

There is now the first open source plugin that does this, so maybe this could provide the right buffer:

Well that was unwise of me!

It looks like a cubic interpolation. That’s what my old SFZ player does. I know for a while there were people doing “zero order” or “drop sample” interpolation, and everyone agreed that sounds bad. It’s not clear to me how audible the differences are once you are at least at linear interpolation. I’ve always done cubic, but that’s more a habit than anything else. I know some people make some pretty fancy polyphase since interpolators…

Is this (not released yet) what you’re thinking of, @Schabbes?

1 Like

I was hoping it could be done so that the modulation would sound as smooth as using the adjust slider, allowing to scratch the sample, create slowdowns etc.

TIME1 is the first open source plugin that can do this the same way as Gross Beat, MRhythmizer, Time Shaper… in those plugins you can control the buffer very precisely with an MSEG - if this could be done with external modulators in Rack, this could be really powerful.

But I have no idea how to do it… I just have some ideas how you could use it if it would work :slight_smile:

Without trying Time1 yet, have you noticed that there is a speed input that gets added to the speed control? If not, that might open up some possibilities.

Yeah that’s nice, too! Maybe making it follow 1V/Oct might be useful.

It also might be useful to be able to adjust the buffer length in measures of a given BPM to sync it.

Nice module anyways, very cool idea with the multiple heads for 1 buffer!

1 Like

I liked that V/Oct idea so much, it’s coming in 2.0.15 (whenever that happens).

Here’s a demonstration video, I think it opens up some interesting uses. Like a…janky Mellotron whose sound changes as you play it.

By the way, I’m posting irregular progress reports on my modules at my StochasticTelegraphTech YouTube channel, in case you’re interested in following along (or suggesting ideas that escape me).

2 Likes

Nice!

I found that this module does a pretty good job of automating the playhead, too: VCV Library - Biset It's good cholesterol

When in the first mode (phase mode) and automating the phase it seems to be able to handle that pretty well.

In the second mode it actually does exactly what I was looking for - allowing you to completely freely scrub the playhead while still sounding good.

2.0.15 release is out this morning. Here are my release notes:

  • Memory gained access to the file system:
    • Memory can now load .WAV files into itself, replacing the entire contents of the Memory and resizing it.
    • Memory can save .WAV files as well.
    • Since file operations can take a widely varying amount of time, Memory sends out a trigger when those operations complete.
    • You can load and save files from the menu, or you can use BASICally to send Tipsy text messages to Memory to tell it to load or save a file.
    • Since surprising things can happen when loading or saving files, instead of silently failing, when you have the LOG output of Memory cabled to a TEXTn input on a TTY module, you can read the log of what happened on the TTY.
    • Videos about these features are here and here.
  • Ruminate now has two new menu options:
    • Fade on Move - affects the behavior when the slider or SET moves the position of the head. If checked (the default), the L&R outputs will be silent until the position stops changing. If not checked, then the playback will continue as it’s being moved. See example video.
    • Use Speed as V/Oct - affects how the SPEED is interpreted. When unchecked (the default), the sum of the SPEED input and control is how many samples the playhead moves forward per sample emitted, so 1 is normal speed, .5 is half-speed. When checked, this sum will be interpreted the way that V/Oct is interpreted in most modules. See example video.
  • When the sliders on Ruminate and Embellish are released, they now resume normal operation more quickly.
  • Put a big “T” behind ports only input or output Tispy text messages. Put a less solid “T” on the BASICally OUTn ports, to suggest that they can emit both Tipsy and regular values.

More details in the Memory docs.

11 Likes

Hello, is there any chance that there will be sync to clock feature? (I’m waiting for it :>)