Re: Using "/@" Effectively

• To: mathgroup at smc.vnet.net
• Subject: [mg104299] Re: Using "/@" Effectively
• From: Chris Degnen <degnen at cwgsy.net>
• Date: Tue, 27 Oct 2009 04:56:38 -0500 (EST)
• References: <hc38lq\$iae\$1@smc.vnet.net>

```On Oct 26, 4:30 am, BenT <brt... 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?

Try this:

miditofreq[n_Integer] := (440./64) 2^((n + 3)/12);

melody[{p_Integer, d_Real}] :=
Play[Sin[miditofreq[p] 2 \[Pi] t], {t, 0, d}, SampleRate -> 44100,
SampleDepth -> 16];

Sound[melody[#] & /@ {{57, 0.4}, {59, 0.400904}, {55, 0.397964}, {43,
0.397964}, {50, 0.401819}}, SoundVolume -> 0.5]

```

• Prev by Date: Re: Summing all the elements along a dimension in a matrix
• Next by Date: Re: How to print/display symbolic expressions from inside a Module
• Previous by thread: Re: Using "/@" Effectively
• Next by thread: Re: Using "/@" Effectively