indeed, the BEA-5 manual gives a very valuable insight on the functionalities of the analog modular studio of Sonology. It also gives valuable info on the resources Keyn and other electronic music composers had at their disposal. Sonology had (and still has) a very powerful analog studio, much ahead of time. The individual modules are very generic, in a Serge-esque manner. Some of them provide common functions while others are very idiomatic. Beyond this, the true strength lies in their interconnection possibilities. This is one of the few places where some of the cybernetic music ideas put early into practice.

4 Likes

just a quick note to say that this thread combined with a friend picking up the Sonic Acts book just got me hip to him in rapid/serendipitous fashion - can’t believe he wasn’t on my radar prior - beautiful!

super inspiring, along with all the other feedback/cybernetic patches here - thanks all!

I did a little study of Jaap Vink’s notes and I copied them together with short descriptions of what each abbreviation means. Sorry for the messy notes, I did it quickly. I only couldn’t find any explenations for the T-DSC and the DCA. Any abbreviation with a T- means it needs a trigger input. But what could a DSC be? A Digital Oscillator? They didn’t have that I think, right? A DCA should be something simple, probably a DC Amplifier. All in all, it seems like a proper patch with some feedback signals in there. We do not know the exact setting of each module but at least we can re-create the patch in modular and experiment. If anyone knows what a T-DSC could be, please let us know!

2 Likes

this is only a speculation so not take it for granted:

[DCA] - Since the V-FUG is actually an oscillator with CV input for the frequency, the DCA should be some kind of Control Amplifier that controls the range of the incoming signal and therefore the oscillator frequency.

[T-DSC] - In the manual abreviasions all units starting with T are units that receive a Trigger signal and all units ending with SC are Scaler units(T-VSC & T-BSC). Since its output is connected to T-ENV, which is an envelope generator, I think it should provide some kind of Trigger. This trigger is controlled by the FUG. an oscillator, probably operating as an LFO, the source for steady rhythmic triggers?

Dual slope… chenerator. :slightly_smiling_face:

2 Likes

Yes you’re probably right. Do you think we could recreate the functions from both the FUG and the DSC with a Serge DUSG module? Maybe the DSC is the END of cycle (or Pulse output) from the DUSG.

Here’s a set of interesting looking cybernetics-related patches and modules in VCV Rack:

https://patchstorage.com/author/stalysmusic/

7 Likes

wow! what a treasure trove – gonna check these out ASAP

Amazing indeed. I’ll check it out for sure!

Thank you! I actually wrote to Mego some time ago asking if they knew how to decode the diagrams printed in the Vink booklet–they never wrote back.

It seems like the DCA might be a DC-coupled attenuator? They always seem to have one in and one out, and modify a control signal on its way to somewhere else. If that’s the case, then the circular T-SAH > DCA > V-FUG > feedback setup is straight out of Rob Hordijk’s playbook, almost a sort of proto-rungler.

SuperCollider user here. Would love to investigate feedback systems with SC if other people are up to it !

5 Likes

Yes that’s a good guess. It doesn’t seem to be very important though, it’s something simple for sure. You could contact the Sonology Institute which is Den Haag for these matters. I don’t think a record label would have any idea what you’re talking about, haha!
http://sonology.org/

1 Like

That’s a great idea! I’m not into SC, but I’ve studied Pure Data long time ago. I think the principles are the same. If you can share your thought process and the patch, we can all follow in our own systems and see what comes out.

1 Like

An SC beginner here, but very much interested in following along.

At 5’ of this video : Cybernetics I - Basic Feedback - YouTube
Here is how I would translate the patch in SuperCollider

(
Ndef(\test, {
	var freq, sig;
	freq = LocalIn.ar(1);
	sig = DFM1.ar(SinOsc.ar(freq: freq.scope * \sin_freq.kr(1.0, 0.1)), \filter_freq.kr(1000, 0.1), \filter_res.kr(0.1, 0.1));
	LocalOut.ar(sig.scope);
	sig;	
}).play;
)

(
Spec.add(\freq, [20, 14000, 'exp', 0, 440, "Hz"].asSpec);
Spec.add(\sin_freq, [20, 14000, 'exp', 0, 440, "Hz"].asSpec);
Spec.add(\filter_freq, [20, 14000, 'exp', 0, 440, "Hz"].asSpec);
Spec.add(\filter_res,[0, 1.5, 'lin', 0.001, 0.1].asSpec);
)

Ndef(\test).gui

Sounds great :slight_smile:

9 Likes

Crikey @ThanosF that video+audio of yours in the top post is totally captivating! Thanks for sharing. I need to catch up on the material in this thread. It’s gold.

1 Like

I’m keeping an eye on these diagram ‘translations’ to maybe try and recreate in pure data when I get the chance

After the SuperCollider meetup yesterday, we decided to start a thread on this topic on scsynth.org
Do you want me to cross-post the SC code here and on scsynth.org ?

  1. Feedback loop with a filter only.
    https://youtu.be/MnYkqlSIr_I?t=177
(
Ndef(\test, {
	var in, sig;
	in = LocalIn.ar(1) * -60.dbamp;
	sig = DFM1.ar(in, \filter_freq.kr(1000, 0.1), \filter_res.kr(0.1, 0.1));
	LocalOut.ar(sig);
	sig.tanh;
}).play;

Spec.add(\filter_freq, [0.1, 14000, 'exp', 0, 440, "Hz"].asSpec);
Spec.add(\filter_res,[0, 1.5, 'lin', 0.001, 0.1].asSpec);
)

Ndef(\test).gui;
  1. Feedback loop with sine oscillator
    https://youtu.be/MnYkqlSIr_I?t=268
(
Ndef(\test, {
	var freq, sig;
	freq = LocalIn.ar(1);
	sig = DFM1.ar(SinOsc.ar(freq: freq * \sin_freq.kr(1.0, 0.1)), \filter_freq.kr(1000, 0.1), \filter_res.kr(0.1, 0.1));
	LocalOut.ar(sig);
	sig.tanh;
}).play;

Spec.add(\freq, [0.1, 14000, 'exp', 0, 440, "Hz"].asSpec);
Spec.add(\sin_freq, [0.1, 14000, 'exp', 0, 440, "Hz"].asSpec);
Spec.add(\filter_freq, [0.1, 14000, 'exp', 0, 440, "Hz"].asSpec);
Spec.add(\filter_res,[0, 1.5, 'lin', 0.001, 0.1].asSpec);

Ndef(\test).gui
)
  1. Feedback loop with two sine oscillators and FM synthesis
    https://youtu.be/MnYkqlSIr_I?t=501
(
Ndef(\test, {
	var in, sig, sine1, sine2;
	in = LocalIn.ar(1);
	sine2 = SinOsc.ar(\sin2_freq.kr(440.0));
	sine1 = SinOsc.ar(freq: \sin_freq.kr(440.0) * (1 + (\fm_amount.kr(0) * sine2)) * in);
	sig = DFM1.ar(
		sine1,
		\filter_freq.kr(1000),
		\filter_res.kr(0.1)
	);
	LocalOut.ar(sig);
	LeakDC.ar(sig.tanh);
}).play;

Spec.add(\freq, [0.1, 14000, 'exp', 0, 440, "Hz"].asSpec);
Spec.add(\sin_freq, [0.1, 14000, 'exp', 0, 440, "Hz"].asSpec);
Spec.add(\sin_freq2, [0.1, 14000, 'exp', 0, 440, "Hz"].asSpec);
Spec.add(\fm_amount, [0, 10, 'lin', 0, 0].asSpec);
Spec.add(\filter_freq, [0.1, 14000, 'exp', 0, 440, "Hz"].asSpec);
Spec.add(\filter_res,[0, 1.5, 'lin', 0.001, 0.1].asSpec);

Ndef(\test).gui;
)

Have a good day

Geoffroy

12 Likes

Hi Geoffroy, i don’t think is best to cross-post the SC code. You have shared the link so if anyone’s interested specifically about SC then they can check it there. Great stuff though, keep it up!

1 Like

i always find it helpful for patches like this to add some (short) delay elements to the feedback loops (DelayC, AllpassC). this will let you tune the characteristics of the inherent block-sized delay from the LocalIn/LocalOut pair and maybe (by small modulations?) get you closer to the organic qualities of analog feedback networks.

(there are even tricks for doing feedback within a single block - specifically using/abusing DBufWr/DBufRd and Demand.ar. but this will be inefficient and won’t let you use non-demand UGens directly.)

@ThanosF we have lots of supercollider discussions over here and a platform (norns) which supports SC work, so i don’t think it’s inappropriate.

7 Likes