Provides old school Japanese cell phone sounds library as javax.sound(.midi) SPI
includes many ADPCM codecs and the SSRC sampling rate converter.
| 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
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.classvavi/util/SplitRadixFft.classvavi/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
- [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#volumeshould be called beforeSequencer#setSequence
- https://github.com/shibatch/SSRC
- adpcm
- Beatnik RMF https://github.com/heyigor/miniBAE
- FITOM https://github.com/madscient/FITOMApp (midi to opl series)
- RTTTL (Ringing Tones text transfer language)
- smaf
- https://murachue.sytes.net/web/softlist.cgi?mode=desc&title=mmftool
- https://github.com/mmontag/mmfplay (w/ ym chips)
- https://funyamora.hatenadiary.org/entry/20080225/1203889006 π―π΅ (.spf SMAF/Phase)
- https://github.com/logue/smfplayer.js
- https://github.com/shirajira/OpenMF
- https://github.com/Pusungwi/mmf_parser
- mfi
- use
Receiverand sysex instead ofMetaEventListener - ssrc: use nio pipe for 1st pass
- on macos m2 ultra 1st pass is in a blink of an eye
ima,msadpcm: wav readertritonus: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)