オーディオキットで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