Skip to content

Improve documentation of Sampler #27

@mahal

Description

@mahal

Description

Documentation of Sampler has a few flaws:

  • Core features like low pass filter on amplitude and cutoff are not described
  • Instance properties just list all possible parameters. Ideally the parameters are explained in logical groups
  • Memory management is briefly mentioned but complete. unloadAllSamples() is mentioned but function doesn't exist in Sampler.swift but only in underlying CoreSampler.cpp.
  • Some parameters have missing descriptions and/or missing units
  • Documentation doesn't say anything about ramping parameters

AudioKit Cookbook is the primary resource for examples. Recipe Instrument SFZ can be a great showcase on how Sampler works. It could also be improved upon:

  • Only first 32 parameters are shown, up until isLegato
  • Parameters are shown in the order they are declared at the end of SamplerDSP.mm
  • Is this the best order to show them? Can we reorder them in SamplerDSP.mm? Functional grouping.

Proposed Solution

  • Add some text to Sampler.md describing the key features of Sampler
  • Add more comments to Sampler.swift which then will be compiled with docc to the website
  • Add details on ramping parameters
  • Add details on memory management, fix existing documentation
  • Reorder AKParameters in SamplerDSP.mm
  • Improve recipe Instrument SFZ of Cookbook

Describe Alternatives You've Considered

There is no alternative to documentation. Educated developers, engineers and software architects learn new technology and API first by reading documentation and much later by implementing prototypes. Documentation is crucial to understand the concepts and to learn what a package/class/structure can do.

If I can choose either to read well written documentation or start digging in some OpenSource code, I would always choose to read. It is usually much quicker and less prone to misunderstanding.

Additional Context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions