This thread is simply amazing, and gave me an idea for Teletype : a new “HZ” table that would allow CV out to refer to a “relative” frequency based on the 1v/Oct standard.
Or, the ability to have fractional/floating point values for the N table ? (not sure how/if it could work).
Anyway, the goal is to easily produce frequencies that share some fractional proportion.

Or is there another way ? the EXP table lookup ?

3 Likes

the discussion in here has lead me into some pretty new (to me) sonic territory!

This is a first attempt at over-sampled bandlimited FM on the aleph’s blackfin DSP. 4 ops, moderately capable modulation matrix, 4x oversampling, 1st order lowpass @ 10kHz on each modulator, 16 bit processing, sine/triangle/saw waves & various little optimisations/hacks.

In the study above I run a semi-repetitive kria arpeggio pattern and gradually increase the overall note length from shortest to longest. No live tweaking of the FM settings but it’s a patch with some slow attack/decay settings & circular feedback loops across 3 oscillators. feedback between modulators is a lot more entertaining than in the original design.

It’s possible there are still some bugs in the DSP code but I will post a version of the module itself soon!

9 Likes

There is an interesting article by Barry Traux called “Organizational Techniques for c:m ratios in Frequency Modulation” in the book Foundations of Computer Music. Like most of those maths heavy academic articles I found it kinda hard to follow.

He groups c:m ratios that share a number of partials. You can cross-fade oscillator pairs with “similiar” ratios and, due to the common partials, the result sounds like a timbre sweep rather than fading between two distinct sounds. This gives another timbral parameter to an FM synth, other than changing the modulation index. Pretty easy to play around with the idea on most FM synths.

7 Likes

this whole thread is inspiring
+
your new fm module seems fantastic!

Too bad there doesn’t seem to be an electronic edition of this book.

1 Like

yea, i hadn’t heard of this book before and looks like a great collection, unfortunately $72 and “unavailable” on MITsite

there seem to be a lot of $6 and $10 copies from library stores on amazon though

1 Like

It is a great book if you are interested in the history of computer music. “The Music Machine” is another good one put together by Roads a few years later.

Barry Traux has most of information from his article on his web page…
https://www.sfu.ca/~truax/fmtut.html

1 Like

oh - i knew that seemed familiar - it is also in “handbook for acoustic ecology”

1 Like

He talks about it more, from a compositional perspective, in “Timbral Construction in “Arras” as a Stochastic Process” in the Music Machine book. Kind of an expansion on this… https://www.sfu.ca/~truax/arras.html

3 Likes

John Chowning & David Bristow¨: Fm Theory and Applications By Musicians for Musicians
published by Yamaha Music Foundation
Chowning explains FM theory in the context of the DX7 synthesizer
http://www.burnkit2600.com/manuals/fm_theory_and_applications.pdf

Computer Music Journal Volume 31, Issue 3 is dedicated to The Reconstruction of Stria.
Stria was composed in 1977 by John Chowning
there is online avalable the article:
Matteo Meneghini: An Analysis of the Compositional Techniques in John Chowning’s Stria
http://www.mitpressjournals.org/doi/pdf/10.1162/comj.2007.31.3.26

2 Likes

you can find it here
http://camil.music.illinois.edu/Classes/404A2/2/truax.pdf

6 Likes

@vals @widdly That article is fantastic! I had never thought about using the c:m ratio in the ways Truax described. Highly recommended and thanks for the link.

Some more discussion of Traux’s idea here, including some code for generating the groups of c:m ratios…

Also some great youtube links to FM tracks including Chownings Stria discussed in the papers vals linked.

2 Likes

I’ve got some good news for the Supercollider Synthdef-heads out there. I came up with this super-exact clone of DX7 in SC environment. After all these newbie syntax questions, I thought its time for me to give something back to the community. This project started with my internship at the STEIM during last year, I was able to get my hands on an original DX7 synth and eventually found out that this instrument has this mystic / marvelous sound. So I started fiddling with it and made some experiments with Supercollider. After a while, it became an obsession to play with it and started to copy parts of its synth mechanism just to flex my DSP muscles. Sooner, I found myself in this huge project to clone the entire thing. After 2-3 months of implementing process and lots of sleepless nights. I was able to clone the entire DX7 engine with very high accurate results. Other than the DX7’s vintage sound hiss, it is hard to distinguish between the clone and the original one on the same presets. For my own use, I collected some 16384 (2^14) DX7 sysex bank presets from the internet and converted it to some integer sequences to read it from Supercollider. I am also combining this clone with this 16384 preset package. Currently, I am using it with my sequencers to modulate its parameters but for everyone’s ease of use, I implemented a very basic function call. Which calls notes with this format: [Midi note, velocity, preset number]. Additional documentation is in the file. It is very easy to run but one requirement is to put my own collected DX7 presets files in the same directory as the DX7.scd patch and the other requirement is to have SC3plugins because I implemented it with FM7.ar Ugen. For the current version, it is not possible to put your own DX7 patches or modulate its parameters (I will add them in the future). But I think this synth has enough interesting presets and sounds to find some use in the different projects.
You can download the zip of DX7.scd and preset file from this link: egegonul.com/dx7.zip or from my github repo: https://github.com/everythingwillbetakenaway/DX7-Supercollider. I also added it to sccode.org. Have fun!

dx7.zip (990.3 KB)

29 Likes

This is amazing :slight_smile: FM7 was always one of my favourite ugens in Supercollider, but this is taking it to a whole other level.

This link is dead for me - anyone have a repost?

Awesome work! Came to this thread to share this after it turned up on hackernews today. Can’t wait to have a dig with it later on.

this is amazing work! kudos!! it sounds great.

hope you don’t mind, but i forked the project on github and started making modifications:
[ https://github.com/catfact/DX7-Supercollider ]

so far i’ve just refactored the script into a class so you can easily make multiple instances* and manipulate them a little more cleanly, like so:

s = Server.default;
s.boot;
s.waitForBoot { Routine {
	x = DX7Clone.new(s);
	x.note(42, 90, 10002);
	12.wait;
	x.note(42, 0);
}.play; };

next i’d like to fix issue with auto-freeing the synth with DetectSilence. (i think a HPF before DetectSilence will do it; if there are big DC components that get clicked off, oh well.) for now i just extended the max note length from 10s to 24h :slight_smile:

also planning to optimize some stuff like the data file usage.

(*) ok, multiple instances are still a little bugged ATM…

11 Likes

Couple of analog FM questions - I currently have three VCO’s (a Makenoise DPO and a MN STO), which I enjoy FM’ing. I’ve discovered many interesting sounds, many difficult sounds. All in all, analog FM is a theme of my rack.

Based on notes from @zebra above, I started looking at through-zero VCO’s. Any big through-zero fans that can give me a read on whether or not a through-zero VCO like the Doepfer A-110-4 or A-110-6 would be worth adding to the mix? Through-zero seems like it would up by analog fm game significantly…are those two modules good options? Any other through-zero options I should consider?

Edited: Looks like Intellijel Rubicon also does through-zero, not in my price range though.

I’ve been wanting something similar for navigating harmony/generating scales using ratios, and it looks like we’re both in luck! 2.2 should bring us a working ratio to voltage conversion operator, as described here.

2 Likes