嘿大家,我正在试图弄清楚如何播放我用正弦波产生的音调.
这是我的代码:
#include <iostream>
#include <OpenAL/al.h>
#include <OpenAL/alc.h>
#include <Math.h>
using namespace std;
int main (int argc, char * const argv[]) {
int number = 0;
int i, size;
double const Pi=4*atan(1);
cout << "Enter number of seconds:" << endl;
scanf("%d", &number);
size = 44100*number;
unsigned char buffer [size]; //buffer array
for(i = 0; i < size; i++){
buffer[i] = (char)sin((2*Pi*440)/(44100*i))*127;
}
return 0;
}
Run Code Online (Sandbox Code Playgroud)
显然它目前没有做任何事情,因为我不知道如何播放缓冲区.我不想生成一个wav文件,也不想加载一个.我只是想回放我生成的缓冲区.
我目前正在使用Mac OS X,并尝试使用OpenAL方法 - 但是我发现alut和alu不再是它的一部分了,如果我尝试使用它,那么事实证明它无论如何都被摧毁了.我也尝试过包含QAudioOutput,但出于某种原因,它似乎并不在我的Mac上.
我只想简单回放我创造的音调.有没有人能指点我的东西?
谢谢堆!!!
我正在尝试为我的程序(流式传输网络摄像头)创建一个过滤器,使框架水平翻转,使网络摄像头就像一面镜子.
但是,在编译和运行时,过滤器似乎对它没有任何影响.
这是代码:
CIImage *resultImage = image;
CIFilter *flipFilter = [CIFilter filterWithName:@"CIAffineTransform"];
[flipFilter setValue:resultImage forKey:@"inputTransform"];
NSAffineTransform* flipTransform = [NSAffineTransform transform];
[flipTransform scaleXBy:-1.0 yBy:1.0]; //horizontal flip
[flipFilter setValue:flipTransform forKey:@"inputTransform"];
resultImage = [flipFilter valueForKey:@"outputImage"];
Run Code Online (Sandbox Code Playgroud)
奇怪的是,其他过滤器似乎也有效.例如:
CIFilter * ciEffectFilter = [CIFilter filterWithName:@"CIGloom"];
[ciEffectFilter setDefaults];
CIImage *resultImage = image;
[ciEffectFilter setValue: resultImage forKey:@"inputImage"];
[ciEffectFilter setValue:[NSNumber numberWithFloat: 0.75]
forKey:@"inputIntensity"];
[ciEffectFilter setValue:[NSNumber numberWithFloat: 20]
forKey:@"inputRadius"];
resultImage = [ciEffectFilter valueForKey:@"outputImage"];
CIFilter *ciCropFilter = [CIFilter filterWithName:@"CICrop"];
[ciCropFilter setDefaults];
[ciCropFilter setValue: resultImage forKey:@"inputImage"];
[ciCropFilter setValue: [CIVector vectorWithX:50 Y:50 Z:300 …Run Code Online (Sandbox Code Playgroud) 所以这就是我的界面目前的样子:
启动界面http://i54.tinypic.com/25876mr.png
以下是我在Interface Builder中更改的内容: 所需的界面http://i51.tinypic.com/24qms9l.png
这是我在Xcode中运行后显示的内容: 结果界面http://i54.tinypic.com/25876mr.png
显然这两个程序没有沟通 - 如果有人能指出我正确的方向,那就太好了.
谢谢堆!
我很难找出如何从正弦波形成三角形(不是锯齿)波。
我了解如何为方波创建它:
if( sineValue >= 0 )
value = amp;
else
value = -amp;
Run Code Online (Sandbox Code Playgroud)
但我不确定如何改变它以适应三角波。
我目前在我的标题代码中收到此错误消息,我不确定为什么:
"错误:'QTVisualContextRef'之前的预期说明符限定符列表"
#import <Cocoa/Cocoa.h>
#import <QTKit/QTKit.h>
#import <OpenGL/OpenGL.h>
#import <QuartzCore/QuartzCore.h>
#import <CoreVideo/CoreVideo.h>
@interface MyRecorderController : NSObject {
IBOutlet QTCaptureView *mCaptureView;
IBOutlet NSPopUpButton *videoDevicePopUp;
NSMutableDictionary *namesToDevicesDictionary;
NSString *defaultDeviceMenuTitle;
CVImageBufferRef mCurrentImageBuffer;
QTCaptureDecompressedVideoOutput *mCaptureDecompressedVideoOutput;
QTVisualContextRef qtVisualContext; // the context the movie is playing in
// filters for CI rendering
CIFilter *colorCorrectionFilter; // hue saturation brightness control through one CI filter
CIFilter *effectFilter; // zoom blur filter
CIFilter *compositeFilter; // composites the timecode over the video
CIContext *ciContext;
QTCaptureSession *mCaptureSession;
QTCaptureMovieFileOutput *mCaptureMovieFileOutput;
QTCaptureDeviceInput *mCaptureDeviceInput; …Run Code Online (Sandbox Code Playgroud) objective-c ×3
c++ ×2
trigonometry ×2
wave ×2
audio ×1
core-image ×1
generator ×1
geometry ×1
textbox ×1
xcode ×1