Commit graph

65 commits

Author SHA1 Message Date
Gwilym Inzani 5f76fcc316 May as well support 0xE8 2024-08-28 16:48:28 +01:00
Gwilym Inzani 9fa171b712 E9 is the same as R0x 2024-08-28 16:46:08 +01:00
Gwilym Inzani 54a31934b2 Add support for retrigger command 2024-08-28 16:43:59 +01:00
Gwilym Inzani 559367f607 Add sample offset command support 2024-08-28 16:32:28 +01:00
Gwilym Inzani ea792f4768 Print the actual effect character 2024-08-28 16:10:26 +01:00
Gwilym Inzani 53182d8122 It doesn't appear to be an error to have an invalid instrument index 2024-08-28 12:13:08 +01:00
wysiwys da92ec3b8b Update tracker to support PatternBreak and PositionJump 2024-08-02 21:23:36 -04:00
Gwilym Inzani c7482f54ab This feels more correct 2024-07-11 21:58:44 +01:00
Gwilym Inzani 8fa595f7f7 Handle RampDown 2024-07-11 21:58:44 +01:00
Gwilym Inzani 3bd8b9019d Handle vibrato in the instrument too 2024-07-11 21:58:44 +01:00
Gwilym Inzani d15063373d Implement vibrato correctly and add a small test case 2024-07-11 21:58:44 +01:00
Gwilym Inzani c1eaae64e1 Support fine portamentos 2024-07-11 21:58:44 +01:00
Gwilym Inzani 31ca8f631f Add vibrato 2024-07-11 21:58:44 +01:00
Gwilym Inzani d00de7b2a4 Make agb-xm-core return the interop rather than the tokens 2024-07-11 21:58:44 +01:00
Gwilym Inzani 352b352b27 Properly implement delay and envelopes 2024-05-16 00:27:20 +01:00
Gwilym Inzani 5494ae29e1 Get the envelopes correct 2024-05-15 23:47:37 +01:00
Gwilym Inzani 2e0f89978a Add note delay support (effect EDx) 2024-05-15 22:30:13 +01:00
Gwilym Inzani b5fc27d243 Spell amiga correctly 2024-05-15 21:54:31 +01:00
Gwilym Inzani 2ab3fa79e1 Notes are 1 indexed, not 0 indexed
Versions of xmrs below 0.4.1 (unreleased, 0.4.2 is on crates.io but
0.4.1 is in the repo) have a bug where they swap linear and amiga
frequencies. This caused all old versions of agb (which were using
version 0.3) to use the amiga frequency table rather than the linear
one. Technically it sounds slightly wrong but it is kinda hard to tell.

Since agb 0.20.0, we are now using xmrs 0.5, which correctly reports the
frequency type for the XM file. That pointed out an error in the
note_to_speed method for linear frequencies (since those are now being
used). It turns out that the formula for calculating the frequency
expects a 0 based index for the note, but we were passing a 1 based
index for the note. Moving this down a note fixes the issue where things
were being played at the wrong frequency.
2024-05-15 21:35:03 +01:00
Corwin 184b11ed81
use static rather than const 2024-03-29 14:41:08 +00:00
Gwilym Inzani 0c19988699 Use 32768Hz for the tracker 2023-09-05 23:22:50 +01:00
Gwilym Inzani eda11073ed Introduce fixnum::from_f(32|64) 2023-08-06 20:24:59 +01:00
Gwilym Inzani 4f7fb7125b Fix crash for some files 2023-08-05 23:51:26 +01:00
Gwilym Inzani 67de2d5833 Implement fadeout 2023-08-05 23:51:12 +01:00
Gwilym Inzani f6ed1c484b Implement global volume 2023-08-05 22:55:03 +01:00
Gwilym Inzani 3976fd93ea Correctly interpret F00 2023-08-05 22:29:31 +01:00
Gwilym Inzani db75d8b048 Minor fixes when trying other tracks 2023-08-05 01:33:48 +01:00
Gwilym Inzani ff5d324356 Reuse envelopes if they are the same 2023-08-05 00:58:39 +01:00
Gwilym Inzani aabfb1b083 This sounds pretty decent now 2023-08-05 00:24:11 +01:00
Gwilym Inzani 47455a0377 First pass at implementing envelope playing 2023-08-05 00:02:50 +01:00
Gwilym Inzani ca4cb55b39 Add boilerplate for exporting the envelopes 2023-08-04 23:25:48 +01:00
Gwilym Inzani d29a641a44 Specify that it is the volume envelope 2023-08-04 23:19:07 +01:00
Gwilym Inzani 826fdd881a Add data structure 2023-08-04 23:17:59 +01:00
Gwilym Inzani 9d299f3e66 Fix out by one error with instrument samples 2023-08-04 23:07:19 +01:00
Gwilym Inzani fa4b2ebd5d Implement F command 2023-08-04 22:30:49 +01:00
Gwilym Inzani 6731fa88a0 I prefer this a bit slower 2023-08-02 17:18:27 +01:00
Gwilym Inzani 8177366c6b Remove dbg 2023-08-02 16:49:30 +01:00
Gwilym Inzani 4b145d3194 Try composing my own theme (with some bug fixes) 2023-08-02 16:48:41 +01:00
Gwilym Inzani f4214b5da8 Use new music for dungeon puzzler's lament and fix tracker bugs 2023-08-01 21:41:33 +01:00
Gwilym Inzani 25ee876932 Fix a bunch of bugs after playing with different tracks 2023-07-23 23:37:14 +01:00
Gwilym Inzani d233a2539c Improve accuracy of the volume 2023-07-23 22:10:25 +01:00
Gwilym Inzani 095723bbf8 FineVolumeSlide 2023-07-23 22:03:32 +01:00
Gwilym Inzani f6a05178db Fix slides and add the portamento one 2023-07-23 21:36:02 +01:00
Gwilym Inzani 0911ca44c5 Try a new song and add memory support 2023-07-23 20:54:24 +01:00
Gwilym Inzani 352658f23f Fix clippy lints 2023-07-23 19:08:51 +01:00
Gwilym Inzani b6cccf3b5a Add Portamento 2023-07-19 13:38:32 +01:00
Gwilym Inzani 1b8f4bbdc9 NoteCut support 2023-07-19 13:22:26 +01:00
Gwilym Inzani 6f8633861d Use 32-bit numbers more for more performance (and start tracking that) 2023-07-18 22:49:56 +01:00
Gwilym Inzani b8adf08382 Don't hold arpeggios 2023-07-18 22:17:17 +01:00
Gwilym Inzani a91069eac2 Consider the global volume 2023-07-18 21:37:01 +01:00