Jump to content


Photo

Aleatoric Sequence Generator For Renoise


  • Please log in to reply
28 replies to this topic

#1 subset

subset

    Chief Above Chief Member

  • Normal Members
  • PipPipPipPipPipPip
  • 288 posts

Posted 11 March 2008 - 16:31

After seeing the Psymachine topic the other day, I remebered a very old Delphi app I wrote for probabilty driven sequences for ModPlug. Because of this, and the fact that I needed to practice my jQuery skills, I tried to recreate it in XHTML and Javascript only. It started as an excercise rahter then something serious, but it turned out quite nicely and I wanted to share it with you. Here it is:

Renoise Track Generator

I suppose the controls are pretty self explanatory. Simply put, you drag the sliders to set probabilities for the notes you wish to be part of the sequence, for the octave distribution, then probability for a note to appear on each position (64 lines hard-coded), and velocty curve for the generated sequence. Then hit "Generate" and you have it. Copy the XML data and paste it on a track in your Renoise pattern.

I managed to get some pretty neat melodies, basslines and drum sequences with it.

Try it if you like. Let me know if you have any ideas for improvement. I feel kinda enthusiastic about developing this little thing further. :)

#2 Transcender

Transcender

    Big Masta Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPip
  • 575 posts

Posted 11 March 2008 - 19:11

Really nice work! Many thanks for publishing this wonderful tool.

Edit:

My suggestion for further development is to allow the user to copy-paste FROM a Renoise track INTO this application. There, the application would re-arrange the submitted notes (similar to how the Matrix device in Reason works), rotate them, etc -- either at random or in accordance with some set of rules.

What do you think of this idea?

Edited by Transcender, 11 March 2008 - 19:17.

If you wrestle with a pig, it matters not whether you win or loose, because you both end up covered in mud, and the pig likes it.

#3 datassette

datassette

    Big Masta Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPip
  • 511 posts
  • Gender:Male

Posted 11 March 2008 - 20:24

Excellent work!

Been meaning to make something similar myself for ages but haven't had time

#4 ashy!mpala

ashy!mpala

    Guruh Motha Fakka is Levitating and Knows Everything About Renoise Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 1222 posts
  • Gender:Male
  • Location:Iran
  • Interests:Sequencing vertically

Posted 11 March 2008 - 20:56

Interesting, and also joyful! Thanks for sharing.

Ashkān Asgary, aka ashy!mpala (which is ashyimpala)
soundcloud | TiS
 


#5 s-n-s

s-n-s

    Guruh Motha Fakka is Levitating and Knows Everything About Renoise Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 2029 posts
  • Gender:Male

Posted 11 March 2008 - 22:19

nice job,but have you thought about making this as a stand alone version (if its possible)for those that dont have internet access on their music computers(me)

Subbase - Danish Dark DnB


#6 subset

subset

    Chief Above Chief Member

  • Normal Members
  • PipPipPipPipPipPip
  • 288 posts

Posted 11 March 2008 - 22:41

Thanks for the kind words. I'm glad you like it. :)

@ Transcender: I like your idea. I think the jQuery library has good XML parsing functions so analyzing Renoise track data may be possible. I'll have to do some reading to be sure. Once the pasted data is parsed, re-arranging things automatically should be quite easy.

@ s-n-s: It was exactly because of people with no Internet on their music computers that I wanted to restrict myself to Javascript. The thing would've been easier to do and potentially more powerful with some server-side scripting language like PHP. But the way it is now, everything is done locally by your browser. So, you can simply save the complete web page together with the linked Javascript and CSS files and just use your local copy. It will be fully functional and will work on any OS.

#7 danoise

danoise

    Probably More God or Borg Than Human Member

  • Renoise Team
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 6041 posts
  • Gender:Male
  • Interests:wildlife + urban trekking

Posted 12 March 2008 - 02:14

Excellent work, you even got the colorscheme right ;-)

Tracking with Stuff. API wishlist | Soundcloud


#8 Djeroek

Djeroek

    Probably More God or Borg Than Human Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 6623 posts
  • Gender:Male
  • Location:Borneo

Posted 12 March 2008 - 16:49

Thanks for this great fun toy!

Maybe you can also include fields for panning, delay (DX) and randomise patterncommands & values (offline dblue glitch? :) )

#9 subset

subset

    Chief Above Chief Member

  • Normal Members
  • PipPipPipPipPipPip
  • 288 posts

Posted 12 March 2008 - 23:09

I found some time today to implement Transcender's idea. You can now paste some track data into the generator. Then hit "Analyze" and all the note and octave probabilities will be populated according to the distribution in the original pattern.

The position probabilities are set to directly match the note positions. That is, if there is a note (or a note-off, they are treated the same way) = 100%; if no = 0%. This way the rhythm of the melody is preserved. Of course, if you have no note-offs in the original track then it will preserve it best.

I added a "Nudge" button that will randomize things just a little bit - 10% above or below the current value. I think it's a convenient way to make some little automatic changes.

I tested it a bit and it seems to work exactly as intended. Have fun with it! :)

#10 Conner_Bw

Conner_Bw

    Probably More God or Borg Than Human Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 7043 posts
  • Gender:Male
  • Location:Montreal, Quebec, Canada

Posted 13 March 2008 - 16:56

First, i think this is a cool tool. Nice one.

I went back to check your modifications and the page did not work. A reload fixed the problem. It was a cache issue. I looked at the source code (I will be downloading this because it is a good lesson in jQuery) and noticed <rtg.js?1>, maybe you could have incremented to <rtg.js?2> to avoid the caching issue? Isn't that why you put the ?1 there in the first place?

Also, could you make a stand alone archive for downloading? Like, zip up all the stuff and add a download link at the bottom? I know you said you can download the page with a decent browser, but it would be cool to have an official offline version.

Thanks!

cpu Lenovo X220, Intel i7-2640M @ 2.80GHz ×4 os Windows 10 / Ubuntu 16.04 LTS
My Homepage » : My Renoise Tools » : Normalize Your Sig » : One million clicks! »


#11 subset

subset

    Chief Above Chief Member

  • Normal Members
  • PipPipPipPipPipPip
  • 288 posts

Posted 13 March 2008 - 21:59

Hey, Conner. Yes, the caching screwed things up a bit. The first version of the page didn't have a no-cache pragma and most people should need to reload to get the latest version. From now on, any modifications should show up without reloading.

The "?1" is there to prevent the caching of the javascript, like you guessed. The initial version didn't have it at all. Like I said in the first post, the whole thing didn't start much seriously, so I overlooked these little tricks.

Oh, and I put a zip and link to it there. Now it's official. ;)

#12 RANSOM

RANSOM

    Big Super GrandMasta Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPip
  • 785 posts
  • Gender:Male

Posted 14 March 2008 - 11:30

Superb. Now we have such type app for mac!

#13 Kara

Kara

    Super Advanced Member

  • Normal Members
  • PipPipPipPip
  • 129 posts

Posted 14 March 2008 - 12:17

The new analyze function doesn't seem to work here ?
This is the data i pasted :

[CODEBOX]
<?xml version="1.0" encoding="UTF-8"?>
<PatternClipboard.BlockBuffer doc_version="0">
<TrackColumns>
<TrackColumn>
<TrackColumn>
<Lines>
<Line index="0">
<NoteColumns>
<NoteColumn>
<Note>D-5</Note>
<Instrument>02</Instrument>
</NoteColumn>
</NoteColumns>
</Line>
<Line index="1"/>
<Line index="2"/>
<Line index="3"/>
<Line index="4"/>
<Line index="5"/>
<Line index="6"/>
<Line index="7"/>
<Line index="8"/>
<Line index="9"/>
<Line index="10">
<NoteColumns>
<NoteColumn>
<Note>OFF</Note>
</NoteColumn>
</NoteColumns>
</Line>
<Line index="11"/>
<Line index="12"/>
<Line index="13"/>
<Line index="14">
<NoteColumns>
<NoteColumn>
<Note>F-5</Note>
<Instrument>02</Instrument>
</NoteColumn>
</NoteColumns>
</Line>
<Line index="15">
<NoteColumns>
<NoteColumn>
<Note>OFF</Note>
</NoteColumn>
</NoteColumns>
</Line>
<Line index="16"/>
<Line index="17"/>
<Line index="18"/>
<Line index="19"/>
<Line index="20"/>
<Line index="21"/>
<Line index="22"/>
<Line index="23"/>
<Line index="24">
<NoteColumns>
<NoteColumn>
<Note>E-5</Note>
<Instrument>02</Instrument>
</NoteColumn>
</NoteColumns>
</Line>
<Line index="25"/>
<Line index="26"/>
<Line index="27"/>
<Line index="28">
<NoteColumns>
<NoteColumn>
<Note>OFF</Note>
</NoteColumn>
</NoteColumns>
</Line>
<Line index="29"/>
<Line index="30"/>
<Line index="31"/>
<Line index="32">
<NoteColumns>
<NoteColumn>
<Note>G-5</Note>
<Instrument>02</Instrument>
</NoteColumn>
</NoteColumns>
</Line>
<Line index="33"/>
<Line index="34"/>
<Line index="35"/>
<Line index="36"/>
<Line index="37"/>
<Line index="38"/>
<Line index="39"/>
<Line index="40">
<NoteColumns>
<NoteColumn>
<Note>OFF</Note>
</NoteColumn>
</NoteColumns>
</Line>
<Line index="41"/>
<Line index="42"/>
<Line index="43"/>
<Line index="44">
<NoteColumns>
<NoteColumn>
<Note>A#5</Note>
<Instrument>02</Instrument>
</NoteColumn>
</NoteColumns>
</Line>
<Line index="45"/>
<Line index="46"/>
<Line index="47"/>
<Line index="48">
<NoteColumns>
<NoteColumn>
<Note>OFF</Note>
</NoteColumn>
</NoteColumns>
</Line>
<Line index="49"/>
<Line index="50"/>
<Line index="51"/>
<Line index="52"/>
<Line index="53"/>
<Line index="54"/>
<Line index="55"/>
<Line index="56"/>
<Line index="57"/>
<Line index="58"/>
<Line index="59"/>
<Line index="60"/>
<Line index="61"/>
<Line index="62"/>
</Lines>
<ColumnType>NoteColumn</ColumnType>
</TrackColumn>
<TrackColumn>
<Lines>
<Line index="0"/>
<Line index="1"/>
<Line index="2"/>
<Line index="3"/>
<Line index="4"/>
<Line index="5"/>
<Line index="6"/>
<Line index="7"/>
<Line index="8"/>
<Line index="9"/>
<Line index="10"/>
<Line index="11"/>
<Line index="12"/>
<Line index="13"/>
<Line index="14"/>
<Line index="15"/>
<Line index="16"/>
<Line index="17"/>
<Line index="18"/>
<Line index="19"/>
<Line index="20"/>
<Line index="21"/>
<Line index="22"/>
<Line index="23"/>
<Line index="24"/>
<Line index="25"/>
<Line index="26"/>
<Line index="27"/>
<Line index="28"/>
<Line index="29"/>
<Line index="30"/>
<Line index="31"/>
<Line index="32"/>
<Line index="33"/>
<Line index="34"/>
<Line index="35"/>
<Line index="36"/>
<Line index="37"/>
<Line index="38"/>
<Line index="39"/>
<Line index="40"/>
<Line index="41"/>
<Line index="42"/>
<Line index="43"/>
<Line index="44"/>
<Line index="45"/>
<Line index="46"/>
<Line index="47"/>
<Line index="48"/>
<Line index="49"/>
<Line index="50"/>
<Line index="51"/>
<Line index="52"/>
<Line index="53"/>
<Line index="54"/>
<Line index="55"/>
<Line index="56"/>
<Line index="57"/>
<Line index="58"/>
<Line index="59"/>
<Line index="60"/>
<Line index="61"/>
<Line index="62"/>
</Lines>
<ColumnType>EffectColumn</ColumnType>
</TrackColumn>
</TrackColumn>
</TrackColumns>
</PatternClipboard.BlockBuffer>
[/CODEBOX]

Edit Taktik: added pasted code into \[CODEBOX\]
Our free services at www.kara-moon.com :
> Free artist hosting
> Big sample pool, completly free download
> Join the Music auditorium and get indepth comments on your song
> Download free Vsti from our developpers section

My home page : Here

#14 subset

subset

    Chief Above Chief Member

  • Normal Members
  • PipPipPipPipPipPip
  • 288 posts

Posted 14 March 2008 - 13:14

@Kara: Could you be more specific? What does "doesn't seem to work" mean exactly?

It works for me. All the probabilities are set exactly. Indeed, there was a minor bug - the instrument number wasn't set. It's fixed now. But was this what you meant?

Try refreshing the page to make sure you're using the latest version.

#15 Kara

Kara

    Super Advanced Member

  • Normal Members
  • PipPipPipPip
  • 129 posts

Posted 14 March 2008 - 14:05

When I click on analyse, nothing happens ?
i'm on ie7

k
Our free services at www.kara-moon.com :
> Free artist hosting
> Big sample pool, completly free download
> Join the Music auditorium and get indepth comments on your song
> Download free Vsti from our developpers section

My home page : Here

#16 subset

subset

    Chief Above Chief Member

  • Normal Members
  • PipPipPipPipPipPip
  • 288 posts

Posted 14 March 2008 - 15:27

Hm, I see now. You're right, Analyze doesn't work in IE7. I tried to make some changes to make it run but no luck.

It's no surprise though. IE always sucked and I suppose it always will. It chokes even on the simplest of things, let alone something more unusual. I may try again, but can't promise anything.

Meanwhile, everything works perfectly fine in Firefox, Safari and Opera.

Do yourself a favor and get Firefox. ;) Not because of this tool only, of course, but because it's simply a much much better browser.

#17 taktik

taktik

    Renoise Developer

  • Admins
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 15040 posts
  • Gender:Male
  • Location:Berlin, Germany
  • Interests:füße waschen

Posted 14 March 2008 - 18:10

subset: Awesome! Thanks a bunch for this.

#18 Beatslaughter

Beatslaughter

    Guruh Motha Fakka is Levitating and Knows Everything About Renoise Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPip
  • 2276 posts
  • Gender:Male
  • Location:Berlin, Germany
  • Interests:Music, Blu-ray, PC Games

Posted 15 March 2008 - 14:12

Just had a play with this... very nice, we need more Renoise tools. :)

#19 a2n3d7y

a2n3d7y

    Super Advanced Member

  • Normal Members
  • PipPipPipPip
  • 179 posts
  • Gender:Male
  • Location:east bay, California

Posted 17 March 2008 - 02:42

Thanks a 1,000,000'z

#20 Djeroek

Djeroek

    Probably More God or Borg Than Human Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 6623 posts
  • Gender:Male
  • Location:Borneo

Posted 18 March 2008 - 17:23

(@ subset) Is it possible for you to code the possibility for longer patterns (>64) ? Please :-)

#21 subset

subset

    Chief Above Chief Member

  • Normal Members
  • PipPipPipPipPipPip
  • 288 posts

Posted 19 March 2008 - 11:18

(@ subset) Is it possible for you to code the possibility for longer patterns (>64) ? Please :-)


Well, I tried and made such a version, but I'd label it "beta" for now. Having more elements to interact with, makes things considerably slower. On my PC here the performance is somewhat sluggish. Check it out on http://renoise.hit.bg/beta/ and let me know if it works reasonably.

There are page buttons above the position and velocity sections: 0-63 and 64-127. Having all the positions on one page would make the sliders too thin to control.

It's hardcoded to 128 rows now. I can imagine 256 will be unbearable. OTOH, making the row count dynamic may help for the general case of 64, but it'll be quite complex to do. I'm not sure it will be worth the work. You could always generate several times for longer patterns.

Edited by subset, 19 March 2008 - 11:22.


#22 jikay

jikay

    Member

  • Normal Members
  • PipPip
  • 22 posts

Posted 23 March 2008 - 23:48

This is awesome. Really really awesome.

Thanks!

#23 Transcender

Transcender

    Big Masta Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPip
  • 575 posts

Posted 04 April 2008 - 14:03

I think this tool should also be included on the Renoise official tools page at http://www.renoise.com/download/tools/
If you wrestle with a pig, it matters not whether you win or loose, because you both end up covered in mud, and the pig likes it.

#24 Conner_Bw

Conner_Bw

    Probably More God or Borg Than Human Member

  • Normal Members
  • PipPipPipPipPipPipPipPipPipPipPipPipPipPipPip
  • 7043 posts
  • Gender:Male
  • Location:Montreal, Quebec, Canada

Posted 13 April 2008 - 18:31

I think this tool should also be included on the Renoise official tools page at http://www.renoise.com/download/tools/


Me too.

Who's updating those pages? Not everyone reads the forums, no?

Edited by Conner_Bw, 13 April 2008 - 18:31.

cpu Lenovo X220, Intel i7-2640M @ 2.80GHz ×4 os Windows 10 / Ubuntu 16.04 LTS
My Homepage » : My Renoise Tools » : Normalize Your Sig » : One million clicks! »


#25 Guest_Bantai_*

Guest_Bantai_*
  • Guests

Posted 14 April 2008 - 16:43

Added.

http://www.renoise.com/download/tools/