[Date Index]
[Thread Index]
[Author Index]
Re: Programming Fail
*To*: mathgroup at smc.vnet.net
*Subject*: [mg132028] Re: Programming Fail
*From*: Dean Rosenthal <deanrosenthal at gmail.com>
*Date*: Tue, 19 Nov 2013 02:57:35 -0500 (EST)
*Delivered-to*: l-mathgroup@mail-archive0.wolfram.com
*Delivered-to*: l-mathgroup@wolfram.com
*Delivered-to*: mathgroup-outx@smc.vnet.net
*Delivered-to*: mathgroup-newsendx@smc.vnet.net
*References*: <20131117232215.A9F846A15@smc.vnet.net> <Pine.GSO.4.64.1311171800480.21281@cory>
Thanks. Yes, that is correct, pitchMap uses integers. Here is where I am,
I am invoking "IntegerDigits" to create the sound object:
Sound[Thread[SoundNote[IntegerDigits[13235]]]]
Where the values are, those need to come from this:
StringJoin[
NestList[
StringReplace[#, {"0" -> "2", "2" -> "12", "1" -> "23", "3" -> "45",
"4" -> "56"}] &, "0", 4]];
I can add the pitch mapping, they instrument, length of time later. But
I'm not sure how to make the output from:
StringJoin[
NestList[
StringReplace[#, {"0" -> "2", "2" -> "12", "1" -> "23", "3" -> "45",
"4" -> "56"}] &, "0", 4]];
land HERE:
Sound[Thread[SoundNote[IntegerDigits[HERE]]]]
Thanks,
Dean
PS. Also, if I use these particular values 0->2, etc. - note that the sound
object won't respond to "0", i.e. won't map correctly (I've bumped each
value up by one, so the starting point is "1" in my .nb)
On Sun, Nov 17, 2013 at 9:36 PM, Alex Krasnov <
akrasnov at cory.eecs.berkeley.edu> wrote:
> The main issue is that A uses strings but pitchMap uses integers. Here are
> three possible solutions:
>
> In: A = NestList[StringReplace[#, {"0" -> "2", "2" -> "12", "1" ->
> "23", "3" -> "45", "4" -> "56"}] &, "0", 7];
> In: pitchMap = {"0" -> "B4", "1" -> "C4", "2" -> "D4", "3" -> "E4",
> "4" -> "F4", "5" -> "G4", "6" -> "A4"};
> In: Sound[Thread[SoundNote[Flatten[Characters[A]] /. pitchMap]]]
>
> In: A = NestList[StringReplace[#, {"0" -> "2", "2" -> "12", "1" ->
> "23", "3" -> "45", "4" -> "56"}] &, "0", 7];
> In: pitchMap = {0 -> "B4", 1 -> "C4", 2 -> "D4", 3 -> "E4", 4 -> "F4",
> 5 -> "G4", 6 -> "A4"};
> In: Sound[Thread[SoundNote[ToExpression[Flatten[Characters[A]]] /.
> pitchMap]]]
>
> In: A = NestList[Flatten[Replace[#, {0 -> 2, 2 -> {1, 2}, 1 -> {2, 3},
> 3 -> {4, 5}, 4 -> {5, 6}}, 1]] &, {0}, 7];
> In: pitchMap = {0 -> "B4", 1 -> "C4", 2 -> "D4", 3 -> "E4", 4 -> "F4",
> 5 -> "G4", 6 -> "A4"};
> In: Sound[Thread[SoundNote[Flatten[A] /. pitchMap]]]
>
> Unfortunately, Mathematica displays 0 and "0" in the same way. You can use
> FullForm in order to avoid confusion.
>
> Alex
>
>
>
> On Sun, 17 Nov 2013, Dean Rosenthal wrote:
>
> Hi:
>>
>> My question is going to take all of you about a split second to answer.
>> Sadly, programming is something I seem to be congenitally incapable of
>> teaching myself and doing well. I usually just cut and paste specifics
>> into prewritten algorithms.
>>
>> If you do this
>>
>> pitchMap = {1 -> {"C4", "D4"}, 2 -> "D4", 3 -> "E4", 4 -> "F4", 5 ->
>> "G4"};
>>
>> Sound[Thread[SoundNote[Flatten[IntegerPartitions[5]] /. pitchMap]]]
>>
>>
>> You get a music player and can play the result.
>>
>>
>> If you do this:
>>
>>
>> A = NestList[
>> StringReplace[#, {"0" -> "2", "2" -> "12", "1" -> "23", "3" -> "45",
>> "4" -> "56"}] &, "0", 7]
>>
>> pitchMap = {0 -> "B4", 1 -> "C4", 2 -> "D4", 3 -> "E4", 4 -> "F4", 5 ->
>> "G4",
>> 6 -> "A4"};
>>
>> Sound[Thread[SoundNote[Flatten[A]] /. pitchMap]]]
>>
>>
>> You get nothing, just output. See what I did there? I substituted,
>> because that's what you do if you don't know how to program! On the face
>> of things, I can't see why it wouldn't work, but I've wasted at least an
>> hour going through documentation and Googling and trying different
>> approaches. I'm not a programmer and I can't seem to teach myself how to
>> do this, ideas?
>>
>>
>> Thanks,
>>
>>
>> Dean
>>
>>
>>
--
Dean Rosenthal
www.deanrosenthal.org
Prev by Date:
**Re: Programming Fail**
Next by Date:
**Re: Programming Fail**
Previous by thread:
**Re: Programming Fail**
Next by thread:
**Re: Programming Fail**
| |