Xrns-lib Project Is Started!


(Ambivalence) #1

Hello all!
Backed up by the new XML-based XRNS module format, It-Alien and myself (backed up by taktik) have started a project on SourceForge to provide developers with a high-level and easy to use API for XRNS module manipulation. B)

There are a couple of prototype parsers already made (Python and Java) but they are not yet public. The thing is, we don’t have an agreed API established yet. Why not? Because we don’t actually know what do you want to do with XRNS modules!

So, it is all up to you! :walkman: If you have an idea of what could be done with an XRNS module, share it with us. All ideas will be considered and the most interesting will be implemented. So don’t wait: if you have a great idea of an application that manipulates XRNS modules, post it on the Great Ideas tracker of the project.

You can find the project website here: http://XRNS-Lib.sf.net

The Great Ideas tracker can be found here: XRNS-Lib Great Ideas Tracker.

Come by and share your ideas.

Best regards,
Ambivalence


(Unempty) #2

Wicked cool. I’ll make a translator to convert between shortcircuit^2 and renoise instruments/drumkits.

Question for devs: Is there a way to store metadata in renoise XML files that won’t be destroyed (so one can retain all info from other file formats, even what’s not supported by rns itself) when saving a song? A “comment” tag or similar that’s untouched but always kept would suffice just fine.


(It-Alien) #3

this metadata idea looks really good; takitk should let it be, if no security harms are created


(Unempty) #4

Not if renoise never uses the data, it shouldn’t. Unless being able to embed the entirety of wikipedia into a song counts as a security issue. ;)

A blue sky idea: It’d be incredibly cool to be able to for instance embed RDF data or something similar with “bibliographical information” about the author and related references. Example: Display sources/owners of all samples used in a song. Or an album cover. You get the idea. :)

This’d also be a surefire way to guarantee simple cross-compatilibity between different future revisions of the file format, and possibly other other program’s formats as well.

I think keeping it simple is the ticket. Something like this:

  
<!-- Inside .xrns file -->  
.  
.  
.  
<metadata><br>
  <meta>whatever<br>
  <meta>
<br>
	<some><random>unrelated, structured, data</random></some><br>
  <br>
  <meta>
<br>
	<rdf xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:ai="http://www.renoise.com/artistinfo#"><br>
		<description rdf:about="http://www.w3schools.com/RDF"><br>
		  <author>Unempty</author><br>
		  <email>unempty@gmail.com</email><br>
		<homepage>http://www.unempty.com</homepage><br>
	  </description><br>
	</rdf><br>
  <br>
  <meta>
<br>
	<icon type="image/gif">R0lGODlhEAAQAJECAP39AFNTAAAAAAAAACH5BAEAAAIALAAAAAAQABAAAAItlA2px6K/GJzgqIATDvFmsC1PCH4TSZ5fSrXuq7Vc4pQqXdtelG9p82pYII0CADs=</icon><br>
  <br>
</metadata>  
.  
.  
.  

A good article on extensible file format design.

Just an idea. :)


(Transcender) #5

This is a great initiative. I regret that my personal schedule is bound to so many commercial projects, otherwise I would gladly participate. I’ll post some ideas though.


(datassette) #6

This is a great idea, I’d love to chip in but I’m so busy I haven’t even had time to try out Renoise1.8 yet! :(

(just realised my post is almost identical to the one above it :? )


(choice) #7

man, this is dope!!!

at the risk of being looked as lazy im going to post an idea here that i really need!!

i need something to strip down the xrns modules an convert them into milktracker compliant XM modules.

so i can work with them on this device running it:

(i havent taken a picture of it yet)

would this be pretty damn hard?


(Ambivalence) #8

Quite hard, yes. OK, I’ll add your idea myself to the Great Ideas Tracker. But I don’t quite get it: you obviously mean Milkytracker, right? What about VST effects, internal effects, multi-note tracks, automation, etc.? How would you see it converted?


(It-Alien) #9

well, of course he wouldn’t want to convert VST instruments: he would just like to convert “plain” sample-based songs from RNS to XM.

I ask myself why people keeps on wanting RNS2XM conversion: if you need to write an XM, use Milkytracker!

If anyone wants, feel free to use this API to create such a tool, but I don’t think the whole XML stuff has been conceived to convert RNS to an 10+ years old format.
To give a practical idea of what I’m talking about, a great tool would be something which creates an automation which spans along more than one pattern:

input:

  • the name of the parameter to be automated
  • the patterns sequence along which the parameter has to be automated
  • initial parameter value
  • final parameter value
  • type of automation curve (points, lines, cubic)

output:

  • XML code for as many automation envelopes as needed according to input

(Tom de Rooy) #10

perhaps a converter from rni to xrni (for compressing to flac)
Is this much work to make? I dunno…


(It-Alien) #11

RNI documentation is not available, so I cannot say how hard it would be


(choice) #12

me inserting foot in mouth
that was very backwards of me!
i should have just logged into sf before i wrote that…

dunno how all this slipped my mind, xrns to xm would surely not work, the amount of automation i use, would make for a module that would not even run on the 129mhz mips, let alone tweaking the samples to fit on a 1 gig cf card!

okay, heres one that ive been thinking about. for quite awhile.

a way to create preference rule sets, using song pattern & automation data.

these preference rule sets, would then be used by another application to create new patterns based entirely on the preference rules of the inputted modules pattern & automation data.

once defined, the other application(s) would use the sets as a reference to direct the flow of non realtime generation while making sure the module remains within the constraints of xrns format, so that no conversion would have to be done afterwards.

this would have to be discussed thoroughly, an im not sure if this is possible yet with xrns. technically i believe this is called pseudo algorithmic, but to me it would be more of directed algorithmic composition. i havent been keeping up!


(Johann) #13

Something that lists the VST fx and instruments used in a song, and how often they are used… (to weed out VST’s that are rarely or never used).


(Johann) #14

yay + oops + thanks!


(Crasher) #15

I’d like that someone does the hard work for me <_<
Hard work is XML parsing, DSP effects, Automation handling etc.
Then I (or most likely someone else) could (more or less) easily code a plugin for BASS or something for some reason:

  • To play XRNS with XMPlay or some other module player (because, I think that Renoise is tracking software, a program to make it - it ain’t suitable for just listening to stuff… I mean music)

  • To code my musicdisk - OK, I could render the modules and convert them to MP3 or similar, but somehow I don’t seem to like this option :)

OK, it can might as well be another type of lib to play (…) XRNS, but I’m just too addicted to Bass…

Might as well look at this post then…


(ilkke) #16

Hi peps, my first post here.

I would also love to be able to play xrns in xmplay, winamp or some other player.
Sometimes I make tiny tunes using only internal renoise effects and I would prefer to give someone a <50kb file that can loop itself, than a big fat mp3.

Of course the player would be unable to play VST, but it would still prove quite useful. Not to mention that renoise could be used in intros etc and I think that would pay homage to the scene nicely, thus completing the circle ;D

i


(It-Alien) #17

firstly, we should understand where in the world Ambivalence is now, and what is he doing…


(ror6ax) #18

Sorry, but the site on Sourceforge is down. Is the project alive? I need Python lib for XRNS, is out there any exept this one?


(It-Alien) #19

no, Ambivalence has just disappeared a couple of months after the announcement, sorry.

he has never replied to my contact requests and never told me the reason for this behaviour. Probably real life issues made him act like this


(vV) #20

I guess we could start a similar project in Lua and share the source on the Lua scripting source site, that way the code doesn’t get lost that quickly.
Include extra quickstuff like this: