SynthMaker

Life after SM

Archive · 2012 34 old posts

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

stw ·

Since there's some actual discussion about the limits of SM and wishes and ideas from many users but no solution in sight i think it's a good idea to collect some statements about other frameworks which go beyond SM. There're some threads around which contain some infos about that issue but i couldn't find any dedicated own topic here. So maybe it's a good idea to throw in our experiences at one place and maybe we could share important information about possibilities or limitions of SM alternatives before everybody has to go on his own trip through that jungle.

I know that there're similar topics at the KVR developer forum but since we have a very special own community i'd really appreciate to have some talk here as well... 😉

So i make a start with my own opinion... Since i got very familiar with SM and the GUI way of developing it's hard to find another option without spending a lot of time to get into the depths of C++ which seems to be the only serious DSP development platform. It's not the porting of working SM stream modules what frightens me but all the other GUI and structured processing stuff which make life with SM so easy. So i'm on my way to find solutions which could make it as easy as possible to jump into that cold water. After getting some ideas of very different approaches i guess i reached a point at which i have a good feeling about trying a migration. I recently discovered this :WDL-OL - enhanced IPlug Framework Which IMHO sounds very promising. The following ZIP contains a flip chart pdf which exactly hit my concerns and i hope i found the right solution: http://www.olilarkin.co.uk/blog/files/m ... rkshop.zip So i'll try to get my head around all the new stuff and see if i can get anything out of it.

Comments and other ideas are very welcome....

cyto ·

Wow stw!

I just looked over that slide show and it does look promising. I, too, have been casually considering "graduating" from SM and have been considering a few options. For me, it's not the C++ coding that is intimidating, but rather dealing with all the pesky GUI controls. That's one of the things I like most about SM is the flexibility and ease of the GUI elements. I'd rather spend time on the DSP and then just plop in a knob to control it. I thought of diving into the QT IDE as it seems to be focused on making easy interfaces but I yet haven't even begun to explore it. The IPlug Framework that you suggested looks even better though! Written specifically for audio, and GUI creation looks pretty intuitive! I will certainly be reading up on it. Thanks! 🙂

-cyto

tester ·

To my view - any good visual dataflow programming language/environment - is welcome (not only for audio, but in general). I rather prefer to spend my time using tools I create, than spending my time on finding how to create these tools. 😉 That why I asked about alternatives in other threads. And life after SM? Services and lectures on sound physics, sound creation and practical applications of sound 🙂 Making "yet another delay" is not for me. Finding new understanding on sound - yes.

infuzion ·

Nice stw! Looks promising! I do know another SM dev who likes the Cokos Lib. Yet another went with SE, due to the C++ SDK there, & active dev posting on their Yahoo group. hmm...

cyto ·

tester wrote: To my view - any good visual dataflow programming language/environment - is welcome (not only for audio, but in general).

I agree whole-heartedly with this. And I do really like the ability in SM to try different things very quickly and not have to recompile every-time I change the scaling of a control or make any other minor adjustment. In that respect, I think SM is a wonderful tool for experimentation and prototyping. And honestly, i'm not too concerned about 64-bit, AU, RTAS, VST3, blah, blah, blah. I use SM to make things for myself that aren't available commercially. I'm not trying to make money off of my hobby as others seem to be here. I have come to the point, though, where most of my projects are just a handful of knobs going into a >1500 line assembly block. As most of this is conditional branches, function calls, etc I'm starting to think that making the leap to a more flexible platform/language will help me to accomplish the same thing so much more easily. It's getting a little ridiculous using the handful of operations available to make anything useful.

Despite my current mood, I do hold SM in quite high regard. It is quite remarkable what can be accomplished in it very quickly and (for the most part) quite stably. My interest in DSP would not have been sustained had I no environment in which to try out ideas, explore concepts, etc. And I do think even if I start using a more traditional programming approach, I will always turn to SM as kind of a "sketchbook" for ideas.

-cyto

cyto ·

Before this thread digresses into another "I wish..." or "why don't they..." thread, in the spirit of the OP, I'll describe the baby steps that I took tonight to move to a more "comprehensive" programming environment.

1. Downloaded and installed the Netbeans IDE. 2. Configured the above with the MinGW compiler, debugger, and other recommended tools. 3. Purchased a (kindle) book on C++ to brush up on my OOP skills. 4. Read a few chapters of book and did some of the basic examples ("Hello World"-type stuff 😉 ).

I know, probably not interesting enough to share with the community, but nevertheless the intent is to steer the conversation back to actual alternatives. If anyone decides to go down this path as well, I'd be happy to report some of my experiences (can move to PM or e-mail if it becomes too non-SM).

-cyto

nix ·

I suspect I am just not clever enough to use command line tools- but maybe that's a copout. Certainly graphical programming is easier for me. To this end I use Sensomusic Usine, and Cycling 74 MAX/msp, in conjunction with SM. I can combine VST modules with MIDI,audio and preset parameters in Usine, and I can interface MAX with a virtual MIDI cable.

I tried compiling some stuff from PortAudio once, but couldn't get anything compiled. PortAudio looks like a great resource, if u can get around with it.

Cheers 🙂

Here is the PortAudio site-> http://www.portaudio.com/

MichaelBenjamin ·

i went on to python, its really nice to program for me and not that much of a change in syntax (since sm got this dumbed down c style which reflects in all other languages some way). python also takes an "easy" approach like sm where you can type some instructions and then immediately try it out with the on-the-fly compiler. this is also the same in java, but the verbose syntax put me off at first. python is not well suited for realtime audio, you have to batch process the waves offline, however it got huge librarys for scientific number processing (imagine all weird filters, fft, n-dimensional arrays, complex number, convolution etc - so for experimental sound fumbling this is still pretty useful.)

plus you can do pretty much anything else with images texts, numbers, huge arrays, interfacing what you can imagine. if you need something you can look for a library (which is like a hardcoded sm module) and import that into your script. currently i write smallish single file scripts with 50-500 lines that can compared to a sm module containing a handful of code blocks, nothing really big but it gets a single specific task done.

the similarities to sm were really helpful to understand and mentally visualize the structure of a script, like a function is a code block i can copy paste and reuse it where i want, then a class module that groups some functions to a meta function is just a package of a higher function created with several smaller functions. it probably doesnt need to be but thats how i learnt to build it with sm.

would be really cool to have a graphical editor for python (or every other language) that lets you write functions and then wire them at the gui with these neat cables, since without the graphical representation i guess i would still feel lost in all that text with a bigger project.

to make another performance comparision: python for audio is like a text only editor for synthmakers green engine without functional limitations, being rock solid, about 10 times faster, open source and platform independent.

Tzarls ·

Ok guys, since many other apps have been mentioned here, I think it´s all right to post this:

http://www.youtube.com/watch?v=0aLopXd26ms&context=C405d9caADvjVQa1PpcFOW5LKOIIC42VhyMMihMK3WkTggJ-gVzAY=

Very much like what MichaelBenjamin mentions: an app that lets you write code in C++ (actually a language very similar to C++) and then wire the objects in a graphical way. So you can actually design "graphically" and then copy/paste all you code in your preferred IDE and build a native plugin/app/whatever you want.

Still in its early stages.

MichaelBenjamin ·

did you program this? looks pretty cool. reminds me a bit of puredata. will it run on linux? when you say similar to c++ how will the text output work in some other ide if its not a standard language?

Tzarls ·

MichaelBenjamin wrote: did you program this? looks pretty cool.

Thanks. Yes, I programmed this.

MichaelBenjamin wrote: reminds me a bit of puredata. will it run on linux?

Well, all development has beed done in Windows, but I´ve made sure all the libraries I´ve used are cross-platform, so it should work with no modifications in Windows, Linux and Mac Os.

MichaelBenjamin wrote: when you say similar to c++ how will the text output work in some other ide if its not a standard language?

The scripting language used is called Angelscript. 90% of it is just like C++ : function calls, variable declarations, conditional statements (if / switch ), loops (for / while), event the use of classes and objects is quite similar. But Angelscript has no pointer support. Instead it uses a count referenced system for the objects that are created within the script. That´s the main difference with C++. So most of the time the code used in Angelscript should work with no modifications with any standard C++ compiler.

BUT, and here´s the big game changer - the plan is to replace the current scripting engine with another one (currently in development) named Cling, which is fully C++ compliant and would even let the user to include external C++ libraries (as code). That way you could even build a whole DAW from within my app.

Right now I´m chasing some bugs related to multithreading (the GUI thread colliding with the audio thread). Once finished, I´ll begin my experiments with Cling.

As a side note: you may notice that the menu in the video shows very few building "blocks". The idea is to provide blocks in the form of scripts. That would serve 2 purposes: first, the user could use the blocks (scripts) as provided, or he could change the code of those blocks to suit his needs. Second, there would be no need for an SDK - the app would be its own SDK!!! In the end, a final working project (schematic?) would consist of some scripts and a few object blocks instead of countless small 1-trick-pony-blocks.

kirkagur ·

Hi, Long time no see 🙂

Tzarls wrote: MichaelBenjamin wrote: did you program this? looks pretty cool.

Thanks. Yes, I programmed this.

MichaelBenjamin wrote: reminds me a bit of puredata. will it run on linux?

Well, all development has beed done in Windows, but I´ve made sure all the libraries I´ve used are cross-platform, so it should work with no modifications in Windows, Linux and Mac Os.

MichaelBenjamin wrote: when you say similar to c++ how will the text output work in some other ide if its not a standard language?

The scripting language used is called Angelscript. 90% of it is just like C++ : function calls, variable declarations, conditional statements (if / switch ), loops (for / while), event the use of classes and objects is quite similar. But Angelscript has no pointer support. Instead it uses a count referenced system for the objects that are created within the script. That´s the main difference with C++. So most of the time the code used in Angelscript should work with no modifications with any standard C++ compiler.

BUT, and here´s the big game changer - the plan is to replace the current scripting engine with another one (currently in development) named Cling, which is fully C++ compliant and would even let the user to include external C++ libraries (as code). That way you could even build a whole DAW from within my app.

Right now I´m chasing some bugs related to multithreading (the GUI thread colliding with the audio thread). Once finished, I´ll begin my experiments with Cling.

As a side note: you may notice that the menu in the video shows very few building "blocks". The idea is to provide blocks in the form of scripts. That would serve 2 purposes: first, the user could use the blocks (scripts) as provided, or he could change the code of those blocks to suit his needs. Second, there would be no need for an SDK - the app would be its own SDK!!! In the end, a final working project (schematic?) would consist of some scripts and a few object blocks instead of countless small 1-trick-pony-blocks.

First of all, this is a very cool tool. I will recommend you to use JavaScript as scripting language also. I know that its a slow language, but its should be easy to implement and there are a lot of developers that knows javascript.

when can we testdrive this tool?

The second thing is that I`m also got tired form luck of development on synthmaker, so I turned into web development. and the first thing that I wanted to do is Audio processing on the web so... Take a look a this one please...... 😈 😈 😈 (its still in development but you can already see the power)

http://jsmaker.com/jsmaker/

if you have Google Chrome you can test the audio processing modules. (this will not work on other browsers and at experimental stage!) http://jsmaker.com/jsmaker/#Audio

tektoog ·

kirkagur wrote: Hi, Long time no see

Well yeah, but it's been for the good cause !!! Really impressive work man... I'd need a bit more info though... what are the minimum requirements to run that smoothly (internet connection speed, Pc specs etc...) What is the main output ? Html code, Js widget ? and how do you render the final result? I didn't find out... or is it not doable yet at this development stage? Anyway, keep on working it looks promissing 🙂 And the accent is perfect ! 😉

MyDogRamsey ·

Man you've come a long way on that.. Looks great. Hey did you ever do anything with CINT?

infuzion ·

kirkagur wrote: The second thing is that I`m also got tired form luck of development on synthmaker, so I turned into web development. and the first thing that I wanted to do is Audio processing on the web so... Take a look a this one please...... 😈 😈 😈 (its still in development but you can already see the power) if you have Google Chrome you can test the audio processing modules. (this will not work on other browsers and at experimental stage!) http://jsmaker.com/jsmaker/#Audio

Funny, I've been switching to web dev also... looking into Ruby & Node & JS... & I've been dreaming the last few days of hacking the JavaScript v8 engine to process audio in SSE for some reason, now I know why! Looks good, let me know if you want some help.

Tzarls ·

Nice! It reminds me (not because of the looks, but for the functionality) of an app I once saw . It was something like an online DAW.

I´ll give this a test soon.... as soon as I finish battling with concurrency!

kirkagur wrote: First of all, this is a very cool tool. I will recommend you to use JavaScript as scripting language also. I know that its a slow language, but its should be easy to implement and there are a lot of developers that knows javascript.

Actually I´ve seen a couple of projects aimed at developing VST fx using javascript. But for some reason I´ve always been afraid of everything web-related..... I been postponing upgrading my Joomla version for that same reason!

But yes, adding javascript (and/or lua, ruby, et) should´nt be harder than what I´ve already done, and could attract some more users.

kirkagur wrote: when can we testdrive this tool?

I´m thinking of uploading this to my site as soon as I get it into a more stable / better performing state. Right now all the thread collision problems I was having seem to be gone, and I´m working on improving script performance while putting all previous fixes under testing.

Tzarls ·

MyDogRamsey wrote: Man you've come a long way on that.. Looks great. Hey did you ever do anything with CINT?

I originally intented to integrate CINT in my app. I got to the point of having the app calling CINT script functions, but never the other way around. And it had some technical aspects I didn´t like, so I chose to wait until Cling is ready. And in the meantime I picked Angelscript, which is very nice actually, specially now that there´s a JIT available for it.

kirkagur ·

tektoog wrote: kirkagur wrote: Hi, Long time no see

Well yeah, but it's been for the good cause !!! Really impressive work man... I'd need a bit more info though... what are the minimum requirements to run that smoothly (internet connection speed, Pc specs etc...) What is the main output ? Html code, Js widget ? and how do you render the final result? I didn't find out... or is it not doable yet at this development stage? Anyway, keep on working it looks promissing 🙂 And the accent is perfect ! 😉

Many thanks

right now I`m working on how to embed the scheme into your site (it will be there) until then you can only play with it. you don't need a fast internet because its all happening on the client side ,once the site is loaded you have it all running.

infuzion wrote: Funny, I've been switching to web dev also... looking into Ruby & Node & JS... & I've been dreaming the last few days of hacking the JavaScript v8 engine to process audio in SSE for some reason, now I know why! Looks good, let me know if you want some help.

I have no testers so far and there are a tons of bugs so.... 😉 how is your knowledge in javascript? I can show you how to make any javascript function into jsMaker module. or better how to write module yourself.

MyCo ·

OK, I just throw in my attempt to do something SynthMakerish 😈

The idea was to build a graphical compiler for Microcontrollers, that's why it's made in Java (cross plattform). I've been concentrating on the GUI and usability (where Java sucks) and then I had an idea for another project and stopped further development. May be I'll work on this in the future.

PS: I've tested it only on windows, so there is just a wrapped EXE in the ZIP archive.

attic ·

I have been away. I needed to actually get some work done, unfortunately that couldn't happen here. 🙁 I will point to this Faust http://faust.grame.fr/ and please if there are more suggestions post them.

infuzion ·

attic wrote: I have been away. I needed to actually get some work done, unfortunately that couldn't happen here. 🙁 I will point to this Faust http://faust.grame.fr/ and please if there are more suggestions post them.

Awesome! Is this one of your gigs?

Tzarls ·

They´ve updated the website.... The funny thing is that Faust works exactly the opposite way of how SM works. In SM you patch blocks to generate code. In Faust, you write code and the app shows you the way the block are connected according to the code you entered.

Here´s another one - I think I first saw this here on the forum, but anyway: http://clam-project.org/

attic ·

@infuzion No not one of my gigs. I have been learning that software slowly. I have had three major projects in SM since I have arrived here, but they have Unfortunately not worked out. I have had to move back to software that can accomplish those three goals. I will still be around, but just once in a while. I must put those goals first. 🙁

MyDogRamsey ·

Tzarls wrote: MyDogRamsey wrote: Man you've come a long way on that.. Looks great. Hey did you ever do anything with CINT?

I originally intented to integrate CINT in my app. I got to the point of having the app calling CINT script functions, but never the other way around. And it had some technical aspects I didn´t like, so I chose to wait until Cling is ready. And in the meantime I picked Angelscript, which is very nice actually, specially now that there´s a JIT available for it.

Yeah I was wondering what you were going to do with that.. very cool...

Nu Audio Science ·

Isn't the obvious route being ignored here ? A user buyout of SM and going open source like blender

For me right now it is the only thing that could save SM from completely disappearing

trogluddite ·

Trouble is, most of SM's guts is also inside FlowStone. If they let SM "fly the nest" they would also be giving away a substantial amount of the source code to their "premium" product.

MyDogRamsey ·

Nu Audio Science wrote: Isn't the obvious route being ignored here ? A user buyout of SM and going open source like blender

For me right now it is the only thing that could save SM from completely disappearing

Geez, I hope it does not disappear. It has taught a lot of people things that has allowed them to move on to native DSP development in some capacity. SM is a wonderful prototyping tool, but its difficult I think to create a large commercial app with it as there are so many limitations. Not to mention that the world is moving in a different direction with iOS, and Metro programming on the windows side of things. Hopefully SM has a couple more years, but without changes to support the new world, I feel it is going to be a dead language. In future I think developing VST for PC will be akin to developing a business app for MAC in the 90's.. No one was using MAC for that back then and I don't think a lot of people will be using Windows 7 after Metro is out for a while. As far as I understand the differences between METRO and Windowes 7 will be vast.. As always though, its a wait and see game..

So Trog, if what I said above rings true, then FS will be quite useless once everyone is on Metro as well..

Lui ·

why wouldn't you be able to use (bridged) vst's with windows 8?

trogluddite ·

SM could be particularly vulnerable to changes in Windows as many primitives (especially GUI and Timers) are 'out-sourced' to Windows. For example, all SM's graphics are handled by Windows' GDI+ engine - which is very old now, and does not use any hardware acceleration (hence the high CPU!). From a system performance perspective, ditching GDI+, and insisting on a newer hardware accelerated standard (e.g. OpenGL etc.) makes a lot of sense. If you program in C++ using the VSTl SDK, that's relatively simple to sort out - you have complete freedom to update any part of your code as soon as new libraries are available. Maybe not trivial, but at least the upgrade path is within easy reach. But if you built your plugin using SM, you can't update anything until OutSim bring SM in-line with Windows new ways of doing things.

Lui ·

well then, we can only hope that there will be updates. somehow tho, i have the feeling that something (whatever that is) is about to happen this year.

attic ·

ditching GDI+, and insisting on a newer hardware accelerated standard (e.g. OpenGL etc.) makes a lot of sense.

The current Windows' GDI+ engine is a dog. Keeps me from making fast autoknobs and such. I would love to see SM accelerated. Off course I wont be holding my breath but with Win8 on the way it may force the issue making it a must deal with thing.

Tzarls ·

Hey guys.... just posted a couple of videos of my Genera project... hope you like them!

http://www.youtube.com/watch?v=WerTRvCfssc http://www.youtube.com/watch?v=GyJ5B8nmRpQ

BTW, are there any update on the projects posted in this thread? It´s always nice to know what people is creating.

EDIT: I´ve uploaded edited versions of the video - less typing, more action, shorter videos.

MichaelBenjamin ·

from what i got, its currently like synthedit with sm code box function in c. quite big progress. looks very good! excellent project. but why do you write the program in spanish? i would guess 99% of people interested in this also read english, since most texts regarding programming are also written in english. what are your plans for the finished programs functionality? will it run on linux? can you easily build a gui? can you export au/vst/standalone? can you import libraries into the code boxes?

Tzarls ·

MichaelBenjamin wrote: from what i got, its currently like synthedit with sm code box function in c. quite big progress. looks very good! excellent project.

Thanks!

MichaelBenjamin wrote: but why do you write the program in spanish? i would guess 99% of people interested in this also read english, since most texts regarding programming are also written in english.

The only reason is that there are not many apps like this (if any at all) written in spanish natively - there are programms written originally in english that have translations, so I wanted to do it the other way around. On course in the end the app will have to "speak english".

MichaelBenjamin wrote: will it run on linux?

It already does!

MichaelBenjamin wrote: what are your plans for the finished programs functionality? can you easily build a gui? can you export au/vst/standalone? can you import libraries into the code boxes?

For obvious reasons I don´t feel comfortable writing much about my app here, so I invite you and anyone interested in this project to the conversation I started about this topic here:

http://www.kvraudio.com/forum/viewtopic.php?p=4940533#4940533

There I´ve posted a very long answer to all of your questions. Enjoy!

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.