Sound
Download original notebookAudio generation
Similar to Plot
we can generate audio singal using symbolics
Play[Sin[440 2 Pi t], {t, 0, 1}]
(*VB[*)(FrontEndRef["5aab6d2c-d5c6-4bd8-8a51-79438704e1ea"])(*,*)(*"1:eJxTTMoPSmNkYGAoZgESHvk5KRCeEJBwK8rPK3HNS3GtSE0uLUlMykkNVgEKmyYmJpmlGCXrppgmm+maJKVY6FokmhrqmluaGFuYG5ikGqYmAgCPGxXU"*)(*]VB*)
Play[Sin[2000 (1 + Round[2 t, 0.1]) t], {t, 0, 1}]
(*VB[*)(FrontEndRef["e3a4097d-925c-41e8-916e-a3963f8e7365"])(*,*)(*"1:eJxTTMoPSmNkYGAoZgESHvk5KRCeEJBwK8rPK3HNS3GtSE0uLUlMykkNVgEKpxonmhhYmqfoWhqZJuuaGKZa6FoamqXqJhpbmhmnWaSaG5uZAgB+WBUs"*)(*]VB*)
Module the frequency
Play[Sin[300 t Sin[20 t]], {t, 0, 1}]
(*VB[*)(FrontEndRef["47077514-ee25-4f02-9377-fbdde9ce657b"])(*,*)(*"1:eJxTTMoPSmNkYGAoZgESHvk5KRCeEJBwK8rPK3HNS3GtSE0uLUlMykkNVgEKm5gbmJubGpropqYameqapBkY6Voam5vrpiWlpKRaJqeamZonAQB12xWH"*)(*]VB*)
Use random path of a TelegraphProcess
td = RandomFunction[TelegraphProcess[.3], {100}]
TemporalData[(*VB[*) Automatic, {{{1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, 1, -1, -1}}, {{{0., 1.1651485228488356, 2.9739899687314386, 5.38062977149858, 6.122247925216762, 9.452938154126333, 10.652701913066242, 16.984098514315793, 18.632899443726192, 27.555337968215056, 30.16833467816562, 31.86546457616877, 32.45671145734288, 40.34605725480213, 42.16588844634026, 46.53932577856541, 47.02198120114023, 47.93544851523486, 53.14845431116903, 55.4837218150051, 56.12351202618528, 56.80045476225541, 57.63912313629793, 59.0550104053243, 60.59380504582536, 62.951616834911526, 63.98187507309869, 66.95006923476015, 76.1353439769718, 77.36891925907572, 80.4273803526621, 82.39550047003819, 85.51075236808524, 89.4437355619842, 89.52695965846773, 95.6615344244589, 100.}}}, 1, {"Discrete", 1}, {"Continuous", 1}, 1, {ValueDimensions -> 1}}, False, 14.2 (*,*)(*"1:eJytkdtLwzAUxuf9giL4IvhUQR8r6S5t9U1Zi0JBaeeeTZpUA00y0pRt/70nqw9lCBvFl4+c852e/Prlhqi02Ov1etU1yLNaxEqLzyetsfxiNKuFwHoJ7WLHzlyAxFpJE0k65drUuGyMy5YRLVheG0xKlt1CG/veYIRI7tIhKdzhQx+5IQp8l9AwJwEZkX6Iil27ZB8k4ZVZq1YXWMRUzf8avGqB/wK/GiamnM2zQ/AmXLBHp5k9BYkoN0pbu1ltt72okjbVCchHmoxZrijLDqBC93d+izCt4ceO7YFh+ibL5ao70TXbjGMnHaM6whxB5aGtcaozOGQzLOFhRMKK9Vw30p6DN8YGOzPFpam6Zmg/GgT/E6CN4B2b784wtuVtlZ59+hiXFfsBLI6+4A=="*)(*]VB*)]
Plot and and play
ListStepPlot[td, Filling -> Axis]
(*VB[*)(FrontEndRef["c6e9daeb-776d-4145-932d-a3bd86904e58"])(*,*)(*"1:eJxTTMoPSmNkYGAoZgESHvk5KRCeEJBwK8rPK3HNS3GtSE0uLUlMykkNVgEKJ5ulWqYkpibpmpubpeiaGJqY6loaG6XoJhonpViYWRqYpJpaAACOBhW1"*)(*]VB*)
ListPlay[td, SampleRate -> 8000]
(*VB[*)(FrontEndRef["e5360a84-c452-416e-a1ac-f796eeaa1d4d"])(*,*)(*"1:eJxTTMoPSmNkYGAoZgESHvk5KRCeEJBwK8rPK3HNS3GtSE0uLUlMykkNVgEKp5oamxkkWpjoJpuYGumaGJql6iYaJibrpplbmqWmJiYappikAACAiRX8"*)(*]VB*)
Audio Processing Demo
This notebook demonstrates handling and manipulating audio data using the Wolfram Language. It includes examples on loading, amplifying, and applying reverb effects to audio data.
Explore the cells below to see these features in action.
ExampleData[{"Audio","Cat"}]
(*VB[*)(Audio[FrontEndRef["230269f3-0857-457b-a782-69965453620d"], "SignedInteger16"])(*,*)(*"1:eJxTTMoPSmNkYGAoZgESHvk5KRCeEJBwK8rPK3HNS3GtSE0uLUlMykkNVgEKm1qam1gmJqboJqWZJeqaGJmY6CYmmxnpmiQlWxgkGqUYmycaAgCHuhXI"*)(*]VB*)
Add some reverb to it
AudioAmplify[(*VB[*)(Audio[FrontEndRef["230269f3-0857-457b-a782-69965453620d"], "SignedInteger16"])(*,*)(*"1:eJxTTMoPSmNkYGAoZgESHvk5KRCeEJBwK8rPK3HNS3GtSE0uLUlMykkNVgEKm1qam1gmJqboJqWZJeqaGJmY6CYmmxnpmiQlWxgkGqUYmycaAgCHuhXI"*)(*]VB*), 2] // AudioReverb
(*VB[*)(Audio[FrontEndRef["579c6e15-252c-4a57-a273-efab1e6242eb"], "SignedInteger16"])(*,*)(*"1:eJxTTMoPSmNkYGAoZgESHvk5KRCeEJBwK8rPK3HNS3GtSE0uLUlMykkNVgEKJ5obmRumpSbrGhslG+iamBml6iZZmBnrppkbmKUZJpoZJRomAwCDcBWX"*)(*]VB*)
Plot the audio before and after
AudioPlot[#, ImagePadding->None, Axes->False, Frame->False, PlotRange->{Full, {-0.1,0.1}}] &/@ {(*VB[*)(Audio[FrontEndRef["230269f3-0857-457b-a782-69965453620d"], "SignedInteger16"])(*,*)(*"1:eJxTTMoPSmNkYGAoZgESHvk5KRCeEJBwK8rPK3HNS3GtSE0uLUlMykkNVgEKm1qam1gmJqboJqWZJeqaGJmY6CYmmxnpmiQlWxgkGqUYmycaAgCHuhXI"*)(*]VB*), (*VB[*)(Audio[FrontEndRef["579c6e15-252c-4a57-a273-efab1e6242eb"], "SignedInteger16"])(*,*)(*"1:eJxTTMoPSmNkYGAoZgESHvk5KRCeEJBwK8rPK3HNS3GtSE0uLUlMykkNVgEKJ5obmRumpSbrGhslG+iamBml6iZZmBnrppkbmKUZJpoZJRomAwCDcBWX"*)(*]VB*)} // Column
(*GB[*){{(*VB[*)(FrontEndRef["2a62cb0d-b2e9-42c0-895f-432b5ce63b1a"])(*,*)(*"1:eJxTTMoPSmNkYGAoZgESHvk5KRCeEJBwK8rPK3HNS3GtSE0uLUlMykkNVgEKGyWaGSUnGaToJhmlWuqaGCUb6FpYmqbpmhgbJZkmp5oZJxkmAgCGwBXD"*)(*]VB*)}(*||*),(*||*){(*VB[*)(FrontEndRef["f8ac83ae-638e-450a-82df-c4ad321502df"])(*,*)(*"1:eJxTTMoPSmNkYGAoZgESHvk5KRCeEJBwK8rPK3HNS3GtSE0uLUlMykkNVgEKp1kkJlsYJ6bqmhlbpOqamBok6loYpaTpJpskphgbGZoaADkAjgAV/Q=="*)(*]VB*)}}(*]GB*)
Make a spectrogram
Spectrogram[#, Frame->True] &/@ {(*VB[*)(Audio[FrontEndRef["230269f3-0857-457b-a782-69965453620d"], "SignedInteger16"])(*,*)(*"1:eJxTTMoPSmNkYGAoZgESHvk5KRCeEJBwK8rPK3HNS3GtSE0uLUlMykkNVgEKm1qam1gmJqboJqWZJeqaGJmY6CYmmxnpmiQlWxgkGqUYmycaAgCHuhXI"*)(*]VB*), (*VB[*)(Audio[FrontEndRef["579c6e15-252c-4a57-a273-efab1e6242eb"], "SignedInteger16"])(*,*)(*"1:eJxTTMoPSmNkYGAoZgESHvk5KRCeEJBwK8rPK3HNS3GtSE0uLUlMykkNVgEKJ5obmRumpSbrGhslG+iamBml6iZZmBnrppkbmKUZJpoZJRomAwCDcBWX"*)(*]VB*)} // Column
(*GB[*){{(*VB[*)(FrontEndRef["109f0f71-b23b-4e96-ae7d-48e432b0b414"])(*,*)(*"1:eJxTTMoPSmNkYGAoZgESHvk5KRCeEJBwK8rPK3HNS3GtSE0uLUlMykkNVgEKGxpYphmkmRvqJhkZJ+mapFqa6SammqfomlikmhgbJRkkmRiaAACA+RVq"*)(*]VB*)}(*||*),(*||*){(*VB[*)(FrontEndRef["8dac5884-2947-49de-abc1-88bbc2b297f1"])(*,*)(*"1:eJxTTMoPSmNkYGAoZgESHvk5KRCeEJBwK8rPK3HNS3GtSE0uLUlMykkNVgEKW6QkJptaWJjoGlmamOuaWKak6iYmJRvqWlgkJSUbJRlZmqcZAgCHFRXj"*)(*]VB*)}}(*]GB*)
Morse Code
Transform SOS signal to audio
silence = Table[0, {t,0,40Pi,0.1}]; dot = Table[Sin[5 t], {t,0,40Pi,0.1}]; dash = Join[dot, dot]; morseTable = Uncompress[(*VB[*)(Uncompress["1:eJwFwUlWgzAAAFCu4roLRCxS33PBHCgRSkio7oAwlHkm5eiu/P8l6QP0x3Gc8Jk5TKhrIyoqBQbX7XGlB1Y+goyp+FKgkpgGnjUwSPHZn4dhliUgHwcKKWnE4ft1HDBEz0R2i4Z37lUrLuYGqnczZtEI1fGyS6T1liAPbcFQpbQggxEflN/3RyewhW0ETmWZRfa0JVrR/5oUWYUPUg/2hvszszQRqda+5YGmr/35uK1muPZ31C0xivOMVLof6reANRpYdGf0JtvfXbKq1HNOtnM0PAZSnadAIrmlQL83rbjLT51MKf76B9wNWMw="])(*,*)(*"1:eJxTTMoPSmNmYGAo5gUSYZmp5S6pyflFiSX5RcEcQBHP5Py8zKrUlEwFRgaGNCaQQhYgEVSakxrMCmT4JCal5gRzAVm++UXFqSGJSTmpAFR6FIA="*)(*]VB*)]; morse[str_String] := morse[StringReplace[ToLowerCase[str], morseTable]] /; StringMatchQ[str, (WordCharacter|WhitespaceCharacter)..]; morse /: Play[morse[code_String]] := Join @@ (Switch[#, ".", Join[dot, silence], "-", Join[dash, silence], _, Join[silence, silence] ] &/@ StringSplit[code, ""]) // ListPlay
morse["SOS"]
morse["... --- ... "] // Play
(*VB[*)(FrontEndRef["60922581-0310-46e5-9527-3ba23cb6239e"])(*,*)(*"1:eJxTTMoPSmNkYGAoZgESHvk5KRCeEJBwK8rPK3HNS3GtSE0uLUlMykkNVgEKmxlYGhmZWhjqGhgbGuiamKWa6lqaGpnrGiclGhknJ5kZGVumAgBk7hR8"*)(*]VB*)
Musical notes
There is a separate object for representing musical notes
Sound[SoundNote[0 + 12, "8n"]]
(*VB[*)(Sound[SoundNote[12, "8n"]])(*,*)(*"1:eJxTTMoPSmNkYGAoZgESHvk5KRCeEJBwK8rPK3HNS3GtSE0uLUlMykkNVgEKJ5pbJpkmJRnqWiSap+maGFgY61qYpxromhinGppapiQnmRuYAQCFEhV6"*)(*]VB*)
Play a sequence
Sound[{SoundNote["C"], SoundNote["G"], SoundNote["C5"]}]
(*VB[*)(Sound[{SoundNote["C"], SoundNote["G"], SoundNote["C5"]}])(*,*)(*"1:eJxTTMoPSmNkYGAoZgESHvk5KRCeEJBwK8rPK3HNS3GtSE0uLUlMykkNVgEKJxolGxumWZrqGhpYmuuapCWZ6lpaphrpJqUYmpokmiWmGlmkAgCAUxWo"*)(*]VB*)
Play a chord
Sound[SoundNote[{"C", "G", "E"}, 1]]
(*VB[*)(Sound[SoundNote[{"C", "G", "E"}, 1]])(*,*)(*"1:eJxTTMoPSmNkYGAoZgESHvk5KRCeEJBwK8rPK3HNS3GtSE0uLUlMykkNVgEKW5pYmpobJafqWpqnGOqapCaa6iZZJpnqJqdappoZpBiZGVmaAwCCRhWP"*)(*]VB*)