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, w/ vavi-apps-mfiplayer perfect reproducibility |
| midi | SMAF | YAMAHA ring tone format (ηγ‘γ) | β | β | β | au, Softbank, w/ vavi-apps-mfiplayer perfect reproducibility |
| sampled | MFi | Japanese ring tone format (ηγγ) | β | β | β | DoCoMo |
| sampled | SMAF | YAMAHA ring tone format (ηγγ) | β | β | β | au, Softbank |
| sampled | CCITT ADPCM | G711, G721, G723, G726 | β | β | β | cellphone w/ Fuetrek chip, G726 |
| 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 ADPCM | β | β | β [2] | x68000, MSM6258 |
| sampled | ROHM ADPCM [1] | ROHM ADPCM | β | β | β | cellphone w/ Rohm chip, BU8788KN |
| sampled | VOX ADPCM | Dialogic ADPCM (VOX) | β | β | β [2] | 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 | SShd | SONY Audio Stream (ADS) | β | - | β | .ads, .ss2, psx/pcm16/ima |
| sampled | ssrc | resampling | β | - | β | |
| midi | PMD | au, Qualcomm CMX | β | - | β | TODO synthesizer |
| midi | DXM | Feelsound, PHS | β | - | β | TODO oki synthesizer |
| midi | SMD | J-Phone J-SKY melody | β | - | β | TODO synthesizer |
| midi | MFM | FueTrek MFMP | β | - | β | TODO rohm? synthesizer |
[1] implemented in another library
[2] wav file readable
vavi.sound.sampled.spi.ssrc... ssrc sampling rate conversion provider on/off, defaultfalse
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 bundle 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
- https://github.com/starg2/timidity41/blob/dev41/timidity/mfi.c
- https://github.com/logue/smfplayer.js/blob/master/src/mld.js
- https://github.com/SquirrelJME/SquirrelJME/tree/trunk/modules/vendor-api-keitaiwiki-music/src/main/java/com/keitaiwiki/music
- https://github.com/GrenderG/openDoJa (fuetrek)
- https://github.com/TASEmulators/freej2me-plus/blob/devel/src/javax/microedition/media/decoders/MLDDecoder.java
useReceiverand sysex instead ofMetaEventListenerssrc: use nio pipe for 1st passon 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 sequencerservice loader instead of vavi.propertiesmidi -> smafhttps://github.com/but80/smaf825 (patch dump)-> https://github.com/umjammer/vavi-sound-mapsx adpcm spisshd (.ss2) spiadpcm playback timing preciselysmaf, mfi midi synthesizer are really needed? just receiver seems to be okthose are needed when eliminating audio engine source data line
eliminate *MessageStore -> w/ data sysexAudioDataChunk seems Ξ is 0, there is the case that those pronounce at same timing ?- remaining japanese, world ringtone format
image designed by @umjammer, drawn by nano banana
