iota ~main

Multimedia I/O library for D


To use this package, run the following command in your project's root directory:

Manual usage
Put the following dependency into your project's dependences section:

iota

Input-output (audio, controls, etc) library for D. Intended as a D language native replacement for SDL, SFML, etc.

Current state

ComponentWindowsLinux
AudioPreliminary, output stream worksOutput works + some issues
MIDIInput+Output, with some caveatNot yet implemented
KeyboardWorksNot yet implemented
MouseWorksNot yet implemented
Pen TabletNot yet implementedNot yet implemented
Game controllersNot yet implementedNot yet implemented
WindowingA bit buggyNot yet implemented

MacOSX is not yet supported due to lack of hardware. Please consider contributing to this project!

Audio

Windows

Only WASAPI output is supported at the moment, but it seems to work correctly. Buffer overflow protection is done through spinning in a loop alongside with the wait. It's not nice, but works, and eliminates possible issues from inconsistent buffer sizes.

Deinitialization is automatic through destructors and bug free. Windows-specific error-codes are handled as should.

Linux

Error handling is quite preliminary with one having to rely on returned error codes. ALSA documentation is quite scarce, and often don't contain more than what one can get out from function names, let alone the possible returned error codes. Device selection might contain non-PCM devices, so initializing with default device (-1) is recommended instead for now.

Audio is tested and confirmed working on 64 bit Raspberry Pi devices, which probably means all 64 bit ARM SoCs are supported under Linux.

MIDI

Windows

Both input and output works, but might suffer from some caveat that stems from the Windows MIDI API. There's a chance that calling a MIDI system function within the MIDI input callback will cause a lockup.

Others

Preliminary work on keyboard, mouse, etc. controls have been started.

Examples

See testsource/app.d for audio!

Authors:
  • laszl
Sub packages:
iota:audiotest, iota:miditest, iota:inputtest
Dependencies:
bindbc-opengl, bitleveld, collections-d
Versions:
0.2.0 2022-Mar-11
0.1.0 2021-Dec-27
0.1.0-alpha 2021-Dec-21
~main 2022-Jun-23
Show all 4 versions
Download Stats:
  • 0 downloads today

  • 0 downloads this week

  • 0 downloads this month

  • 13 downloads total

Score:
0.4
Short URL:
iota.dub.pm