Skip to content

🎡 ADPCM Java sound SPIs and SSRC sample rate converter and MFi, SMAF(old school Japanese cellphone ringtone) Java MIDI SPI

Notifications You must be signed in to change notification settings

umjammer/vavi-sound

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Release Java CI CodeQL Java

vavi-sound

logo

Provides old school Japanese cell phone sounds library as javax.sound(.midi) 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 βœ… βœ… βœ… same as IMA
sampled IMA ADPCM IMA ADPCM βœ… βœ… βœ… [2]
sampled MA ADPCM [1] YAMAHA ADPCM-MA βœ… βœ… βœ… cellphone w/ YAMAHA MA chip, YMU762, YMU765
sampled MS ADPCM Microsoft ADPCM βœ… βœ… βœ… [2]
sampled OKI ADPCM OKI MSM6258 ADPCM βœ… βœ… βœ… [2] x68000
sampled ROHM ADPCM [1] ROHM ADPCM βœ… βœ… βœ… cellphone w/ Rohm chip
sampled VOX ADPCM Dialogic ADPCM (VOX) βœ… βœ… βœ… [2] OKI MSM7580
sampled YM2068 ADPCM YAMAHA ADPCM-A βœ… βœ… - YM2608 etc.
sampled YAMAHA ADPCM YAMAHA ADPCM-A βœ… βœ… βœ… [2] same as YM2608 ADPCM
sampled PSX ADPCM SONY ADPCM βœ… - .mi[bh], .mic
sampled ssrc resampling βœ… - βœ… * [*] need to wait for phase 1

[1] implemented in another library
[2] wav file readable

Install

Usage

sample

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
  • [midi volume] avoiding noise, SoundUtil#volume should be called before Sequencer#setSequence

References

TODO

  • use Receiver and sysex 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
  • use service provider for mfi, smaf sequencer
  • service loader instead of vavi.properties
  • midi -> smaf
  • https://github.com/but80/smaf825 (patch dump)

images by melody, cellphone

About

🎡 ADPCM Java sound SPIs and SSRC sample rate converter and MFi, SMAF(old school Japanese cellphone ringtone) Java MIDI SPI

Topics

Resources

Stars

Watchers

Forks

Sponsor this project

Languages