Playgroundにライブビューを

audiokit6

あなたは、あなたのplaygroundのassistant editorに、インタラクティブなライブビューを追加することができます。
View > Assistant Editor > Show Assistant Editor
と選択すれば、playgroundにassistant editorが追加されます。

オーディオキットと、Xcodeのplayground

audiokit4

あなたは、AudioKitをインポートしたSwiftプログラムをXcodeのplaygroundで実行して、サウンドを含む結果を直ちに得ることができます。

もし、何も音が聞こえないようであれば、
View -> Utilities -> Show file inspector
で、あなたのPlayground Settingsをチエックして、Platformがあなたの環境に合っているかを確かめて下さい。

オーディオキットでCWキーヤー

audiokit3

サンプルプロジェクトのHello Worldを改造して、固定メッセージCQ TESTを送出します。

//  ViewController.swift

import Cocoa
import AudioKit

class ViewController: NSViewController {
    
    var oscillator = AKOscillator()
    
    @IBOutlet var plot: AKOutputWaveformPlot!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        AudioKit.output = oscillator
        AudioKit.start()
    }
    
    @IBAction func toggleSound(_ sender: NSButton) {
        oscillator.amplitude = 0.5
        oscillator.frequency = 400
        let message = "cq test"
        let morse: [Character: String] =
            ["c": "1010", "e": "0", "q": "1101", "s": "000",
             "t": "1"   , " ": "0"]
        let weight: [Character: UInt32] = ["1": 150000, "0": 50000]
        let space:       UInt32 =  50000
        let letterSpace: UInt32 = 100000
        let wordSpace:   UInt32 = 300000
        for char in message.characters {
            if char != " " {
                for code in morse[char]!.characters {
                    oscillator.start()
                    usleep(weight!)
                    oscillator.stop()
                    usleep(space)
                }
                usleep(letterSpace)
            } else {
                usleep(wordSpace)
            }
        }
        sender.title = "Send again: " + message
        sender.setNeedsDisplay()
    }
}

私はSwiftプログラミングに関しては完全な初心者ですが、FPGAプログラミングよりは、ずっと容易です。

オーディオキット

audiokit

AudioKitは、iOS、macOS、そしてtvOS用のオーディオ信号処理プラットフォームです。AudioKit v3.4は、Swift 3をサポートするために、Xcode 8が必要であることに注意して下さい。

audiokit2

Swift 3と、Xcode 8

swift3

いまや、5つの異なるアクセスレベル、open、public、internal、fileprivate、そしてprivateが存在します。

swift4

% swift
Welcome to Apple Swift version 3.0 (swiftlang-800.0.46.2 clang-800.0.38). Type :help for assistance.
  1> var list = [10, 11, 12]
list: [Int] = 3 values {
  [0] = 10
  [1] = 11
  [2] = 12
}
  2> list.insert(99, at: 1)
  3> print(list)
[10, 99, 11, 12]
  4> public   var r = 1
r: Int = 1
  5> internal let s = 2
s: Int = 2
  6> fileprivate func myfunc() {}
  7> private     func urfunc() {}

あなたは、IBM Swift Sandboxを訪問すれば、Swift 3をインストールせずに試すことができます。

swift5