profile
viewpoint

Ableton/LinkKit 93

iOS SDK for Ableton Link, a new technology that synchronizes musical beat, tempo, and phase across multiple applications running on one or more devices.

amethystdeceiver/django-bootstrap-datepicker-plus 0

Bootstrap3/Bootstrap4 DatePickerInput, TimePickerInput, DateTimePickerInput, MonthPickerInput, YearPickerInput with date-range-picker functionality for django version 2.1, 1.11, 1.10 and 1.8

amethystdeceiver/JUCE 0

JUCE is an open-source cross-platform C++ application framework for desktop and mobile applications, including VST, VST3, AU, AUv3, RTAS and AAX audio plug-ins. / Fork

amethystdeceiver/libpd 0

Turning Pure Data into an embeddable audio synthesis library

amethystdeceiver/pure-data 0

Pure Data - a free real-time computer music system

amethystdeceiver/rosreestr2coord 0

Get the coordinates of area by its cadastral number (http://pkk5.rosreestr.ru/)

amethystdeceiver/Specs 0

A repository of CocoaPods (cocoapods.org) specifications.

amethystdeceiver/TheAmazingAudioEngine 0

Core Audio, Cordially: A sophisticated framework for iOS audio applications, built so you don't have to.

issue commentAudioKit/AudioKit

Change in Fader gain is delayed (V5)

Thanks. I'll check it out.

rjcarlson49

comment created time in 20 minutes

issue closedAudioKit/AudioKit

Improve Build Speed for Swift Package Manager

Description

The build speed of the SPM v5 is extremely slow. Every time I run/test/build it rebuilds CAudioKit. It has doubled my build times or more. Please look into optimizing the Swift Package Manager config for AudioKit so that a complete rebuild (at least for CAudioKit) for every run doesn't always occur, or is much faster.

To Reproduce Steps to reproduce the behavior:

  1. Add v5 AudioKit to project.
  2. Build it and run it a lot. Observe painfully slow wait times every time.

Expected behavior No rebuild sometimes, or much faster rebuild, or no rebuild of AudioKit for subsequent runs/builds.

Details (please complete the following information):

  • Type: iPhone
  • OS: 14.3
  • AudioKit Version 5

closed time in 3 hours

thejeff77

issue commentAudioKit/AudioKit

Improve Build Speed for Swift Package Manager

I'll close this but feel free to reopen when new information is provided.

thejeff77

comment created time in 3 hours

issue commentAudioKit/AudioKit

Change in Fader gain is delayed (V5)

BTW, your method of using a Cookbook recipe was pretty great. :) Let me know if you find any other issues or if my fixes didn't address everything.

rjcarlson49

comment created time in 4 hours

issue closedAudioKit/AudioKit

Change in Fader gain is delayed (V5)

I have two issues. Because they are intertwined I'll post them together. The first issue is that when I add stringAmp, a Fader, to mixer2, the input to StringAmp, MandolinString, is triggered. To avoid this extraneous sound, I set the Fader gain to 0.0 initially. This successfully supresses the problem.

The second issue is that when I set the stringAmp.gain later, the change is delayed by one call. If the first non zero set is to 4.0 the string first plays at a gain of 1.0. If I then set the gain 2.0, it plays at 4.0. If I then set it to 1.0, it plays at 2.0 and so on. I tried the obvious and just set the gain twice in the code and the problem disappears. In the code below, I show the 'fix' code commented our. I can eliminate the problem by simply uncommenting out one of the pairs of assignments to the gain. The gainIsZero flag is there to raise the gain from zero when the string is actually to be triggered. samplePause is there to shut off the pitchTap when a string is playing.

My setup looks like this

init() {
        // Set up mic input and pitchtap
        mic = engine.input!
        micAmp = Fader(mic, gain: 1.0)
        mixer1 = Mixer(micAmp)
        silence = Fader(mixer1, gain: 0)
        mixer2 = Mixer(silence)
        pitchTap = PitchTap(mixer1, handler: {_ , _ in })
        
        // All sound is fed into mixer2
        // Mic input is faded to zero
        
        // Now add String sound to Mixer2 with a Fader
        pluckedString = MandolinString()
        stringAmp = Fader(pluckedString, gain: 0.0)
        mixer2.addInput(stringAmp)

        // Finally create a sound for the metronome (tock) and add it as input to mixer2
        try! sampler.loadWav("Click")
        clickAmp = Fader(sampler, gain: 1.0)
        mixer2.addInput(clickAmp)

        engine.output = mixer2

        self.pitchTap = PitchTap(micAmp,
                                 handler:
        { freq, amp in
            if (self.samplePause <= 0 && self.tracking) {
                self.samplePause = 0
                self.sample(freq: freq[0], amp: amp[0])
            }
        })
        

        do {
            try engine.start()
            akStartSucceeded = true
        } catch {
            akStartSucceeded = false
        }
    } // init

The gain is set here.

    func setVolume(string: AUValue) {
        stringAmpGain = string
        if gainIsZero {
            print("setVolume(string: \(string)) but gain is supressed")
        } else {
            //stringAmp.gain = string
            stringAmp.gain = string
            print("setVolume(string: \(string))")
        }
    }

The string is played by this code.

    func playString(noteNumber: MIDINoteNumber) -> Void {
        if self.gainIsZero {
            //stringAmp.gain = stringAmpGain
            stringAmp.gain = stringAmpGain
            gainIsZero = false
            print("String Amp Gain raised from zero: \(stringAmpGain)")
        }
        
        pluckedString.trigger(note: noteNumber)
        self.samplePause += 1
        
        print("Play Midi Note Number: \(noteNumber) at gain \(stringAmp.gain)")

        DispatchQueue.main.asyncAfter(deadline: .now() + 2.0) {
            // Put your code which should be executed with a delay here
            self.samplePause -= 1
        }
    } // playString

closed time in 4 hours

rjcarlson49

issue commentAudioKit/AudioKit

Change in Fader gain is delayed (V5)

I believe this is all fixed now, sorry for the delay, the problems were pretty easy to fix.

rjcarlson49

comment created time in 4 hours

push eventAudioKit/AudioKit

Aurelius Prochazka

commit sha cb65d9250f62aadfefa9904036f41f160f3de329

Fix for delayed gain issue on https://github.com/AudioKit/AudioKit/issues/2373

view details

push time in 4 hours

push eventAudioKit/AudioKit

Aurelius Prochazka

commit sha 3f61b5b09f3d501e61fcda41552abe7ad1b4c1d8

Typo fix

view details

Aurelius Prochazka

commit sha 33702bd1819222fa4e48be030899a6fa7ea7f0b0

Fix for the playing on adding to mixer bug from https://github.com/AudioKit/AudioKit/issues/2373

view details

Aurelius Prochazka

commit sha 8ffdb3e9d02ca5d8ea1a6066d4d9add51cf51f8f

Fix for the playing on adding to mixer bug from https://github.com/AudioKit/AudioKit/issues/2373

view details

Aurelius Prochazka

commit sha cdffabb4ff97d83f3bf2bf4bd662860d8c676710

Merge branch 'v5-develop' of github.com:AudioKit/AudioKit into v5-develop

view details

push time in 4 hours

pull request commentAudioKit/AudioKit

V5 develop

I'm going to debug it some more after my classes and I'll test it again before I submit another PR.

emurray2

comment created time in 8 hours

pull request commentAudioKit/AudioKit

V5 develop

I think the BSD License is okay as you have added it, but if someone complains, perhaps I'd have to remove it. All new nodes should also have a corresponding test file that puts the node through its paces. Let me know if you want to do this. Perhaps we could do it in office hours if you're not sure how to do it yourself?

That sounds like a good plan! I would love to do this. I'll try coming to the office hours tomorrow if I have some time. If I can't make it, I can maybe look at an example of how the test files are set up and follow that.

emurray2

comment created time in 19 hours

pull request commentAudioKit/AudioKit

V5 develop

I think the BSD License is okay as you have added it, but if someone complains, perhaps I'd have to remove it. All new nodes should also have a corresponding test file that puts the node through its paces. Let me know if you want to do this. Perhaps we could do it in office hours if you're not sure how to do it yourself?

emurray2

comment created time in 19 hours

PR opened AudioKit/AudioKit

V5 develop

I made my first node for AudioKit! It's a transient shaper which can be used as an Audio Unit. I implemented the code based off this Transient Designer Max 4 Live patch made by David Braun: https://maxforlive.com/library/device/1775/transient-designer.

To implement this as a node in AudioKit, I turned to recreating some of the Max objects from the cyclone library which are used in the Transient Designer patch: https://github.com/porres/pd-cyclone.

I'm not sure how the license works because I'm a beginner at this stuff, but I thought it would be worth it to sort through it. I would love to have this effect be part of AudioKit if possible! Please let me know what you think.

  • Evan
+746 -0

0 comment

2 changed files

pr created time in 19 hours

issue commentAudioKit/AudioKit

Improve Build Speed for Swift Package Manager

Xcode 12 has SPM support for XCFrameworks, and I did manage to get it working at some point, but the way this is managed is just really cumbersome and it seems easier just to go with a regular source SPM package.

thejeff77

comment created time in a day

pull request commentAudioKit/AudioKit

AmplitudeTap: Added StereoMode

Good stuff.

Matt54

comment created time in a day

push eventAudioKit/AudioKit

Matt Pfeiffer

commit sha af8a2ca67fd04f6050e0958d28c055da8fa05c27

AmplitudeTap: Added StereoMode enum Setting the stereoMode to left or right will now return the left or right amplitude in the handler as opposed to the average amplitude. Default value results in no change to functionality.

view details

Matt Pfeiffer

commit sha 81bf014a34b2d4b28a1e3a3d0cc9b4f2a8b89fe6

AmplitudeTap: Fed the Hound Fed the hound

view details

Matt Pfeiffer

commit sha d0f586075ad83b4315aaad1d6f04adf914d0e926

AmplitudeTap: Added unit tests for stereoMode Added unit tests

view details

Matt Pfeiffer

commit sha a7b97e7836ae6a02650517358cf10d5311263639

AmplitudeTapTests: Hungry hound Fed the hound again

view details

Aurelius Prochazka

commit sha a05f6f59bdfc1def1cc9cdb17533e259e9a59469

Merge pull request #2395 from Matt54/DynamicOscillator-Add-Method-To-Get-Table-Values AmplitudeTap: Added StereoMode

view details

push time in a day

PR merged AudioKit/AudioKit

AmplitudeTap: Added StereoMode

Setting the stereoMode to left or right will now return the left or right amplitude in the handler as opposed to the average amplitude. Default value results in no change to functionality.

+106 -8

1 comment

3 changed files

Matt54

pr closed time in a day

Pull request review commentAudioKit/AudioKit

AmplitudeTap: Added StereoMode

 class AmplitudeTapTests: XCTestCase {         }     }     +    func testLeftStereoMode() {++        let engine = AudioEngine()++        var amplitudes: [Float] = []++        let sine = OperationGenerator {+            let amplitude = Operation.sineWave(frequency: 0.25, amplitude: 1)+            return Operation.sineWave() * amplitude }++        engine.output = sine+        sine.start()++        let expect = expectation(description: "wait for amplitudes")++        let tap = AmplitudeTap(sine) { amp in+            amplitudes.append(amp)++            if amplitudes.count == 10 {+                expect.fulfill()+            }+        }+        tap.stereoMode = .left+        tap.start()++        let audio = engine.startTest(totalDuration: 1.0)+        audio.append(engine.render(duration: 1.0))+        testMD5(audio)++        wait(for: [expect], timeout: 5.0)++        let knownValues: [Float] = [0.01478241, 0.03954828, 0.06425185, 0.09090047, 0.11480384,+                                    0.14164367, 0.16560285, 0.19081590, 0.21635467, 0.23850754]+        for i in 0..<knownValues.count {

Identifier Name Violation: Variable name should be between 3 and 40 characters long: 'i' (identifier_name)

Matt54

comment created time in a day

Pull request review commentAudioKit/AudioKit

AmplitudeTap: Added StereoMode

 class AmplitudeTapTests: XCTestCase {         }     }     +    func testLeftStereoMode() {++        let engine = AudioEngine()++        var amplitudes: [Float] = []++        let sine = OperationGenerator {+            let amplitude = Operation.sineWave(frequency: 0.25, amplitude: 1)+            return Operation.sineWave() * amplitude }++        engine.output = sine+        sine.start()++        let expect = expectation(description: "wait for amplitudes")++        let tap = AmplitudeTap(sine) { amp in+            amplitudes.append(amp)++            if amplitudes.count == 10 {+                expect.fulfill()+            }+        }+        tap.stereoMode = .left+        tap.start()++        let audio = engine.startTest(totalDuration: 1.0)+        audio.append(engine.render(duration: 1.0))+        testMD5(audio)++        wait(for: [expect], timeout: 5.0)++        let knownValues: [Float] = [0.01478241, 0.03954828, 0.06425185, 0.09090047, 0.11480384,+                                    0.14164367, 0.16560285, 0.19081590, 0.21635467, 0.23850754]+        for i in 0..<knownValues.count {+            XCTAssertEqual(amplitudes[i], knownValues[i], accuracy: 0.001)+        }+    }+    

Trailing Whitespace Violation: Lines should not have trailing whitespace. (trailing_whitespace)

Matt54

comment created time in a day

Pull request review commentAudioKit/AudioKit

AmplitudeTap: Added StereoMode

 class AmplitudeTapTests: XCTestCase {         }     }     +    func testLeftStereoMode() {++        let engine = AudioEngine()++        var amplitudes: [Float] = []++        let sine = OperationGenerator {+            let amplitude = Operation.sineWave(frequency: 0.25, amplitude: 1)+            return Operation.sineWave() * amplitude }++        engine.output = sine+        sine.start()++        let expect = expectation(description: "wait for amplitudes")++        let tap = AmplitudeTap(sine) { amp in+            amplitudes.append(amp)++            if amplitudes.count == 10 {+                expect.fulfill()+            }+        }+        tap.stereoMode = .left+        tap.start()++        let audio = engine.startTest(totalDuration: 1.0)+        audio.append(engine.render(duration: 1.0))+        testMD5(audio)++        wait(for: [expect], timeout: 5.0)++        let knownValues: [Float] = [0.01478241, 0.03954828, 0.06425185, 0.09090047, 0.11480384,+                                    0.14164367, 0.16560285, 0.19081590, 0.21635467, 0.23850754]+        for i in 0..<knownValues.count {+            XCTAssertEqual(amplitudes[i], knownValues[i], accuracy: 0.001)+        }+    }+    +    func testRightStereoMode() {++        let engine = AudioEngine()++        var amplitudes: [Float] = []++        let sine = OperationGenerator {+            let amplitude = Operation.sineWave(frequency: 0.25, amplitude: 1)+            return Operation.sineWave() * amplitude }++        engine.output = sine+        sine.start()++        let expect = expectation(description: "wait for amplitudes")++        let tap = AmplitudeTap(sine) { amp in+            amplitudes.append(amp)++            if amplitudes.count == 10 {+                expect.fulfill()+            }+        }+        tap.stereoMode = .right+        tap.start()++        let audio = engine.startTest(totalDuration: 1.0)+        audio.append(engine.render(duration: 1.0))+        testMD5(audio)++        wait(for: [expect], timeout: 5.0)++        let knownValues: [Float] = [0.01478241, 0.03954828, 0.06425185, 0.09090047, 0.11480384,+                                    0.14164367, 0.16560285, 0.19081590, 0.21635467, 0.23850754]+        for i in 0..<knownValues.count {

Identifier Name Violation: Variable name should be between 3 and 40 characters long: 'i' (identifier_name)

Matt54

comment created time in a day

Pull request review commentAudioKit/AudioKit

AmplitudeTap: Added StereoMode

 class AmplitudeTapTests: XCTestCase {         }     }     +    func testLeftStereoMode() {++        let engine = AudioEngine()++        var amplitudes: [Float] = []++        let sine = OperationGenerator {+            let amplitude = Operation.sineWave(frequency: 0.25, amplitude: 1)+            return Operation.sineWave() * amplitude }++        engine.output = sine+        sine.start()++        let expect = expectation(description: "wait for amplitudes")++        let tap = AmplitudeTap(sine) { amp in+            amplitudes.append(amp)++            if amplitudes.count == 10 {+                expect.fulfill()+            }+        }+        tap.stereoMode = .left+        tap.start()++        let audio = engine.startTest(totalDuration: 1.0)+        audio.append(engine.render(duration: 1.0))+        testMD5(audio)++        wait(for: [expect], timeout: 5.0)++        let knownValues: [Float] = [0.01478241, 0.03954828, 0.06425185, 0.09090047, 0.11480384,+                                    0.14164367, 0.16560285, 0.19081590, 0.21635467, 0.23850754]+        for i in 0..<knownValues.count {+            XCTAssertEqual(amplitudes[i], knownValues[i], accuracy: 0.001)+        }+    }+    +    func testRightStereoMode() {++        let engine = AudioEngine()++        var amplitudes: [Float] = []++        let sine = OperationGenerator {+            let amplitude = Operation.sineWave(frequency: 0.25, amplitude: 1)+            return Operation.sineWave() * amplitude }++        engine.output = sine+        sine.start()++        let expect = expectation(description: "wait for amplitudes")++        let tap = AmplitudeTap(sine) { amp in+            amplitudes.append(amp)++            if amplitudes.count == 10 {+                expect.fulfill()+            }+        }+        tap.stereoMode = .right+        tap.start()++        let audio = engine.startTest(totalDuration: 1.0)+        audio.append(engine.render(duration: 1.0))+        testMD5(audio)++        wait(for: [expect], timeout: 5.0)++        let knownValues: [Float] = [0.01478241, 0.03954828, 0.06425185, 0.09090047, 0.11480384,+                                    0.14164367, 0.16560285, 0.19081590, 0.21635467, 0.23850754]+        for i in 0..<knownValues.count {+            XCTAssertEqual(amplitudes[i], knownValues[i], accuracy: 0.001)+        }+    }+    

Trailing Whitespace Violation: Lines should not have trailing whitespace. (trailing_whitespace)

Matt54

comment created time in a day

pull request commentAudioKit/AudioKit

AmplitudeTap: Added StereoMode

This is cool. Maybe a couple of test functions?

Matt54

comment created time in a day

Pull request review commentAudioKit/AudioKit

AmplitudeTap: Added StereoMode

 public class AmplitudeTap: BaseTap {         return amp[1]     } +    /// Determines if the returned amplitude value is the left, right, or average of the two+    public var stereoMode: StereoMode = .center+     /// Determines if the returned amplitude value is the rms or peak value-    public var mode: AnalysisMode = .rms+    public var analysisMode: AnalysisMode = .rms      private var handler: (Float) -> Void = { _ in }      /// Initialize the amplitude     ///     /// - parameter input: Node to analyze     /// - parameter bufferSize: Size of buffer to analyze+    /// - parameter stereoMode: left, right, or average returned amplitudes+    /// - parameter analysisMode: rms or peak returned amplitudes     /// - parameter handler: Code to call with new amplitudes-    /// - parameter mode: rms or peak returned amplitudes+     public init(_ input: Node,                 bufferSize: UInt32 = 1_024,-                mode: AnalysisMode = .rms,-                handler: @escaping (Float) -> Void = { _ in }) {+                stereoMode: StereoMode = .center,+                analysisMode: AnalysisMode = .rms,+                handler: @escaping (Float) -> Void = { _ in })+    {

Hmmm... this is not what Swift Lint was looking for, but I'll go with this.

Matt54

comment created time in a day

Pull request review commentAudioKit/AudioKit

AmplitudeTap: Added StereoMode

 public class AmplitudeTap: BaseTap {         return amp[1]     } +    /// Determines if the returned amplitude value is the left, right, or average of the two+    public var stereoMode: StereoMode = .center+     /// Determines if the returned amplitude value is the rms or peak value-    public var mode: AnalysisMode = .rms+    public var analysisMode: AnalysisMode = .rms      private var handler: (Float) -> Void = { _ in }      /// Initialize the amplitude     ///     /// - parameter input: Node to analyze     /// - parameter bufferSize: Size of buffer to analyze+    /// - parameter stereoMode: left, right, or average returned amplitudes+    /// - parameter analysisMode: rms or peak returned amplitudes     /// - parameter handler: Code to call with new amplitudes-    /// - parameter mode: rms or peak returned amplitudes+     public init(_ input: Node,                 bufferSize: UInt32 = 1_024,-                mode: AnalysisMode = .rms,-                handler: @escaping (Float) -> Void = { _ in }) {+                stereoMode: StereoMode = .center,+                analysisMode: AnalysisMode = .rms,+                handler: @escaping (Float) -> Void = { _ in })+    {

Opening Brace Spacing Violation: Opening braces should be preceded by a single space and on the same line as the declaration. (opening_brace)

Matt54

comment created time in a day

PR opened AudioKit/AudioKit

AmplitudeTap: Added StereoMode

Setting the stereoMode to left or right will now return the left or right amplitude in the handler as opposed to the average amplitude. Default value results in no change to functionality.

+28 -7

0 comment

1 changed file

pr created time in a day

issue commentAudioKit/AudioKit

Improve Build Speed for Swift Package Manager

Thanks for the feedback folks.

I'll try to keep a sharper eye on if this is any better after cleaning the build folder @aure

I'll also come and post additional feedback after I run the cookbook project @wtholliday

This post is about Swift Package Manager, I was excited to not have to integrate with CocoaPods for just this project, so props for getting this working at all with AudioKit/SPM @megastep . Is there a similar feature to use pre-compiled for SPM that could be implemented?

Generally, does anyone know of any SPM applicable settings that may help here that could be investigated?

That is, settings other than "Make Xcode not suck" that is... @aure ;)

thejeff77

comment created time in a day

startedsoul-lang/SOUL

started time in a day

issue commentAudioKit/AudioKit

v5 AmplitudeTap.amplitude always equal to 0.0

Thanks, I figured it out. The problem was that I did it like this: let stereoMic = StereoFieldLimiter (mic, amount: 1) let amplitude = AmplitudeTap (stereoMic) And you need to feed the microphone directly: let amplitude = AmplitudeTap (mic)

Evgenij-gostev

comment created time in a day

issue commentAudioKit/AudioKit

Improve Build Speed for Swift Package Manager

I wonder if this is something that gets progressively worse and you might need to delete your derived data folder.

thejeff77

comment created time in 2 days

issue commentAudioKit/AudioKit

Improve Build Speed for Swift Package Manager

I tried this with the Cookbook project and it was really fast on my end. @thejeff77 Can you reproduce using the Cookbook project?

thejeff77

comment created time in 2 days

issue commentAudioKit/AudioKit

Improve Build Speed for Swift Package Manager

As an alternative, you could also try to use our beta CocoaPod that uses pre-compiled binaries, so that's not an issue there (though has other issues).

thejeff77

comment created time in 2 days

more