@oletizi/audio-tools
Version:
Monorepo for hardware sampler utilities and format parsers
60 lines (58 loc) • 1.95 kB
text/typescript
/**
* @packageDocumentation
* Sampler Devices - Akai Sampler Interface Library
*
* This package provides comprehensive interfaces and utilities for working with
* Akai hardware samplers (S3000XL, S5000, S6000).
*
* ## Features
*
* - **S3000XL Support**: Full disk I/O, program/sample parsing, MIDI SysEx communication
* - **S5000/S6000 Support**: Binary format parsing, chunk-based program structure
* - **Disk Operations**: Read/write/format Akai disk images via akaitools
* - **Remote Operations**: PiSCSI integration for remote disk mounting
* - **Format Conversion**: Sample and program conversion utilities
*
* ## Main Exports
*
* ### S3000XL
* - Device specifications and MIDI parameter definitions
* - Program/sample data structures (auto-generated from specs)
* - Akai disk hierarchy (partitions, volumes, programs, samples)
*
* ### S5000/S6000
* - Chunk-based program parser
* - Type definitions for all program parameters
* - JSON serialization support
*
* ### Utilities
* - Akaitools wrapper (disk operations, format conversion)
* - PiSCSI remote mounting
* - Configuration management
*
* @example
* ```typescript
* import { newAkaiToolsConfig, Akaitools } from '@oletizi/sampler-devices';
*
* // Initialize configuration
* const config = await newAkaiToolsConfig();
*
* // Read disk structure
* const disk = await akaitools.readAkaiDisk();
* console.log(`Found ${disk.data.partitions.length} partitions`);
*
* // Parse S5000 program
* const buffer = await fs.readFile('program.akp');
* const state = createParserState();
* parseProgram(buffer, state);
* console.log(`Program ${state.program.programNumber} with ${state.keygroups.length} keygroups`);
* ```
*
* @public
*/
export * from "@/devices/s3000xl.js"
export * from "@/devices/specs.js"
export * from "@/model/model-akai-s3000xl.js"
export * from "@/utils/akai-utils.js"
export * from "@/io/akaitools.js"
export * from "@/s5k.js"