Giter Club home page Giter Club logo

klangsynthese's Introduction

200sc

  • ๐Ÿ”ญ I work on Oak in my free time
  • ๐Ÿ‘” I work at strongDM in my costly time (We're hiring!)
  • ๐Ÿ—พ Iโ€™m currently learning Japanese
  • ๐Ÿ“ซ How to reach me: [email protected]
  • ๐Ÿ˜„ Pronouns: he/him

klangsynthese's People

Contributors

200sc avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

klangsynthese's Issues

Saving files

We'll need to reverse the decoding process to encode arbitrary PCM data as MP3 or WAV. This isn't a feature I am personally concerned about but it should be on the roadmap somewhere.

(Linux) After ~20 audios have played, no more will be played

The error we get is:

ALSA lib pulse.c:243:(pulse_connect) PulseAudio: Unable to connect: Connection terminated

I believe the fix for this is for the linux encoding file to keep around a few audio references and re-assign new audios as they come in to be played.

Instrument loading

dls files and sf2 files are probably the first targets for loading in instruments, to then determine how we can fit those instruments into our wave function syntax.

Generic Load function

There should be either klangsynthese.Load/SaveFile or audio.Load/SaveFile that take in file names and switch to the appropriate sub-package depending on the extension of the file name.

Pitch shifting PCM data

This is an important missing feature for working with wave samples taken from dls or sf2 files.

Byte manipulation package

In writing filters, a lot of the work involves low level audio manipulation on the byte level, and it'd be nice if that went to a sub-package.

Tests fail for FLAC support

Right now we allegedly have FLAC support, and tests, but on the test files that could be found our tests don't run.

Support more bit depths

Right now we support 16-bit audio. It is trivial but a good amount of work to extend what we have to support other bit depths. Some research into what bit depths would be meaningful would help, and if there's some conflict between, say, float64 and int64 encoding styles that we need more information for.

Along the way we should look into if there's a better way to resolve filters on audio of different bit depths than just using a switch.

mp3 memory usage and time to play

I think the memory usage is stable and it's taking a long time to play, about 15 seconds.
WAV plays instantly.

I'm using Windows 10, mp3 file size 3,4MB

(Sorry my english)

code

package main

import "time"
import audio "github.com/200sc/klangsynthese"

func main() {
	player, _ := audio.LoadFile("fazenda.mp3")
	println("Tocando")
	if err := <-player.Play(); err != nil {
		panic(err)
	}
	time.Sleep(player.PlayLength())
}

Test Coverage

Should start looking at making sure tests actually cover sufficient code portions

Darwin/OSX support

I don't have a way to test on Darwin in the first place right now, so this will be on hold until that changes or someone who can test it can take this over.

Tests for playing audio

It'd be nice to have an automated way to test that audio was actually played out of a device.

A pattern for combining audio streams

Filters right now act on a single audio, and while that audio could be a Multi it would be good to have a pattern that explicitly took in n audio streams and combined them like a module in a synthesizer.

More built-in waveforms

Such as:

Breaker (see BFXR)
Tan (BFXR)
Pulse Triangle
Dual Square (see Bosca Ceoil)
Dual Saw (Bosca Ceoil)

White noise
Pink noise
Brown noise (?)
Noise of arbitrary energy

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.