peoplesfeelings / PFSeq

Demo app for Android module for precision-timing audio sequencer
7 stars 0 forks source link

Precision Timing Audio Sequencer Module

For audio tools like drum machines, samplers, metronomes, etc.

Overview

The requirements that led to this module:

Precision is achieved by:

Installation

Add the pfseq AAR module to your Android project and make it a dependency for the project's app module. You can get the AAR from this demo app's pfseq\build\outputs\aar directory. You may need to run "rebuild project" in Android Studio to generate this.

Usage

  1. Extend PFSeq and implement the abstract method getNotification(). It will need to return a Notification object unless the RUN_IN_FOREGROUND config value is set to false.
  2. Extend PFSeqActivity for any activity that will interact with your sequencer service. Abstract methods:
    • receiveMessage() - The sequencer service sends error messages to the activity. Do what you want with them here.
    • onConnect() - Called when the activity becomes bound. This is where you set up UI listeners that call public methods on your sequencer service (if bound).
    • getServiceClass() - Just return YourPFSeqBaseClass.class. It tells PFSeqActivity the name of your PFSeq base class.
  3. Call YourPFSeqBaseClass.setUpSequencer(config). Pass it a PFSeqConfig object. See PFSeqConfig class for how to override default config settings.
  4. Add at least one track to the sequencer, and add at least one "piano roll item" with an audio clip to the track.
  5. Call play() on the sequencer.

License

Copyright (c) 2019 People's Feelings
Licensed under GPL v2
https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html

Requirements

Other features