REndomPatch - Free patch generator for Mac!

Need some fresh sounds? Want to show off your sound design skills? Here's the place!
Post Reply
User avatar
JoshuaPhilgarlic
Posts: 389
Joined: 16 Jan 2015
Location: Munich/ Germany

16 Jan 2015

Based on the thread Redominator Random Repatch Generator I got the idea to create a Random Patch Generator for any kind of RE. After a long night and half a day I'm happy to announce REndomPatch  :D !

Ok, I exaggerated a bit: currently it doesn't support all REs, but it could! All depends on the "definition files" available. Those are text documents (based on .repatch files) that describe how the randomized patches are created. If a new RE is released and someone creates a definition ***BOOOOMMM!!!*** REndomPatch can handle it :) !

So far there are definitions for the following REs:

• AdditiveOscillator
• Antidote
• Chip64
• Combo X-705 Space Organ
• EDS06s
• FM4
• Ivoks
• kHs ONE (*)
• Mixfood Orange
• Mixfood Unison Xs
• MonoPoly
• Noxious
• Parsec
• Polysix
• Predator
• PX7
• Quad
• Radical Keys (*)
• Radical Piano (*)
• Re-Tron
• ReDominator
• Revival
• Snakebite
• TableOscillator
• Tres
• Uhbik-A
• Uhbik-G
• Vecto
• VK-1 Viking

(*) provided by kylelee

Version 1.1.0:
Now the user can pinpoint what parameters of a RE will be randomised - to define the amount of "chaos" ;) !

Version 1.2.0:
Improved filter window.

Version 1.3.0:
The last 10 used devices in the RE menu are shown (much like in Reason 8).

Ok, here it is:

REndomPatch (complete)
REndomPatch 1.3.0 (software only)
RE definitions only

Please read the User Guide!!!


P.S.: If you need REndomPatch for Windows please read this: http://www.reasontalk.com/post/show_sin ... ostcount=6
Last edited by JoshuaPhilgarlic on 17 Jul 2015, edited 1 time in total.

User avatar
mayzon
Posts: 119
Joined: 16 Jan 2015

16 Jan 2015

Great idea, I'd love to give this a bash! However I'm a PC user and the video in the link you provided does not exist

Cheers 

User avatar
JoshuaPhilgarlic
Posts: 389
Joined: 16 Jan 2015
Location: Munich/ Germany

16 Jan 2015

But... the PERL script for PC still exists! Instructions how to use are in this thread, and the script itself is here. For further questions please contact subnaut at PUF.


User avatar
tiker01
Moderator
Posts: 1424
Joined: 16 Jan 2015

21 Jan 2015

Hi!

I`m looking for the interactive script for the windows version so I don`t have to type in commands. However, the link on PUF is a dead end on dropbox.

If somebody could upload it to somewhere and post a link here would make me happy.  :t2018:
    
Budapest, Hungary
Reason 11 Suite
Lenovo ThinkPad e520 Win10x64 8GB RAM Intel i5-2520M 2,5-3,2 GHz and AMD 6630M with 1GB of memory.
:rt: :reason: :essentials: :re: :refill: :PUF_balance: :ignition: :PUF_figure:

User avatar
JoshuaPhilgarlic
Posts: 389
Joined: 16 Jan 2015
Location: Munich/ Germany

21 Jan 2015

Here's a copy of subnaut's post and the PERL script...

//Edit: Ah, just noticed you asked about the interactive version made by spktkpkt. I've no idea about that. Perhaps sombody else has a copy?
subnaut;1470295 wrote:Based on the thread REndomPatch - Free patch generator for Mac! which was already based on the thread Redominator Random Repatch Generator, I have created a multiplatform script to generate Rack Extension patches off of other Rack Extension patches.

Update: YouTube Video Demo now up.  Hopefully this helps anyone who might've been intimidated to try it out :)

https://www.youtube.com/watch?v=3zvtYTofjMw


Requirements:
------------------------------------------------------------
1) PERL must be installed.  For Windows, I used: http://strawberryperl.com/.  You honestly just download and double-click.

2) You must have JoshuaPhilgarlic's definition files here: http://znarfelectronix.de/rendompatch/definitions.zip.  The patch assumes they are located in a subfolder called "Definitions" within the same folder as the script is run.  You can change this by editing the script in a text editor.

3) You must have a patch to modify.  This script does not generate patches from scratch.  If you want to make brand new patches do this
a) Load Rack Extension
b) Reset Device
c) Save the "Init Patch.repatch"
d) Run the script on the Init Patch with maximum randomness
e.g.
perl repatch.pl Revival "Init Patch.repatch" 100 100
------------------------------------------------------------

Usage:
------------------------------------------------------------
It is actually very simple to use.  But I will explain in detail so you know all options.  If you have ever run a perl script before or really any type of script, just run:

perl repatch.pl RackExtensionName BasePatchName.repatch [randchance] [randdegree]

(Windows):
1) Open Windows Command Prompt.  Start Menu -> Command Prompt or Start Menu -> cmd.exe

2) Navigate to the directory where you saved the script and definitions

cd C:\Users\default.default-PC\Documents\Reason\REpatch

3) Execute the program by typing the command syntax into the Command Prompt

C:\Users\default.default-PC\Documents\Reason\REpatch>perl repatch.pl Revival "Revival Hawaiian Organ.repatch" 30 30


The first number is the percent chance any given parameter will be modified (or stay completely untouched).  Said differently, it is the percentage of parameters on the device that will be modified.

The second number is the amount any given parameter will be modified.  100 means it can be modified to any value within it's minimum and maximum range.  Lower numbers will keep it closer to the value it's already at.

You do not have to enter the numbers.  The default settings are stored in the script and are 30 30.  You can also change the default values in the script, if you find you are using certain random values quite frequently and don't want to type them every time.

If you open the program in a text editor you can read more about the arguments and flags, and you can change certain variables (such as path to the Definitions folder) to set it more to your liking.
------------------------------------------------------------

Download:
------------------------------------------------------------
https://www.dropbox.com/s/clrpwayus3eyyqj/repatch.pl
------------------------------------------------------------


Edit: P.S.
Currently I have tested this with Revival, PX7, and Antidote.  I assume it works with all of JoshuaPhilgarlic's definition files, but I don't have the other Rack Extensions to test it with.

Also, I realize one part in particular in the script is highly inefficient, but it really doesn't matter with modern computers.  If you want to improve the script, you are by all means welcome to.

Also, as with JoshuaPhilgarlic's project.  If anyone wants to create additional definition files using the same format, this script should be able to create patches for them without any further modification.

--

Update: If you are using the script for new patches, instead of mutations, spktkpkt has created an interactive version (less need for command line options).  See post #9 for explanation and download link.

Code: Select all

#!/usr/bin/perl
 
# usage
# perl repatch.pl RackExtensionName BasepatchName.repatch [randchance] [randdegree]
# randchance controls how many different settings on the device are impacted
# randdegree controls the degree to which affected settings are changed
# they are percentages between 0 to 100, if left blank, the values defined in the script are used
#
# Note: this script assumes it can find definition files in a folder ./Definitions/
# in the directory the script is run.  You can edit this by changing the $defpath variable
#
# example usage
# reset device -> save Init Patch.repatch
#
# perl repatch.pl Revival "Revival Init Patch.repatch" 100 100
#
# generates completely new patches
#
# perl repatch.pl Revival MyFav.repatch
#
# creates morph patches based on MyFav.repatch using the default settings for randchance and randdegree
 
# Define how many patches to generate each time
my $iterations = 10;
 
# Define degree of randomness 1-100
my $randchance = 30;
my $randdegree = 30;
 
# Specify path to definitions
my $defpath = "./Definitions/";
 
# Toggle off certain types of variables, so they will not be modified, 1 or 0
my $modbool = 1;
my $modint = 1;
my $modfloat = 1;
 
use XML::Simple;
my $xml = new XML::Simple;
 
# Get timestamp for file name
 
my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst)=localtime(time);
my $timestamp = sprintf ( "%04d%02d%02d%02d%02d%02d", $year+1900,$mon+1,$mday,$hour,$min,$sec);
 
# Read arguments
 
my $rackextension = $ARGV[0];
my $basepatch = $ARGV[1];
 
if (($ARGV[2] ne "") and ($ARGV[2] >= 0) and ($ARGV[2] = 0) and ($ARGV[3] XMLin("${defpath}${rackextension}", KeepRoot => 1, ForceArray => 1) or die "Cannot open ./Definitions/${rackextension}: $!";
   
  # Open base patch
  my $base = $xml->XMLin("${basepatch}", KeepRoot => 1, ForceArray => 1) or die "Cannot open ${basepatch}: $!"; 
 
  # Create new patch file
  open(my $patch, ">", "${rackextension}${timestamp}v${i}.repatch") or die "Cannot create new patch file: $!";
 
  # Main loop
  my $arraysize = @{$base->{JukeboxPatch}->[0]->{Properties}->[0]->{Object}->{custom_properties}->{Value}};
  my $defarraysize = @{$def->{JukeboxPatch}->[0]->{Properties}->[0]->{Object}->{custom_properties}->{Value}};
  for ($j=0; $j {JukeboxPatch}->[0]->{Properties}->[0]->{Object}->{custom_properties}->{Value}->[$j]->{'property'};
    my $defproperty = "";
 
    for ($k=0; ($property ne $defproperty) && ($k {JukeboxPatch}->[0]->{Properties}->[0]->{Object}->{custom_properties}->{Value}->[$k]->{'property'};
      $param = $def->{JukeboxPatch}->[0]->{Properties}->[0]->{Object}->{custom_properties}->{Value}->[$k]->{'content'};
    }
 
    if (($k {JukeboxPatch}->[0]->{Properties}->[0]->{Object}->{custom_properties}->{Value}->[$j]->{'content'};
 
      # Generate new value
      if (($modbool == 1) && (index($type,"boolean") != -1) && (int(rand(100) + 0.5) {JukeboxPatch}->[0]->{Properties}->[0]->{Object}->{custom_properties}->{Value}->[$j]->{'content'} = $newvalue;
      } elsif (($modint == 1) && (index($type,"integer") != -1) && (int(rand(100) + 0.5)  $maxvalue) {
          $newvalue = $maxvalue;
        } elsif ($newvalue {JukeboxPatch}->[0]->{Properties}->[0]->{Object}->{custom_properties}->{Value}->[$j]->{'content'} = $newvalue;
      } elsif (($modfloat == 1) && (index($type,"float") != -1)) {
        $newvalue = ($curvalue*100 + rand($randdegree*2) - $randdegree)/100;
        if ($newvalue > $maxvalue) {
          $newvalue = $maxvalue;
        } elsif ($newvalue {JukeboxPatch}->[0]->{Properties}->[0]->{Object}->{custom_properties}->{Value}->[$j]->{'content'} = $newvalue;
      }
    } 
  }
 
   # Write Patch
   print $patch '', "\n";
   print $patch $xml->XMLout($base, RootName => undef);
 
  # Close open files
  close($patch);
 
}


User avatar
tiker01
Moderator
Posts: 1424
Joined: 16 Jan 2015

21 Jan 2015

JoshuaPhilgarlic wrote:Here's a copy of subnaut's post and the PERL script...

//Edit: Ah, just noticed you asked about the interactive version made by spktkpkt. I've no idea about that. Perhaps sombody else has a copy?
Yes indeed. I`ve got the other one working. Let me grab the opportunity to say thank you for writing the code and reposting it for me.


Anybody with an interactive version (Win)? Please!!!
    
Budapest, Hungary
Reason 11 Suite
Lenovo ThinkPad e520 Win10x64 8GB RAM Intel i5-2520M 2,5-3,2 GHz and AMD 6630M with 1GB of memory.
:rt: :reason: :essentials: :re: :refill: :PUF_balance: :ignition: :PUF_figure:

User avatar
JoshuaPhilgarlic
Posts: 389
Joined: 16 Jan 2015
Location: Munich/ Germany

27 Mar 2015

Hi folks!

I just added support for Mixfood Orange to REndomPatch! Let me say: this one is a grateful victim for REndomPatch - especially if you like experimental stuff and soundscapes :crazy: !!

Downloads:

REndomPatch (complete)
all RE definitions
Mixfood Orange only




User avatar
eusti
Moderator
Posts: 2793
Joined: 15 Jan 2015

27 Mar 2015

JoshuaPhilgarlic wrote:Hi folks!

I just added support for Mixfood Orange to REndomPatch! Let me say: this one is a grateful victim for REndomPatch - especially if you like experimental stuff and soundscapes :crazy: !!

Downloads:

REndomPatch (complete)
all RE definitions
Mixfood Orange only



Thank you for your tireless work! :)

D.

User avatar
Reasonistas
RE Developer
Posts: 876
Joined: 15 Jan 2015
Location: Morristown, NJ USA
Contact:

27 Mar 2015

JoshuaPhilgarlic wrote:Hi folks!

I just added support for Mixfood Orange to REndomPatch! Let me say: this one is a grateful victim for REndomPatch - especially if you like experimental stuff and soundscapes :crazy: !!

Downloads:

REndomPatch (complete)
all RE definitions
Mixfood Orange only


This is excellent.  Thank you Joshua!
ImageImage

User avatar
JoshuaPhilgarlic
Posts: 389
Joined: 16 Jan 2015
Location: Munich/ Germany

15 Apr 2015

I just updated Mixfood Orange. The new definition supports all 154 waveforms available in version 1.0.3 now :D !

Mixfood Orange

User avatar
JoshuaPhilgarlic
Posts: 389
Joined: 16 Jan 2015
Location: Munich/ Germany

20 Apr 2015

Just added support of Antidote's new wavetables!

Antidote

User avatar
eusti
Moderator
Posts: 2793
Joined: 15 Jan 2015

20 Apr 2015

Nice!!! Thank you!


D.

User avatar
JoshuaPhilgarlic
Posts: 389
Joined: 16 Jan 2015
Location: Munich/ Germany

26 May 2015

Here is support for FM4 :) !

FM4

User avatar
JoshuaPhilgarlic
Posts: 389
Joined: 16 Jan 2015
Location: Munich/ Germany

14 Jun 2015

Well, the next one isn't easy to handle, so you need to carefully think about what you do. Anyway, here is support for VECTO :D !!

Vecto

User avatar
JoshuaPhilgarlic
Posts: 389
Joined: 16 Jan 2015
Location: Munich/ Germany

17 Jun 2015

Even an Organ can be a target for random patches ;) !

Combo X-705 Space Organ

User avatar
JoshuaPhilgarlic
Posts: 389
Joined: 16 Jan 2015
Location: Munich/ Germany

26 Jun 2015

I you like SciFi movies, this one is made for you. Just randomize everything (except Master Level)!

Mixfood Unison Xs

User avatar
JoshuaPhilgarlic
Posts: 389
Joined: 16 Jan 2015
Location: Munich/ Germany

29 Jun 2015

Here's an update to REndomPatch 1.3.0:

REndomPatch 1.3.0 (software only)

Now, similar to Reason 8, it shows the last 10 used devices in the RE menu.

User avatar
JoshuaPhilgarlic
Posts: 389
Joined: 16 Jan 2015
Location: Munich/ Germany

09 Jul 2015

Some news:

Update for Vecto to cover the newly added modulation sources and destinations [Download here].

Even though Oberon offers some simple possibilities for randomisation by default, I made a REndomPatch anyway [Download here] ;) . Damn, this thing is a monster :D !!
Bildschirmfoto 2015-07-10 um 00.59.15.png
Bildschirmfoto 2015-07-10 um 00.59.15.png (72 KiB) Viewed 5073 times

User avatar
JoshuaPhilgarlic
Posts: 389
Joined: 16 Jan 2015
Location: Munich/ Germany

17 Jul 2015

If you're a fan of funny sweeps, this one is for you...

Driver

User avatar
eusti
Moderator
Posts: 2793
Joined: 15 Jan 2015

17 Jul 2015

Great to see this coming along! Thank you!

D.

User avatar
vectro
Posts: 55
Joined: 17 Jan 2015
Location: Sweden
Contact:

04 Jan 2016

Image
The file browser got german buttons?

User avatar
Catblack
Posts: 1022
Joined: 15 Apr 2016
Contact:

09 Dec 2016

This is amazing!
If you ain't hip to the rare Housequake, shut up already.

Damn.

User avatar
Noise
Competition Winner
Posts: 474
Joined: 16 Jan 2015
Location: Lisbon
Contact:

09 Dec 2016

I wish I had a mac :P
Albums: BandCamp | Youtubz: Noise Channel
Projects: P1 Easy Remote Mapping | Personal Refill Sale Store: https://payhip.com/noisesystems | Title Generator! untitled.noiseshadow.com

User avatar
Loque
Moderator
Posts: 11222
Joined: 28 Dec 2015

13 Dec 2016

Noise wrote:I wish I had a mac :P
I wish it would be a RE "Player" or something that generates randomness on a RE within Reason.
Reason12, Win10

Post Reply
  • Information
  • Who is online

    Users browsing this forum: No registered users and 3 guests