Geonkick - logarithmic canvas

Programming applications for making music on Linux.

Moderators: MattKingUSA, khz

Post Reply
User avatar
krussedull
Established Member
Posts: 30
Joined: Sat Aug 03, 2019 9:57 pm
Has thanked: 3 times
Been thanked: 14 times
Contact:

Geonkick - logarithmic canvas

Post by krussedull »

Hi!

The developer of Geonkick (https://geonkick.org/) seems to have started programming again on his plugin, which is great and all, but..

unfortunately he is not the slightest interested in trying to implement a feature that Sonic Academy's Kick2 has which makes the plugin much better. I've spend a lot of time with both and Kick2 is just easier to make good kicks because of one "weird" function:

The timeline (x-axis) in Kick2 is working in a logarithmic fashin. This makes the envelopes much easier to work with, since there is alot happening the first 10% of the timeline of a kick.

I made an issue descriing this in greater detail here:
https://codeberg.org/Geonkick-Synthesiz ... k/issues/1

I'm a developer myself with 25+ years of experience, but mainly in the web department, not much C/C++ etc..
Anyway, I cloned the repo and started digging... after some time, fiddling around and building tests, I found one file that at least seemed to have some inpact on the waveform

https://codeberg.org/Geonkick-Synthesiz ... envelope.c

I messed about with the x1/x2 values trying to do some logarithmic operations etc.., and even though "something" happened, it wasn't close to the desired result. ...I'm not going to pretend I understand 100% whats going on here..

OK, so I'm looking for anyone with some experience in audio programming and C/C++ who think this would be an interesting challenge.
This shouldn't be that hard if we can just find the code that processes the envelope and generates pitch/volume...

Who's in? :)

User avatar
SpotlightKid
Established Member
Posts: 260
Joined: Sun Jul 02, 2017 1:24 pm
Has thanked: 57 times
Been thanked: 61 times

Re: Geonkick - logarithmic canvas

Post by SpotlightKid »

I don't quite understand the need for this, TBH. AFAICS, envelopes in Geonkick can have as many points as you like. By inserting enough points it should be possible to approximate a logarithmic or exponential curve close enough, IMHO.

But it's open source, so if someone wants to scratch that itch, scratch away. :D

User avatar
krussedull
Established Member
Posts: 30
Joined: Sat Aug 03, 2019 9:57 pm
Has thanked: 3 times
Been thanked: 14 times
Contact:

Re: Geonkick - logarithmic canvas

Post by krussedull »

SpotlightKid wrote: Sun Oct 29, 2023 3:48 pm

I don't quite understand the need for this, TBH. AFAICS, envelopes in Geonkick can have as many points as you like. By inserting enough points it should be possible to approximate a logarithmic or exponential curve close enough, IMHO.

But it's open source, so if someone wants to scratch that itch, scratch away. :D

I'm not really sure what you are trying to say here, but yea, like you actually say it doesn't seem that you understand why this is a good idea.

Well, if you have worked with Kick2 a bit you would know, and also there is a good reason why they actually did this and is such a popular and good piece of software.

I'm more interested to hear from people who understand the need for this and want to help out debugging some code :)

User avatar
iurien
Established Member
Posts: 8
Joined: Fri Oct 30, 2020 10:50 am
Been thanked: 12 times
Contact:

Re: Geonkick - logarithmic canvas

Post by iurien »

krussedull wrote: Sun Oct 29, 2023 4:52 pm

I'm not really sure what you are trying to say here, but yea, like you actually say it doesn't seem that you understand why this is a good idea.

The idea is that adding logarithmic scale to time axis you can still use linear envelopes but have still logarithmic scale for pitch. Because now only points are applied logarithmically, but actually the user means the entire line. To solve this inconsistency the user would need to operate with logarithmic lines, which is convenient for display of data, but not for applying. Adding logarithmic time axis gives the user the possibility to draw lines, but apply logarithmically for all the line. The drawback is that there would an inconsistency between the graph and the frequency. I'll see, after I'll finish some priority planned stuff related to version 3.0 and 3.1 I'll try to implement and see what it gives, anyway this will be not default behavior, but as a button to switch to this type of envelope. For now I added logarithmic applying and linear apply, but still with linear time axis

In mathematical way:

  1. Linear scale envelope: f = k * t (a straight line is applied linear, inconvenient to work with pitch, or even amplitude when working with Db).

  2. Semi-Logarithmic log10(f) = k*t (a straight line is applied logarithmically, good for display of pitch, but not very intuitive when applying).

  3. His proposal log10(f) = log10(k*t) (a straight line is applied linearly again, time axis and graph is stretched from for the small time values. A purely sine tone will look in the graph like FM modulated over time, is this like in kik2?)

Last edited by iurien on Thu Nov 09, 2023 10:08 am, edited 1 time in total.

Geonkick home page: https://geonkick.org

User avatar
iurien
Established Member
Posts: 8
Joined: Fri Oct 30, 2020 10:50 am
Been thanked: 12 times
Contact:

Re: Geonkick - logarithmic canvas

Post by iurien »

krussedull wrote: Sun Oct 29, 2023 3:42 pm

The timeline (x-axis) in Kick2 is working in a logarithmic fashin. This makes the envelopes much easier to work with, since there is alot happening the first 10% of the timeline of a kick.

Thus, I want to clarify a sine tone what will look in the graph?

  1. Stretched along the time axis... and in the beginning visually for user it seems to start with lover frequency and ends at high frequency?
  2. Still like sine tone, in the case visually the graph and the applying envelope are totally disconnected if working especially which pitch envelopes.

Geonkick home page: https://geonkick.org

User avatar
iurien
Established Member
Posts: 8
Joined: Fri Oct 30, 2020 10:50 am
Been thanked: 12 times
Contact:

Re: Geonkick - logarithmic canvas

Post by iurien »

iurien wrote: Thu Nov 09, 2023 10:04 am
  1. Still like sine tone, in the case visually the graph and the applying envelope are totally disconnected if working especially which pitch envelopes.

For the first time, I got this plugin (free trial version) and ran a test. In this case, Kik2 is completely disconnected from the envelope. The time is displayed logarithmically, and the envelope points do not reflect what is shown in the graph. See below. When the user is working with the amplitude envelope, for example, in Kik2, due to the logarithmic time scale, the points don't accurately represent where actual changes in the graph are occurring. I think this could be pretty confusing, especially when working with the frequency envelope. If someone wants better access to the attack region of the percussive sound, it's better to use zoom, and have linear time axis.

Image

But when zooming in Kik2 things get even more confusing. Where is the max the point that is shown the graph?... It is away out of the screen.
Thus, I am not sure if a logarithmic scale for the time axis is a good thing for someone who really wants to have control over what they want to do.

Image

Attachments
zoom.png
zoom.png (119.96 KiB) Viewed 2596 times
logscale.png
logscale.png (183.04 KiB) Viewed 2596 times

Geonkick home page: https://geonkick.org

User avatar
Largos
Established Member
Posts: 639
Joined: Mon Oct 05, 2020 12:21 pm
Has thanked: 72 times
Been thanked: 186 times

Re: Geonkick - logarithmic canvas

Post by Largos »

Maybe being able to zoom in to do for more detailed envelope editing would also achieve what the OP wants without detaching the envelope from the waveform.

User avatar
iurien
Established Member
Posts: 8
Joined: Fri Oct 30, 2020 10:50 am
Been thanked: 12 times
Contact:

Re: Geonkick - logarithmic canvas

Post by iurien »

Largos wrote: Thu Nov 09, 2023 3:07 pm

Maybe being able to zoom in to do for more detailed envelope editing would also achieve what the OP wants without detaching the envelope from the waveform.

Yes, Zoom functionality is not yet available in Geonkick, but it is a priority that I intend to implement in version 3.x

Geonkick home page: https://geonkick.org

Post Reply