Возможно, можно преобразовать код C/C++ здесь в C#:
http://www.firstpr.com.au/dsp/pink-noise/
самый легкий способ стать звуковым на звуковую карту состоит в том, чтобы генерировать wav (выложите некоторые hardcoded заголовки и затем демонстрационные данные). Тогда можно играть .wav файл.
Розовый шум является просто белым шумом, проведенным через-3dB/octave LPF. Можно генерировать белый шум с помощью рэнда () (или любая функция, которая генерирует однородно случайные числа).
материал Потоковой передачи на звуковую карту довольно тривиален, пока у Вас есть удобный Google. Если Вы принимаете решение избежать DirectX, рассмотреть использование PortAudio или ASIO для взаимодействия через интерфейс со звуковой картой..., хотя я думаю, что Вы собираетесь, должны использовать C++ или C.
Кроме этого, почему ненужное процессорное время, генерируя его? Циклично выполните проклятый файл WAV!
Едва ли ответ на Ваш вопрос, но Вы не можете только слушать немного музыки, идеально с некоторыми наушниками отмены шума?
Вот, пример того, на что похож поток воспроизведения. Я использую DirectSound для создания SecondaryBuffer, где образцы записаны. Поскольку Вы видите, что это довольно просто:
/// <summary>
/// Thread in charge of feeding the playback buffer.
/// </summary>
private void playbackThreadFn()
{
// Begin playing the sound buffer.
m_playbackBuffer.Play( 0, BufferPlayFlags.Looping );
// Change playing state.
IsPlaying = true;
// Playback loop.
while( IsPlaying )
{
// Suspend thread until the playback cursor steps into a trap...
m_trapEvent.WaitOne();
// ...read audio from the input stream... (In this case from your pink noise buffer)
Input.Collect( m_target, m_target.Length );
// ...calculate the next writing position...
var writePosition = m_traps[ ((1 & m_pullCounter++) != 0) ? 0 : 1 ].Offset;
// ...and copy audio to the device buffer.
m_playbackBuffer.Write( writePosition, m_deviceBuffer, LockFlag.None );
}
// Stop playback.
m_playbackBuffer.Stop();
}
, Если Вам нужно больше деталей о том, как это работает, я буду рад помочь.
Что относительно .mp3 образца Розового Шума на повторении?
Как быстрый и грязный способ сделать это, как насчет просто цикличного выполнения розовый шум wav в Вашем аудиоплеере? (Да, я знаю, что часть забавы должна сделать его самостоятельно....)
Вы могли использовать Смелость для генерации такого количества розового шума, как Вы хотите и затем повторяете его.
Или Вы могли вырыть в исходный код и видеть, как Смелость делает розовое шумовое поколение.
Я не могу говорить о C#, но Вы могли бы быть более обеспечены с некоторыми хорошими наушниками отмены шума и Ваш любимый mp3.