Data commit
This commit is contained in:
parent
7387c8f97b
commit
cb5bb5e222
199093 changed files with 3378972 additions and 0 deletions
23
Task/Musical-scale/Tcl/musical-scale.tcl
Normal file
23
Task/Musical-scale/Tcl/musical-scale.tcl
Normal file
|
|
@ -0,0 +1,23 @@
|
|||
package require sound
|
||||
|
||||
# Encapsulate the tone generation
|
||||
set filter [snack::filter generator 1 20000 0.5 sine -1]
|
||||
set sound [snack::sound -rate 22050]
|
||||
proc play {frequency length} {
|
||||
global filter sound
|
||||
|
||||
$filter configure $frequency
|
||||
$sound play -filter $filter
|
||||
|
||||
# Need to run event loop; Snack uses it internally
|
||||
after $length {set donePlay 1}
|
||||
vwait donePlay
|
||||
|
||||
$sound stop
|
||||
}
|
||||
|
||||
# Major scale up, then down; extra delay at ends of scale
|
||||
set tonicFrequency 261.63; # C4
|
||||
foreach i {0 2 4 5 7 9 11 12 11 9 7 5 4 2 0} {
|
||||
play [expr {$tonicFrequency*2**($i/12.0)}] [expr {$i%12?250:500}]
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue