Alligator Bytes

Alligator Bytes is an Android app for performing music, originally made for the Alligator Gozaimasu collective.

Download and Installation

Get it on F-Droid
Sourcecode on Codeberg

Key Features

  • The app has up to 6 sample groups containing up to 10 loops each, where a loop of each group can be played simultaneously.
  • You can record loops on the go and play back up to 4 of those simultaneously.
  • Loop playback is synchronized to beats, while playback speed can be set globally.
  • Pitch and panning is controlled independantly for each loop to create rich stereo sound.
  • You can control pitch and panning via tilt of the phone or tablet, if you want to.
  • Use random sample from each group after a loop has finished.
  • Break loops into beats and randomize the position in the loop to be played back.

AdditionalFeatures

  • Record your own samples on the go and export them for later use
  • Load your own samples and set their beats per minute
  • Independant pitch and playback speed of samples
  • Record your sessions to wav

Import and Export Files

You can import any audio files which can be played back on the device to Alligator Bytes in the settings, and add it to any sample group. On import, files will be downmixed to mono and converted into wav.

When you have recorded a loop on the fly, you can also export that to wav, as well as record a session for later listening. The output folder is settable in settings.

In the settings you can also export the sample pack as a zip file along with the settings, i.e. the associated sample groups and selected BPM for that file in a combined JSON file. That zip file can be imported in the settings on any other device running Alligator Bytes.

When you create a sample pack for import later, you can add arbitrary audio files in it. Those will be transcoded in the same manner as importing single files. Missing files will be detected and excluded from the sample groups. The zip files must contain all files in the top folder, and must contain a config.json.
The properties of the JSON file:

  • Must be an array of sample objects
  • Each sample is listed as an object in the array
  • Sample objects must have a string property fileName
  • Sample objects must have a string property sampleGroup with values of group1 through to group6
  • Sample objects should have an integer property position with values ranging from 0 to 7. If not set, it will default to 0.
  • Sample objects should have an integer property bpm with values ranging from 30 to 300. If not set, it will default to 120.

During import the following checks and sanitization will be done:

  • Sample objects that do not follow the constraints will be ignored on import.
  • When the audio file is missing from the zip file, the sample will be ignored on import.
  • If there are more than 8 samples in a group, then the exceeding sample will be ignored on import.
  • If there are multiple samples defined with the same position in the same group, then the samples will be ordered by appearance in the configuration.

An example config.json:

[
	{"sampleGroup": "group1", "position": 0,"fileName": "beat_Alligator (1).wav", "bpm": 130},
	{"sampleGroup": "group1", "position": 1,"fileName": "beat_Alligator (2).wav", "bpm": 120},
	{"sampleGroup": "group1", "position": 2,"fileName": "beat_Alligator (3).wav", "bpm": 120},
	{"sampleGroup": "group1", "position": 3,"fileName": "beat_Alligator (4).wav", "bpm": 120}
]

See also the zip file that comes with the app.

Get Involved

Development is done at Codeberg.

The code comes with a permissive MIT license, so feel free to check out the code and get involved in the development of the app or use the audio logic (in Pure Data) to create your own patches.

Or get involved with translating the app into different languages at Codeberg Weblate.
Translation State

We also try to get the app to the Play Store, but are still in need of some beta testers, so that the app is available there as well.

Feel free to email us at alligatorbytes@sensors2.org for more information.