Skip to content

Instantly share code, notes, and snippets.

View standinga's full-sized avatar

standinga

View GitHub Profile
@standinga
standinga / AudioPlayer.swift
Created April 16, 2019 23:10
Playground AVPlayer playing remote mp3 with with sounds played on top of that file
import AVFoundation
import PlaygroundSupport
PlaygroundPage.current.needsIndefiniteExecution = true
class AudioPlayer {
var topAudioFiles: [AVAudioFile] = []
var engine:AVAudioEngine
var topAudioAudioNodes = [AVAudioPlayerNode]()
var mixer: AVAudioMixerNode
@standinga
standinga / AudioPlayer.swift
Created May 2, 2019 19:08
AudioPlayer.swift for medium article (1st version)
import AVFoundation
class AudioPlayer: NSObject {
private let engine = AVAudioEngine()
private let playerNode = AVAudioPlayerNode()
private var file: AVAudioFile!
private var isPlaying = false
private let audioPlayerQueue = DispatchQueue(label: "AudioPlayerQueue")
@standinga
standinga / ViewController.swift
Created May 2, 2019 19:10
ViewController for medium article (1st version)
import Cocoa
class ViewController: NSViewController {
private var audioPlayer: AudioPlayer!
override func viewDidLoad() {
super.viewDidLoad()
guard let url = Bundle.main.url(forResource: "z", withExtension: "wav") else {
fatalError("can't create url from resource")
}
@standinga
standinga / TestsFrameworkSwift.swift
Last active May 3, 2019 13:42
TestsFrameworkSwift for medium article about frameworks using both swift and objective c
//TestsFrameworkSwift.swift
import Foundation
public class TestsFrameworkSwift {
public init () { }
public func fromTestFrameworkSwift()-> String {
let testFrameworkObjc = TestFrameworkObjc()
return testFrameworkObjc.fromTestFrameworkObjc()
@standinga
standinga / TestFrameworkObjc.h
Created May 3, 2019 13:43
TestFrameworkObjc.h for medium post about frameworks using swift and objc
//TestFrameworkObjc.h
#import <Foundation/Foundation.h>
NS_ASSUME_NONNULL_BEGIN
@interface TestFrameworkObjc : NSObject
- (NSString *) fromTestFrameworkObjc;
@end
NS_ASSUME_NONNULL_END
@standinga
standinga / TestFrameworkObjc.m
Created May 3, 2019 13:45
TestFrameworkObjc.m for medium post about frameworks using swift and objc
//TestFrameworkObjc.m
#import "TestFrameworkObjc.h"
@implementation TestFrameworkObjc
- (NSString *) fromTestFrameworkObjc{
return @"fromTestFrameworkObjc with love";
}
@end
@standinga
standinga / TestFramework.h
Created May 3, 2019 13:47
TestFramework.h umbrella public header from medium article about frameworks using swift and objective c
//TestFramework.h
#import <Cocoa/Cocoa.h>
//! Project version number for TestFramework.
FOUNDATION_EXPORT double TestFrameworkVersionNumber;
//! Project version string for TestFramework.
FOUNDATION_EXPORT const unsigned char TestFrameworkVersionString[];
#import <TestFramework/TestFrameworkObjc.h> // TestFrameworkObjc.h needs to be public!
@standinga
standinga / ViewController.swift
Created May 3, 2019 13:50
ViewController.swift from medium post about frameworks using swift and objective c
// ViewController.swift
import Cocoa
import TestFramework
class ViewController: NSViewController {
override func viewDidLoad() {
super.viewDidLoad()
let testFrameworkSwift = TestsFrameworkSwift()
@standinga
standinga / AUFramework.h
Created May 3, 2019 14:08
AUFramework.h for medium post about Apple's Audio Unit V3
//AUFramework.h
#import <Cocoa/Cocoa.h>
FOUNDATION_EXPORT double AUFrameworkVersionNumber;
FOUNDATION_EXPORT const unsigned char AUFrameworkVersionString[];
#import <AUFramework/VolumePluginAudioUnit.h>
@standinga
standinga / Info.plist
Last active May 3, 2019 14:21
Audio Unit Extension Info.plist from medium post about Audio Unit V3 Extensions
<dict>
<key>NSExtensionAttributes</key>
<dict>
<key>AudioComponentBundle</key> // key required to load audio unit in-process
<string>co.borama.AUFramework</string> // framework bundle identifier
<key>AudioComponents</key>
<array>
<dict>
<key>description</key>
<string>VolumePlugin</string>