FreeCalypso > hg > freecalypso-reveng
comparison compal/iMelody @ 389:623316d1ece7
compal/iMelody: capturing initial observations
| author | Mychaela Falconia <falcon@freecalypso.org> |
|---|---|
| date | Thu, 31 Mar 2022 20:56:56 +0000 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 388:b99663e66660 | 389:623316d1ece7 |
|---|---|
| 1 The user-accessible ringtone melody composer feature on Mot C1xx phones (tested | |
| 2 on C139, probably the same on C11x/12x) is based on iMelody, or more precisely, | |
| 3 a subset of the full iMelody spec. When you go into the main menu, select | |
| 4 "Ring Styles", then "My Tones", and then go to edit any of the "Empty Ring" | |
| 5 entries, you get dropped into a text string entry screen, similar to SMS text | |
| 6 or phonebook name entry, and the string you get to enter in there is an iMelody | |
| 7 character string! Up and down arrow keys bring up a wizard that cycles through | |
| 8 the 48 notes which Calypso PWT is capable of playing (F4 through E8 in the | |
| 9 scientific pitch notation, but in iMelody they are called *3f through *7e | |
| 10 instead), and as this up/down arrow key wizard cycles through the notes and | |
| 11 plays them, the corresponding iMelody syntax gets inserted into the melody | |
| 12 string being composed. But you can also bypass the wizard and enter the melody | |
| 13 string manually using the numeric keys similarly to standard alphanumeric entry | |
| 14 screens; when you operate the numeric keys in this melody entry screen, the set | |
| 15 of symbols available on each numeric key is different from standard text entry, | |
| 16 instead it's been changed to the set of valid symbols for iMelody. There is | |
| 17 also help text accessible from the center key menu, and this help text instructs | |
| 18 the user on entering notes, octaves, rests, 0-5 duration choices and even '.' | |
| 19 and ':' duration modifiers in iMelody notation. | |
| 20 | |
| 21 Further experimentation shows which iMelody spec features are implemented and | |
| 22 which ones aren't: | |
| 23 | |
| 24 * There is no mechanism to enter overall or initial melody volume akin to the | |
| 25 VOLUME: header in IMY files, nor is there any way to enter 'V' characters | |
| 26 into the melody string. Therefore, we have to conclude that this | |
| 27 implementation of iMelody omits the notion of adjustable per-note volumes, | |
| 28 and probably plays each melody at whatever "global" volume is set for the | |
| 29 ringer. | |
| 30 | |
| 31 * There is no beats-per-minute setting, instead it appears that this iMelody | |
| 32 implementation is fixed at 120 bpm only. Experimentation shows that '0' | |
| 33 duration notes play for about 2 s, '1' duration notes play for about 1 s, and | |
| 34 '2' duration (default) notes play for about 0.5 s - and in my reading of the | |
| 35 iMelody spec (different from imyplay author's reading), '2' duration notes | |
| 36 correspond to "beats" as in bpm. | |
| 37 | |
| 38 * There is no "style" setting as in S0, S1 or S2 as given in the iMelody spec. | |
| 39 Because my wetware auditory processor is not capable of measuring | |
| 40 milliseconds, I don't have any easy way to tell if this C139 iMelody player | |
| 41 inserts any short rest or not between adjacent notes, and if it does, whether | |
| 42 or not this short rest equals 1/20 of the preceding note, as my reading of | |
| 43 the iMelody spec suggests for S0 mode. | |
| 44 | |
| 45 * The editor screen allows all 3 duration modifier characters '.', ':' and ';' | |
| 46 to be entered. However, it is not clear if all of these duration options are | |
| 47 actually implemented (back to the problem of wetware auditory processing not | |
| 48 being able to measure milliseconds), and the help text only mentions '.' and | |
| 49 ':' for 1+1/2 and 1+3/4. | |
| 50 | |
| 51 * The editor allows entry of characters forming repeat blocks ('(', ')' and | |
| 52 '@'), but experimentation shows that these repeat instructions are ignored, | |
| 53 with the content of the repeat block played only once. | |
| 54 | |
| 55 * There is no way to enter vibrator or LED control instructions, and the | |
| 56 phone's built-in ringtones don't exhibit any ring-vibrator synchronization | |
| 57 (other than the single "vibe then ring" global mode) or backlight manipulation | |
| 58 either. | |
| 59 | |
| 60 The remaining questions to be answered are: | |
| 61 | |
| 62 * What is the exact tone play duration for every combination of iMelody duration | |
| 63 [0-5] and duration modifier as in none or [.:;], and | |
| 64 | |
| 65 * How much rest time is automatically inserted between notes, if any. | |
| 66 | |
| 67 My (Mother Mychaela's) current thinking is that the only way to answer these | |
| 68 questions would be to take a suitable-model C1xx phone apart (specifically, | |
| 69 remove the plastics, but keep all electronics intact and functional) and put an | |
| 70 oscilloscope probe on some accessible point in the buzzer circuit, with the most | |
| 71 likely accessible point being on the magnetic buzzer itself. Looking at the | |
| 72 photos taken by OBB people, the magnetic buzzer is an SMT component, but its | |
| 73 solder pads extend out from under the part, hopefully far enough to allow a | |
| 74 needle-type probe to be applied there, or maybe one can solder a little wire to | |
| 75 whichever buzzer terminal is the driven one. | |
| 76 | |
| 77 If one can put an o'scope probe on the buzzer, the scope would need to be | |
| 78 configured to trigger at the beginning of buzzer activity, and the time scale | |
| 79 on the scope would need to be set slow enough to allow a capture lasting perhaps | |
| 80 as long as 2 s. The first experiment would be to enter a melody consisting of | |
| 81 just one note, and use the o'scope to measure the actual millisecond duration | |
| 82 of the tone sent to the buzzer. First try different "base" durations from 0 to | |
| 83 5 in iMelody entry, and confirm that they produce physical tone durations from | |
| 84 2 s down to 62.5 ms. Then try adding '.', ':' and ';' duration modifiers in the | |
| 85 iMelody entry, and see if they do anything. | |
| 86 | |
| 87 After this first series of o'scope experiments confirming the duration of | |
| 88 individual notes, the next series of experiments would be to compose melodies | |
| 89 of several adjacent notes, preferably with different individual note durations, | |
| 90 and see how much rest time (if any) is inserted between notes, and how this | |
| 91 inserted rest time correlates with preceding or following note durations. |
