Giter Club home page Giter Club logo

vavi-sound's Introduction

Release Java CI CodeQL Java

vavi-sound

logo

Provides old school Japanese cell phone sounds library as javax.sound SPI
includes many ADPCM codecs and the SSRC sampling rate converter.

Status

SPI Codec Description IN Status OUT Status SPI Status Comment
midi MFi Japanese ring tone format ๐Ÿšง โœ… โœ… DoCoMo
midi SMAF YAMAHA ring tone format ๐Ÿšง โœ… โœ… au, Softbank
sampled MFi Japanese ring tone format โœ… โœ… โœ… DoCoMo
sampled SMAF YAMAHA ring tone format โœ… โœ… โœ… au, Softbank
sampled CCITT ADPCM G711, G721, G723 โœ… โœ… โœ… G721 cellphone w/ Fuetrek chip
sampled DVI ADPCM DVI ADPCM โœ… โœ… โœ…
sampled IMA ADPCM IMA ADPCM โœ… โœ… โœ… [1]
sampled MA ADPCM YAMAHA ADPCM โœ… โœ… โœ… cellphone w/ YAMAHA MA chip
sampled MS ADPCM Microsoft ADPCM โœ… โœ… โœ… [1]
sampled OKI ADPCM OKI ADPCM โœ… โœ… โœ… [1]
sampled ROHM ADPCM ROHM ADPCM โœ… โœ… โœ… cellphone w/ Rohm chip
sampled VOX ADPCM VOX ADPCM โœ… โœ… โœ… [1]
sampled YAMAHA ADPCM YAMAHA ADPCM โœ… โœ… โœ… [1]
sampled YM2068 ADPCM YAMAHA ADPCM โœ… โœ… - same as YAMAHA ADPCM
sampled ssrc resampling โœ… - โœ… need to wait for phase 1

[1] wav file readable

Install

Usage

FAQ

Q. can I use SSRC sampling converter under LGPL license?

A. yes you can, follow those steps

  • create a separated jar (ssrc.jar) file including ssrc classes. (never include those .class files into your application jar file)
    • vavi/sound/pcm/resampling/ssrc/SSRC.class
    • vavi/util/SplitRadixFft.class
    • vavi/util/I0Bessel.class
  • โš  caution:
    • your application complies with the LGPL. customers have a right to reverse engineering your application.
    • if you include ssrc.jar with a distribution, you must offer a way to get ssrc source code.
  • see also

Tech Know

  • github actions workflow on ubuntu java8 cannot deal line PCM_SIGNED 8000.0 Hz, 16 bit, mono, 2 bytes/frame, little-endian

References

TODO

  • use Receiver instead of MetaEventListener
  • ssrc: use nio pipe for 1st pass
    • on macos m2 ultra 1st pass is in a blink of an eye
  • ima, ms adpcm: wav reader
    • tritonus:tritonus-remaining:org.tritonus.sampled.file.WaveAudioFileReader

images by melody, cellphone

vavi-sound's People

Contributors

umjammer avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

vavi-sound's Issues

Upsampler crashes on very short audio sequence

I have a very short audio sequence with 13093 samples. It's a Linear PCM Wave with 44100 hz Mono 16bits.
I'd like to upsample it to 48000 hz.

It crashes at the following line because the result of the calculation is negative.

SSRC.java:1006
rawoutbuf.limit((int) (dbps * nch * (Math.floor((double) sumread * dfrq / sfrq) + 2 - sumwrite - delay)));

java.lang.IllegalArgumentException: null
	at java.nio.Buffer.limit(Buffer.java:275) ~[na:1.8.0_161]
	at vavi.sound.pcm.resampling.ssrc.SSRC$Upsampler.resample(SSRC.java:1006) ~[na:na]
	at vavi.sound.pcm.resampling.ssrc.SSRC.io(SSRC.java:2431) ~[na:na]
	at vavi.sound.pcm.resampling.ssrc.SSRCInputStream$1.run(SSRCInputStream.java:88) ~[na:na]

Are such short sequences generally not supported or is it a corner case which you do not need in your applications?
Could you give me a hint how to fix this?

Thank you!

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.