Skip to content

A computer language for music composition, sound filtering and sound synthesis

License

Notifications You must be signed in to change notification settings

dats-lang/dats-src

Repository files navigation

Dats

A digital audio text station.

The "Hello World" of dats:

staff pol {
  n 4, c4;
  n 4, d4;
  n 4, e4;
  n 4, f4;
  n 4, g4;
  n 4, a4;
  n 4, b4;
  n 4, c5;
}

main {
  // This uses the synthesizer named "kpa"
  // An implementation of Karplus-Strong Algorithm
  track kol = synth.kpa(pol);
  write("sample.wav", kol);
}

Execute dats file as dats file.dats

Note: This software is unstable, and more changes will have to come.

Building

Building Dats requires fluidsynth, and with it, should compile on Windows and *nix operating systems, provided that the compiler provides GNU extensions.

*nix

make -j4 && make install && make test

Documentation

See https://github.com/dats-lang/dats-tex

Contributing

PRs are warmly welcomed. Make sure you clang-format -i *.[ch] your sources before doing so. You can begin by grepping "FIXME" through sources and read what needs to be done. find . -name \*.c -exec grep -n FIXME {} \+.

TODO

  • libdsynth - Provides synthesizers.

  • libdfilter - Provides filters for manipulating raw PCM s16le data.

DIR

  • libdsynth - Provides synthesizers.

  • libdfilter - Provides wrappers for filters or filters for manipulating raw PCM s16le data.

  • dats - Source code of dats.

  • sndfilter - Provides filters for manipulating raw PCM s16le data.

  • test - Contain example dats file for testing the Dats interpreter

  • doc - Documentation for dats

About

A computer language for music composition, sound filtering and sound synthesis

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published