A new rabbit hole (AI art & music)

Holy moly…

I gotta say, for me at least, MidJourney is kicking Dall-E’s arse

If you find yourself getting fatigued by the ubiquitous dark and gigeresque imagery, check some of these out:

Right, I really need to stop being distracted by this and get on with something productive!

4 Likes

I like Dall-E from the perspective of being a photographer. It is easier to generate something that can be composited in Photoshop with an actual image. That being said, have you tried the following two flags in MidJourney? -test and -testp

Still totally addicted to MidJourney…

edit: oh yeah this one turned out great

5 Likes

AI with added AI, created the image from the prompt “Lou Reed sitting at drums seen from distance” and the music is from using some AI software to break his classic track Satellite of Love into stems.

Wow! What a great picture!!

looking at the above and this…

…I am struck by how much Midjourney “likes” to do elaborate Nazcaesque designs with parallel lines.

2 Likes

I know that this is a little off topic, but I’ve been having fun with ChatGPT:

Ha ha ha.

… name your farts in public

I wasn’t even considering that, but now that you mention it…

1 Like

It is definitely on trend at the moment:

Just be warned that the issue of AI bias and using AI to convert fake news into real news™ is still an issue, here is a good read on the subject:

I asked it to write lyrics in the style of The Clash that were alternately pro and anti Brexit. It did spit out some generic lyrics on the theme, but they were rubbish.

Pro…

We’ll take back control, Of our borders and laws, No more decisions made, In far-off foreign halls.

Anti…

They promised us the moon, But delivered only pain, Our economy’s in shambles, And our future’s looking grim.

I think it does a good job of simulating a bad sixth form poet.

Whooooo! Some music AI again…

This one is quite interesting

The actual website seems to be having a bit of an issue with traffic right now, but I did manage to try a prompt

Its not really what I was after, my prompt was giger inspired dystopian doom but this is still cool, need to try out a bunch of different things, if nothing else it makes great waves to sample from

2 Likes

Hmm. I’m not too impressed with Riffusion yet. Hopefully it will improve!

Well fuck me…

I asked ChatGPT to do the following today: Create a vcvrack2 reverb module in c++

The output code looks like it could actually work! Incredible. :astonished: :upside_down_face: :melting_face:

1 Like

Reading your post I decided to give a try to ChatGPT. I asked this:

Please write the C++ code for a VCV Rack 2 clock modifier module!

and the answer was

#include <vcvrack.hpp>

using namespace rack;

struct ClockMod : Module {
  enum ParamIds {
    SPEED_PARAM,
    NUM_PARAMS
  };
  enum InputIds {
    CLOCK_INPUT,
    NUM_INPUTS
  };
  enum OutputIds {
    CLOCK_OUTPUT,
    NUM_OUTPUTS
  };

  // Declare a Knob object for the speed parameter
  Knob speedKnob;

  ClockMod() {
    config(NUM_PARAMS, NUM_INPUTS, NUM_OUTPUTS);
    configParam(SPEED_PARAM, 0.0f, 1.0f, 0.5f, "Speed");
  }

  void process(const ProcessArgs& args) override {
    // Read the input clock signal
    float clockIn = inputs[CLOCK_INPUT].getVoltage();

    // Get the speed parameter value from the knob
    float speed = params[SPEED_PARAM].getValue();

    // Modify the clock signal based on the speed parameter
    float clockOut = clockIn * speed;

    // Output the modified clock signal
    outputs[CLOCK_OUTPUT].setVoltage(clockOut);
  }

  void draw(const DrawArgs& args) override {
    // Set the position and size of the knob
    speedKnob.setSVG(knobSvg);
    speedKnob.box.pos = Vec(10, 10);
    speedKnob.box.size = Vec(40, 40);

    // Set the range and default value of the knob
    speedKnob.minValue = 0.0f;
    speedKnob.maxValue = 1.0f;
    speedKnob.defaultValue = 0.5f;

    // Draw the knob
    speedKnob.draw(args);
  }
};

It is not correct but there are sweet parts in it… Let me quote some more

This module has one input for the clock signal and one output for the modified clock signal. It also has one parameter, which is a knob that controls the speed of the clock signal. The process() method reads the input clock signal, modifies it based on the speed parameter, and outputs the modified signal. The draw() method draws the knob on the module’s user interface.

You can customize the behavior of the clock modifier module by modifying the process() method to apply different transformations to the clock signal. You can also add additional inputs, outputs, and parameters as needed.

I hope this helps! Let me know if you have any further questions.

Maybe I should try asking it to write a manual for NYSTHI Simpliciter. :slight_smile:

1 Like

I had a a go at ChatGPT and programming as well, but coming from a different angle. Instead of letting it write a full plug-in/chrome add-on/website etc. I just typed in the functionality I wanted and let it output the function in a given language.

For me this is still remarkable and very useful, as I mostly struggle with the number processing side of programming (very bad at math).

Yes, asking ChatGPT to write a short manual to one of my merge module codes revealed its incompetence, creativity, and flourishing fantasy.

E.g. the module has one output socket. ChatGPT found (and explained) five! :crazy_face:


Next challenge: I let ChatGPT to plan a route from home to office.

I asked ChatGPT to optimize some of my code. Here’s the code that I gave it to optimize:

  bool process(float *left_audio_ptr, float *right_audio_ptr, float rate)
  {
    if (! fading_out) return(false);

    ramp -= rate;

    if(ramp <= 0)
    {
      // Fade out completed!
      fading_out = false;
      ramp = 1;
      *left_audio_ptr = 0;
      *right_audio_ptr = 0;

      return(true);
    }
    else
    {
      // Fade out not completed.  Return false
      *left_audio_ptr *= ramp;
      *right_audio_ptr *= ramp;

      return(false);
    }
  }

Unfortunately, although the code it generated was thoughtful, the advice was somewhat gibberish. It suggested using a local variable for storing the result of *left_audio_ptr *= ramp; However, I can’t see any benefit to doing that. It implemented that in the suggested code by creating a local variable called “fade_out_factor” which seems to serve no real purpose.

However, still really impressive. Maybe in the future it’ll do a better job.

Here’s ChatGPT’s suggestions, including code that it generated. It’s not bad. What’s truly astonishing to me is that it came up with a brand new variable, which it named “fade_out_completed”. That’s pretty jaw dropping since I didn’t provide it with any context.


Here are a few suggestions for optimizing the C++ code you provided:

  1. You can use a local variable to store the result of *left_audio_ptr * ramp and *right_audio_ptr * ramp instead of computing it multiple times.
  2. You can use a conditional operator (? :) to avoid the if statement in the second else block. This can be more efficient because the condition is only evaluated once.
  3. You can use a local variable to store the result of ramp <= 0 instead of computing it multiple times.

Here’s how the optimized code would look:

bool process(float *left_audio_ptr, float *right_audio_ptr, float rate)
{
  if (! fading_out) return false;

  ramp -= rate;
  bool fade_out_completed = (ramp <= 0);

  if (fade_out_completed)
  {
    fading_out = false;
    ramp = 1;
    *left_audio_ptr = 0;
    *right_audio_ptr = 0;
  }
  else
  {
    float fade_out_factor = ramp;
    *left_audio_ptr *= fade_out_factor;
    *right_audio_ptr *= fade_out_factor;
  }

  return fade_out_completed;
}

Were typing in your original code? Or were you entering a github link to the code?

I pasted in my code directly into the chat window:

In case it’s what you’re looking for: here’s a ChatGPT lyrics for your next VCV tune! :smiley:


Verse 1:

Woke up this morning with a smile on my face

Feelin’ good, ready to take on the day

Looking out the window, the sun is shining bright

Can’t wait to go outside and soak up some light


Chorus:

Love and sunshine, happyness all around

Can’t nobody bring me down

Feelin’ alive, everything is right

When I’m with you, everything’s alright


Verse 2:

We go out walking, hand in hand

Feelin’ free, we can take on the land

With you by my side, I know everything will be alright

We can conquer anything, we can reach new heights


Chorus:

Love and sunshine, happyness all around

Can’t nobody bring me down

Feelin’ alive, everything is right

When I’m with you, everything’s alright


Bridge:

We don’t need material things, we don’t need fame

All we need is love, to play our little game

We’ll keep on dancing, till the morning light

Cause when I’m with you, everything’s alright


Chorus:

Love and sunshine, happyness all around

Can’t nobody bring me down

Feelin’ alive, everything is right

When I’m with you, everything’s alright


2 Likes