Page 1 of 2

xm2esf v1.00 RC2 released

Posted: Fri Sep 28, 2012 4:53 pm
by Oerg866
Hi,

I released xm2esf 1.00 RC2 today... It's been almost a year since I posted an update! I got motivated due to me having to use this program quite intensely, and I got pretty tired by its bugs, so I decided to fix them!

Code: Select all

== <xm2esf 1.00 RC2> ============== 09-28-2012

- Fixed Portamento up / down
- Fixed new notes not triggereing when effects 1xx and 2xx are on the same row 
- Fixed reset volume on note-on
- Fixed conditions for resetting volume on note-on
- Fixed current note value getting updated for 2xx but not 1xx
- Fixed terrible mistakes in portamento 3xx code..... 
  The checks weren't working, the conditions were wrong, 
  I'm surprised portamentos even worked in the first place
- Removed silly hacks 
- Fixed portamentos incorrectly carrying on from a non-slide effect (like arpeggio, vibrato, etc.), 
  taking previous, perhaps uninitialized data as base note
- Fixed program hangs after conversion
- Fixed volume slide effect value actually being ignored
- Fixed volume slide behavior
- Optimized Arpeggio code
- Optimized and fusioned portamento code
- New note code optimized a bit
- Remember & reload instruments when looping
- Fixed pitch related effects not carrying on after empty rows inbetween
- PSG frequencies get initialized by generating them on the fly, instead of loading from an external file
To get started you need loadxm.exe, xm2esf.exe, and xm2esfgui.exe. To use this you need the echo sound engine.

This is THE BEST way to make music for homebrew projects, because all trackers support the MD for the sake of outputting vGM files: Hard to play back on MD, and not very economical either!

Read up!

http://segaretro.org/Echo
http://echo.mdscene.net

XM2ESF download

Posted: Fri Sep 28, 2012 5:42 pm
by Chilly Willy
Great! If you're doing MD music, this really is the best way to go. :D

Posted: Fri Sep 28, 2012 6:06 pm
by bastien
Really Nice Update :D !
Did you plan to release an SGDK integration exemple ?
Because i have heard it's quite difficult to use

Posted: Fri Sep 28, 2012 6:14 pm
by Oerg866
Hi! My tool only produces the music data for Echo.

Echo has an SGDK integration available here: http://echo.mdscene.net

Posted: Fri Sep 28, 2012 6:40 pm
by djcouchycouch
bastien wrote:Really Nice Update :D !
Did you plan to release an SGDK integration exemple ?
Because i have heard it's quite difficult to use
Echo itself is pretty straightforward. It's getting formats converted for Echo that takes a bit of effort.

Posted: Fri Sep 28, 2012 9:43 pm
by slobu
djcouchycouch wrote:
bastien wrote:Really Nice Update :D !
Did you plan to release an SGDK integration exemple ?
Because i have heard it's quite difficult to use
Echo itself is pretty straightforward. It's getting formats converted for Echo that takes a bit of effort.
So, it isn't as easy as:
going into xm2esfgui
browse for your .XM file
select each XM Instrument and then the Echo Instrument
Hit create .XIF
go to the command line and type xm2esf foo.xif foo.esf

I'm actually asking the question, not arguing :)

Posted: Sat Sep 29, 2012 12:18 am
by djcouchycouch
it's not a problem with difficulty. It's just a tad tedious and a bit hard to streamline. If you're doing it once, that's fine. Having to do it dozens or hundreds of times as I see myself doing for Goplanes, you get to see the bottleneck. When you're doing it that many times, the chances for human error accumulate fast, which has already happened.

But don't get me wrong, I really like Echo. I'm still using it for Goplanes. I'm certain the tools will get better with time.

Posted: Sat Sep 29, 2012 5:00 pm
by bastien
i have a question , why can i made the "List" needed by Echo_init ?

Posted: Sat Sep 29, 2012 6:24 pm
by Oerg866
bastien wrote:i have a question , why can i made the "List" needed by Echo_init ?

Code: Select all

InstrumentList:
    Echo_ListEntry EchoSnare      ; $00 [PCM] Snare
    Echo_ListEntry EchoPSG        ; $01 [PSG] Constant ("flat") tone
    Echo_ListEntry EchoLead       ; $02 [FM] Lead
    Echo_ListEntry EchoBass       ; $03 [FM] Bass
    Echo_ListEnd
Then include your instruments like this:

Code: Select all

EchoSnare: incbin sound\snare.ewf
 even
EchoPSG: incbin sound\psg.eef
 even
EchoLead: incbin sound\lead.eif
 even
EchoBass: incbin sound\bass.eif
 even

Initialize echo like this:

Code: Select all

 lea (InstrumentList),a0
 jsr Echo_Init

Posted: Sat Sep 29, 2012 6:28 pm
by bastien
thanks a lot i will try that :D
maybe you should add this into the C exemple of the echo website ?

Posted: Mon Oct 01, 2012 5:24 pm
by Oerg866
I fixed a memory corruption issue and switched to Freebasic (meaning linux version very very soon)

Posted: Tue Oct 02, 2012 10:12 pm
by Oerg866
Image

Posted: Tue Oct 02, 2012 11:20 pm
by Oerg866

Code: Select all

== <xm2esf 1.00 RC3> ============== 10-02-2012

- Fixed an issue with the wrong or uninitialized note data as base on portamentos with note-on on the same row
- added license
- Fixed major crash, hang and memory corruption issue, potentially crashing the OS, producing garbled output, etc

! Compiler changed to FreeBASIC 0.24
! Linux version added for xm2esf, loadxm and esfopt

(xm2esfgui for linux coming soon)
Grab everything at http://github.com/oerg866/xm2esf

Posted: Wed Oct 03, 2012 12:26 am
by Chilly Willy
Doesn't work here (32-bit Xubuntu). I get
bash: ./xm2esf: cannot execute binary file
Is it 64-bit or not x86?

Posted: Wed Oct 03, 2012 12:48 am
by Oerg866
Ugh. I'm so silly! Yeah it's a 64 bit binary I think, since I compiled it on a AMD64 version of Debian... Crap! Need to grab a VM for this *sigh*

ALSO, when i got proper 32 bit binaries, you might want to run install.sh, preferrably sudo'd, since xm2esf will try to execute loadxm and won't find it if you don't....