All Projects → detomon → Blipkit

detomon / Blipkit

Licence: other
C library for creating the beautiful sound of old sound chips

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Blipkit

Torch Audiomentations
Fast audio data augmentation in PyTorch. Inspired by audiomentations. Useful for deep learning.
Stars: ✭ 164 (+613.04%)
Mutual labels:  audio, music, sound, waveform
Simple Sdl2 Audio
A simple SDL2 audio library without SDL_Mixer for playing music and multiple sounds natively in SDL2
Stars: ✭ 111 (+382.61%)
Mutual labels:  sdl, audio, music, sound
Webaudiofont
Use full GM set of musical instruments to play MIDI and single sounds or effects. Support for reverberation and equaliser. No plugins, no Flash. Pure HTML5 implementation compatible with desktop and mobile browser. See live examples.
Stars: ✭ 600 (+2508.7%)
Mutual labels:  audio, music, sound
Daisysp
A Powerful, Open Source DSP Library in C++
Stars: ✭ 291 (+1165.22%)
Mutual labels:  audio, music, sound
Supercolliderjs
The JavaScript client library for SuperCollider
Stars: ✭ 381 (+1556.52%)
Mutual labels:  audio, music, sound
Pyo
Python DSP module
Stars: ✭ 904 (+3830.43%)
Mutual labels:  audio, music, sound
Wavesurfer.js
Navigable waveform built on Web Audio and Canvas
Stars: ✭ 5,905 (+25573.91%)
Mutual labels:  audio, music, waveform
Supercollider
An audio server, programming language, and IDE for sound synthesis and algorithmic composition.
Stars: ✭ 4,036 (+17447.83%)
Mutual labels:  audio, music, sound
Swift Radio Pro
Professional Radio Station App for iOS!
Stars: ✭ 2,644 (+11395.65%)
Mutual labels:  audio, music, sound
Matchering
🎚️ Open Source Audio Matching and Mastering
Stars: ✭ 398 (+1630.43%)
Mutual labels:  audio, music, sound
Dx7 Supercollider
My accurate Yamaha DX-7 clone. Programmed in Supercollider.
Stars: ✭ 395 (+1617.39%)
Mutual labels:  audio, music, sound
Waveform Playlist
Multitrack Web Audio editor and player with canvas waveform preview. Set cues, fades and shift multiple tracks in time. Record audio tracks or provide audio annotations. Export your mix to AudioBuffer or WAV! Project inspired by Audacity.
Stars: ✭ 919 (+3895.65%)
Mutual labels:  audio, music, waveform
Beet.js
Polyrhythmic Sequencer library for Web Audio API.
Stars: ✭ 87 (+278.26%)
Mutual labels:  library, audio, music
Redoflacs
Parallel BASH commandline FLAC compressor, verifier, organizer, analyzer, and retagger
Stars: ✭ 71 (+208.7%)
Mutual labels:  library, audio, music
Godot Mixing Desk
A complete audio solution for Godot 3.2.x, making procedural sound and adaptive/procedural music possible with a few nodes and a couple lines of code.
Stars: ✭ 240 (+943.48%)
Mutual labels:  audio, music, sound
Awesome Music Production
A curated list of software, services and resources to create and distribute music.
Stars: ✭ 340 (+1378.26%)
Mutual labels:  audio, music, sound
Minimp3
Minimalistic MP3 decoder single header library
Stars: ✭ 898 (+3804.35%)
Mutual labels:  audio, music, sound
Mimium
mimium (MInimal Musical medIUM) a programming language as an infrastructure for sound and music.
Stars: ✭ 212 (+821.74%)
Mutual labels:  audio, music, sound
Gwion
🎵 strongly-timed musical programming language
Stars: ✭ 235 (+921.74%)
Mutual labels:  audio, music, sound
Beats
A command-line drum machine. Convert a beat notated in YAML into a *.wav file.
Stars: ✭ 389 (+1591.3%)
Mutual labels:  audio, music, sound

BlipKit

Build Status

BlipKit is a C library for creating the beautiful sound of old sound chips.

  • Generate waveforms: square, triangle, noise, sawtooth, sine and custom waveforms
  • Use an unlimited number of individual tracks
  • Use stereo output or up to 8 channels
  • Define instruments to create envelopes and other interesting effects
  • Use effects: portamento, tremolo, vibrato and some more
  • Load multi-channel samples and play them at different pitches

📖 Manual: http://blipkit.audio

🎹 Also consider to check out the bliplay project

Basic Example

This code demonstrates the basic steps to generate audio data of a square wave in the note A with enabled tremolo effect:

// Context object
BKContext ctx;

// Initialize context with 2 channels (stereo)
// and a sample rate of 44100 Hz
BKContextInit (& ctx, 2, 44100);

// Track object to generate the waveform
BKTrack track;

// Initialize track with square wave
// By default, the square wave has a duty cycle of 12.5%
BKTrackInit (& track, BK_SQUARE);

// Set mix and note volume
BKSetAttr (& track, BK_MASTER_VOLUME, 0.15 * BK_MAX_VOLUME);
BKSetAttr (& track, BK_VOLUME,        1.0 * BK_MAX_VOLUME);

// Set note A in octave 3
BKSetAttr (& track, BK_NOTE, BK_A_3 * BK_FINT20_UNIT);

// Enable tremolo effect
BKInt tremolo [2] = {20, 0.66 * BK_MAX_VOLUME};
BKTrackSetEffect (& track, BK_EFFECT_TREMOLO, tremolo, sizeof (tremolo));

// Attach track to context
BKTrackAttach (& track, & ctx);

// Define audio data buffer
// As there are 2 channels used, the buffer actually must be
// two times the size than number of frames are requested
BKFrame frames [512 * 2];

// Generate 512 frames e.g. as they would be requested by an audio output function
// Subsequent calls to this function generate the next requested number of frames
BKContextGenerate (& ctx, frames, 512);

// The channels are interlaced into the buffer in the form: LRLR...
// Which means that the first frame of the left channel is at frames[0],
// the first frame of the right channel at frames[1] and so on

Building the Library

First execute autogen.sh in the base directory to generate the build system:

sh ./autogen.sh

Next execute configure in the base directory:

./configure

Use the --without-sdl option if you don't want to link against SDL.

./configure --without-sdl

Then execute make to build libblipkit.a in the src directory:

make

Optionally, you may want to execute to install the library and headers on your system:

sudo make install

Building and Running Examples

All examples use SDL (http://www.libsdl.org) to output sound, so you have to install it first. Execute make examplename to build an example in the examples directory.

# in `examples`

make tone
make divider
make stereo
make scratch
make waveform
make envelope

Finally, run examples like this:

# in `examples`

./tone

License

This library is distributed under the MIT license. See LICENSE.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].