All Projects → tesselode → Kira

tesselode / Kira

Licence: mit
Library for expressive game audio.

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to Kira

Libnyquist
🎤 Cross platform C++11 library for decoding audio (mp3, wav, ogg, opus, flac, etc)
Stars: ✭ 311 (+31.22%)
Mutual labels:  gamedev, audio, audio-library
Fradioplayer
A simple radio player framework for iOS, macOS, tvOS.
Stars: ✭ 183 (-22.78%)
Mutual labels:  audio, audio-library
React Native Donkey Kong
Donkey Kong remake using react-native-game-engine 🙉
Stars: ✭ 174 (-26.58%)
Mutual labels:  game-development, gamedev
Mwengine
Audio engine and DSP for Android, written in C++ providing low latency performance in a musical context, supporting both OpenSL and AAudio.
Stars: ✭ 190 (-19.83%)
Mutual labels:  audio, audio-library
Rimlight
Customizable rimlight shader for Unity that includes pulsation and noise scrolling. Give your scenes that extra oomph!
Stars: ✭ 170 (-28.27%)
Mutual labels:  game-development, gamedev
Alimer
Cross-platform game engine.
Stars: ✭ 172 (-27.43%)
Mutual labels:  game-development, gamedev
Engine
Cocos Creator is a complete package of game development tools and workflow, including a game engine, resource management, scene editing, game preview, debug and publish one project to multiple platforms.
Stars: ✭ 2,574 (+986.08%)
Mutual labels:  game-development, gamedev
Awesome Pico 8
A curated list of awesome PICO-8 resources, carts, tools and more
Stars: ✭ 1,955 (+724.89%)
Mutual labels:  game-development, gamedev
Methanekit
🎲 Modern 3D graphics made simple with cross-platform C++17 meta-API on top of DirectX 12 & Metal (Vulkan is coming)
Stars: ✭ 197 (-16.88%)
Mutual labels:  game-development, gamedev
Unity Shaders
✨ Shader demo - More than 300 examples
Stars: ✭ 198 (-16.46%)
Mutual labels:  game-development, gamedev
Vulkan Renderer
A new 3D game engine using modern C++ and Vulkan API
Stars: ✭ 205 (-13.5%)
Mutual labels:  game-development, gamedev
Swiftaudio
Audio player for iOS
Stars: ✭ 160 (-32.49%)
Mutual labels:  audio, audio-library
Fxgl
Stars: ✭ 2,378 (+903.38%)
Mutual labels:  game-development, gamedev
Uecs
Ubpa Entity-Component-System (U ECS) in Unity3D-style
Stars: ✭ 174 (-26.58%)
Mutual labels:  game-development, gamedev
Swissarmylib
Collection of helpful utilities we use in our Unity projects.
Stars: ✭ 154 (-35.02%)
Mutual labels:  game-development, gamedev
Deadsimple Pixel Perfect Camera
An exceedingly easy-to-use pixel perfect orthographic camera script for 2D scenes in Unity. Punch in a few specs and you've got a working pixel perfect camera. It's that easy.
Stars: ✭ 186 (-21.52%)
Mutual labels:  game-development, gamedev
Awesome Haxe Gamedev
Resources for game development on haxe
Stars: ✭ 213 (-10.13%)
Mutual labels:  game-development, gamedev
Kaetram Open
An open-source 2D HTML5 adventure based off BrowserQuest (BQ).
Stars: ✭ 138 (-41.77%)
Mutual labels:  game-development, gamedev
Opensurge
A fun 2D retro platformer inspired by Sonic games and a game creation system.
Stars: ✭ 143 (-39.66%)
Mutual labels:  game-development, gamedev
Godot Kickstarter 2019
Create your Own Games with Godot, the Free Game Engine: sources from the January Kickstarter project from GDQuest
Stars: ✭ 194 (-18.14%)
Mutual labels:  game-development, gamedev

Kira

Documentation | Web demo (source)

Kira is an audio library designed to help create expressive audio for games. Besides the common features you'd expect from an audio library, it provides interfaces for scripting audio events, seamlessly looping complex pieces of music, smoothly changing parameters, and more.

Examples

Simple sound playback

let mut audio_manager = AudioManager::new(AudioManagerSettings::default())?;
let mut sound_handle = audio_manager.load_sound("sound.ogg", SoundSettings::default())?;
sound_handle.play(InstanceSettings::default())?;

Looping a song while preserving trailing sounds

let sound_handle = audio_manager.load_sound(
	"loop.ogg",
	SoundSettings::new().semantic_duration(Tempo(128.0).beats_to_seconds(8.0)),
)?;
let mut arrangement_handle = audio_manager.add_arrangement(Arrangement::new_loop(
	&sound_handle,
	LoopArrangementSettings::default(),
))?;
arrangement_handle.play(InstanceSettings::default())?;

Playing sounds and emitting events in time with a metronome

#[derive(Debug, Clone, Copy, PartialEq, Eq, Hash)]
enum CustomEvent {
	Kick,
}

let kick_sound_handle = audio_manager.load_sound("kick.wav", SoundSettings::default())?;
let mut metronome_handle =
	audio_manager.add_metronome(MetronomeSettings::new().tempo(Tempo(150.0)))?;
audio_manager.start_sequence(
	{
		let mut sequence = Sequence::new(SequenceSettings::default());
		sequence.start_loop();
		sequence.play(&kick_sound_handle, InstanceSettings::default());
		sequence.emit(CustomEvent::Kick);
		sequence.wait(kira::Duration::Beats(1.0));
		sequence
	},
	SequenceInstanceSettings::new().metronome(&metronome_handle),
)?;
metronome_handle.start()?;

Platform support

Kira should support all of the platforms supported by cpal. Windows, Linux, and WASM have been tested.

Roadmap

Kira is in early development, and is not production ready. Here are some features that I'd like the library to have:

  • More mixer effects (EQ, compressor, better reverb, etc.)
  • C API
  • Streaming sounds
  • 3d audio (maybe!)

Contributing

I'd love for other people to get involved with development! Since the library is still in the early stages, I'm open to all kinds of input - bug reports, feature requests, design critiques, etc. Feel free to open an issue or pull request!

License

MIT

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].