Merge Songs

(vV) #61

You might want to try do something with Glade if it regards making a GUI environment, you need GTK+ though:

Glade for Windows:

Linux Glade:

Glade for Mac:

Or if you plan to download GTK anyway, try PHP gtk:

(Conner_Bw) #62

GTK would definitely be cool to try, but it might be an exercise in futility? Getting the script up and running would still require the same user effort, if not more. It’s the same thing with Java on Windows. Does the GUI offer any advantage to a user who already knows how to set up PHP5 or JAVA on a system without it?

In terms of interactivity, Cake PHP looks really nice but I definitely could make the script interactive without a MVC paradigm. Even just a basic splitting up the scripts into a few files that depend on each other with includes/requires, possibly encapsulated in classes, would definitely make writing new algorithms easier (in fact, that’s how I’m working on my own machine) But again, I’m trying to force myself to keep all the code in one file so it functions as an “easy to install” script that users can cut and paste into a single file without having to think of dependencies. Personally, i’d rather be using console packages from PEAR. It’s another trade-off.

Anyway, I’m up for seeing mutations of the code. If anyone wants to post their own versions, I always enjoy looking.

(Conner_Bw) #63

Scripts have moved:

(Conner_Bw) #64

Top secret and no pressure, BeatSlaughter is working on a (windows) front-end self-packaged GUI for this and the randomize script which looks very promising. Perhaps even with the possibility of auto generating simple GUI dialogues for any script of this style. Time will tell.

(vV) #65

Well if you want front end code in out-of-the-box binaries i think you are doomed to multiplatform sourcecode that gets compiled in different environments.
I personally only know XBasic as the most easy programming language on multiplatform (and runs fast!) that might with a few adjustments be compilable on MacOsx, however it has been designed for Windows and Linux. But once your GUI tool works, it will compile without problems on all three platforms.

(Conner_Bw) #66

I found this for OS X last night, first I’ve ever heard of it, and it’s really good:

Again, the issue of not being multi-platform comes up, but the above is a very nice & simple solution to the problem of script GUI for Mac, any shell script language in fact. I wrote a GUI, using PHP, in 5 minutes. This still doesn’t solve not having PHP5 on the system, and when I packaged the script as a self contained application everything gets sent to console.log which is confusing for a newbie. Anyway, it’s something I’m working on it for fun.

(Beatslaughter) #67

Check your Mail, i’ve sent you a first alpha version.

(Beatslaughter) #68

Ok, here is the first public version of the frontend for windows users. The download contains everything you need in an easy to use package for running the scripts connor_bw wrote. The frontend is currently in alpha stage and will get some updates over the next time. In case you find any flaws, report them here.

[/b]Below are some screenshots, how it looks like.[b]


(Conner_Bw) #69

Awesome work Beatslaughter!!!

The cool part about this front end is that it’s a generic implementation for any PHP script. Each .php script has a corresponding .cfg file that, if you open in a text editor, you can see the dialogues are automatically generated from keywords.

caption=XRNS Merge 1.0  
description=XRNS Merge is a script, which allows you to join two XRNS files and save the result into a new file. Coded by Dac Chartrand.  
gui=label(Select the files you want to join:); file; file; label(Specify the destination file:); output  
caption=XRNS Randomizer 1.0  
description=XRNS Randomizer is a script, which allows you to randomize a XRNS file using one of two different randomization modes and save the result into a new file. Coded by Dac Chartrand.  
gui=label(Select the file you want to randomize:); file; label(Specify the destination file:); output; label(Select a randomization mode:); options(chaos, shuffle)  

So, in theory, a future script could look like

description=Insert Description Here  
gui=label(Your Text:); file; file; file; output; file; options(first, second, third); options(4, 5, 6); label(More Text)  

And the front end would feed the command line like:

php future_script.php file1.xrns file2.xrns file3.xrns output.xrns file4.xrns third 5  

Which is f****ing the bomb people!

(Conner_Bw) #70

There’s a bug in xrns_randomizer.php because of two “” characters.

Change line 27 to:
$unzip_xrns = ‘unzip “@SRC@” -d “@DST@”’; // info-zip assumed to be in path

Change line 39 to:
$zip_xrns = ‘zip -r “@DST@” .’; // info-zip assumed to be in path

Also, ask beatslaughter about the console version, I just got it via email and prefer it (the command prompt window stays open so you can see what is happening)

Good stuff!

(Beatslaughter) #71

All files updated, including the console version. Just redownload.

(pilot7) #72

edit: n/m seems i gotta install php libraries :blink: wish me luck. (lots of it)

(mr_mark_dollin) #73

Wonderful! The Merge script is going great here. Only minor issues here like when the bmp isn’t specified in the pattern code of the second song the first song’s bmp holds. Nothing you can’t quickly fix up by hand though.

Had no errors here with the randomizer too. Wow the potential with these tools is mind boggling.

The GUI makes its ultra easy. Please setup paypal donate buttons on your websites so I can show the love ;)

(Conner_Bw) #74
  1. Have windows and an RAR unpacker
  2. Download:
  3. UnRAR everything into it’s own directory
  5. Double Click xrns-sf.exe
  6. Run the script(s)…

It should work out of the box, so to speak. Do not follow any of my advice about moving shit around when using this, it works as a standalone.

If you still experience problems, cut & paste from the console so I can debug it.


(mr_mark_dollin) #75

Edited the first post of the thread with you instructions. I’ll keep it updated until the software is added in the xrns Tools section.

(Conner_Bw) #76

Awesome, thanks Foo?

PS: Please use these new (July 10th) versions:

  • p7 was having errors with the frontend/script which i debuged via irc. UnzipAllFiles() $res was the culprit
  • I moved the schema override near line 157 under // Check Variables
  • credited Beatslaugher in the source code
  • a bunch of other clean ups that make this script easier on the eyes


(plastik) #77

ok, in reference to the randomizing.

i thought it’d be cool to also be able to randomize notes based on different scales for coming up with neat melodies, kinda pseudo-arpeggio, just not using the effect column. hence random notes. anyways, i could have done the algorithm (maybe), but you guys already got the randomize stuff happening so you could implement it better. these are only a few of many many scales, they’re are just the ones i use the most. i hope you guys find the idea useful. I made a note generator based on a LOT of scales in max/msp that randomized notes/chords/how many times the notes/chords played etc. it then outputted them as a midi file to load into cubase. i found this great for melodies.

I hope you guys can somehow use the same idea, like just add a randomize by scale option maybe? implement it to randomize the notes based on a randomized scale, or a selected scale. Complete randomization, how many times the note is played, chords, whatever you can think of. PURE MELODIC IDM FUN. also i’d randomize all the above but also randomize the octaves of the scales… possibly 1 octave lower and 1 octave higher than middle c, along with the octave of middle c. or whatever you really want to do.

harmonic minor.xrns
melodic minor.xrns
pentatonic blues.xrns
pentatonic major.xrns
pentatonic minor.xrns
pentatonic neutral.xrns

also it should go without saying, but these are only root c. obviously different roots could be used, the simplest of music theory. maybe it could also randomize a root to use, and obviously each octave generated would use the same root, but possibly still different note variations.

(Transcender) #78

Yes!! This is a wonderful idea (which I also suggested in August last year in the Ideas & Suggestions forum section)!

Big thanks to Conner_Bw and Beatslaughter for developing the scripts and GUI-executables!

(Conner_Bw) #79

Hey all, the scripts have been updated (1 last time?), they are currently up to date in the Beatslaughter interface, so… re-download?

I will update the TROTCH page later this evening. Feedback is appreciated. Thanks to P7 who found a bug that we were able to resolve via IRC. I will look into these other randomize algorithms, but not today. I am not very well versed in music theory, but if I understand it programmatically I’m pretty sure I can do it. Although, someone else probably could too. The more scripts the merrier!

(plastik) #80

i think everyone with coding experience should get involved. Along with these ideas, there’s probably tons more to be done. I’m sure it wouldn’t be hard to make a “instaglitch” type script that manipulates sample offsets and random reverses, etc,etc,etc. (that’s for you jbl, no more instajungle :D) by manipulating the sample. i might try a few things in c# with the libraries shortly, if i get motivated enough.