Re: Using "/@" Effectively
- To: mathgroup at smc.vnet.net
- Subject: [mg104324] Re: [mg104292] Using "/@" Effectively
- From: Bob Hanlon <hanlonr at cox.net>
- Date: Tue, 27 Oct 2009 05:01:20 -0500 (EST)
- Reply-to: hanlonr at cox.net
Change to read:
Sound[melody[#[[1]], #[[2]]] & /@
{{0, 1.}, {5, 0.5}, {7, 0.5}, {12, 1.}},
{0, 3.}, SoundVolume -> .5]
Note that because of constraints on arguments to melody, that 2nd part of argument in list must be Real or use
Sound[melody[#[[1]], N[#[[2]]]] & /@
{{0, 1}, {5, 0.5}, {7, 0.5}, {12, 1}},
{0, 3}, SoundVolume -> .5]
Bob Hanlon
---- BenT <brtubb at pdmusic.org> wrote:
=============
Given:
$Version
"7.0 for Microsoft Windows (32-bit) (January 30, 2009)"
miditofreq[n_Integer] := (440./64) 2^((n + 3)/12);
and
melody[p_Integer, d_Real] :=
Play[Sin[miditofreq[p] 2 \[Pi] t], {t, 0, d}, SampleRate -> 44100,
SampleDepth -> 16]
I want to be able to use a list of pitch and duration values for a
melody, and use it like the following, but cannot determine the method
to Map them properly, as in this (non-working) attempt:
Sound[melody[#1, #2] & /@ {{0, 1}, {5, 0.5}, {7, 0.5}, {12, 1}}, {0,
3}, SoundVolume -> .5]
Can anyone show me the correct (or even a better) way to do so?