标签: synthesizer

如何使用 Javascript 和 Web Audio API 合成器发出爆炸声?

有点老派,我记得在 1980 年代初我还是个孩子的旧 Atari 800XL,这是我用来学习编程的第一台计算机之一,关于如何使用音频芯片组发出爆炸声,带有偷看和戳在 BASIC 中。但是现在我想教我的女儿编程,我认为通过学习 Javascript 中的步骤,使用 Web Audio API,使用纯 Web Audio API 合成器来制作爆炸声,让她感到兴奋会很有趣。在没有实际声音文件的情况下,如何在 Javascript 中使用 Web Audio API 来合成游戏爆炸声?

javascript audio synthesizer web-audio-api

5
推荐指数
0
解决办法
99
查看次数

使用bool来同步多个线程是否安全?

我正在编写一个音频应用程序,它有多个线程产生声音,一个线程混合声音并将它们发送到声卡.我已经尝试了几种同步线程的方法,包括信号和线程安全队列在内的"正确"方式,但它们都太慢了.所以现在我为每个生产者使用bool来指示它的队列是否已满.它似乎工作得很好(32个线程的5ms延迟),但这样做是否安全?

class PlayThreadParameters
{
    public Queue<Samples> queue;
    public bool isOutputQueueFull;
}
Run Code Online (Sandbox Code Playgroud)

制片人看起来像这样:

  public void PolyPlayThread(object o)
    {
        var playThreadParameters = (PlayThreadParameters)o;
        while (isPlaying)
        {
            while (playThreadParameters.isOutputQueueFull)
            {
                if (!isPlaying)
                    return;
                Thread.Sleep(1);
            }

        ... //fill output queue

        playThreadParameters.isOutputQueueFull = true;
    }
}
Run Code Online (Sandbox Code Playgroud)

消费者看起来像这样(由Naudio的一个单独的线程调用):

public override int Read(byte[] array, int offset, int count)
        {

                for (int v = 0; v < playThreadParameters.Length; v++)
                    while (!playThreadParameters[v].isOutputQueueFull)
                    {
                        if (!isPlaying)
                            return 0;
                        Thread.Sleep(1); 
                    }

                ... //mix the samples from the outputqueues

                for (int v …
Run Code Online (Sandbox Code Playgroud)

c# multithreading synthesizer

4
推荐指数
1
解决办法
922
查看次数

属性和在iOS中合成

可能重复:
@property @synthesize

什么时候我必须使用属性和合成元素作为NSArray,NSSTring ....或IBOutelt作为UIButton或UITextFiled?

xcode synthesizer properties objective-c ios

4
推荐指数
1
解决办法
2万
查看次数

使用软件合成器制作实时音频应用程序

我正在研究制作一些使键盘功能像钢琴的软件(例如,用户按下'W'键,扬声器播放D音符).我可能会使用OpenAL.我理解数字音频的基础知识,但是在按键时播放实时音频会带来一些问题我无法解决.

问题在于:假设我有10个音频缓冲区,每个缓冲区都有一秒钟的音频数据.如果我必须在通过扬声器播放之前填充缓冲区,那么我会在播放前一两秒填充缓冲区.这意味着每当用户尝试播放音符时,按下琴键和正在播放的音符之间将有一到两秒的延迟.

你是如何解决这个问题的?你是否只是让缓冲区尽可能小,并尽可能地填充它们?有一些我不知道的伎俩吗?

audio synthesizer latency real-time openal

3
推荐指数
1
解决办法
1771
查看次数

Objective C - 自定义@synthesize?

有可能以某种方式创建一个自定义的@synthesize来生成客户getter,setters ??

例如:

@interface
@property (nonatomic, retain) MyObject *object;
@end

@implementation
@lazyInitialize object;
@end
Run Code Online (Sandbox Code Playgroud)

然后以某种方式定义@lazyInitialize以生成一个惰性初始化方法

//@lazyInitialize

- (id)"property name"
{
   if (!"property name")
   {
      "property name" = [[["property name" class] alloc] init];
   }
   return "property name";
}
Run Code Online (Sandbox Code Playgroud)

getter synthesizer properties objective-c

3
推荐指数
1
解决办法
1016
查看次数

iOS正弦波生成 - 可听到的点击

我正在为iOS创建合成器.在玩完并试图学习核心音频之后,我遇到了一个我无法理解的问题.我的正弦波会定期发出咔哒声,我猜这与相位有关.我看过几本关于这个主题的指南和书籍,并且都表明我正确地做了.

如果有人愿意为我查看我的代码,我将不胜感激.

static OSStatus renderInput(void *inRefCon, AudioUnitRenderActionFlags *ioActionFlags, const AudioTimeStamp *inTimeStamp, UInt32 inBusNumber, UInt32 inNumberFrames, AudioBufferList *ioData)
{


    // Get a reference to the object that was passed with the callback
    // In this case, the AudioController passed itself so
    // that you can access its data.
    AudioController *THIS = (AudioController*)inRefCon;

    // Get a pointer to the dataBuffer of the AudioBufferList
    AudioSampleType *outA = (AudioSampleType *)ioData->mBuffers[0].mData;

    float freq = THIS->Frequency;   
    float phase = THIS->sinPhase;

    float envValue;
    float sinSignal;

    // The …
Run Code Online (Sandbox Code Playgroud)

synthesizer synthesis core-audio audiounit ios

3
推荐指数
1
解决办法
1699
查看次数

如何使用SoX库制作机器人或Dalek语音?

我想使用SoX库将语音转换为机器人语音(例如,星际争霸游戏的歌利亚语音)。

我在网络上找到了机器人语音的以下顺序,但并没有产生机器人语音。

过载10回波0.8 0.8 5 0.7回波0.8 0.7 6 0.7回波0.8 0.7 10 0.7回波0.8 0.7 12 0.7回波0.8 0.88 12 0.7回波0.8 0.88 30 0.7回波0.6 0.6 60 0.7

发出机器人声音需要什么效果?你能告诉我一系列的效果和选择吗?

提前致谢。

audio voice synthesizer sox

3
推荐指数
1
解决办法
1676
查看次数

免费波表合成器?

我需要在 ARM Cortex-M3 内核中实现波表合成器。我正在寻找任何代码或工具来帮助我入门。

我知道这个 AVR 实现。我实际上不久前将其转换为 PIC。现在我正在寻找类似的东西,但听起来更好一点。

ANSI C 代码会很棒。任何代码片段(C 或 C++)、示例、工具或只是一般信息将不胜感激。

谢谢。

audio microcontroller arm synthesizer sound-synthesis

2
推荐指数
1
解决办法
4740
查看次数

如何使PHP输出声音(哔哔声)?

这个python代码的PHP版本是什么?

import winsound
winsound.Beep(537, 2000)
Run Code Online (Sandbox Code Playgroud)

php python synthesizer beep

2
推荐指数
1
解决办法
1万
查看次数