txt: ## dist_zef-jonathanstowe-Audio-Sndfile.md
  # Audio::Sndfile
  
  Binding to libsndfile ( <http://www.mega-nerd.com/libsndfile/> )
  
  [![CI](https://github.com/jonathanstowe/Audio-Sndfile/actions/workflows/main.yml/badge.svg)](https://github.com/jonathanstowe/Audio-Sndfile/actions/workflows/main.yml)
  
  ## Description
  
  This library provides a mechanism to read and write audio data files in
  various formats by using the API provided by libsndfile.
  
  A full list of the formats it is able to work with can be found at:
  
  <http://www.mega-nerd.com/libsndfile/#Features>
  
  if you need to work with formats that aren't listed then you will need to
  find another library.
  
  The interface presented is slightly simplified with regard to that of
  libsndfile and whilst it does nearly everything I need it do, I have opted
  to release the most useful functionality early and progressively add
  features as it becomes clear how they should be implemented.
  
  The "examples" directory in the repository contains some sample code that
  may be useful or indicate how you might achieve a particular task.
  
  The full documentation is available as [Markdown](Documentation.md) or
  as POD withing the module file.
  
  ## Installation
  
  You will need to have "libsndfile" installed on your system in order to
  be able to use this. Most Linux distributions offer it as a package, though
  it is such a common dependency for multimedia applications that you may well
  already have it installed.
  
  If you are on some platform that doesn't provide libsndfile as a package
  then you may be able to install it from source:
  
  <http://www.mega-nerd.com/libsndfile/#Download>
  
  I am however unlikely to be able to offer help with installing it this way.
  
  Assuming you have a working Rakudo installation you should be able to install this with *zef* :
  
  ```
  # From the source directory
  
  zef install .
  
  # Remote installation
  
  zef install Audio::Sndfile
  
  ```
  
  ## Support
  
  Suggestions/patches are welcomed via github at
  
  <https://github.com/jonathanstowe/Audio-Sndfile/issues>
  
  There are several things that I know don't work properly at the time of the
  first release:
  
  ```
  * May not work at all or be unstable on 32 bit systems
    ( This is because data that references the number of frames is
      native sized within libsndfile - when I have worked out how to
      do the equivalent of a conditional typedef I'll fix this .)
  
  ```
  
  Also I'd prefer to keep features that aren't directly related to those
  provided by libsndfile separate, so if you want to manipulate the data,
  play the data to some audio device or stream it for instance you probably
  want to consider making a new module.
  
  ## Licence
  
  This is free software.
  
  Please see the <LICENCE> file in the distribution.
  
  © Jonathan Stowe 2015 - 2024
  