-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathCHANGES.txt
226 lines (211 loc) · 9.83 KB
/
CHANGES.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
0.05wip12 (future)
* Add port to ASM6 via a translation script (#9, requested by Pokun,
Doug Fraker, and Joe Granato)
* pentlybss.py: Sort arpeggio interval variables
* pentlybss.py: ASM6-compatible output mode
* pentlyas.py: ASM6-compatible output mode
0.05wip11 (2019-03-14)
* Attack track allows grace notes (#35, reported by retrodpc)
* Channel volume in attack track is ignored rather than clobbering
another variable (#35, reported by retrodpc)
* Option to round row grid to nearest tick on loop, pattern start,
or beat (#37)
* Remove use of other .proc's labels in preparation for ASM6 port
* pentlyas.py: Fix bugs in fallthrough command and document it (#1,
reported by jroatch)
* pentlyas.py: Specify tempo based on a musical duration other than a
beat (#34)
* pentlyas.py: Calculate duration of each song and sound effect (#40)
* NES shell: Take track titles from score (#38)
* NSF shell: Take NSF title, author, and copyright from score (#38)
* NSF shell: Write NSFe and NSF2 formats (#39, #41)
* sfxed: Fix display of rate in slow (rate 10+) effects
* Move .pently files to audio folder
* Document workarounds for lack of reentrancy (#2)
* makefile: Add a recipe to convert a FamiTracker module with
ft2pently (#36)
0.05wip10 (2018-10-28)
* Grace note durations no longer reduced by 1 frame
* Always write period high byte for triangle, fixing problem with
zero volume in instruments (#32, reported by NovaSquirrel)
* Suppress linker warnings for export/import address size mismatch
* Overhaul names and scope of internal subroutines
* Rearrange conductor processing based on bytecode order
* Move sustain phase processing above pitch effects
* Remove redundant checks for attack injection in pitch effects
* Fix misbehavior when music and a slowed-down sound effect are
played at once
* C bindings for commonly used functions (requested by adrian09_01)
* pentlyseq.inc: don't truncate patdef at 7 bits (reported and fixed
by NovaSquirrel)
* pentlyas.py: a score can include other files, such as an instrument
set (#29)
* pentlyas.py: o0 through o7 to set reference pitch
(requested by zzo38)
* pentlyas.py: allow grace notes in drum patterns
* pentlyas.py: playing a pattern with only rests or waits is nonfatal
* pentlyas.py: fix warnings for missing "fine" or "dal segno"
* pentlyas.py: order of objects in the output is explicit, the same
order in which they appear in the score (requested by NovaSquirrel)
* pentlyas.py: error if no songs are defined (reported by
NovaSquirrel)
* pentlyas.py: -A means --period-tuning; --output means -o
* mkrammap.py: rename to pentlybss.py to encourage remembering
to include it when vendoring Pently
* Profiler: don't overreport CPU use if the shell has a lag frame
* Document how to skip the makefile's default autoplay (#30)
* makefile: Allow building from an arbitrarily named score by
giving the name of the corresponding .nes or .nsf
* Add pseudocode to aid in porting to non-6502 platforms
* Add Travis CI build script
* Sample songs: Include the soundtrack of all games by Damian Yerrick
that have appeared in Action 53. These are Concentration Room,
Thwaite, Zap Ruder, and RHDE: Furniture Fight.
0.05wip9 (2018-02-21)
* PENTLY_USE option to disable music engine entirely
* PENTLY_USE option to disable 303 portamento
* PENTLY_USE option to enable triangle channel duty fix
* Regression fix: Cancel injection when attack ends (had been broken
since slow arps)
* Cancel grace note when pattern begins
* Add rehearsal transport control to skip to a row or slow down or
pause playback (#27)
* Add variable mix to mute tracks
* Store current pitch and volume for use by visualizer
* pentlyas.py: add warning infrastructure
* pentlyas.py: v1 through v4 as synonyms for pp through ff
* pentlyas.py: p (pause) is synonym for r (rest)
* pentlyas.py: q repeats last chord, as in LilyPond
* pentlyas.py: bar check in pattern to warn if not on a measure
boundary (#26)
* pentlyas.py: pickup works in patterns as well
* pentlyas.py: unreachable A in tunings below A=437 is nonfatal
* pentlyas.py: mmloctaves off, which future chord syntax will require
* pentlyas.py: set rehearsal marks for navigation in score
* pentlyas.py: set initial playback position and track muting
* NES shell: add per-song screen with visualizer, rehearsal mark
navigation, track muting, tempo, and pause-and-step
* Script to estimate pitch of 93-step noise
* Docs: Recalculate PENTLY_USE savings
* Import Sound Effects Editor as of 2014-09-10
0.05wip8 (2017-12)
* Reduce BSS (main RAM) footprint when several effects are off
* Reduce ZP footprint when attack phase is off
* Compress 0-pitch frames of instrument envelopes
* pentlyas.py: correctly parse drum names starting with "l"
* pentlyas.py: option to change overall tuning up or down from A440
* pentlyas.py: special filename - means standard output
* pentlyas.py: output lists each song's total size in comments
* Add "Isometry" song demonstrating attack track more thoroughly
* makefile: change score filename
* NES shell: move copyright notice to status bar
* NES shell: status shows ROM size and current and peak CPU usage
* NES/NSF executables no longer in Git; will be in releases instead
0.05wip7 (2017-09)
* Change to zlib license, which preserves the spirit of the
original license but is recognizable by GitHub
* Add portamento, the single most requested feature
* paldetect: Interleave with vwait so as not to depend on NMI handler
* pentlyas.py: Add 8 predefined chord names
(M, maj7, dom7, aug, m, m7, dim, dim7)
* pentlyas.py: Score can define new chord names
* pentlyas.py: Add single-note arpeggio syntax similar to LilyPond
chord mode (thanks to retrodpc for testing)
* pentlyas.py: Option to name chord by its top note instead of bottom
* pentlyas.py: First and second inversions of chords
* Arpeggio can be set to slow or fast (requested by w7n)
* Add "Arpeggio Waltz" song demonstrating new features
* Document that object names follow identifier rules
* makefile: Launch Python tools with py.exe on Windows
* I own the GitHub repo: https://github.com/pinobatch/pently
0.05wip6 (2017-06)
* Patterns can change channel volume in 25% steps
* Rest in attack track no longer corrupts pulse 1 arpeggio
* pentlyconfig.inc: Change engine's code and data segment; disable
pulse channel effect pooling and volume comparison; change
initial $4011 value
* Optionally enable sound effects in NSF
* pentlyas.py: Faulty play command produces better diagnostics.
Shows song name; emits one for playing pattern too low.
* pentlyas.py: Command line option to change output segment
* pentlyas.py: Clamp vibrato depth to in-range values
* pentlyas.py: Ignore loops in volume envelopes pasted from
FamiTracker
* NSF header gets load address from linker configuration
* Document use of equal temperament
* Add "Sticks" sample song
0.05wip5 (2016-06)
* Vibrato effect
* Simplified zeroing of channel state during song start
* Pattern effects use RTS dispatch
* Corrected namespacing of some APIs
* Standardized names of feature defines (PENTLY_USE_*) and
moved them to pentlyconfig.inc
* Feature defines to disable vibrato and arpeggio effects, counting
rows per beat, attack track, and the attack envelope entirely
* Split manual into separate documents for concept overview and
bytecode description because with pentlyas and ft2pently, few
need to deal directly with bytecode
* Applied MIT License (Expat variant) throughout
0.05wip4 (2016-06)
* Project moved to GitHub: https://github.com/Qix-/pently
* pentlyas.py: proper argument parsing
* pentlyas.py: options to read input from stdin, write output to file
* pentlyas.py: option to generate period table (requested by dougeff)
* pentlyas.py: writes data sizes in bytes as comments in output
(requested by NovaSquirrel)
* pentlyas.py: turned some internal exceptions into informative
error messages (reported by NovaSquirrel)
* pentlyas.py: treats r and w the same in drum patterns
(requested by NovaSquirrel)
* pentlyas.py: parentheses for slur for LilyPond parity
* Legato note overwrites uninjected attack's pitch
(reported by NovaSquirrel)
0.05wip3 (2016-01)
* Corrected namespacing of pently_stop_music and pently_resume_music
(reported by JRoatch)
* Allows relocating temporary zero page space (requested by JRoatch)
* pentlyas.py: Refactored without "god object"
* pentlyas.py: Changed syntax for arpeggio effect; the original
was based on a misreading of MCK Beginner's Guide
* pentlyas.py: Optimizes out data of combined envelopes (instrument
attacks and sound effects) that are a subsequence of a longer one.
This improves handling of the "latebanjo" and "bf98flute2"
instruments in the example songs.
0.05wip2 (2015-12)
* Experimental music assembler
* Ported all data conversion tools to Python 3
* NES shell: Hold Select to speed up by factor of 4
0.05wip1 (2015-12)
* for NESdev BBS proofs of concept and a Famicompo Pico entry
* added grace note
* renamed to Pently in preparation for separate packaging
* macros give names to sound effects, drums, instruments,
songs, and patterns. No more magic numbers!
* fleshed out the manual
* NES shell displays beat fraction
* rate of last frame of sound effect isn't forced to
1 frame/row
0.04 (2014-05)
* for RHDE: Furniture Fight
* arpeggio, legato, and transpose effects
* attack envelopes and attack injection track
* added rows per beat for an aborted rhythm game
* change to permissive license
* NSF and NES shells
* began work on manual (privately distributed)
0.03 (2011-11)
* for Thwaite, Zap Ruder, Action 53 menu, DABG, and Sliding Blaster
* adapts to NTSC and PAL at runtime
* two sound effects per drum, for triangle drums
* moved sound effects table to music data file
* change instrument during pattern
* conductor track macros
* row and loop callbacks
0.02 (2009-11)
* for Concentration Room and Sprite Cans 2011
* allow interrupting a pattern
0.01 (2009-06)
* initial release for LJ65
* dynamic allocation of pulse channels
* volume-based interruption