libao

Last updated:

0 purchases

libao Image
libao Images
Add to Cart

Description:

libao

Libao #
A Dart wrapper for the libao library.
Libao is a cross-platform audio library that allows programs to output audio using a simple API on a wide variety of platforms. It currently supports:

Null output (handy for testing without a sound device)
WAV files
AU files
RAW files
OSS (Open Sound System, used on Linux and FreeBSD)
ALSA (Advanced Linux Sound Architecture)
aRts (Analog RealTime Synth, used by KDE)
PulseAudio (next generation GNOME sound server)
esd (EsounD or Enlightened Sound Daemon)
Mac OS X
Windows (98 and later)
AIX
Sun/NetBSD/OpenBSD
IRIX
NAS (Network Audio Server)
RoarAudio (Modern, multi-OS, networked Sound System)
OpenBSD's sndio

Installation #
In pubspec.yaml add the following dependency:
dependencies:
libao: ^0.2.0
copied to clipboard
Example #
import 'dart:math';
import 'dart:typed_data';

import 'package:libao/libao.dart';

void main() {
final ao = Libao.open();

ao.initialize();

final driverId = ao.defaultDriverId();

print(ao.driverInfo(driverId));

const bits = 16;
const channels = 2;
const rate = 44100;

final device = ao.openLive(
driverId,
bits: bits,
channels: channels,
rate: rate,
matrix: 'R'
);

const volume = 0.5;
const freq = 440.0;

// Number of bytes * Channels * Sample rate.
const bufferSize = bits ~/ 8 * channels * rate;
final buffer = Uint8List(bufferSize);

for (var i = 0; i < rate; i++) {
final sample = (volume * 32768.0 * sin(2 * pi * freq * (i / rate))).round();
// Left = Right.
buffer[4 * i] = buffer[4 * i + 2] = sample & 0xff;
buffer[4 * i + 1] = buffer[4 * i + 3] = (sample >> 8) & 0xff;
}

ao.play(device, buffer);

ao.close(device);
ao.shutdown();
}
copied to clipboard

License:

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Files In This Product:

Customer Reviews

There are no reviews.