小编Leo*_*bus的帖子

从哪里开始iOS音频合成器?

我知道这是一个非常广泛的主题,但我一直在用演示和我自己的测试来挣扎,我不确定我是否正确地攻击了这个问题.所以,我应该开始的任何线索将不胜感激.

目标是让应用程序根据用户的设置生成一些合成声音.(这不是唯一的应用程序功能,我不是在这里重新创建Korg,但是synth是其中的一部分.)用户可以设置典型的合成器设置,如波形,混响等,然后在音符播放时选择,可能使用俯仰和速度修正器.

我用音频单元和RemoteIO玩了一下,但只是勉强理解我在做什么.在我走到那个兔子洞之前,我想知道我是否在正确的球场.我知道音频合成器将是低级别的,但我希望可能有一些我可以使用的更高级别的库.

如果您有任何关于从哪里开始的指示,以及我应该阅读的iOS技术,请告诉我.

谢谢!

编辑:让我更好地总结一下问题.

是否已经为iOS构建了任何合成库?(商业或开源 - 我没有找到任何搜索,但也许我错过了.)

是否有更高级别的API可以帮助生成缓冲区更容易?

假设我已经可以生成缓冲区了,是否有更好/更简单的方法将这些缓冲区提交到iOS音频设备而不是RemoteIO Audio Unit?

audio synthesizer sound-synthesis ios

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

以编程方式创建NSTableView(让NSHeaderView显示出来的麻烦)(cocoa osx)

我正在以编程方式制作NSTableView,但由于某些原因,无论我做什么,我都无法让darn headerView显示出来.我必须以编程方式执行此操作而不使用IB,因为我实际上是在名为clozure cl的IDE中开发此小部件,这是一个包含可可桥的lisp ide.最初我认为这个问题可能是由我的开发环境引起的,但我只是在Xcode中使用目标C创建了一个例子,似乎问题仍然存在.我所做的非常简单:

我在IB中创建了一个窗口,在我的awkefromnib方法中,我创建并设置了一个表视图,这里是代码:

- (void)awakeFromNib {
mydatasource *data = [[mydatasource alloc] init];
NSTableColumn *column = [[NSTableColumn alloc] initWithIdentifier:@"id"];
NSTableView *table = [[NSTableView alloc] initWithFrame: [[self                      

   contentView]frame]];
[table setDataSource:data];
[table addTableColumn:column];
[table addTableColumn:column];
[[self contentView] addSubview:table];
}
Run Code Online (Sandbox Code Playgroud)

这是我的数据源对象的代码:

- (int)numberOfRowsInTableView:(NSTableView *)aTableView
{
printf("NUM ROwS");
    return 4;
}
- (id)tableView:(NSTableView *)aTableView objectValueForTableColumn:(NSTableColumn    *)aTableColumn row:(NSInteger)rowIndex
{
 printf("THE OTHER ONE"); 
 return @"OKAY";
}
Run Code Online (Sandbox Code Playgroud)

使用这段代码,我得到一个包含两个列和四行的窗口,每个单元格显示字符串"OKAY",除了表没有标题外,这一切都很好.这可能是有意义的,除非我查看表头方法,它有一个初始化的头,其框架的值是有意义的.我只是想知道为什么我没有看到它.我需要做一些特殊的魔术才能显示标题吗?我似乎无法在文档中找到任何线索.再一次,必须以编程方式完成这个lisp ide,所以没有建议使用我知道将有一个工作headerView的IB没有帮助.非常感谢.

macos cocoa objective-c nstableview

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

如何使用Swift4中的Codable转换带有可选小数秒的日期字符串

我正在用Swift的Codable替换旧的JSON解析代码,并且遇到了一些麻烦.我想这不是一个可编码的问题,因为它是一个DateFormatter问题.

从结构开始

 struct JustADate: Codable {
    var date: Date
 }
Run Code Online (Sandbox Code Playgroud)

和一个json字符串

let json = """
  { "date": "2017-06-19T18:43:19Z" }
"""
Run Code Online (Sandbox Code Playgroud)

现在让我们解码

let decoder = JSONDecoder()
decoder.dateDecodingStrategy = .iso8601

let data = json.data(using: .utf8)!
let justADate = try! decoder.decode(JustADate.self, from: data) //all good
Run Code Online (Sandbox Code Playgroud)

但是,如果我们更改日期以使其具有小数秒,例如:

let json = """
  { "date": "2017-06-19T18:43:19.532Z" }
"""
Run Code Online (Sandbox Code Playgroud)

现在它打破了.日期有时会以小秒数回归,有时则不会.我以前解决它的方式是在我的映射代码中我有一个转换函数,它尝试使用和不使用小数秒的dateFormats.我不太确定如何使用Codable来处理它.有什么建议?

nsdateformatter swift dateformatter swift4 codable

30
推荐指数
2
解决办法
6430
查看次数

如何使用ObjectMapper将枚举的rawValue赋值给变量?

您好我在Swift中使用带有Alamofire的Object Mapper,我正在尝试将枚举原始值映射到真实的Enum.

这是我的枚举,也是我试图在函数映射中使用的代码.你能帮我解决一下EnumTransform的参数或如何修改代码吗?我知道我可以将值读作字符串并使用LevelType(rawValue:stringValue).

提前致谢.

enum LevelType : String {
    case NEW = "NEW"
    case UPDATE = "UPDATE"
}

func mapping(map: Map) {
    typeEnum <- (map[“type”], EnumTransformable(???) )
}
Run Code Online (Sandbox Code Playgroud)

swift alamofire objectmapper

29
推荐指数
1
解决办法
8029
查看次数

UIEdgeInsetsInsetRect'已被实例方法'CGRect.inset(by :)取代

我错误地将我的项目更新到Swift 4.2,而没有等待pod更新.我已经慢慢更新了我的所有代码,但有一行我似乎无法弄清楚.

var animationRect = UIEdgeInsetsInsetRect(frame, UIEdgeInsets(top: padding, left: padding, bottom: padding, right: padding))
Run Code Online (Sandbox Code Playgroud)

我收到的错误是,

UIEdgeInsetsInsetRect'已被实例方法'CGRect.inset(by :)取代

任何有关这方面的帮助将不胜感激!

xcode ios swift swift4.2

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

使我的函数计算数组Swift的平均值

我希望我的函数计算我的Double类型数组的平均值.该数组称为"投票".现在,我有10个号码.

当我调用average function以获得阵列投票的平均值时,它不起作用.

这是我的代码:

var votes = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

func average(nums: Double...) -> Double {
    var total = 0.0
    for vote in votes {
        total += vote
    }
    let votesTotal = Double(votes.count)
    var average = total/votesTotal
    return average
}

average[votes]
Run Code Online (Sandbox Code Playgroud)

我如何在此处调用平均值来获得平均值?

arrays function swift swift-playground

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

Swift设置UITabBarItem的徽章值

我正在尝试添加徽章警报标签,如附带的屏幕截图中的那个.

在此输入图像描述

我试图搜索标题,标签uitabbar项目,但我卡住了.

任何建议表示赞赏.

uitabbarcontroller uitabbaritem swift swift2

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

如何使用默认URL方案处理

我想在我的应用程序中构建URI(或URL方案)支持.

LSSetDefaultHandlerForURLScheme()在我的工作中+ (void)initialize也设置了特定的URL方案info.plist.所以我没有Apple Script或没有URL方案Apple Events.

当我myScheme:在我最喜欢的浏览器中调用时,系统会激活我的应用程序.

问题是,如何在调用方案时处理这些方案.或者更好地说:如何定义应用程序应该执行的操作,何时myScheme:调用.

有一种特殊的方法我必须实现或者我必须在某处注册吗?

macos cocoa url-scheme appkit

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

如何转换NSRange中的范围?

我正在更新swift 3中的代码.将Range转换为NSRange时出错.如何在swift 3中做到这一点?

func nsRange(_ range : Range<String.Index>) -> NSRange {
    let utf16from = String.UTF16View.Index(range.lowerBound, within: utf16)
    let utf16to   = String.UTF16View.Index(range.upperBound,   within: utf16)
    return NSRange(location: utf16.startIndex.distanceTo(utf16from), length: utf16from.distanceTo(utf16to))
}
Run Code Online (Sandbox Code Playgroud)

swift

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

从UIColor中提取RGB值

我见过人们在objective-c中这样做,但是我很快就遇到了麻烦.我从图片中获得了一个像素的颜色,但现在我需要采用单独的红色,绿色和蓝色值.这是我所拥有的(h,w和rgb是整数,image.getPixelColor(CGPoint)返回一个UIColor):

 xArry[h][w][rgb] = image.getPixelColor(CGPoint(x: w, y: h))
Run Code Online (Sandbox Code Playgroud)

如何将此UIColor更改为红色,绿色和蓝色值?谢谢!

rgb uicolor ios swift swift3

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