SynthMaker

Probably me being daft....

Archive · 2006 23 old posts

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

Pilchard ·

Hi Folks,

I'm Pilchard and this is my first post!

Nice forum, loads of useful info. Great app, Thanks for that.

Now for my problem:

I'm using the latest demo version (0.5.9q) and I'm making a basic bitcrushing / samplerate squashing plugin as a first try project.

The samplerate squasher is controlled by an oscillator (basic sine at the moment) but it appears not to start until the pitch control value is modified.

I'm probably missing something here. If I am, could someone let me know what?

If I'm not, and the oscillator designed not to auto start, is there a better oscillator to use that is? Failing that, is there a workaround?

Thanks in advance!

oddson ·

Tough to say without a schematic... but it sounds like you're using a poly stream instead of a mono stream...

If you effect is an audio processor then you can use the mono data type and it stays running all the time. Poly responds to incoming MIDI events and shuts down with note-off...

The oscillator is the same but behaves occording to which data type is used...

Or I'm misreading your question and none of this will make any sense 😉

Pilchard ·

oddson wrote: Tough to say without a schematic... but it sounds like you're using a poly stream instead of a mono stream...

If you effect is an audio processor then you can use the mono data type and it stays running all the time. Poly responds to incoming MIDI events and shuts down with note-off...

The oscillator is the same but behaves occording to which data type is used...

Or I'm misreading your question and none of this will make any sense 😉

Thanks for the quick reply.

It makes perfect sense and I was just using the stream data type. I've changed the inputs and outputs of the code module to mono and it's no different.

The value from the control is float.

Does that help any?

oddson ·

'streamin' in code will take either data type.. what I was saying is the controlling OSC sounds like it is connected to a poly data stream and therefore will only work while there's an active note.

I think you'll need to post the schematic to get any help.

Pilchard ·

Here it is: bitcrush.osm

Thanks 🙂

oddson ·

The problem is not as simple as I'd hoped... the OSC is outputting a constant signal.

I'm a little week at code so I'll leave it for someone else to say what's wrong there.

Pilchard ·

oddson wrote: The problem is not as simple as I'd hoped... the OSC is outputting a constant signal.

I'm a little week at code so I'll leave it for someone else to say what's wrong there.

OK, no problem. Thanks for your help.

I still think it's the osc though. I've noticed that it doesn't actually output audio until the control is moved. I've hooked it up directly to the output (bypassing the code altogether) and it does exactly the same.

Weirdness!

jorge ·

Pilchard wrote: I still think it's the osc though. I've noticed that it doesn't actually output audio until the control is moved. I've hooked it up directly to the output (bypassing the code altogether) and it does exactly the same.

I've checked it out by looking at the wave itself, it looks fine. When the frequency gets very high you dont hear it anymore ( at least I dont ) but the wave generated looks fine. I've plugged it to an FFT display and it is showing the correct peak. If you lower the frequency of the sine you'll start hearing it at some point.

Pilchard ·

jorge wrote: Pilchard wrote: I still think it's the osc though. I've noticed that it doesn't actually output audio until the control is moved. I've hooked it up directly to the output (bypassing the code altogether) and it does exactly the same.

I've checked it out by looking at the wave itself, it looks fine. When the frequency gets very high you dont hear it anymore ( at least I dont ) but the wave generated looks fine. I've plugged it to an FFT display and it is showing the correct peak. If you lower the frequency of the sine you'll start hearing it at some point.

You're right. Lowering the frequency does make it work. Is it possible then that the oscillator's output is too fast for the code attached?

If that's the case, where should I set the max?

Also, would it be dependant on the host's samplerate?

sambean ·

Hey Pilchard, welcome to the forum!

I've had a look at your schematic. what the problem seems to be is the frequency you're starting at is Nyquist, or half the sampling rate. For some reason, perhaps the phase I'm not totally sure, the wave is not crossing zero: it is oscillating from 0 to 1 every sample. It's can be fixed by setting the max frequency of you're knob to 22049 Hz.

Have you tried using the analyser yet? It's great for solving problems like this. If you disconnect the sine from the audio path, then connect it to an analyser, and set it to display 50 samples or so with the wave display module, you'll see what I mean..

Good luck with the rest of the project.

Sam

Pilchard ·

Thanks Sam. I thought that might be the case. I've solved the problem now, so it's all good.

I'm having a lot of fun with this app. Just got to get to grips with the backwards code now. 🙂 Loads of useful examples here and helpful people here!

infuzion ·

Pilchard wrote: I'm Pilchard and this is my first post!

Hi Pilchard 🙂

Tom7777 ·

Hi Pilchard 😀

Shifrin ·

Tom7777 wrote: Hi Pilchard 😀

😉

Shif.

Pilchard ·

🙂

skOre ·

good daze Pilchard!

Pilchard ·

I'm completely dazed, as it happens...

Trying to get used to this funny coding language and I have another (probably quite easy to fix) problem with a conditional statement. 🙂

This is what I'm trying to acheive: If a < b then c = a else c = 0

angstrom ·

c = (a < b)& a;

I think, I often find I am mistaken in these circumstances.

Pilchard ·

angstrom wrote: c = (a < b)& a;

I think, I often find I am mistaken in these circumstances.

Looks OK. Does it assume a 0 value if the condition isn't met?

Shifrin ·

Pilchard wrote: Looks OK. Does it assume a 0 value if the condition isn't met?

There's no assumption here, the value is 0 if the condition isn't met 🙂

Shif.

Pilchard ·

Shifrin wrote: Pilchard wrote: Looks OK. Does it assume a 0 value if the condition isn't met?

There's no assumption here, the value is 0 if the condition isn't met 🙂

Shif.

So yes then. 🙂

Cool.

And if I wanted the condition to be other than 0, I would use another if statement.

It's beginning to make sense now.

Thanks guys.

Shifrin ·

Not sure I follow exactly what you're describing, but here's another example anyways :-

if(x < 0) a = 1; else a = 2;

Would become :-

a = (x < 0)&1 + (x >= 0)&2;

Shif.

Pilchard ·

Yup, that's exactly what I meant 🙂

Cheers.

I've just made my first (very basic) Synthmaker noise gate with the help I've had here!

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.