life in the so-called space age

New phone. Sanyo 8100 / Sprint. It has a camera. The camera pretty much sucks.


the office fishtank

my favorite girly

Do any of you know if there's some way to get my own MP3s into this thing to use as ringers? I'm aghast (but unsurprised) that they want to charge $1.50 per 90 days to use a custom ringer! Actually, I'm surprised they don't just go ahead and charge you a buck every time your phone rings.


Update: For those of you following along at home, I finally learned how to reliably get WAVs into this phone as ringers. You'd think you could just email a WAV to the phone, but no, that would be too simple. <LJ-CUT text="The trick goes like this..."> The trick goes like this:

  • Downcode the .wav file to dixie-cups-and-string quality:

      sox orig.wav -ws -r 8000 -c 1 ringer.wav

    (Maybe use -v 3.5 to crank up the volume: flavor to taste.) The end result should be "RIFF (little-endian) WAVE audio, Microsoft PCM, 16 bit, mono 8000 Hz".

  • Get "PureVoice Converter for Windows" (from here) and run it under WINE to make a .qcp from the .wav:

      wine PureVoice/PVConv ringer.wav ringer.qcp

    Why this extra undocumented wrapper format? Who knows. It's a phone company, they do things like that.

  • Create a file called ringer.gcd that contains this text:

      Content-Type: audio/vnd.qcelp
      Content-Name: My Ringer
      Content-Version: 1.0
      Content-Vendor: monkeybutter
      Content-URL: http://
      your_site/.../ringer.qcp
      Content-Size:
      the size of the qcp file in bytes

    (Note MIME-like (yet gratuitously not-actually-MIME) choice of headers. It's the little things.)

  • Configure your web server to send the right content type for these file extensions, by adding this to .htaccess:

      AddType audio/vnd.qcelp qcp
      AddType text/x-pcs-gcd gcd
  • Now you need to get your phone to load the URL of the .gcd file. After reading that, your phone will download and install the .qcp file. Why they do it in two steps like this, I have no idea.

    One way to do this is to just go into your phone's web browser and type in the URL of the .gcd file. It should only take you about ten minutes to type that in on the phone's keypad. Another way is to send an email (sorry, "text message") to your phone that has that URL in it, and click on it when you receive it. Shockingly, it can be just a plain old text message:

      echo http://.../ringer.gcd | \
        Mail 4155551212@messaging.sprintpcs.com

    If your phone gives you the error, "Data Error 905, Attribute Mismatched, Install failed", that means "the content-type that the web server returned for the .qcp file was text/plain or something other than audio/vnd.qcelp." The AddType stuff above really does matter, to my phone at least. Presumably other phones are less picky.

There are a bunch of web sites out there that automate some of this for you, but I find that they mostly don't work reliably, or get the content-types wrong, or who knows what. It was much easier to just do it via my own domain.

Tags: , ,
Current Music: Brassy -- Parkside ♬

44 Responses:

  1. dmaster says:

    for starters, http://www.mbuzzy.com will let you use any Qualcomm PureVoice file or regular MIDI file and upload your own ringers to a SprintPCS Vision phone. It works well enough, I suppose. The PureVoice files however are large and not necessarily very loud, so you may need to experiment to get them to work, but it's a free service.

    Another site I use to get some ringers, is http://www.d-d-n.com which works a little better IMO. Mbuzzy is kinda sketchy.

    at any rate, you'll have to convert the mp3's to something else.

    • jwz says:

      I'm pretty horrified at the thought of giving any of these sites my phone number, since my phone doesn't have kill files. And they won't even let you preview the ring tones until you do that. Are they going to be calling/messaging me with "special offers" if I do?

      • down8 says:

        I haven't used Sprint in a while, but when I last did (circa 2000), you could blacklist ppl thru Sprint's website, so if you did get cell-spammed(?), and couldn't 'unsubscribe', you could get out of it.

        I skipped the online services, and got the cable for my Nokia, combined with their (Windows only, I know - sorry) software, I can convert any .wav into a ringer. Add in an .mp3->.wav converter, and you're golden. Free for me - the associated Windows overhead might not make this worthwhile for you though.

        -bZj

  2. mocrack says:

    I've had good luck using the PureVoice encoder that Qualcomm provides,
    and using PCSPix's service to transfer the .qcp files to the phone (in my case, a Sanyo 4900).
    They use the phone's minibrowser to do the downloading, so they don't need your phone number at all.
    Unfortunately, their free account is limited to ~10 uploads a month.

  3. exoskeleton says:

    Why do you not expect vast suckage? It's Sprint, which amongst other failings has the lamest implementation of SMS known to mankind - worse than just not having bothered to implement it at all.

    • jwz says:

      You say that as if I'm to believe that any phone company is any less sucktastic than any other. Sorry, not buying it. Telcos are like banks: pure evil, brimming with customer hostility because they can.

      And anyway, when did I say I expected better?

      • You say that as if I'm to believe that any phone company is any less sucktastic than any other.

        More to the point, each phone company is more sucktastic than the others.

      • exoskeleton says:

        Indeed, but Sprint is *worse* than the rest, which are all merely monstrously evil.

        Of course, having Sprint does have a pretty good SMS spam filter - by making SMS almost totally inaccessible, presto! almost no SMS spam; amazing!

        If you're worried about giving out your number, why not get a cheap prepaid card and use that number as a decoy? Heh, looks like Sprint don't even *do* prepaid mobiles yet...

  4. baconmonkey says:

    if you want good images, buy a good camera.
    I'll bet it's audio playback isn't as good a club system either.
    and it can't play the latest 3d shooters either.

    WTF kind of phone is that?
    oh wait, it's a phone, with cheap gadgets tacked on to sucker unwitting consumers (and perverted japanese salarymen) into buying them.

    wait, is that Angela?
    the distortion from the lens makes it look like a young child.

  5. anonymous says:

    Two services I've used to upload files (works fine with my Sprint Sanyo 4900):
    http://www.sprintusers.com/focus/
    or
    http://www.spasticchicken.com/upload.php
    (also has free ringers)

    I've used both, and haven't gotten any SMS spam or anything else from them that I didn't request.

    However, if you're really paranoid, you can fairly easily make your own:

    These sites both just send you an SMS text message with a URL to a .gcd file, hosted on their server. The phone uses the gcd file to get the content.

    The GCD just consists what looks like http headers, for example, the file:
    http://www.spasticchicken.com/ringers/rock/drive.gcd

    Contains:
    Content-Type: audio/midi
    Content-Name: Drive
    Content-Version: 1.0
    Content-Vendor: spasticchicken.com
    Content-URL: http://www.spasticchicken.com/ringers/rock/drive.mid
    Content-Size: 4126

    It should be pretty simple from there :-)

    • jwz says:

      Thanks!

      I got it to take a custom picture download, but I haven't quite figured out how to get it to take an audio download yet... I created a WAV file with

        sox old.wav -ws -r 8000 -c 1 new.wav

      then ran " PureVoice Converter for Windows" (from here) under WINE to make a .qcp file of that... but when I send that to the phone, I get "Data Error 905, Attribute Mismatched, Install failed."

      Maybe I should be trying to convert WAV to MID instead of QCP? It's not clear to me how to do that either.

      • baconmonkey says:

        wav to mid makes no sense.
        sure there are programs that will try and decypher tones from an audio stram and try to figure out which notes are being played, but thery're a bit sketchy.

        • jwz says:

          Well, I've seen some indications that the phone will accept MIDs. I thought perhaps there was some way to just put a MID wrapper around PCM data to placate it.

          • jerronimo says:

            Midi files are basically just collections of notes to be played along with the timing of those notes... there typically isn't any sort of pcm/wave data associated with it at all.

            just fyi. :)

          • baconmonkey says:

            Midi is not a mixed media format like AVI, QT, or RAM. Midi is note data for synthesizers. MID files are a very old format, predating windows.

      • injector says:

        When making the GCD file, what did you set as your "Content-Type"? I would guess that it would have be something like: "audio/qcp". It seems like that would be the source of the "Attribute Mismatched", error.

        But don't ask me, my phone can't even use custom ring tones, but I recompile kernels all the time.

        • anonymous says:

          The content type for QCP files is:

          audio/vnd.qcelp

          Spastic Chicken
          -- I love hackin things, next project: On-Star ;)

    • anonymous says:

      Actually, there is more to it. There is a certain .gcd mime type that has to be added to the http configs. Lemme see... hmmm, oh yeah, here it is.

      You must associate the gcd extension with this:
      text/x-pcs-gcd

      If anyone is PHP Savvy and runs their own webserver, I created the script and have an open source version for download at http://freshmeat.net/projects/pcsvisionuploader/

      Have fun all!
      Spastic Chicken

  6. jlindquist says:

    "I'm surprised they don't just go ahead and charge you a buck every time your phone rings."

    You can be sure that once MP3 ringers become commonplace, the RIAA's lawyer brigade will see that this happens.

  7. nicolson says:

    Well if you'd gotten a Sony Ericsson P800 instead, you could just copy over WAV files with iSync. I ripped a piece of a movie soundtrack from a DVD, converted to WAV, and now it's my ringtone. Paying for ringtones is silly.

    I guess that's not helpful since you've already gone with the Sanyo/Sprint phone...but it's not too late to return it...and switch network providers and get a new phone number...

    Oh well, worked for me. Now I can even post crappy, grainy photos to my journal in real time.

    • jwz says:

      Perhaps I should rebuild my kernel too.

    • dk379 says:

      Perhaps you should add you did it from your Powerbook via Bluetooth connection, thinking differently.

      By the way, speaking of phone cameras - what is the maximum resolution of that Sprint phones? VX6600 I use has 640x480, which yields reasonable pictures in daylight which can be downscaled 50%, sharpened and despeckled in Imagemagick to good 320x240 ones.

  8. insom says:

    .. we have phones like the Siemens S/C/M series, the support *hic* standards.

    You can upload .BMP, .MID, iCal & vCards over the serial connection with plain AT commands. Of course you can't take pictures (but then you can get a 3MP digital camera for <100 Sterling), or watch grainy postage stamp sized movies like with Three Mobile (er- I have a TV).

    Aaron

    • jwz says:

      See, I knew I should be rebuilding my kernel.

      • naturalborn says:

        The difference between you and me is that you accurately predict anything computer-related will be a nightmare then find your predictions borne out by experience, while I predict anything computer-related will be a nightmare and avoid the damn things as much as possible.

  9. revgeorge says:

    If you want to be able to email photos directly to your livejournal (see mine for an example) KickPost is a good place to start. I had to change the Date: header parser to work with RFC 822 dates, but aside from that it works like a champ.

  10. vxo says:

    What kind of fish is that?

  11. jwz says:

    I got it working -- turns out not all upload scripts are created equal when it comes to sending .qcp files to phones (you'd think they're just sending the raw bits, but it would seem not.)

    The incantation that works for me is:

    • sox orig.wav -ws -r 8000 -c 1 -v 4 ring.wav
    • wine PureVoice/PVConv ring.wav ring.qcp
    • upload with t1mmy.net (the one on sprintusers.com results in a "parameter mismatch" error on the phone)

    Now I just need to find some audio files that are the right balance of loud and non-irritating...

    • fzou says:

      "right balance of loud and non-irritating..."

      And the solution is: turn off the ring tones and make it vibrate when incoming stuff happens. Really, if you don't have the phone on your person when a call comes in, do you really care about missing that call and instead find out about it later?

      Otoh, for maximum kernel recompilationage, you should have bought a triband Bluetooth videocamera phone with an MMC slot that holds an 802.11b card so you could use it for VoIP with your computers. Portable, expensive, syncable, fragile videophone!

      I'm sure you'd get so much cred if you pulled that off.

  12. _uriel_ says:

    I keep telling Caroline that I am getting a REALLY BIG CRAWDAD to keep the beta company..seeing as how Mantis Shrimp don't come in a freshwater variety. I hate that murderous beta...those goldfish were cool.
    :(

    Angela, you mean you aren't under 18? You really look like a little kid in that pic. :P

  13. anonymous says:

    Why this extra undocumented wrapper format? Who knows.

    At the risk of answering a rhetorical question, PureVoice is a CELP (Code-Excited Linear Prediction) encoder, a fairly common encoding in speech related applications which might be quite a bit more compact than .wav at a given quality.

    OTOH, ring tones are not really speech...

  14. jlindquist says:

    *sigh* The wrapper business is probably my ex-cow-orkers being their usual 80% selves. Instead of looking at the file itself, or the filename extension, to see if it's vocoded audio (actual "PureVoice") or 8 kHz PCM, they want to check some kind of type byte inside a file containing the PCM data.

    I'm using 80% as a rough estimate of the place on the "useful technology" spectrum where something is functional, but not smooth and friendly enough to make the user's life easier or more fruitful. With a handful of notable exceptions, most people on Qualcomm's chipset firmware team (or for that matter, their customer/neighbor phone dev team at Kyocera) lack sufficient energy to or the interest in finishing any damned feature.

  15. dk379 says:

    jwz writes:

    Update: For those of you following along at home, I finally learned how to reliably get WAVs into this phone as ringers. You'd think you could just email a WAV to the phone, but no, that would be too simple. The trick goes like this:

    I am not plugging any mobtelco here, but if you have Verizon VX6600 cameraphone, indeed you just email any .mid or .qcp file as a MIME attachment to 4155551111@vzwpix.com and voila! free ringtones. They charge you USD 0.25 to receive although there is a USD 3/month unlimited plan now.

    I haven't had a slightest idea how to convert .pcm or .wav file to .qcp (QCELP encoded); now thanks to your post I know.

    By the way, both Sprint and Verizon are CDMA carriers; CDMA == Quallcomm chipsets; Quallcomm voice encoder == QCELP.