Как я могу сделать Розовый Генератор шума?

27
задан Erik Forbes 6 March 2009 в 00:00
поделиться

8 ответов

Возможно, можно преобразовать код C/C++ здесь в C#:

http://www.firstpr.com.au/dsp/pink-noise/

самый легкий способ стать звуковым на звуковую карту состоит в том, чтобы генерировать wav (выложите некоторые hardcoded заголовки и затем демонстрационные данные). Тогда можно играть .wav файл.

15
ответ дан Paul 14 October 2019 в 14:28
поделиться

Розовый шум является просто белым шумом, проведенным через-3dB/octave LPF. Можно генерировать белый шум с помощью рэнда () (или любая функция, которая генерирует однородно случайные числа).

материал Потоковой передачи на звуковую карту довольно тривиален, пока у Вас есть удобный Google. Если Вы принимаете решение избежать DirectX, рассмотреть использование PortAudio или ASIO для взаимодействия через интерфейс со звуковой картой..., хотя я думаю, что Вы собираетесь, должны использовать C++ или C.

Кроме этого, почему ненужное процессорное время, генерируя его? Циклично выполните проклятый файл WAV!

9
ответ дан Justas 14 October 2019 в 14:28
поделиться

Едва ли ответ на Ваш вопрос, но Вы не можете только слушать немного музыки, идеально с некоторыми наушниками отмены шума?

3
ответ дан Rich 14 October 2019 в 14:28
поделиться

Вот, пример того, на что похож поток воспроизведения. Я использую 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();
    }

, Если Вам нужно больше деталей о том, как это работает, я буду рад помочь.

2
ответ дан Trap 14 October 2019 в 14:28
поделиться

Что относительно .mp3 образца Розового Шума на повторении?

1
ответ дан Bob King 14 October 2019 в 14:28
поделиться

Как быстрый и грязный способ сделать это, как насчет просто цикличного выполнения розовый шум wav в Вашем аудиоплеере? (Да, я знаю, что часть забавы должна сделать его самостоятельно....)

1
ответ дан Michael Todd 14 October 2019 в 14:28
поделиться

Вы могли использовать Смелость для генерации такого количества розового шума, как Вы хотите и затем повторяете его.

Или Вы могли вырыть в исходный код и видеть, как Смелость делает розовое шумовое поколение.

1
ответ дан ine 14 October 2019 в 14:28
поделиться

Я не могу говорить о C#, но Вы могли бы быть более обеспечены с некоторыми хорошими наушниками отмены шума и Ваш любимый mp3.

0
ответ дан Dashogun 14 October 2019 в 14:28
поделиться
Другие вопросы по тегам:

Похожие вопросы: