SynthMaker

Anyone want to help build a "DSP Student Synth"?

Archive · 2010 24 old posts

From the original SynthMaker forum (2004–2014), with its members’ names and dates.

jcsquire ·

Is there any interest in building a synth to help EE students learn about filters (and maybe get them interested in SM building themselves)?

I teach courses to undergrad EE majors in both continuous time and discrete time signal processing. They love the interactive demos I’ve coded in C#, and when one asked last week what different filter types would sound like, I realized SM might offer a whole new world of creative demo possibilities for them, and possibly for many other students (my demos are becoming shared among several universities...some are on my website at http://www.jimsquire.com). It’s surprising how little intuition most signal processing textbook authors give to students; it seems a good venue for a SynthMaker synth.

Their needs as students are a little different than most new synth builders. They are familiar with oscilloscopes and with frequency (Bode) plots, but lack the intuition about what filters do and how harmonics sound. I’d love to see a simple SM .osm that is patterned after the default tutorial (the two oscillator synth with the ADSR amp and filter), but with 1) an added oscilloscope and spectral plot that can be set to either just before or after the filter, and 2) a small added filter Bode plot that’s dynamic (ie it shows how the ADSR changes the magnitude of the transfer function for each new voice).

Is this possible in SM as a stand-alone-VST? I’m not sure if a spectral plot component is available, and if it is, if it compiles into a VST. If someone finds this interesting, I could give them a small honoraria (and bragging rights as the developer, FWIW!) if we can keep everything open-source so the students who feel so inclined can download the .osm version and play around with it themselves.

Disco_Steve ·

SM can do bode plots 🙂 and what you sugest sounds relitively easy. there isn't an 'open source' collection of filters to cycle through so one will need to code them. but from your c# examples that should be relitvely straight forward. i.e. would you be willing to post the filters you would like coded in SM speek (including all coefs and maths, I know they are easy to find but give and take is always good 🙂 ) and then I can whip them up for you

I would be happy to help, after xmas, I have some time before uni starts again. and I dont have any exams at the start of the second semester this year (YES!!!)

I've never made a synth before I just make funky sound algorithms 🙂 and would love to learn myself, and teaching others along the way is aways a bonus. (dont worry I have good SM skills and know about synth concepts, they just dont interest me as much as DSP)

MegaHurtz ·

jcsquire wrote: if we can keep everything open-source so the students who feel so inclined can download the .osm version and play around with themselves.

hihi

If not this is one of the best programs to do yust that. If you have the time for a bit of research seek out Dozius filter pack "on the forum" Although 99.9% of the digital representations are filters based on ye good ole biquad.

Disco_Steve ·

I didnt think dozius wanted non paying members to use thoes filters? and they are all optimised. generic slow code will be more usefull to students?

jcsquire ·

Thanks for the feedback! I'm sorry; I was unclear about the filters. The filters I meant are the same ones as in the already-published demo synth that first pops up by default when loading Synthmaker. It comes with a lowpass, highpass, bandpass, bandreject, and peaking filter. If for some reason those aren't available for public distribution, I have no problem designing the IIR or FIR coefficients to implement them, however.

The musical community intuitively knows what these filters do, but my students lack that understanding; they only "know" them by the sight of their Bode plots, not by their sound. If they could see a little Bode plot underneath the filter choice at the same time they hear the sound, the relationship would be clear.

So I'm really suggesting "just" (and I appreciate how difficult "just"s can be) adding three plots to the already-available demo synth: a small Bode plot under the filter choice, and a combination oscilloscope/frequency magnitude plot of the signal that can be switched to tap the signal either before or after the filter. My impression is that some of the plot components don't compile into a stand-alone VST well, but maybe I'm mistaken.

Disco_Steve ·

yea the filters in the generic synth are for all to use. 🙂

shouldnt be too hard. how pritty do you want it! because if you want it to look like sex I'm not the best guy for the job! if you dont mind it being 'ugly but practical' then I can whip you somthing right up. although knowing this forum, someone will have done it before I get home!!

MegaHurtz ·

I have to go now but if you give me a coulpe of hrs ill make you something nice tonite.

trogluddite ·

I built a scope a while ago (Thread Here) that you're welcome to use. It will display multiple colour coded traces simultaneously by attaching the small 'probe' modules anywhere you like in the signal chain. At the moment the vertical range is 'autoranging' (may not be so good for amplitude comparisons), but if you think it's suitable for you, I'd be happy to make a few adjustments.

jcsquire ·

I love working across timezones!

Disco-Steve: My students are engineers; their theme song (besides various Monte Python excerpts) is "we're engineers: sex can wait until we graduate". Would love to see whatever you come up with. I have a small honoraria for this that I'd be happy to distribute among whoever helps, although the really cool part is knowing you may help quite a few students get that "snap, that's what it means" moment. I'll put all contributor's names on it, of course, and if we can get it working well it may enjoy a healthy distribution among students from many universities.

You'd be surprised to see how many textbooks teach filter design purely using equations and plots, and how few attempt to use audio, even though we process visual images in the space domain, but hear in the frequency domain.

jcsquire ·

Oh, and thanks Trogluddite; your scope is beautiful!

trogluddite ·

Thankyou, glad you like it. I'll give it a little check over at the weekend - should be easy to make the scales properly calibrated and add a few grid lines, so that amplitude comparisons between traces are made easier - something I always meant to do (SynthMaker is so versatile that I often go off on a tangent mid-project.

jcsquire wrote: purely using equations and plots, and how few attempt to use audio

"Writing about music is like dancing about architecture" (Elvis Costello) - though I do rather have a soft-spot for some of the onomatapeoic neologisms used by the reviewers of audio hardware/software - I bet even Shakespeare would have found it challenging to describe the sound of an "Acid Techno" filter sweep in wprds.

jcsquire ·

Thanks Trogluddite. I don't understand SM graphics at all, but I think I recall that certain graphic plots don't translate well when the "compile to VST" option is checked. I hope yours works!

trogluddite ·

Must admit I've never tried it at a VST - I use the scope mainly for schematic 'de-bugging' etc. The main display is basically the same graphics routine as my goniometer design (LINK). and that has always exported OK. Only source of problems I can think of would be the display resizing etc. (SMs VSTs always have fixed window size) - but let me know how you get on - I'm always glad of any feedback that can help improve my designs.

jcsquire ·

Thanks for the feedback Trogluddite! I'll let you know whatever I discover in the process. It is a beautiful scope you've made - cool to find programmers with artistic talent.

Is there anyone interested in wiring up Trog's scope and a spectral meter (and I appreciate the fact that there isn't a spectral meter component available!) to do this? Although I've been a SM member since beta times, and I've used it to code some simple frequency-generator components for non-audio uses (if interested this is an example of such a use) I really don't know anything about its graphics. Since synth development is not a hobby of mine (not that it doesn't look like fun, but it's too close to my day job of teaching DSP...like a friend of mine who's a game developer who won't touch a playstation) I'm not keen on learning a new language to create one demonstration.

If there's anyone interested in wiring something up like I've described, I can assure you it would expose a lot of young adults to SynthMaker in particular, and hopefully get a few more motivated to learn more about DSP. I realize there's not much fame in that, and that having your name on an open-source synth doesn't exactly pay the bills. I can say that demos I've made or organized do get a wide readership; only US universities so far, but they've been used by profs at MIT, BU, Arizona State, VMI, and others...so it's not like you'd be helping just one random guy, but rather potentially many teaching many, many others.

Disco_Steve ·

can it wait till after xmas day?

if so I can definatly whip you somthing up. if not I dont think I have time sorry 🙁

jcsquire ·

Disco_Steve, thanks for the offer! There's no rush at all with me...my class is fall-only, although depending on how things turn out I bet I could find several other schools that would love to experiment with it in the spring semester. My thanks and a small honoraria to you!

If there's any out there who teach DSP too, I'll write something up for the 2012 annual conference and make you a co-author if you assist in the development or help take some class data using it; I'll volunteer to write the lesson.

trogluddite ·

Here's another little building block for the student synth - a state variable filter complete with frequency and phase response plots. Still needs a little graphical tidying, but the displays look correct to me (sure you will be able to tell me if they are iffy). You will need to enable the audio output in order for the display to update as it is derived from the filter code.

Because of the need to analyse the filter response it only works for mono signals (not polyphonic) - a polyphonic plot would make little sense, as any kind of modulation of the filter would be different for every voice. In fact, it strikes me that a mono (one voice) design may be the way to go for the whole synth - multiple voices, each with their own timing and modulation could potentially lead to confusion in interpreting the bode plots/oscilloscope waveforms etc. (the scientific principle of only changing one variable at a time is probably a good metaphor). I have a few other component parts in my toolbox specifically designed for use in mono (most stock SM parts are optimised for poly), so if you think this is the right approach, I'll knock up the skeleton of a mono synth. Hope you find this useful - I'm interested to know what you think - I've always been an empirical rather than analytic 'synthesist', so I'm finding this an interesting little project - it has a lot of potential to be useful for helping out novice SynthMaker users as well as your students, I think.

jcsquire ·

😍 This is even better than what I envisioned. (I appreciate the thick lines...thin lines often disappear when downsampled by LCD projectors). The addition of the phase information, different filter types, and the ability to manipulate res is great. I completely agree about mono-voicing. This isn't about musical performance, but about understanding. And maybe about providing some Legos so the more advanced students can delve into it themselves.

My interest came about because two weeks ago some students asked: "Are there people who use DSP concepts to make new kinds of musical instruments?" And I realized that although we've done labs analyzing audio harmonic content, I've failed to make the subject relevant to them using music. There's no reason for the chasm between the dry DSP texts and the active communities of SM, KVR, and others. Hopefully we can at least partly bridge it!

trogluddite ·

Really pleased that you like it 😀 I'll try to make a start incorporating these into a synth design during the Xmas break. Of course, I may get a little distracted by the new SM2 update! - but it looks as if that may actuallly contain some new modules that will be useful. I see that there are some new FFT and scope display modules, and the new .exe export and DirectSound options ought to make it easier to create a little standalone application that is more portable between different PCs

I know just what you mean about the 'dryness' of teaching EE from the textbooks - after years of making electronic gadgets as a hobby, I decided to study EE at university - and ended up completely losing interest when I realised that we were never actually going to build anything (I remain convinced that the department never even owned a soldering iron!)

It's great that you are willing to take such a pro-active and creative attitude to your teaching - I was fortunate enough myself to have a school physics teacher who was similarly channeling the spirit of Johnny Ball et al. - I'm sure I wouldn't be using SM today were it not for his 'roll up your sleeves and get stuck in' attitude to the subject. Mind you, there weren't the pressures of Nat.Curriculum targets/SAT tests/Health and Safety paranoia in those days (you wouldn't get away with filling a chemistry lab with noxious purple smoke any more!) In contrast, the boss at work was showing us some oriental teaching resources for embedded microcontrollers / robotics / DSP etc. he collected during his last business trip - Jaws dropped when he revealed that in Taiwan, this was to be used for the 10-15yr age group!!

jcsquire ·

Trog,

I don't want to derail this thread, but don't be too disappointed by your EE experience. I've learned very little about building electronics from my formal courses. Most of it I learned either in grad school from an East German post-doc who could MacGyver-like build anything from discarded televisions and printers, or by doing it as an independent consultant (actually, by first failing to do it, then by figuring out why my circuit didn't work). To be clear I'm not saying they were bad courses: they taught me plenty about theory, just not much about practical application. Here's a link to some student projects I've recently advised that are probably closer to what you envisioned when you joined. Maybe we can add this to the list.

Anyway, I'll look forward to seeing what you come up with!

jcsquire ·

Thanks again for all those who have voiced interest in this project. Just want to bump it after the holidays and before schools start up again...those relatively "quiet" couple of weeks (for those without young children, anyway!).

jcsquire ·

Bumpin' again to gauge interest. I do think it is more complicated than it sounds; I remember trying to do it about three years ago and finding there were some graphical components that would work in design mode, but not after compiling to a .dll.

Disco_Steve ·

Sorry I'm completely swamped at the mo, I was hoping to have some time to do this. But I don't think I do sorry, I have some important business meatings with some big names coming up very soon, and I need to get the prototypes finished for then. So time has gon for scarce to negative!!

If I do have time, I will try. But hopefully someone else will.

Steve

jcsquire ·

Thanks for getting back to me, Disco_Steve, even if it is with a "I'm swamped." Been there myself, and I'm there right now!

I'm wondering if the best way to go forward with this idea is to do it from scratch in C# (since I can afford to have latency and I have some nice midi modules ready to go in native C#) or C++ using the JUICE library. I'm not looking forward to doing either though, since either will be essentially closed from most students' perspectives. Hmm....

Wrote something here? To have a post removed or your name hidden, write to [email protected].

Before your first post

A few rules keep this a friendly place. You agree to them once.

Shown next to what you post, here and in the app. It doesn’t have to be your real name: 3–24 lower-case letters, digits or _ (capitals become lower case, spaces become _).

    Then your post goes up straight away.

    Delete this reply?

    Open it in SynthMaker?

    It goes on the track you’re editing there, in place of that track’s sound, and into My sounds. Your other tracks stay as they are.

    Want to keep that track’s sound? Start a new song in SynthMaker first (Song › New song), then open this.

    Report this reply?

    Only the developer reads reports. The person isn’t told who reported them.

    What’s wrong with it?

    Block this person?

    You won’t see their posts and replies here any more. They aren’t told, and you can unblock them at any time.

    People you’ve blocked

    Their posts and replies are hidden from you. Unblock someone to see them again.

    The community rules

    A few rules keep this a friendly place. Everyone agrees to them once, before their first post.