HP 40gs HP 39gs_40gs_Mastering The Graphing Calculator_English_E_F2224-90010.p - Page 294

The Prompt commands, BEEP <frequency>;<duration>, CHOOSE <variable>;<title>;<menu option1>;….

Page 294 highlights

The Prompt commands BEEP ; This will use the piezo crystal in the calculator to create a sound of the specified frequency for the specified duration (in seconds). The resulting frequency is not terribly accurate, varying by up to 5% from one calculator to the next and depending also on the temperature. If you want accuracy then use a piano! The volume is also not very loud because of concerns with interruptions to tests and examinations. Any frequency can be produced using the BEEP command but most people are interested in using it to play tunes. The information below will help with this. The frequencies of the twelve semi-tone jumps in the normal Western harmonic scale form a geometric sequence, and since the ratio from C to C' is 2, the ratio for each semi-tone must be 12 2 . The standard frequency used in tuning instruments is usually 440 cycle/sec for the note A. Since much of the simple music used by students is written using the scale of C, we use 440 /(12 2)9 to find the frequency of C as 261.6 cycles/sec. We can use this to form a standard 'header' for any program we want to use to play music. The header shown right in the rounded box sets up the scale of C major. The code which then follows plays the first two bars of the tune "Strangers in the Night". In this header, the duration of a note (T) is set to 0.5 seconds. It is easy to change the tempo of the music by adjusting this. In this case you may find that the music sounds a little better with T set to 0.55 or 0.6 seconds. T is a crotchet, T/2 a quaver etc. CHOOSE ;;;.... This command pops up a menu with the title specified and with however many options follow. The number of the menu option highlighted when the user presses is returned in the variable. It is particularly important to the use of this command to realise that the initial value of the variable before the CHOOSE statement determines which option is initially highlighted. This value must be a valid one in the sense that it must refer to one of the lines in the list you have defined. Assigning an initial value outside the range of the menu may crash the program. In particular, the default value for any variable is zero and this is not a legal list line so failing to pre-define a value may crash your program. If the user presses then a value of zero is returned but the program will still continue to execute from that point unless you include code to check for the cancellation and take action to terminate it or take some other action. 294

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • 198
  • 199
  • 200
  • 201
  • 202
  • 203
  • 204
  • 205
  • 206
  • 207
  • 208
  • 209
  • 210
  • 211
  • 212
  • 213
  • 214
  • 215
  • 216
  • 217
  • 218
  • 219
  • 220
  • 221
  • 222
  • 223
  • 224
  • 225
  • 226
  • 227
  • 228
  • 229
  • 230
  • 231
  • 232
  • 233
  • 234
  • 235
  • 236
  • 237
  • 238
  • 239
  • 240
  • 241
  • 242
  • 243
  • 244
  • 245
  • 246
  • 247
  • 248
  • 249
  • 250
  • 251
  • 252
  • 253
  • 254
  • 255
  • 256
  • 257
  • 258
  • 259
  • 260
  • 261
  • 262
  • 263
  • 264
  • 265
  • 266
  • 267
  • 268
  • 269
  • 270
  • 271
  • 272
  • 273
  • 274
  • 275
  • 276
  • 277
  • 278
  • 279
  • 280
  • 281
  • 282
  • 283
  • 284
  • 285
  • 286
  • 287
  • 288
  • 289
  • 290
  • 291
  • 292
  • 293
  • 294
  • 295
  • 296
  • 297
  • 298
  • 299
  • 300
  • 301
  • 302
  • 303
  • 304
  • 305
  • 306
  • 307
  • 308
  • 309
  • 310
  • 311
  • 312
  • 313
  • 314
  • 315
  • 316
  • 317
  • 318
  • 319
  • 320
  • 321
  • 322
  • 323
  • 324
  • 325
  • 326
  • 327
  • 328
  • 329
  • 330
  • 331
  • 332
  • 333
  • 334
  • 335
  • 336
  • 337
  • 338
  • 339
  • 340
  • 341
  • 342
  • 343
  • 344
  • 345
  • 346
  • 347
  • 348
  • 349
  • 350
  • 351
  • 352
  • 353
  • 354
  • 355
  • 356
  • 357
  • 358
  • 359
  • 360
  • 361
  • 362
  • 363
  • 364
  • 365
  • 366

The Prompt commands
BEEP <frequency>;<duration>
This will use the piezo crystal in the calculator to create a sound of the specified frequency for the specified
duration (in seconds). The resulting frequency is not terribly accurate, varying by up to 5% from one
calculator to the next and depending also on the temperature. If you want accuracy then use a piano! The
volume is also not very loud because of concerns with interruptions to tests and examinations. Any frequency
can be produced using the
BEEP
command but most people are interested in using it to play tunes. The
information below will help with this.
The frequencies of the twelve semi-tone jumps in the normal Western harmonic
scale form a geometric sequence, and since the ratio from C to C' is 2, the
ratio for each semi-tone must be
12
2
. The standard frequency used in tuning
instruments is usually 440 cycle/sec for the note A. Since much of the simple
music used by students is written using the scale of C, we use
440 /(
12
2)
9
to
find the frequency of C as 261.6 cycles/sec.
We can use this to form a standard ‘header’ for any program we want to use
to play music. The header shown right in the rounded box sets up the scale of
C major. The code which then follows plays the first two bars of the tune
“Strangers in the Night”.
In this header, the duration of a note (T) is set to 0.5 seconds. It is easy to
change the tempo of the music by adjusting this. In this case you may find
that the music sounds a little better with T set to 0.55 or 0.6 seconds. T is a
crotchet, T/2 a quaver etc.
CHOOSE <variable>;<title>;<menu option1>;….
This command pops up a menu with the title specified
and with however many options follow. The number of
the menu option highlighted when the user presses
is returned in the variable.
It is particularly important to the use of this command to
realise that the initial value of the variable before the
CHOOSE
statement determines which option is initially highlighted. This value
must be a valid one in the sense that it must refer to one of the lines in
the list you have defined. Assigning an initial value outside the range of
the menu may crash the program. In particular, the default value for any variable is zero and this is not a
legal list line so failing to pre-define a value may crash your program. If the user presses
then a value
of zero is returned but the program will still continue to execute from that point unless you include code to
check for the cancellation and take action to terminate it or take some other action.
294