passing_by |
Posted: 2013-05-30 18:34:10 |
|
|
Occasional visitor Posts: 48
Member since: 2013-05-05 19:13:03 |
https://github.com/pachuco/fl-hively
Currently very, very incomplete usable and in working condition.
Anyone wishing to give a hand or two is more than welcome. |
Xeron |
Posted: 2013-05-30 20:57:52 |
|
|
Supreme Being Posts: 448
Member since: 2006-12-13 11:34:00 |
Very cool effort!
If you have questions, just ask. I can't contribute code (too busy, don't know actionscript), but I hope it will be completed. AHX forever! |
AceMan |
Posted: 2013-06-05 10:24:31 |
|
|
Occasional visitor Posts: 18
Member since: 2007-01-02 21:23:53 |
The link doesn't work.
Anyway, keep up the good work! I'll happily add HVL/AHX support to our freshly released module player @ modules.pl :) http://www.modules.pl |
Xeron |
Posted: 2013-06-05 13:25:45 |
|
|
Supreme Being Posts: 448
Member since: 2006-12-13 11:34:00 |
I've fixed the link. AHX forever! |
passing_by |
Posted: 2013-07-18 12:21:41 |
|
|
Occasional visitor Posts: 48
Member since: 2013-05-05 19:13:03 |
I am rather confused about "struct hvl_plist ins_PList;" being declared in struct hvl_instrument.
From what I understand, hvl_plist is a column of commands so it seems odd to have it placed in the instrument.
The trick here is to butcher pointer usage into something GCed languages can use(AS3 in our case). For that I need to know how respective pointers are used.
Edit: It hit me on the back of my head like a brick. It's the instrument macro, methinks.
Derp. |
Xeron |
Posted: 2013-07-18 20:34:46 |
|
|
Supreme Being Posts: 448
Member since: 2006-12-13 11:34:00 |
Indeed. The instruments have their own column of notes and commands ;-) AHX forever! |
passing_by |
Posted: 2013-08-06 20:03:27 |
|
|
Occasional visitor Posts: 48
Member since: 2013-05-05 19:13:03 |
//In struct hvl_tune *hvl_load_ahx()
//Instrument section
//What is the reason of using:
for( i=1; i<=ht->ht_InstrumentNr; i++ ){}
//instead of
for( i=0; i< ht->ht_InstrumentNr; i++ ){}
//?
|
What is instrument 0? Why are we avoiding it? |
passing_by |
Posted: 2013-08-13 07:57:17 |
|
|
Occasional visitor Posts: 48
Member since: 2013-05-05 19:13:03 |
Right, the replayer sits in a decent state now. However, before it can be properly usable, it's gonna need some ironing.
Feel free to throw tunes at it until it breaks and submit bug reports.
Edit: I've ironed out some bugs, player is ok now. Except it needs optimization(17% CPU usage on P4 630 @3ghz with freedomcover.hvl).
Ah, one more thing. What do I put in license.txt? |
SketchMan3 |
Posted: 2013-08-14 18:01:55 |
|
|
Occasional visitor Posts: 18
Member since: 2013-04-13 14:15:38 |
This will be great once it is finished! :D Maybe now I will be able to stream my ahx files from chipmusic.org |
Xeron |
Posted: 2013-08-16 12:10:05 |
|
|
Supreme Being Posts: 448
Member since: 2006-12-13 11:34:00 |
Wow! Good work :) The license question isn't easy to answer... WinAHX wasn't released with any kind of license information. When I added Hivelytracker to google code I had to select something, so I picked BSD. So use that.
As for instrument 0, it is a special case. It means "change the period of the currently playing instrument", rather than trigger a new note. Just as it was in Protracker and Soundtracker. AHX forever! |
passing_by |
Posted: 2013-08-16 22:18:18 |
|
|
Occasional visitor Posts: 48
Member since: 2013-05-05 19:13:03 |
Also, I notice that there is no
ht->ht_Version = buf[3]; // 1.5
in hvl_load_ahx();
Is there any reason? |
Xeron |
Posted: 2013-08-17 11:10:25 |
|
|
Supreme Being Posts: 448
Member since: 2006-12-13 11:34:00 |
ht_Version is only used to determine if the module was saved with hivelytracker 1.5 or newer. 1.5 added a new feature to an unused effect value. It simply doesn't apply to ahx modules. AHX forever! |
passing_by |
Posted: 2013-08-17 14:10:04 |
|
|
Occasional visitor Posts: 48
Member since: 2013-05-05 19:13:03 |
Are there any consequences of enabling it for AHX playback?
I did so for song info display.
Edit: Yeah, it turns out those performance issues I was talking about were due to using debug player(which is slower) it's much faster and acceptable in regular player. |
Xeron |
Posted: 2013-08-17 17:32:00 |
|
|
Supreme Being Posts: 448
Member since: 2006-12-13 11:34:00 |
It should be set to 0 for AHX modules, in case the composer put invalid commands in there (which is not unheard of..) AHX forever! |
passing_by |
Posted: 2013-08-20 19:41:02 |
|
|
Occasional visitor Posts: 48
Member since: 2013-05-05 19:13:03 |
How does default panning interact with HVL tunes? I'm thinking of doing on-the-fly stereo separation changing. |
Xeron |
Posted: 2013-08-21 06:41:02 |
|
|
Supreme Being Posts: 448
Member since: 2006-12-13 11:34:00 |
It doesn't. It only affects AHX tunes. When the composer sets the default panning in the prefs of HivelyTracker, that value is saved in the hively tune, and when you load the tune back in, it overrides the default.
AHX doesn't have panning, so the default is used for AHX. AHX forever! |
Xeron |
Posted: 2013-08-21 06:42:04 |
|
|
Supreme Being Posts: 448
Member since: 2006-12-13 11:34:00 |
(it has to be that way, btw... if you ignored the panning value in the hively file you could get clipping). AHX forever! |
passing_by |
Posted: 2013-08-26 16:35:34 |
|
|
Occasional visitor Posts: 48
Member since: 2013-05-05 19:13:03 |
Out of curiosity, what was your motivation for choosing sine-based panning table(as opposed to linear panning)? |
Xeron |
Posted: 2013-08-26 18:26:37 |
|
|
Supreme Being Posts: 448
Member since: 2006-12-13 11:34:00 |
Trial and error, basically. First thing I did was implement linear tables, but it sounded like crap; playing a constant tone and panning it didn't keep a constant volume (at least not on my setup).
The sine tables worked much better. AHX forever! |
passing_by |
Posted: 2014-06-26 00:39:49 |
|
|
Occasional visitor Posts: 48
Member since: 2013-05-05 19:13:03 |
Yeah, I think I fixed the 'but requires further optimisation' part, so it can be removed from news. |