Giter VIP home page Giter VIP logo

klatt's People

Contributors

rhdunn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

klatt's Issues

Wrong F0 flutter frequencies

According to the Klatt 1990 paper, the F0 flutter delta should be calculated using modulation frequencies of 12.7 Hz, 7.1 Hz and 4.7 Hz The current implementation uses the time_count variable to calculate the amplitudes of these frequencies:

        flc = sin(2*M_PI*12.7*time_count);
	fld = sin(2*M_PI*7.1*time_count);
	fle = sin(2*M_PI*4.7*time_count);

But time_count is incremented once per frame and therefore contains Hz * 100 and not Hz (the unit of time_count is 10ms instead of 1s). So the F0 modulation frequencies are actually too high by a factor of 100.


Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

F0 flutter is applied incrementally

The F0 flutter value, calculated with the 3 sine waves of 12.7, 7.1 and 4.7 Hz, is applied incrementally:

frame->F0hz10 = frame->F0hz10 + (long) delta_f0;

But according to the Klatt 1990 paper, the computed value is already the absolute F0 delta at a specific point in time. It's not a value that has to be integrated over time. The integration has the effect, that F0 wanders around unlimited.

I'm assuming that Klatt never released the source code of this F0 frequency modulation, so we can't refer to the original source code.

Invalid enum values for -v (glsource, voicing source)

The documentation states:

1 = impulse train. 2 = natural simulation. 3 = natural samples

The old source code was:

#define IMPULSIVE        1
#define NATURAL          2
#define SAMPLED          3

The new source code assigns enum values starting with 0:

typedef enum
{
        IMPULSIVE,
        NATURAL,
        SAMPLED,
} klatt_voicing_source_t;

A fix could be either to specify a start value of 1 for the enum:

typedef enum
{
        IMPULSIVE = 1,
        ...

or to subtract 1 from the argument passed on the command line:

            case 'v':
                    globals->glsource = (flag) atoi(optarg) - 1;
                    break;

Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

cascade synthesis mode does not work

Running example1.par causes a sound spike near the end and example2.par is completely unintelligible when using cascade synthesis. Parallel synthesis works fine.

NOTE: This is also the case with the original 3.03 and 3.04 klatt sources.


Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

Synthesized example.

Example1.par and example2.par generate waveforms are just noise or my operation is wrong?? Is there an example to generate a vowel, word or sentence?

--- Want to back this issue? **[Post a bounty on it!](https://www.bountysource.com/issues/35663994-synthesized-example?utm_campaign=plugin&utm_content=tracker%2F254965&utm_medium=issues&utm_source=github)** We accept bounties via [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F254965&utm_medium=issues&utm_source=github).

Invalid allocation size for iwave buffer

The constant MAX_SAM (Maximum sample rate = 20000) is used to allocate the iwave buffer:

iwave = (int*) malloc(sizeof(int)*MAX_SAM);

But the iwave buffer is used for nspfr entries:

globals->nspfr = (globals->samrate * nmspf_def) / 1000;

for (globals->ns=0; globals->ns < globals->nspfr; globals->ns++)


Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.