### How to have all frequencies from 0 to 15kHz?

I would like to smoothly transition from the full harmonic series of 0.01Hz to the full harmonic series of 65Hz using Max/MSP. I would like all frequencies within the range of 0Hz – 15,000Hz.

However, for a fundamental frequency of 0.01Hz, this would require 1,500,000 separate frequencies. Using the Max/MSP synthesis technique I know now, this would mean using 1,500,000 cycle~ objects or filtering noise with 30,000 fffb~ objects (each fffb~ would be set at the maximum of 50 bandpass filters).

I’m not about to copy and paste that many objects, and I’m sure that my Mac wouldn’t be able to handle it anyhow. This is pretty frustraing, given the simplicity of the concept. Any of y’all know of a more efficient way to accomplish this? The real issue seems to be the amount of data, but a million pieces of data can be handled much more efficiently than a million streams of signals. Halp!

I might try SuperCollider, but that’s still a big ask.

Additive synthesis is going to bring even today’s fastest computers to their knees with ~1million sinusoids implementing additive synthesis. Ditto for your subtractive approach.

Why not calculate the waveform outside of time (aka "non-real time")? A nifty expression powered by Uzi, a poke~, and a waveform~, and you’re good to go. A really sharp low-pass filter will be needed to brickwall the frequencies about 15 kHz as you slide the waveform’s fundamental frequency the 16 octaves you require. You may want to check out the Forbidden Planet example for a possibly useful way to do that.

Another approach, if you have friendly amplitude coefficients, might be waveshaping. I assume you’re familiar with Bernoulli functions.

Still another: do the calculations in your favorite spreadsheet app, then copy and paste into something MSP-friendly. SoundHack might be helpful here.

There is the question, though, of how much of all this you’re going to hear. Most built-in loudspeakers aren’t exactly studly below 100 Hz. I assume you’re using top-of-the-range high-end sub-woofers.

i dont get the 0,01 Hz part. unless you are doing AM or FM with the partials, noone will hear them.

Thank you everybody for your input. I am going to try these techniques. I will post results when I have them.

i’m pretty sure the full harmonic series for 0.01 Hz is undistinguishable from white noise by the human ear

This uses a closed form of generating an arbitrary number of harmonics of equal phase and magnitude– I think it’s the same algorithm used in the blip ugen in supercollider (or buzz in csound).

You’ll find that subsonic base frequencies are not very interesting– you may need to smear the phases to get a more ‘interesting’ results. Watch out for aliasing.

-- Pasted Max Patch, click to expand. --Copyallof the following text. Then, in Max, selectNew From Clipboard.----------begin_max5_patcher---------- 1285.3oc0Z1rjaiBD.9r8SgJcb2Y7PC52bauu6SvVoRIKg8nrxBEj7rNIUlm 8U.R1dlf8vXaQXuHKgPPyGc2P23uOel+R1NZqu2G79auYy997YyjEIJX1vyy 72jsKuJqUVM+Z5+xV9Y+6TupitqSVbEKqXCss0CiQiurrP9p9peOgLV3JVcW c1Fp7U+AuLqZ7M0a2v11UQ6jcDbT8aK+lr9.r.MTrplcesgpDdeeuOdncJqe cyzj0k+XY85Owo4cpOgDz2Zd.VbMNUde+UuOJ9feLet3xc2Hn.XcLA6dLAqv AIQBExUAkb1lMz5tehJOwp11OV0.Dz6EHii7U70KkOumEm.QMbZauLk0UxpO dXiijCUjbziFt79oWj76gj3Eg24M7vkhu1pxBJWClvQmW6nIi2itNJ+Sz5rk UziA0HRhtbsl9hDOdezAXqCEDPN5CQJhHtlFbaMuJV1wxzAn.GzvRwCbHbv9 5laYsLqk5shS+xVZc9W0QF3WkEFLnODeUFXIG4cBPvj.wdYYIk6wV48XFeCq tLucrNUk0zb11ZYEw+LdgnIGulRJHPthVjDUIRpKlAtLOQM8MKm0lyZnOqSq BcdqJSMevmY3PjNnIARE.LHW5NEea8mb+y87OTy.DBmZGJskqq6aq2MWT6gg n7uRttMwrph02s5F9u60kwFrTjonoWrx5sREd2pWeo6xS4xXXwnTKo1P.2Vs APjafZyInRaY8NsNKR+kBky4xDKwAFEJoRjUoRhqRkD31AkS5gAG9+XOLCwL gSwSmOle6T9XvDW0GSfZMIEOBlDp7fVSIra60Emn721GdX3UfD52Jxx0M9gz yuUSim+TaZLVNMFDNd8x1A4K15XCm0wD7b+jyeE7mKVVkk+O5FOIme7v62Pd AUVeHZblbcNqhwUCDkp293Nfih6HOqJe+F52+0KY79HueYKjF.PhnE.fDiCk 2ItI7kM3xsq1GhcvPYq4kEunwHHHMBDMAYnIPKBPjTLVbGNDklbnAWeQxgwp jQp4U0JeAJ263PKXlBwNtY5P5aPIWkY5I8mqCIANNRHRu.QgSAQd3YO7BcPw YWfaX+hPrJkN3oQOwKZANgbvI3wnw0iuPkymnfoYGQZHRhqBDUhqlTUkGza+ L4tYU6d9BxniJKdDzzgje2CzPjnolHk0WNORilNbz7XVKiqytwwyukJKlgvj DCgdyl.G0rIUE7.AeKTSjY5VWhqlhnw665xM8Q+K3BBgt.aJyhPuun88yaww 3voLjccAm53qXOkKPkyZ0l6KvUS80vtdUo95DYvP1nxCF5U+KJjsmn7WBpV1 Vd9nfM9Oiv6PfaEz1txZ4omcTkDYf+nJ8XYQAs9XiqhxVg8lDpHsSYFKOXCj Gh0DGwY49lhiH8g1RdhLQdBrl7Xj3HlRgyHNaJKZX8dXaGO6P4+eA.CxeTmd n7oCczMa.7JUa8i.6M+Jho5MEmD2Rb.haIOX64rxH7.VSdBLjNfy3aH1ZrI1 PCK6vFvjoJvdzAhM0QtkVmKzD4gXs4KrQaSJ0Z7IwD7Xu0IvlHORcdKYdYxz E1dSWupqNi4tk3ioSWVBOlHNVSZLw0CwdhiIpxQNkzXOEGv3kIrjhrQZxgNF ePtk7.VbcKiWV+R7KqRNSVSySTd6PaJEE+MYeVcn5xy7WjyP0ixrA4yoOUNV e4o36mwyerril2skqRO0tjH+4h94Gy+O.J8Xqx. -----------end_max5_patcher-----------

i’m pretty sure the full harmonic series for 0.01 Hz is undistinguishable from white noise by the human ear

White noise is uncorrelated. Any harmonic series is correlated. The ear hears the difference.

The only way you’d get a kind of noise with a harmonic series is by constantly changing the amplitude of each partial in a random manner. In theory this should be a way of modelling a cymbal. I had a go at implementing this latter idea several years ago, but I ran into the limits of CPU performance long before I got any kinds of interesting sounds. I think CPU limits will still hinder a real-time solution, but I’d be delighted to be proven wrong.

Here’s a tone consisting of 200 harmonically related sinusoids of equal amplitude sweeping from 2Hz to 20,000 Hz over the course of 30 seconds (or whatever rate you specify) and adjusting the number of partials to avoid aliasing. Modify to taste.

-- Pasted Max Patch, click to expand. --Copyallof the following text. Then, in Max, selectNew From Clipboard.----------begin_max5_patcher---------- 1008.3oc2YssTaCCD84juBW+HMjJY4qcZeneGc5vnXKRDMQNisCjBE91qtXm K.QRgRDfYFrGIqHumydztqjua3.+IkqI09de06mdCFb2vACjcI5XPa6A9Kvq ymiqkCymQtobxU9iTOpgrtQ184O3AG206RbS9LJa5EUj7F0jiRCGCF4AyBD2 PQhqAfw.ue09anEx4gO2mGFzMQWVxZX3ED4i9QEEOu6IrUKnr4jFoQEryvqo 2JGNT7hTcWtpgOxl+rjnrE+Z5TFep17t4SlZLxYCJ579gCEWFYIqjWtXAg07 DZ4uZnjfrXIW.iULiNJAkYlRtrZ5DQufM.eORBpmj1mC.u.NXJlxdPCdgIRf 1BaXLR1J7..NY6LUwgaCo5BBCOYtztA5TAGxcOxymxcQGvqG7BPL41BbtEPF gj2Bi5t9rHFoUa++6e3yvDRkt0nB0G2ZCRE2h.ZEjPyBRq8bvib8qvMx8lSv roultyCDZ6Lcd3ffPkLVxYoHcbVvGu3ZGfR3uHCw6a4k138gw53EX1QxKv2q 7xWrQpnh2GmnkRR6KRkOaPnzpPfwxEPnTsrRRegUN6ANHAiMGLNURHgZKN.F 2enEyISspDRXzGNJ4x4k7IwhhIBLmcFF9FlclCDrKyOubFttrhufJx7xoHIE l.0RdA8onLisXEkpfOj9jzvdCqv2gjNoRHPJUfJ9vPbFvIlUTKlN8jx29ttP uHU141RWzSIY8EcBtntA2rp1qV6llTxDnzjMrAfScd5SvVbO.27IsU51cXOw .yxkn9hbYY4M7RcA1DuEHomXsovC6QIgBsfTRAlyAg5MZk1RV33DI9yL8D0p bzt+ndSgKk047hG+sbSRa9ODjEawwKlztex.s4sORlJ7jwTxg3Omxd7wvKgn n+8ou5xUU4cul17sdawXAotgxvMzR1NiQbxSdvMCZFsnfv1sf+Ezhkk7TGs1 .JIYbj3TsTEJmss01WDsVrqghCeZj1Bf38rsmG.h5r1AkOE.udlSjE7o3KT7 NxbDmVzQ4dyPBGJLUkYNEto0Iv89Ht54QPlA.7JZN1vmPm4dEemCi1iHAw6N 6A5N6wTzAjC8W1DcvYVSfMqsfNyYYi03NoLLy1PmNxdRsMSsirGaVpKNHUGo dDGisUIJ.GQltfLYts1yLVUVir0IHSmU.3Qrt0HHVljN..2z5MCA7wfbihHx RywQKXro1AGt90pf+wtydfVXOQGm5WTTpPuGIKXsqtUQqSg5GZa.QGQn.KIT GEe1lr6IuP1QsMX7xkWSppamSok3u.eUYknY7HYSJS0T9Yo7qHWS6FuZ.3p7 YzFRdypJ0t5WmF6OT7dte3+.sM0ca -----------end_max5_patcher-----------

christopher, ur patch is genius, thx so much for this, super helpful!!!!

Forums > MaxMSP