SynthMaker

Speeding up Code and ASM editing

Archive · 2010 6 old posts

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

Tzarls ·

While working on the code FFT project, I came to some conclusions regarding the behaviour of the code and ASM primitives, specially the slow response when editing large chunks of code.

It appears to me that the syntax checker checks the whole code everytime you press a key, to see if you are entering declared variables, commands, etc. This is quite fast for small codes, but when the code increases, editing can get quite slow. So, my proposal is to add some kind of option for turning off the syntax coloring-checking, something like an "expert mode" which could be activated either by a right click menu or a button sitting to the right of the "Developer mode" button.

Apart from that, it appears that whenever you enter, edit and leave the code primitive, the "behind the curtains" ASM code is compiled and prepared for runtime. But this will happen even if you have no ASIO or Directsound output enabled, which is quite strange since no code or ASM blocks are processed when output are not selected. And of course this adds a noticeable lag when entering and leaving big blocks of code. So perhaps we could have the compiling of code blocks happen only when and if there is an active output?

trogluddite ·

Yep, the editing certainly needs to be more user friendly - I use the Notepad++ code editing program for anything more than a couple of dozen lines. It speeds up entering big chunks of code, but it's a pain having to switch applications all the time just to make little tweaks. Cutting and pasting several hundred lines of asm into a module that has a load of synchronised copies get scary when the user interface freezes while the compiler does its business.

Having the assembly primitive check the variable names (like the code block does) would make debugging far easier too, it's far too easy to end up with code that doesn't run just because of a little typo somewhere (especially if it means a push doesn't get popped!)

rl ·

Menu Options - Advanced _ Compile as you type in the code component

trogluddite ·

rl wrote: Menu Options - Advanced _ Compile as you type in the code component

Has it's uses, but slows down editing even further - also, it''s no use for assembly editing, whch is where I have the most problems (many more lines to edit, and much easier to accidentallly create crash conditions). Depends a lot what your using code/assembly for, I suppose. I'm often into the hundreds of lines, and optimising to assembly is allowing me to shave huge chunks off the CPU usage.

Tzarls ·

I found a workaround for this issue: just type "x" or any other meaningless character at the beginning of your code. This will create an error right there, and will stop the syntax check for the rest of the code. When you finish entering your lines just delete the "x" and everything will be checked and compiled (on exit) as usual. Works every time!

trogluddite ·

Thanks. for the tip, Tzarls - seems so obvious now that you've pointed it out. Still seems odd that the syntax check is so slow - we can do FFTs at sample rate etc., yet doing a 'spellcheck' takes forever - in notepad++, the syntax gets coloured faster than I can type.

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.