FreeCalypso > hg > freecalypso-docs
comparison FC-handset-spec @ 47:f0419ac0a815
FC-handset-spec: ringtone generation documented
| author | Mychaela Falconia <falcon@freecalypso.org> |
|---|---|
| date | Fri, 11 Jun 2021 00:13:39 +0000 |
| parents | 1fec0a3f09cc |
| children | cb8d43a5023c |
comparison
equal
deleted
inserted
replaced
| 46:1fec0a3f09cc | 47:f0419ac0a815 |
|---|---|
| 535 connected to the Iota headset channel (HSMICBIAS, HSMICP, HSO) and thus the | 535 connected to the Iota headset channel (HSMICBIAS, HSMICP, HSO) and thus the |
| 536 headset earpiece driver will be single-ended (HSO and GND), but the same headset | 536 headset earpiece driver will be single-ended (HSO and GND), but the same headset |
| 537 can also be plugged into other FreeCalypso devices in which the jack is wired | 537 can also be plugged into other FreeCalypso devices in which the jack is wired |
| 538 to the main Iota audio channel, with Iota EARP & EARN driving Tip and Ring2 on | 538 to the main Iota audio channel, with Iota EARP & EARN driving Tip and Ring2 on |
| 539 the TRRS headset jack. | 539 the TRRS headset jack. |
| 540 | |
| 541 1.8. Ringtone generation | |
| 542 | |
| 543 In terms of the physical sound-emitting element, there are two principal ways | |
| 544 in which cellphone ringing sounds can be produced: | |
| 545 | |
| 546 1) The oldest and most classic way is to use a magnetic buzzer controlled by | |
| 547 Calypso BU/PWT digital output. The buzzer is driven with raw battery voltage | |
| 548 being switched with a "digital transistor" (BJT with bias resistors), and the | |
| 549 control input going to the base of the BJT is Calypso BU/PWT output. This | |
| 550 method is standard in older phones that don't have hands-free loudspeakers: | |
| 551 since there is no loudspeaker for that other purpose, some loud noise-making | |
| 552 element needs to be implemented just for ringing, and old-style buzzers are | |
| 553 the traditional choice. Motorola C1xx lower subfamilies (C11x/12x and | |
| 554 C139/140) use such buzzers for ringing. | |
| 555 | |
| 556 2) In phones that feature a loudspeaker for hands-free operation, the same | |
| 557 loudspeaker is also used for ringtone sounding, and the buzzer is eliminated. | |
| 558 Apparently hands-free loudspeakers weren't popular in the Calypso era, thus | |
| 559 Pirelli DP-L10 is the only known Calypso phone that features one. There is | |
| 560 also a more bizarre possibility: some phones have replaced the ringing buzzer | |
| 561 with a loudspeaker, but that speaker is used *only* for playing ringtone | |
| 562 melodies - no hands-free call feature is offered. This situation exists on | |
| 563 Motorola C155/156 phones. | |
| 564 | |
| 565 Furthermore, if the physical sound-emitting element is a loudspeaker and not an | |
| 566 old-fashioned buzzer, and if the chipset is Calypso, as opposed to various newer | |
| 567 chipsets, then a further distinction arises: | |
| 568 | |
| 569 2a) Most historical commercial phones that are based on Calypso and use a | |
| 570 loudspeaker for ringtone sounding, also contain a special ringtone generator | |
| 571 chip that drives this speaker when a ringtone is played - in other words, | |
| 572 their loudspeaker ringtones do NOT go through the same voice audio path that | |
| 573 is used for hands-free calls, if the latter feature is offered at all. The | |
| 574 speciai ringtone generator chip is typically a combined MIDI player and | |
| 575 loudspeaker driver. | |
| 576 | |
| 577 2b) The much less popular approach is to not implement any extra hardware at all | |
| 578 that is specifically for ringtone generation, use only the same loudspeaker | |
| 579 audio path hardware that is already needed for hands-free calls (a simple | |
| 580 loudspeaker amplifier), generate ringtone melodies in the Calypso DSP | |
| 581 (Melody E1 or E2), and play them through the regular voice audio path, | |
| 582 routed to the loudspeaker. | |
| 583 | |
| 584 Approach 2b is the least popular one among historical commercial Calypso phones, | |
| 585 but it is the one which I (Mother Mychaela) have selected for our FC Libre | |
| 586 Dumbphone handset. But let us nonetheless examine the pros and cons of | |
| 587 different approaches, and see why I have settled on option 2b. | |
| 588 | |
| 589 Buzzer melodies (option 1) are monophonic (the signal carrying the melody to | |
| 590 the buzzer is a digital square wave, and there is no way to create multiple | |
| 591 overlapping notes in such a signal), but a decent range of tone frequencies is | |
| 592 available: the magnetic buzzer hardware can easily produce frequencies all the | |
| 593 way up to the limit of human hearing, while Calypso PWT produces musical notes | |
| 594 from F4 through E8 in the scientific pitch notation, or 349 to 5274 Hz. In | |
| 595 contrast, any tones produced through the 8000 samples/s voice audio path have | |
| 596 to be below the Nyquist frequency of 4 kHz - according to TI's document, Melody | |
| 597 E1 notes go from E4 (330 Hz) up to G#7 or 3322 Hz. | |
| 598 | |
| 599 In terms of the richness of possible ringtone melodies that can be played, | |
| 600 option 2a (external MIDI player chip that drives the loudspeaker directly, | |
| 601 without going through Calypso+Iota voice audio path) is the absolute best. | |
| 602 These specialized ringtone generator chips implement full MIDI (128 instruments, | |
| 603 47 drums, up to 64 simultaneous notes, according to one datasheet), and the | |
| 604 available ringtone melodies for these MIDI chips are very rich - just take a | |
| 605 Pirelli DP-L10 phone and listen through various ringtone melodies it offers. | |
| 606 All of Pirelli's melodies are stored as *.mid files in their FFS, thus we could | |
| 607 very easily copy them if we were to adopt a MIDI player chip similar to theirs. | |
| 608 | |
| 609 However, the problem for us with adopting option 2a is that this option would | |
| 610 introduce significant extra complexity and adversely affect our already long- | |
| 611 overdue project schedule. There is only one MIDI ringtone player chip for which | |
| 612 we have enough documentation to attempt such a feat: this chip is Winbond | |
| 613 W56964, a slightly more capable sibling of the W56940 used in the Pirelli phone. | |
| 614 However, just because we have what at first glance appears to be reasonably | |
| 615 complete documentation does not mean that it would be a slam dunk! We would | |
| 616 have to build a separate test board for this chip, connect it to a Caramel2 | |
| 617 motherboard (it needs to connect to Calypso MEMIF), and then spend significant | |
| 618 time climbing the learning curve and getting this chip to actually work: getting | |
| 619 it to play melodies, and just as important, getting it into and out of sleep | |
| 620 modes. In other words, a lot of extra work and time spent just for this part, | |
| 621 not advancing any other project needs - whereas option 2b eliminates all of this | |
| 622 extra work. | |
| 623 | |
| 624 Finally, a philosophical argument can be made that FreeCalypso should be all | |
| 625 about simplicity, producing a phone that does its job: implement just what is | |
| 626 needed for a functional phone, and omit unnecessary baggage. An extra hardware | |
| 627 circuit (a chip connected to Calypso memory bus, no less) and associated | |
| 628 software complexity that serves absolutely no other purpose except to produce | |
| 629 ringtones that are "richer" than what the Calypso can produce on its own, and | |
| 630 does not assist in any way with hands-free loudspeaker operation for calls (it | |
| 631 is more of a hindrance in that mode), can be seen as an unwelcome burden similar | |
| 632 to other unwelcome burdens which we are already eliminating, like the camera. | |
| 633 | |
| 634 In contrast, with our chosen option 2b, we have exactly zero extra hardware | |
| 635 that is just for ringing: our loudspeaker and its associated driver circuit | |
| 636 (simple amplifier) is primarily for hands-free calls, and the ability to use | |
| 637 the same audio path to play ringtone melodies comes literally "for free" with | |
| 638 the Melody E1 feature built into our Calypso DSP. We already have a selection | |
| 639 of nice-sounding ringtone melodies in E1 format, lifted from the legendary TSM30 | |
| 640 source, and software complexity is minimal: the melody playing engine has | |
| 641 already been implemented by TI, we only need to call RiViera Audio Service API | |
| 642 functions. |
