dart_fm_synth 0.0.1 copy "dart_fm_synth: ^0.0.1" to clipboard
dart_fm_synth: ^0.0.1 copied to clipboard

A Dart wrapper for the libfmsynth library.

example/dart_fm_synth_example.dart

import 'dart:io';

import 'package:dart_fm_synth/dart_fm_synth.dart';

void main(List<String> args) {
  DartFmSynth.init('build/libfmsynth.so');
  print('libfmsynth version: ${DartFmSynth.version()}');
  final fmsynth = DartFmSynth(44100, 4);

  for (int i = 0; i < 8; i++) {
    fmsynth.setParameter(
        fmsynth_parameter.FMSYNTH_PARAM_MOD_TO_CARRIERS0 + i, (i + 1) & 7, 2.0);
    fmsynth.setParameter(fmsynth_parameter.FMSYNTH_PARAM_FREQ_MOD, i, i + 1.0);
    fmsynth.setParameter(
        fmsynth_parameter.FMSYNTH_PARAM_PAN, i, (i == 1) ? -0.5 : 0.5);
    fmsynth.setParameter(fmsynth_parameter.FMSYNTH_PARAM_CARRIERS, i, 1.0);
    fmsynth.setParameter(
        fmsynth_parameter.FMSYNTH_PARAM_LFO_FREQ_MOD_DEPTH, i, 0.15);
  }

  for (int i = 0; i < 64; i++) {
    fmsynth.noteOn(i + 20, 127);
  }

  final file = File('output.txt');
  final b = StringBuffer();
  for (int i = 0; i < 10; i++) {
    final renderedSamples = fmsynth.render(2048);

    for (int x = 0; x < 2048; x++) {
      b.writeln('${renderedSamples.left[x]} ${renderedSamples.right[x]}');
    }
  }
  file.writeAsStringSync(b.toString());

  fmsynth.close();
}
3
likes
115
points
23
downloads

Publisher

verified publishermanichord.com

Weekly Downloads

A Dart wrapper for the libfmsynth library.

Documentation

API reference

License

BSD-3-Clause (license)

Dependencies

ffi

More

Packages that depend on dart_fm_synth