Loopy Pro: Create music, your way.

What is Loopy Pro?Loopy Pro is a powerful, flexible, and intuitive live looper, sampler, clip launcher and DAW for iPhone and iPad. At its core, it allows you to record and layer sounds in real-time to create complex musical arrangements. But it doesn’t stop there—Loopy Pro offers advanced tools to customize your workflow, build dynamic performance setups, and create a seamless connection between instruments, effects, and external gear.

Use it for live looping, sequencing, arranging, mixing, and much more. Whether you're a live performer, a producer, or just experimenting with sound, Loopy Pro helps you take control of your creative process.

Download on the App Store

Loopy Pro is your all-in-one musical toolkit. Try it for free today.

Using ChatGPT to make a clipper AUv3 for iOS

After watching ChatGPT code a guitar pedal plugin:

I thought it would be cool if it could try a dedicated clipper as well (as that’s something we need at the moment imo).

Now I don’t know jack about coding but this all looks legit, at least for a basic example.

Comments

  • // Header file for the clipper plugin

    include "AUv3Clipper.h"

    // Constructor for the clipper plugin
    AUv3Clipper::AUv3Clipper(AudioUnit component)
    AUEffectBase(component)
    {
    // Initialize the threshold and gain parameters
    CreateParameter(kThresholdParam,
    kThresholdParamName,
    kThresholdParamUnit,
    kAudioUnitParameterUnit_Decibels,
    kThresholdParamMinDB,
    kThresholdParamMaxDB,
    kThresholdParamDefaultDB,
    0.01,
    kAudioUnitParameterFlag_IsWritable | kAudioUnitParameterFlag_IsReadable);
    CreateParameter(kGainParam,
    kGainParamName,
    kGainParamUnit,
    kAudioUnitParameterUnit_Decibels,
    kGainParamMinDB,
    kGainParamMaxDB,
    kGainParamDefaultDB,
    0.01,
    kAudioUnitParameterFlag_IsWritable | kAudioUnitParameterFlag_IsReadable);
    }

    // Processes a single audio frame using the clipper algorithm
    OSStatus AUv3Clipper::ProcessFrame(UInt32 inNumberFrames, AudioBufferList &ioData)
    {
    // Get the current values of the threshold and gain parameters
    float thresholdDB = GetParameter(kThresholdParam);
    float gainDB = GetParameter(kGainParam);

    // Convert the threshold and gain values from decibels to linear scale
    float threshold = pow(10.0, thresholdDB / 20.0);
    float gain = pow(10.0, gainDB / 20.0);
    
    // Get pointers to the audio data for each channel
    float *leftChannel = (float *)ioData.mBuffers[0].mData;
    float *rightChannel = (float *)ioData.mBuffers[1].mData;
    
    // Process each sample in the audio frame
    for (UInt32 i = 0; i < inNumberFrames; i++)
    {
        // Clip the left channel sample
        leftChannel[i] = std::max(-threshold, std::min(threshold, leftChannel[i]));
        // Apply the gain to the left channel sample
        leftChannel[i] *= gain;
    
        // Clip the right channel sample
        rightChannel[i] = std::max(-threshold, std::min(threshold, rightChannel[i]));
        // Apply the gain to the right channel sample
        rightChannel[i] *= gain;
    }
    
    // Return success
    return noErr;
    

    }

  • Now all that’s need is a GUI and someone to put it together!

  • And here are some names it came up with:

    Sure! Here are a few examples of more creative or artistic names for a clipper plugin:

    "Sonic Sculptor"
    "Dynamic Dynamics"
    "Power Limiter"
    "Level Master"
    "Signal Shaper"
    "Frequency Fencer"
    "Waveform Wielder"
    "Audio Artist"
    "Tone Tamer"
    "Wave Shaper"

    “Dynamic Dynamics” FTW 😂

  • @KRPT said:
    Now all that’s need is a GUI and someone to put it together!

    Oh, is that all?

  • @uncledave said:

    @KRPT said:
    Now all that’s need is a GUI and someone to put it together!

    Oh, is that all?

    😂

  • @KRPT said:
    Now all that’s need is a GUI and someone to put it together!

    Just ask Midjourney, it is taking all the jobs!

  • Couldn't you maybe find a hard clipper already inplemented in BYOD, for example?

    I expect the code you posted would generate some nasty aliasing artifacts.

  • I’d really like for there to exist a dedicated clipper plugin, something preferably lightweight - yeah I’m guessing this AI generated code would probably be very rough but the sentiment is there. Here’s to more of robots helping and less of robots hindering in 2023!

  • Load Drambo into an effects slot and add ONE Shaper Module to it and set it to clip mode and you’ll propably have one of the best super low aliasing clippers on iOS ready to go…

  • _ki_ki
    edited December 2022

    Code generated by chatGPT often doesn‘t work on the first ‚round‘. You need to try it and then state to chatGTP in which parts it fails and chatGTP comes up with a better code. (That‘s what the above video mentions as ‚iterations‘, he needed about 20 rounds of chatGTP fixing its own code to get it running)

Sign In or Register to comment.