Oct 13, 2010 at 11:54 PM
graters gonna grate
"Heavy swords for sale. Suitable for most RPG Protagonists. Apply now!"
Join Date: Jul 2, 2008
Location: &
Posts: 1886
Age: 32
Pronouns: he/him
So I made a thingy in case there are any Java programmers out there interested in giving their Java programs the ability to play *.org files.
Java organya player
Source code
This version is hopefully final.
Also, I figure I might as well post this here for convenience:
Notes on Organya playback details by Bavi_H
The format of the "orgsamp.dat" file:
The *.org format specs:
Java organya player
Source code
This version is hopefully final.
Also, I figure I might as well post this here for convenience:
Notes on Organya playback details by Bavi_H
The format of the "orgsamp.dat" file:
Code:
All integer values are unsigned big-endian,
except sample frames, which are signed (2s complement).
1 byte: number of melody samples (100)
3 bytes: number of sample frames per melody sample (256)
for each melody sample:
for each sample frame:
1 byte: sample frame
1 byte: number of drum samples (28)
2 bytes: sampling rate of drum samples in Hertz at lowest non-zero frequency (2205)
for each drum sample:
3 bytes: number of sample frames
for each sample frame:
1 byte: sample frame
The *.org format specs:
Code:
All integer values are unsigned little-endian.
A "click" is the smallest unit of time in an org file.
6 bytes: ascii string "Org-02" (or "Org-03" if the file uses percussion instruments only available in orgmaker 2.05)
2 bytes: "wait" value (the length of a click in milliseconds)
1 byte: beats per measure
1 byte: clicks per beat
4 bytes: position of the loop start, in clicks (the first click being position 0)
4 bytes: position of the loop end, in clicks
for each track:
2 bytes: "freq" value*
1 byte: instrument
1 byte: 1 if "pi" checkbox is checked, 0 otherwise*
2 bytes: number of resources
for each track:
for each resource:
4 bytes: position of the resource, in clicks
for each resource:
1 byte: note (0=lowest note, 45=A440, 95=highest note, 255=no change)
for each resource:
1 byte: duration (in clicks, I believe this is ignored if note value is "no change")
for each resource:
1 byte: volume (0=silent, 200=default, 254=max, 255=no change)
for each resource:
1 byte: pan (0=full left, 6=center, 12=full right, 255=no change)
*Even though orgmaker only allows you to edit these for melody tracks, percussion tracks also have this data,
with the default values of freq=1000, pi=0.
I haven't tested to see if modifying these has any effect on playback.