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.