Renoise note columns are purposely circumvented, otherwise the conversion makes no sense, where in every mainstream MIDI sequencer one “row” is one “instrument”.
As long as your drumkit is a single multi-timbral Renoise instrument, no matter what colunms you put the notes using Renoise, it will be grouped in one MIDI track using this conversion script.
That being said, please file a Feature request at sourceforge. The idea is a decent one.
…like, very very very long. I used Kaneel’s BB5 track as my test. I tried putting the references back on $len = _readVarLen($binStr, &$p); and it went faster by 80 seconds for Kaneel’s track. But still, not significant by any means.
As a side note, objects are now passed by reference by default in PHP5, but as far as I know &$p is not defunct, as $p in the context of the code is just a plain variable, and can be either a copy or a reference, depending on the use of &, so &$p is fine.
Anyway, I don’t understand how it could have gotten slower. Specifically since the parts of the code it is slow on are calling midi.class.php which has not really changed? I’m at a loss…
I didn’t think of the instrument-grouping, thanx for pointing that out. I added a request, hope you don’t mind it’s “anonymous”, I didn’t want to register just for that.
My MAMP upgrade was logging errors to a file instead of printing them to screen. Currently set to 8MB max memory which is why it was failing upon upgrade.
I hadn’t had time to check the script with proper adjustments, but will do so this weekend when time permits.
What do you mean with this? Changes in the PHP code should be reflected with each new execution of the script and GUI changes in the .cfg file are visible as soon as you switch to another script in the GUI and then back to it.
When PHP is running in SAFE mode this will have no effect. Maybe you should explicitly set it to OFF, just to be sure it works with other PHP installations.
That’s really odd. The PHP interpreter exits after the script was run, so i don’t see how it could cache files? Also tried it here and it works as expected. Might be something with your installation.
[dac514@iMac][~/code/xrns-php/scripts]
[10:15:07]$ php xrns2midi.php ~/Desktop/test/retrig.xrns ~/Desktop/test/output.midi
Current PHP version: 5.2.6
---------------------------------------
XRNS2MIDI v0.22 is working...
Sun Feb 1 10:15:33 EST 2009
---------------------------------------
Using temporary directory: /private/var/tmp
Input: /Users/dac514/Desktop/test/retrig.xrns
Output: /Users/dac514/Desktop/test/output.midi (+.xml, +.txt)
XRNS Document Version: 7
Warning: schemas/RenoiseSong7.xsd not found, skipping XML validation.
Document has succesfully passed validation.
Parsing pattern [0]: 0 ...
__Collected events from Song.xml in 9ms
Commited global events in 1ms
Sending events for MidiTrack 0...
Sending events for MidiTrack 1...
__Completed sending events to MIDI Class in 3ms
Exported to MIDI file in 2ms
Total execution time: 0.388 seconds
---------------------------------------
xrns2midi.php is done!
Sun Feb 1 10:15:33 EST 2009
---------------------------------------
MFile 1 2 96
MTrk
0 Meta Marker "Pattern [0]: 0 "
0 Tempo 468750
1537 Meta TrkEnd
TrkEnd
MTrk
0 Meta 0x20 0
0 Meta TrkName "00: Unnamed"
0 Meta InstrName "00: Unnamed"
0 On ch=1 n=64 v=127
1536 Off ch=1 n=64 v=0
1537 Meta TrkEnd
TrkEnd
I’m using the latest version from CVS. No changes in my CPU since 2005.
Changes:
Fixed the XRNS2MIDI and XRNS_MERGE scripts to work with Renoise 2.5, unmaintained scripts are now in a separate “deprecated” directory, minor optimizations and bug fixes.
i got a problem while trying to convert xrns to midi with renoise 2.5.1
here is the following error message :
Exception occured System.NullReferenceException: La référence d’objet n’est pas définie à une instance d’un objet.
à NRenoiseTools.SongIterator.Iterate(SongIteratorEvent it)
à NRenoiseTools.SongIterator.prepareTempoForSong()
à NRenoiseTools.SongIterator.get_Tempos()
à NRenoiseTools.Xrns2MidiApp.Xrns2Midi.RenoiseMidiSong…ctor(Song song)
à NRenoiseTools.Xrns2MidiApp.Xrns2Midi.ConvertFile(String xrnsFile, String midiFile, TextWriter log)
i’ve tried to turn off automation and/or delete all dsp but nothing works,