1
2004-01-11 Michael Krause <mk@soundtracker.org>
5
* app/sample-editor.c: When copying a sample and pasting into an
6
empty one, the settings for volume, finetune, panning and relnote
9
* Added patch from Yury for a more general Cut/Copy/Paste
10
handling. Now there's only one such set of functions in the Edit
11
menu, the functionality of which depends on the currently active
12
notebook page (tracker / instrument / sample editor).
14
* app/xm.c (xm_load_xm_pattern): Handling non-standard pattern
15
header sizes (yaliaev)
17
* app/gui.c (gui_final): Default octave is now 3 instead of 5, so
18
that freshly loaded samples can be triggered at their original
21
* app/sample-editor.c: Cleaned up sndfile / audiofile code (a lot
22
of stuff was previously duplicated via #if's), fixed saving of
23
8-bit samples via libsndfile. When loading raw samples (when
24
compiled with libsndfile), we ask the user for the sampling
25
frequency now, just like in the case of libaudiofile. Also fixed
26
loading of 8-bit samples (treat_as_8bit is now set correctly).
28
* app/gui.c (gui_playlist_position_changed): Fixed handling of the
29
"Lock edited pattern" button (problem reported by yaliaev).
31
2004-01-04 Michael Krause <mk@soundtracker.org>
33
* app/track-editor.c (track_editor_do_the_note_key): Added patch
34
from yaliaev which removes cursor horizontal displacement when you
35
try some tune at the keyboard in jazz mode (of course, only if ST
36
not in the editing mode, jazz editing mode works just like
39
* Added soundtracker-0.6.7pre6-patexpshrink.patch.bz2 from
40
yaliaev, providing vertical pattern expansion / shrinking.
42
* app/gui.c, app/keys.c, app/playlist.c: Fix some gcc-3.2
45
* app/cheat-sheet.c, app/gui.c, app/instrument-editor.c: Add some
46
#includes for non-GNOME version, fix for measure selection window
49
* configure.in, app/mixers/Makefile.am, app/mixers/kb-x86-asm.S:
50
Added patch from yaliaev to remove dependency of soundtracker on
53
2003-10-27 Michael Krause <mk@soundtracker.org>
55
* po: Updated it, ja, pl, ru translations. Added sk (slovakian)
58
2003-08-04 Michael Krause <mk@soundtracker.org>
60
* "Released" soundtracker-0.6.7pre6 (without official
63
* app/gui.c, app/gui-settings.c, app/menubar.c, *.xpm: Added patch
64
from yaliaev: Nice icons in the control panel, Direct access to
65
accidentals and row highlighting configuration from the control
66
panel, Option to allow/prevent edited pattern from changing when
67
browsing in the playlist.
69
* app/st-subs.c (st_sample_16bit_signed_unsigned): Fixed
70
signed->unsigned conversion (tugruettmueller).
72
* app/playlist.c (playlist_insert_pattern): Emitting
73
SONG_LENGTH_CHANGED signal after inserting new pattern. Fixes
74
incorrect XM playlist update handling when inserting
75
patterns. (reported by yaliaev).
77
2003-07-05 Tomasz Maka <pasp@ll.pl>
79
* app/gui.c, app/file-operations.[ch]: Function for refresh
80
(fileops_refresh_list) file/dir list in file requesters was added.
82
2003-06-29 Michael Krause <mk@soundtracker.org>
84
* app/gui.c (gui_final): Add tooltips to pitchbend and
85
amplification sliders (yaliaev).
87
* app/audio.c (audio_mix): Fix memset at the end of file
88
rendering, clearing the unrendered part of the mixing buffer
89
(yaliaev). This fix might contribute to stabilizing the WAV export
90
which has been reported to be unstable by some people.
92
* po: Updated fr, it, sv translations.
94
2003-05-24 Michael Krause <mk@soundtracker.org>
96
* "Released" soundtracker-0.6.7pre5 (without official
99
* app/main.c (main): Calling gui_play_stop() before quitting, so
100
that the audio driver is shut down correctly (for JACK).
102
* app/keys.c, app/gui.c: Defined two new keys for "increase /
103
decrease jump value" (yaliaev).
105
* app/keys.c, app/track-editor.c: Defined quick-jump keys to jump
106
to channels. Can also mute channels with keyboard when these keys
107
are pressed together with SPACE (yaliaev).
109
* app/midi-settings.h: Removed #ifdef ALSA_DRIVER_09x around
110
gboolean auto_connect definition in struct midi_input_prefs. Now
111
SoundTracker compiles with alsa 0.5.x again. I have no idea if it
114
* configure.in: Changed GNOME detection code; new code taken from
115
xchat-1.8.8. The old code broke at version detection on some
118
* app/st-subs.c (st_is_empty_track): Advance notes pointer in
119
loop. Also, the loop end condition is length > 0 instead of length
120
>= 0. Up to now, this function would only check if the very first
121
row in the pattern is non-empty, leading to patterns left out
122
during saving. Argh. Thanks to Henri Jylkk� <hj@bsdmail.org> for
123
helping to reproduce the bug. Also, CTRL-F and CTRL-G (find / copy
124
to unused pattern) work again now.
126
* po: Updated ja.po, no.po, it.po.
128
* configure.in: Under NetBSD, check if OSS driver needs -lossaudio
130
2003-05-18 Michael Krause <mk@soundtracker.org>
132
* app/drivers/sun-input.c, app/drivers/sun-output.c: Fixes
135
* configure.in: Add -lossaudio to linker options for OpenBSD OSS
136
emulation layer. (wcobb)
138
* app/gui.c (file_selected), app/sample-editor.c,
139
app/instrument-editor.c: Check if a file was actually
140
selected. Previously, the gtk+ file selector could return with
141
just a directory name as 'file name', and SoundTracker would treat
142
that as a file to operate on, leading to strange behavior.
144
* "Released" soundtracker-0.6.7pre4 (without official
147
* app/playlist.c: User can now click on playlist entries to make
148
them the current position (yaliaev).
150
* flat.xpm, sharp.xpm: Made a bit larger (yaliaev).
152
* po/POTFILES.in: Added some more source files.
154
* app/Makefile.am (install-exec-local): On NetBSD and OpenBSD, the
155
root group is called 'wheel' (wcobb, Henri Jylkka
156
<henri.jylkka@mbnet.fi>). On Darwin (MacOS X), it is 'admin'
157
(Mathias Meyer <mathmeye@users.sourceforge.net>).
159
* configure.in, app/main.c, app/drivers/Makefile.am: Sun audio
160
driver integration (wcobb)
162
2003-05-17 Michael Krause <mk@soundtracker.org>
164
* app/drivers/jack-output.c: Added patch for latest JACK CVS (by
165
Anthony <avan@uwm.edu>).
169
* configure.in: Rewrote some parts of configure.in and several
170
Makefile.am's to use AM_CONDITIONALs where they are guaranteed to
171
be executed. Extended several Makefile.am's to make use of
172
conditional compilation -- this way some '#if defined(XXX)' around
173
complete source files can be removed and compilation is faster.
175
2003-04-27 Michael Krause <mk@soundtracker.org>
177
* app/track-editor.c (tracker_timeout): Removed
178
g_assert(current_driver_object) and replaced it with a simple
179
check, because the situation tested for can actually occur
182
* app/gui.c (gui_editpat_changed): gui_mixer_set_pattern() is
183
called here only when we are in 'playing pattern' mode.
184
(gui_set_current_pattern): Removed call to
185
gui_mixer_set_pattern().
186
(offset_current_pattern): Use gtk_spin_button_set_value() to set
189
2003-04-12 Luc Tanguay <lucus_at_sympatico.ca>
191
* Updated MIDI code to support ALSA 0.9.x.
193
2003-04-03 Michael Krause <mk@soundtracker.org>
195
* app/drivers/oss-{in|out}put.c: Corrected soundcard.h
196
inclusion. Now compiles under NetBSD (thanks Frank Knappe
197
<knappe@tu-harburg.de> and Henri Jylkka <henri.jylkka@mbnet.fi>).
199
2003-03-29 Michael Krause <mk@soundtracker.org>
203
* configure.in: Correct detection of ALSA v0.9, v0.5 and <older>.
204
(modified patch from ltanguay).
206
2003-03-09 Michael Krause <mk@soundtracker.org>
208
* app/gui.c (gui_save_wav_callback, play_song): Removed
209
superfluous calls to gui_set_current_pattern().
211
* app/drivers/file-output.c (sndfile_new): Initializing d->sndbuf
212
and d->polltag to NULL. Fixes a crash when trying to save WAV via
213
libsndfile on my machine.
215
* Fixed libsndfile detection.
217
* "Released" soundtracker-0.6.7pre3 (without official
222
2003-03-08 Michael Krause <mk@soundtracker.org>
224
* app/gui.c (gui_playlist_position_changed): Start event waiter
225
first, THEN send "set songpos" request to mixer. Fixes occasional
226
hanging playlist display when changing playlist position manually
229
* app/drivers/sun-input.c, app/drivers/sun-output.c: From Wilbern
230
Cobb. Integration with configure.in is still missing.
232
* app/drivers/oss-input.c, app/drivers/oss-output.c, configure.in:
233
Including {sys/|machine/|<nothing>}/soundcard.h depending on which
236
* app/menubar.c: Added toggleitem for disabling the splash screen
237
(i.e., automatically closing it).
239
* app/gui-subs.c (gui_hang_tooltip): Only allocate GtkTooltips
242
* app/gui.c (gui_insert_free_pattern,
243
gui_insert_free_pattern_and_copy): Cleaned up, checking for
244
maximum playlist length.
246
* app/gui-subs.c (gui_update_adjustment): Use gfloat for p instead
247
of int. Fixes some weird position jumping in the new playlist
248
editor when deleting or inserting items. Moved from gui-subs.c to
249
playlist.c, because it is playlist-specific.
251
* app/playlist.c: Merged playlist_insert_pattern() and
252
playlist_insert_clicked().
254
* app/playlist.[ch], app/gui.[ch]: New FastTracker-style playlist
257
2003-03-02 Michael Krause <mk@soundtracker.org>
259
* "Released" soundtracker-0.6.7pre2 (without official
262
* Added patch from Yury for correcting
263
right-mouse-button-over-scopes semantics to agree with FT2.
265
* Added patch from Yury for displaying a pixmap for a muted
266
channel instead of a zero line only. Fixed this for the case when
267
no actual PNG file is installed.
269
* Added patch from Yury for B<->H note name switching and
270
flat/sharp notation selection. I downscaled the provided icons to
271
a height of 16 pixels to agree with the standard GNOME stockicon
274
* Added patch from Yury for handling arbitary XM instrument header
275
sizes in xm.c::xm_load_xm_instrument().
277
* Added patch from Yury adding some gettext() calls here and there
278
to actually translate strings.
280
* Added patch from Yury for XP pattern import/export.
282
* Added patch from Tomasz Maka <pasp@ll.pl>.
283
+ app/tracker.c: Channel numbers are more useful now
284
(centered above track on a separate line)
285
+ app/tracker.[ch], app/gui.c: Different cursor color
288
* Added norwegian translation by Petter Johan Olsen
289
<petter.olsen@cc.uit.no>. Updated russian translation by Yury.
291
* Added latest version of JACK output driver. Changes:
292
+ Multiple clients: soundtracker_0-9
293
+ Output ports renamed: out_1, out_2
294
+ Driver release now waits for declicking to finish
296
+ no slave transport mode
297
+ master mode is not saved in the config by choice
298
(by Anthony <avan@uwm.edu>)
300
2003-02-02 Michael Krause <mk@soundtracker.org>
302
* "Released" soundtracker-0.6.7pre1 (without official
305
* New danish translation (da.po) by Keld Simonsen <keld@dkuug.dk>.
307
* app/gui.c (gui_update_title): Rewritten using g_strdup_printf()
308
and g_basename(), fixes a crash when starting ST with a module
309
filename as command line argument.
311
* Applied patch from Anthony Van Groningen <avan@uwm.edu> adding
312
JACK support to SoundTracker. Some configure.in / Makefile fixes
313
for this by Kai Vehmanen <kai.vehmanen@wakkanet.fi>.
315
* Spent some hours getting the autoconf stuff to work with the
316
latest autoconf-2.57 / automake-1.7.2. I hate this.
318
* Applied patch from Erik de Castro Lopo <erikd-100@mega-nerd.com>
319
implementing libsndfile support in addition to
320
libaudiofile. libsndfile is now default, and if it is not found,
321
libaudiofile is used.
323
2002-10-20 Michael Krause <mk@soundtracker.org>
325
* app/file-operations.c (fileops_filesel_pre_insertion /
326
post_removal): Only hide confirm area (OK and Cancel buttons) if
327
this is a single-click dialog. In the save dialogs, we need these
328
buttons (reported by qmax).
330
* app/playlist.c (playlist_delete_clicked): Was buggy when delete
331
the very last playlist entry (garbled the last-but-one playlist
334
2002-09-18 Michael Krause <mk@soundtracker.org>
336
* app/tracker.c (tracker_button_press): Now you can use your loved
337
mouse wheel to scroll through the patterns, just like Up and Down
338
arrows. But not only. Holding Left Shift and turning the wheel,
339
you can scroll left and right throug the pattern, as if you use
340
the scrollbar below the tracker window. (yaliaev)
342
* app/sample-editor.c: When a raw sample is loaded, a combo box
343
shows up and asks for the sampling rate. The default value is set
344
to 8363, but you can also select another predefined value or enter
345
one by hand. Also, the standard note is changed from C-6 to C-4,
346
so a 8363 Hz sample will now result in realnote=0; finetune=0; and
347
a 44100 Hz one in realnote=29; finetune=-28. (tugruettmueller)
349
* app/gui.c: Write the name of the module being edited in the main
350
window title. (yaliaev)
352
2002-08-17 Michael Krause <mk@soundtracker.org>
354
* In various files, added GPOINTER_TO_INT() and GINT_TO_POINTER()
355
macro calls. In the assembler files, added _C_LABEL() macro to
356
handle differing OS conventions for label prefixes. Makes ST work
357
on OpenBSD/sparc64 and OpenBSD/i386 (by wcobb).
359
* app/xm.c (xm_freq_note_to_relnote_finetune): Forcing finetune
360
into interval [-63,+63], removed restriction for relnote in
361
[-96,+96] (by tugruettmueller).
363
* app/gui.c (gui_numchans_changed): Round down odd channel numbers
364
when entered manually (by yaliaev).
365
(gui_handle_standard_keys): Shift + Crsr Left / Right browses
366
playlist (by yaliaev).
368
2002-07-20 Michael Krause <mk@soundtracker.org>
370
* app/playlist.c (playlist_insert_clicked): Fixed a bug that
371
caused "Insert" to destroy the last playlist entry. Also, we're
372
now inserting the current pattern instead of duplicating the
375
2002-07-18 Michael Krause <mk@soundtracker.org>
377
* app/gui-settings.[ch]: Removed option 'Save XM saves all
378
non-empty patterns' and made this the default behaviour: all
379
non-empty patterns are always saved; if the user wants to have a
380
small, clean file, he can run 'Optimize Module'.
382
* app/sample-display.c (sample_display_draw_data): Fixed 'sample
383
was displayed reversed vertically' bug once and for all. Still
384
wasn't working properly.
386
2002-06-28 Michael Krause <mk@soundtracker.org>
388
* app/sample-display.c (sample_display_draw_data): Yet another fix
389
to the sample display (Mardy <mardy@users.sourceforge.net>).
391
* soundtracker.desktop: Changed 'Type' from 'Multimedia' to
392
'Application'. Now SoundTracker appears in the GNOME menu again.
393
Reported by Bastien Nocera <hadess@hadess.net>.
395
* app/mixers/kbfloat-mix.c (CUBICMIXER_LOOP_FORWARD): Moved s0
396
initialization from LOOP_START macro to both LOOP_FORWARD and
397
LOOP_BACKWARD, adding a missing minus sign before positionf in
398
LOOP_BACKWARD. Now backwards mixing is done correctly, without
399
noise (reported by Yury Aliaev <mutabor@catholic.org>).
401
2002-06-17 Michael Krause <mk@soundtracker.org>
403
* app/gui.c (gui_splash): Calling gdk_rgb_init() after
404
gnome_init(), which is officially required, but the splash screen
405
happened to work on my installation nevertheless, just not on some
408
* po: Updated fr, ja, sv, ru, it. New croation translation (hr.po)
409
by Denis Lackovic <delacko@fly.srk.fer.hr>.
411
* app/transposition.c (transposition_transpose_notes_sub):
412
"Current Instrument" and "All Instruments" modes were swapped
413
(reported by Michal Seta <mis@creazone.com>)
415
* app/tips-dialog.c: Actually feeding the tips through _() now
416
(reported by Yuri Bongiorno <yuri.bongiorno@logika.com>)
418
2002-05-20 Michael Krause <mk@soundtracker.org>
422
* Oh, yeah. NLS was completely b0rken. Updated to gettext-0.10.37.
426
* app/tracker.c (tracker_set_font): Test if font width and height
427
have sane values. Fixes crash with the 'clearlyu' font reported by
428
Trevor Nunes <lutes159@home.com>.
430
* app/playlist.c: Hack to set page increment to 5.0 for the
431
current pos and restart pos spinbuttons.
433
* app/sample-display.c: Flipped display vertically; now the
434
positive sample values are at the top, and the negative ones at
435
the bottom (patch by Mardy <mardy@users.sourceforge.net>).
437
2002-05-17 Michael Krause <mk@soundtracker.org>
439
* app/menubar.c: For non-GNOME SoundTracker, wrote some code that
440
converts the GNOME menu tree structure into GtkItemFactoryEntry's
441
at run-time, so we can finally get rid of the extra GTK+-only menu
442
tree and its associated translation-induced problems (maintenance
445
* app/track-editor.c (track_editor_copy_selection): When marking a
446
block with CTRL-B, CTRL-C and CTRL-V (copy and cut) stop marking
447
automatically. This should always have been the case, but somehow
448
in v0.6.4 an extra CTRL-B was necessary.
450
* app/menubar.c: Added selection transposition stuff.
452
* app/transposition.c (transposition_transpose_selection):
455
* app/track-editor.c (track_editor_editmode_status_idle_function):
456
Using idle function here as well in order to workaround
457
gtk_label_set_text() slowness.
459
2002-05-16 Michael Krause <mk@soundtracker.org>
461
* app/sample-editor.c (sample_editor_set_selection_label): Moved
462
the actual gtk_label_set_text() to an idle function, because it
463
has become incredibly slow somewhere on the way to gtk+-1.2.10.
464
Fixes sample range selection slowness (see comment).
466
* app/menubar.c: Renamed "use backing store" to "flicker-free
467
scrolling", which can actually be understood by non-coders.
469
* app/tracker-settings.c (trackersettings_new): Button relayout.
471
* app/gui-settings.c: Removed AA canvas option. Removed channel
472
numbering option (hey, removing superfluous preferences is a good
473
thing). Renamed some other options.
475
* app/envelope-box.c (envelope_box_new): Always using standard
476
non-antialiased canvas. With GNOME 1.0 and GNOME 1.2, AA canvas is
477
buggy; with GNOME 1.4, it doesn't even work.
481
2002-02-17 Michael Krause <rawstyle@soundtracker.org>
483
* configure.in: Check for gdk-pixbuf >= 0.8.0 (in fact, I don't
484
know which is the minimum version required). Needed for splash
487
* app/tips-dialog.c (tips_dialog_get_vbox): Function to create the
488
vbox without a window, for the splash screen.
490
* app/gui.c (gui_init): Separated into gui_splash() and
491
gui_final(). The former displays a splash screen, and integrates
494
2002-02-09 Michael Krause <rawstyle@soundtracker.org>
496
* app/gui-settings.c (gui_settings_save_config): Moved geometry
497
saving from save_always() to this function.
499
* app/file-operations.c (fileops_tmpclean): Removed error checks,
500
especially the ungraceful exit(-1) :-)
502
* po: Updated fr.po (new translation by Michel Robitaille
503
<robitail@IRO.UMontreal.CA>), added sv.po (by Christian Rose
504
<menthos@menthos.com>).
506
2002-01-15 Tomasz Maka <pasp@ll.pl>
508
* app/file-operations.[ch]: Added fileops_tmpclean function to
509
remove ~/.soundtracker/tmp contents.
511
* app/xm.c (xm_check_envelope): Set first envelope point offset to
514
2002-01-13 Michael Krause <rawstyle@soundtracker.org>
516
* Actually putting config.guess and config.sub into the .tar.gz
517
distribution. Last time they were missing, strange.
519
* app/gui.[ch]: Moved WELCOME_MESSAGE define to gui.c so that it
520
is internationalized (reported by Yuri Bongiorno
521
<yuri.bongiorno@logika.com>).
523
* app/gui-settings.c (gui_settings_save_config): Don't forget to
524
save scopes_buffer_size (reported by Chauk-Mean Proum
525
<chauk-mean.proum@fr.thalesgroup.com>).
527
* po: Updated ru.po and it.po.
529
2001-12-22 Tomasz Maka <pasp@ll.pl>
531
* app/errors.c, sample-display.c, scope-group.c: Added missing
534
* app/xm.c: Added new st specific tmpnam function (called
535
'st_tmpnam') to avoid gcc warrning. Generates temporary files in
536
~/.soundtracker/tmp/ instead of in /tmp/.
538
* app/gui.c (gui_handle_standard_keys): If we are in instrument or
539
sample editor notebook page 'Space' key stops playing without edit
542
2001-12-08 Tomasz Maka <pasp@ll.pl>
544
* app/gui.c, gui-settings.[ch], menubar.c: Added option to save
545
tracker's window geometry.
547
* app/module-info.c (modinfo_optimize_module): Module optimize
548
function has small info requester now.
550
2001-12-07 Tomasz Maka <pasp@ll.pl>
552
* app/sample-editor.c (sample_editor_set_selection_label): When
553
selection exist length label show size of selected block instead
554
of entire sample size.
556
* app/sample-editor.c: Ask user for action if saving file
557
(sample or region) already exist.
559
2001-08-25 Michael Krause <m.krause@tu-harburg.de>
561
* po: Updated de.po and es.po.
1
563
2001-08-12 Michael Krause <m.krause@tu-harburg.de>
143
705
* app/midi-settings.c (midi_load_config): Yet another compilation
146
2000-09-25 Michael Krause <m.krause@tu-harburg.de>
150
* app/tracker.c: Rewrote expose/draw/update handling.
152
* app/sample-display.c: Rewrote expose/draw/update handling a
153
little bit (using an idle function). Now switching notebook pages
154
works without problems.
156
* app/sample-editor.c (sample_editor_handle_keys): If we have a
157
selection, play only the selected part of the sample.
159
* app/mixer.h: XM Player and mixers can now play part of the
160
sample only. Added new method 'setsmplend' to mixer structure for
163
* app/sample-editor.c (sample_editor_load_wav_main): Init relnote
164
and finetune such that samples are played at C-6 in original
166
(sample_editor_ok_clicked): Here as well.
168
* app/xm.c (xm_freq_note_to_relnote_finetune): If a specified FT
169
note is to be played at a specific frequency, return the needed
170
relnote and finetune settings.
172
2000-09-24 Michael Krause <m.krause@tu-harburg.de>
174
* app/audio.h: Remove #include <pthread.h> -- fixes compiler
177
* app/midi-settings.c: Use new prefs_() functions.
179
* app/main.c (main): Add dummy drivers if no actual drivers for
180
the architecture are available.
182
* app/mixers/kb-x86.c: Cleanups. Changed name appearing to the
183
user to "kbfloat", since it's no longer x86-specific.
185
* app/mixers/kb-x86-asm.S (kbasm_mix): val*vl+val*vr =
186
val*(vl+vr). Using basic ring properties can help make your code
189
* app/mixers/kbfloat-mix.c: Portable C version of the cubically
192
* configure.in (sgi_support): Added checks for IRIX dmedia
193
library. Cleanups. Added '--disable-asm' option.
195
* app/xm.c (xm_load_xm_instrument): Endianness-convert envelope
196
points to host order.
197
(xm_save_xm_instrument): Here as well.
199
* app/drivers/irix-output.c: Added IRIX 5.x output driver.
201
2000-09-19 Michael Krause <m.krause@tu-harburg.de>
205
* Preliminary Win32 port by Fabian Giesen. Does not compile
206
out-of-the-box, since I integrated his 0.5.4 work into 0.5.7
207
without being able to test anything. In particular, Makefiles are
208
missing. The easiest way should be to build it with Cygwin. Some
211
- app/drivers/dsound-output.c (working as is)
213
- app/preferences.c (needs some work done, see comments)
215
- app/poll.c: added Win32 pipe emulation code. Need to replace
216
all pipe write's and read's in the main program with calls
219
- app/keys.c: This is the only part that actually requires
220
hard work for a fully functional Tracker. The current
221
version does not permit pattern editing ;-(
223
- The kb-x86 mixer requires some work if you want to use
224
an assembler other than gas. A manually translated version
225
of the assembler source comes with this archive, though
228
- Non-gcc compilers probably require that some gcc'isms be
229
removed, such as void* arithmetic and interval case statements.
231
- Look at how the GIMP Win32 port is built up; since GIMP also
232
uses the gtk+ toolkit, the building process will be similar.
234
* app/preferences.h: Directory structure is now hidden from the
235
caller; access through opaque prefs_node* handle.
237
* app/module-info.c: Update XM's 'modified' flag after various
240
* app/midi-settings.c: Disable if GNOME is not installed.
242
* app/envelope-box.c (envelope_box_canvas_event): Stop point
243
dragging when we receive a button release event on the canvas
244
(sometimes the appropriate event for the respective point does not
245
come - bug in canvas?).
247
2000-09-18 Michael Krause <m.krause@tu-harburg.de>
249
* app/track-editor.c (track_editor_handle_column_input):
250
Instrument column uses decimal values always.
252
* app/gui.c: Get rid of 'songpos' variable; use
253
playlist_get_position() instead.
254
(gui_update_player_pos): Some slight reorganization here.
256
* app/gui-subs.c (statusbar_update): Run messages through
259
* app/gui.c (playlist_position_changed): Don't update current
260
pattern if we're in playing mode (that will be done at proper time
261
in gui_update_player_pos()).
262
(gui_update_player_pos): Freeze playlist signals while updating
265
2000-09-17 Michael Krause <m.krause@tu-harburg.de>
267
* app/tracker.c (note2string): Always use decimal numbers for
270
* app/gui-settings.c: Automatical Tempo / BPM button update when
271
running through Fxx effect is default now.
273
* app/event-waiter.[ch]: New more abstract interface for dealing
274
with the GUI / audio event syncing issue (this is different from
275
time-buffer!). songpos, tempo and bpm updates are handled through
276
this interface now. Code is a lot cleaner now.
278
* app/gui.c, app/audio.c: In "tempo / bpm update" mode: If the
279
user changes tempo / bpm using the interface during playing, we
280
use a protective mechanism similar to that used by the "song
281
position changed" function.
285
2000-08-25 Michael Krause <m.krause@tu-harburg.de>
287
* app/envelope-box.c (envelope_box_canvas_event): Insert new point
288
only if insert_after != -1 and y in range.
290
* app/tracker.c (print_notes_line): Corrected bounds check.
292
* app/sample-editor.c (sample_editor_paste_clicked): Only convert
293
source data to 8bits if destination sample is in treat_as_8bit
295
(sample_editor_perform_ramp): If we are in 8bit mode, call cutoff
296
function after performing the ramp.
298
2000-08-17 Tomasz Maka <pasp@members.com.pl>
300
* app/track-editor.[ch]: command and volume parameter generator
303
* app/track-editor.c: delete key behaviours like FT2 now.
305
* app/track-editor.c: set cursor row-step to
306
gui_get_current_jump_value() in command and volume column.
308
* app/gui.c: spin_jump max value changed to 16.
310
2000-08-16 Michael Krause <m.krause@tu-harburg.de>
312
* app/xm-player.c (xmpPlayTick, xmpCmdEnvPos): Check if ch->curins
313
is initialized before accessing it. Fixes another player crash.
315
2000-08-15 Michael Krause <m.krause@tu-harburg.de>
319
* app/xm.c (XM_Free): Ehhhh... let's free the sample data as well.
320
Helps a lot if you don't want a full swap after loading some
321
mods. :) (pointed out by (Rikard Bosnjakovic <bos@hack.org>)
323
* app/xm.c (xm_load_mod): Close file before returning. (Rikard
324
Bosnjakovic <bos@hack.org>)
327
* app/track-editor.c (track_editor_interpolate_fx): Added effect
328
interpolator. At the moment only for volume and panning
329
effects. Support for other effects is easily added. See README for
332
* app/gui.c, app/playlist.c: After using spin buttons with mouse,
333
the main window focus is immediately reset in order to enable menu
334
shortcuts again. Rather hacky, but very useful for keyboard-only
337
* app/xm-player.c (xm_player_playnote_fasttracker): If ch->cursamp
338
is unitialized, do nothing. Fixes edX crash bug.
340
* app/sample-display.c (XPOS_TO_OFFSET): Use temporary guint64
341
calcs to prevent overflow in case of large samples. Large samples
342
are now edited without problems in SoundTracker.
343
(sample_display_startoffset_to_xpos):
344
(sample_display_endoffset_to_xpos): dito
345
(sample_display_set_mixer_position): Move code that decides which
346
parts of the widget to redraw to sample_display_draw().
348
* app/gui.c (playlist_position_changed): Choice of current song
349
position changes currently edited pattern as well.
350
(keyevent): Stop GDK_Tab and GDK_Return key press event signal
351
from propagating to the entry widgets.
353
* app/sample-display.c (sample_display_set_mixer_position): area.x
354
+ area.width must not exceed width of widget.
356
* app/sample-editor.c: We load raw samples now (8/16 bits,
357
signed/unsigned, little-endian/big-endian, mono/stereo).
359
* app/xm.c (xm_save_xm_samples): Endianness conversion on saving.
361
* INSTALL: Some words about the dangers of suid root installation.
363
* app/Makefile.am (install-exec-local): Added warning due to suid
366
* app/gui.c: Call statusbar functions while loading/saving
369
* app/xm.c: Don't call statusbar functions from this file. That's
370
the job of app/gui.c.
372
* app/xm.c (xm_load_xm_pattern): Accept length 0 patterns (create
373
a dummy 1-length pattern for it).
375
2000-08-14 Michael Krause <m.krause@tu-harburg.de>
377
* app/gui-settings.c: "Save unused patterns" is default now.
379
* app/gui.c (gui_free_xm): Clear xm pointer after freeing.
381
2000-08-12 Michael Krause <m.krause@tu-harburg.de>
383
* app/tracker.c (print_notes_line): Added color for selection
384
background to colors array.
385
(tracker_draw): Reordered drawing calls; less flickering during
387
(tracker_init): Added baselineskip variable, 0 for now.
389
2000-08-11 Michael Krause <m.krause@tu-harburg.de>
393
* app/menubar.c (menubar_block_mode_set): Disable menu bar
394
callback when setting this in the program.
396
2000-08-08 Michael Krause <m.krause@tu-harburg.de>
398
* app/menubar.c: Renamed "Save Song" to "Save without samples".
400
2000-08-07 Michael Krause <m.krause@tu-harburg.de>
402
* app/gui-settings.c: Removed "show zeroes" option.
404
2000-08-02 Olivier Glorieux <sglorzlinux@netcourrier.com>
406
* Context menu in track editor (only Gnome)
408
* Track line format in Config/GUI
410
* Track editor: shift + del clears entire line (note + ins + vol +
413
2000-07-30 Michael Krause <m.krause@tu-harburg.de>
417
2000-07-29 Olivier Glorieux <sglorzlinux@netcourrier.com>
419
* Block selection enhanced and mouse support.
421
2000-06-12 Michael Krause <m.krause@tu-harburg.de>
425
2000-06-04 Tomasz Maka <pasp@members.com.pl>
427
* app/sample-editor.c: added "set as loop" function.
429
* app/sample-editor.c: added "half" and "double" buttons in volume
430
ramp dialog to set 50% or 200% for left and right spinbuttons.
432
* app/track-editor.[ch]: added track_editor_kill_notes_track
433
function which kill all notes from cursor position to the end of
436
2000-05-27 Michael Krause <m.krause@tu-harburg.de>
440
* app/sample-editor.c (sample_editor_close_volume_ramp_dialog):
441
Remember last used values.
442
(sample_editor_open_volume_ramp_dialog): Allow negative values as
445
2000-05-20 Michael Krause <m.krause@tu-harburg.de>
447
* app/xm.c (xm_load_xm_instrument): Handling instrument header
448
size correctly. ST loads a few more XMs where it complained about
449
"instrument header size != 40" before.
451
2000-05-13 Michael Krause <m.krause@tu-harburg.de>
453
* app/sample-display.c (sample_display_set_mixer_position):
454
Correct expose/draw behaviour now; calculating widget areas are
455
redrawn in this function rather than in _draw() now. This was what
456
I thought to be a bug in gtk+, but it wasn't :)
458
2000-05-08 Luc Tanguay <luc.tanguay@bell.ca>
460
* app/xm.h: added constant for XM min/max note volume.
462
* app/midi.c: fixed problem when MIDI velocity is out of the range
463
of the volume of a XM note.
465
2000-05-03 Luc Tanguay <luc.tanguay@bell.ca>
467
* app/midi-settings.[ch]: MIDI settings dialog box and load/save
470
* app/menubar.c: updated to add MIDI settings item in Settings
471
menu. Save MIDI settings when "Save settings now" is clicked.
473
* app/midi.c: updated to use new MIDI settings. The volume and/or
474
channel info from the MIDI event can be turned on and off. The
475
input client number or port can be changed.
477
* app/main.c: load/save MIDI configuration settings.
479
2000-05-05 Tijs van Bakel <smoke@casema.net>
481
* Added minor row highlighting feature.
483
2000-05-02 Tomasz Maka <pasp@members.com.pl>
485
* Added option to update tempo/bpm spin buttons upon appearance of
488
* Added option to switch back to tracker page after loading /
491
2000-05-01 Michael Krause <m.krause@tu-harburg.de>
493
* app/drivers/*-output.c (prefs_update_estimate): Use
494
"milliseconds" instead of "microseconds", that's nearer to the
499
2000-04-29 Michael Krause <m.krause@tu-harburg.de>
503
* Applied patch from Tomasz Maka ("save song" option).
505
2000-04-15 Michael Krause <m.krause@tu-harburg.de>
507
* app/scope-group.c (scope_group_new): Initialize update frequency
508
from gui_settings structure.
510
* app/track-editor.c (tracker_page_create): Initialize update
511
frequency from gui_settings structure.
513
* app/audio.c (mixer_mix_and_handle_scopes): Clipflag handling
514
improved; keeps the flag on for a moment before switching it off
515
again, so that clippings get visible, even if they are short.
517
* app/sample-editor.c: Has its own timeout function to display
518
current mixer position.
520
* app/audio.c (mixer_mix_and_handle_scopes): Get mixer_position
521
dumps at regular, configurable intervals. Defaulting to 50 updates
524
* app/file-operations.c (file_selection_dir_button): Check if
525
something has been selected actually. Fixes occasional segfault
526
when doing double-clicks in the directory list (reported by
529
2000-04-09 Michael Krause <m.krause@tu-harburg.de>
531
* app/mixers/kb-x86-asm.S: Added non-volramping version of mixer
532
(gives another 15% speedup).
534
* app/module-info.c (modinfo_pack_patterns): Reinitialize playlist
535
widget after changing the pattern order table.
537
* app/main.c (main): Print error message if no output driver is
539
(sigsegv_handler): Capture segmentation faults and try to rescue
542
* app/sample-editor.c (sample_editor_monitor_clicked): Return if
543
no input driver available.
545
* app/audioconfig.c (audioconfig_load_config): Works without input
548
* app/main.c (main): Don't require input drivers.
550
2000-04-08 Michael Krause <m.krause@tu-harburg.de>
552
* app/xm-player.c (xmplayer_play_note):
553
(xmplayer_play_note_full): Stop old sample before starting new one
554
(prevents clicks when playing live on the keyboard).
556
* app/mixers/kb-x86.c (kb_x86_setsmplpos): Declick this situation
559
2000-04-01 Luc Tanguay <tanguay@asterix>
561
* app/midi.c: MIDI input recorded only if track editor visible and
564
2000-03-30 Michael Krause <m.krause@tu-harburg.de>
566
* app/mixers/kb-x86*: removed unused code.
568
2000-03-29 Michael Krause <m.krause@tu-harburg.de>
572
* app/mixers/kb-x86.c (kb_x86_stopnote): Rewrote sample-change
573
declicking to use a virtual second channel for each logical
574
channel. See comments in the source code.
575
(kb_x86_mix_sub): Disabled sample-end exponential declicking,
576
because it sounds like shit on white-noise samples
577
(i.e. hi-hats). See comments in kb-x86.c for why.
579
* configure.in: Changed the autoconf stuff in order to check for
580
gasp and disable build of the kb_x86 mixer if it's not available.
581
We should now build on non-i386 platforms again.
583
* app/mixers/kb-x86-asm.S: Fix for newer gasp (remove \(.data) and
584
use .section .data instead). (kbasm_declick_postproc): Fix an
585
assembler warning only issued by newer binutils than mine (there
586
is no faddp %st(1),%st; only faddp %st,%st(1)).
587
(kbasm_mix): Fixed the other related warning (changed call %ebp to
588
call *%ebp, whatever sense that has).
590
2000-03-28 Michael Krause <m.krause@tu-harburg.de>
592
* app/mixers/kb-x86.c: Added linear ramp declicking upon sample
593
change on channel (not only when the sample ends, but also when a
594
new one is started immediately). Also making use of the asm
595
routines' volume ramping functions to smoothen volume changes.
596
Using 1ms ramps. Seems to be okay for all the mods I've listened
599
* app/mixers/kb-x86.c (kb_x86_mix_sub): Reordered some 64bit
600
calculations to optimize gcc output. Also fixed a typo bug in
605
2000-03-27 Michael Krause <m.krause@tu-harburg.de>
607
* app/mixers/integer32.c: Fix non-i386 code (declare some
610
* app/sample-editor.c: Removed #include <sys/soundcard.h> (hint by
617
2000-03-27 Luc Tanguay <luc.tanguay@bell.ca>
619
* app/midi.[ch], app/midi-utils.[ch]: code to add MIDI input.
621
2000-03-26 Michael Krause <m.krause@tu-harburg.de>
623
* app/gui.c (gui_init): Status bar is in a GNOME dock item now and
624
can be moved around. Non-GNOME bar is at the bottom of the window
627
* app/gui-subs.c (statusbar_update): Added new argument
628
"force_update" which forces a GUI update in order to make the
629
"Loading XXX..." messages actually visible.
631
* app/envelope-box.c (envelope_box_point_event): If a point is
632
dragged out of sight, the canvas scrolls to the new location as
633
soon as the button has been released.
635
2000-03-25 Michael Krause <m.krause@tu-harburg.de>
637
* app/envelope-box.c (envelope_box_canvas_event): Middle mouse
638
button scrolls the canvas (just like the sample display widget).
639
(envelope_box_canvas_event): Middle mouse button plus Shift zooms
641
(spin_offset_changed):
642
(envelope_box_delete_point): Adjust canvas max x.
646
* po: Updated it.po. Added fr.po from Sa�d Bougribate
647
<Linus4@caramail.com>.
649
* app/instrument-editor.c (instrument_editor_update): Disable
650
"Save XI" button if no instrument loaded.
652
* app/sample-editor.c: Remove all references to
653
mixer_sample_word_length(). Assume 16bit.
655
* app/sample-editor.c (sample_editor_reverse_clicked): Don't
656
access sample pointed to by sample end, only the one before.
658
* app/menubar.c: Added "Tracker" submenu to "Settings" menu,
659
containing the 'cycle font' functions.
661
* app/tracker-settings.[ch]: Tracker font selection - you can fill
662
a list with your favourite fonts and then cycle through them with
663
Keypad-Plus/Minus from within the tracker. You should use only
664
fixed-width fonts for now..
666
2000-03-22 Michael Krause <m.krause@tu-harburg.de>
668
* Applied patch from Tomasz Maka <pasp@look.com.pl> for status
669
bar, timer, "show zeroes" and "channel numbering" options.
671
2000-03-19 Michael Krause <m.krause@tu-harburg.de>
673
* app/mixers/kb-x86.c (kb_x86_mix_sub): Optimizing for the
674
non-filtered case. Gives a speed-up of roughly 15% on plain XMs.
675
I expected more, though :)
677
* app/mixers/kb-x86-asm.S: Created a big 'gasp' macro which can
678
generate various versions of the mixer core routine without having
679
to c'n'p eight different versions.
681
2000-03-14 Michael Krause <m.krause@tu-harburg.de>
685
2000-03-13 Michael Krause <m.krause@tu-harburg.de>
689
* app/audio.c (mixer_mix): Stereo to mono conversion works now.
691
* app/xm.h: Added "treat_as_8bit" variable so that 8bit sample
692
handling can still be faked to the user by the GUI.
694
* app/mixer.h: Removed "type" field from st_mixer_sample_info. All
695
samples are stored in 16bit format internally now. Removes a lot
696
of duplicate code in sample-editor.c and in the mixers.
698
2000-03-12 Michael Krause <m.krause@tu-harburg.de>
700
* app/mixers/integer32.c: Adjusted for 16bit scope buffers.
702
* app/audio.c: Using 16bit scope buffers now. Makes the mixer
705
* app/mixers/kb-x86.c, app/mixers/kb-x86-asm.S: Added scopes
708
* app/xm.c: Load XM's with odd number of channels as well
709
(generate empty channel in that case).
711
* app/mixers/kb-x86.c (kb_x86_updatesample): Can handle updates of
712
loop limits while playing.
714
* app/audio.c (driver_startnote): Don't call mixer if sample is
717
* app/audioconfig.c, app/audio.c, app/main.c: You can choose a
720
2000-03-10 Michael Krause <m.krause@tu-harburg.de>
722
* app/mixers/kb-x86.c (kb_x86_mix_sub): Added pingpong loop
723
handling. Been listening to some of my favourite modules for quite
724
some time now and I haven't discovered any more mixing bugs. And
725
it sounds just great :-)
727
* app/mixers/kb-x86-asm.S: Added backwards mixing function.
729
2000-03-09 Michael Krause <m.krause@tu-harburg.de>
731
* app/cheat-sheet.c: Added new effects.
733
* app/mixers/kb-x86-asm.S (kbasm_mix): Enabled IT filter
734
code. Sounds crappy. No wonder, this is a one-tap IIR filter. But
735
IT just sounds like that.
737
* app/audio.c (driver_set_ch_filter_*), app/mixer.h: Added player
738
interface for filter commands.
740
* app/xm-player.c (xm_player_playnote_fasttracker, xmpPlayTick):
741
Don't set procins = 0 when procnot==97
742
(xmpPlayTick): Added filter commands.
743
(xmpPlayTick): Some Mxx fixes. (all these changes taken from
746
* app/mixers/kb-x86.c: Looping code and no-loop code unified. Now
747
bullet-proof with regards to extremely short loop lengths. Added
748
declicking logic for sample ends. Still no ping-pong loop support.
750
2000-03-08 Michael Krause <m.krause@tu-harburg.de>
752
* app/mixers/kb-x86.c: Rewrote complete loop handling code in C
753
and corrected it so as to deal with unmodified samples (the
754
interpolation code would read three invalid sample values after
755
the loop end otherwise). Actually, this required loop prediction
756
logic to be written similar to integer32.c. This thing sounds
759
2000-03-06 Jason Nunn <jsno@downunder.net.au>
761
* app/xm.c: Soundtracker can now load compressed zip lzh gz bz2
764
2000-03-05 Michael Krause <m.krause@tu-harburg.de>
766
* app/mixers/kb-x86.c, app/mixers/kb-x86-asm.S: First try at
767
incorporating Tammo Hinrich's brandnew FPU mixer code into
768
SoundTracker. I have ported two versions, one with linear
769
interpolation and one with cubic interpolation (both have code for
770
the IT filters). Support for Ping-Pong loops, 8 bit samples and
771
oscilloscopes is missing, though.
773
2000-03-03 Michael Krause <m.krause@tu-harburg.de>
775
* app/scope-group.c (scope_group_timeout): Add some hackery to
776
deal with too short latencies and the scopes dropping out.
778
* app/gui.c: The Win95 Menu key now plays all channels of the
779
current row only. Nice ProTracker feature.
781
* app/audio.c (audio_ctlpipe_play_pattern): Support "only1row"
782
argument. Use edit-mode driver for the single row play feature.
784
* app/xm-player.c: Hacked support for playing only one row of the
785
current pattern and then stopping.
787
* app/gui-settings.c (gui_settings_dialog): Renamed
788
advance_cursor_in_fx_columns to "Advance cursor horizontally in
791
* app/gui.c, app/track-editor.c, app/gui-settings.[ch]: Added
792
asynchronous IT-style editing where you can still edit patterns
793
while playing them and the patterns don't scroll. Use "Escape"
794
after starting playing the song or pattern to enable editing
795
mode. "Space" still stops the song.
799
2000-02-19 Michael Krause <m.krause@tu-harburg.de>
801
* app/mixers/integer32.c (integer32_setfreq): If freq is set too
802
low, c->speed can become 0. Force it to be 1 in this case.
804
* app/keys.c (keys_dialog): Initializing capturing variables.
806
* app/audioconfig.c, app/gui-settings.c, app/transposition.c:
809
* app/mixers/integer32.c: Removed ugly reverb effect.
811
* app/keys.c: Added standard OK / Cancel / Apply buttons.
813
2000-02-13 Michael Krause <m.krause@tu-harburg.de>
815
* app/sample-editor.c (sample_editor_update): Reordered some
816
initialization functions to avoid some triggered assert's.
817
(sample_editor_page_create): Cleaned up selection widget mess.
819
2000-02-11 Michael Krause <m.krause@tu-harburg.de>
823
2000-02-09 Michael Krause <m.krause@tu-harburg.de>
825
* app/drivers/alsa2-input.c, app/drivers/alsa2-output.c:
826
s/_plugin_/_channel_/ (as requested by Kai Vehmanen).
828
2000-02-07 Nicolas Leveille <nicolas.leveille@free.fr>
830
* app/track-editor.c: fixed handling of the advance_in_fx_column.
832
* doc/hacking.texi: some fixes to make it a well-formed texinfo file.
834
2000-01-26 Michael Krause <m.krause@tu-harburg.de>
838
2000-01-22 Michael Krause <m.krause@tu-harburg.de>
840
* app/gui.c: "Escape" can be used to toggle editing on even if
841
we're in playing mode (patch by Conrad Parker).
843
* app/clavier.c, app/playlist.c: Also replace custom marshallers
844
by gtk-provided ones.
846
* app/sample-display.c: Replace my_2ints_marshal() by
847
gtk_marshal_NONE__INT_INT (patch by Conrad Parker).
849
2000-01-21 Michael Krause <m.krause@tu-harburg.de>
851
* app/sample-editor.c (sample_editor_page_create): Rename "Clear"
854
* app/track-editor.c: "Insert" and "Backspace" key bindings (shift
855
down / pull up track). (patch by Tomasz Maka)
856
(track_editor_find_next_jazz_channel): Jazz edit logic extracted
857
into a new function. Made more intelligent (takes care of channels
858
that are still busy playing a sample).
860
* app/sample-editor.c: Added "Save Region" button, which saves
861
only the selected region as a WAV. (Tomasz Maka)
863
2000-01-19 Michael Krause <m.krause@tu-harburg.de>
865
* app/xm.c (XM_Load): setting restart position to song_length - 1
866
if out of range (FT2 does this).
868
2000-01-18 Michael Krause <m.krause@tu-harburg.de>
870
* app/track-editor.c (track_editor_set_num_channels): For the jazz
871
edit mode, only display those buttons for channels that are
874
* app/xm.c (XM_Load): Checking if restart_position is <
875
song_length (setting rp to 0 otherwise). Encountered a funny XM
876
from my favourite label "Rohformat" that has a bug here and
877
subsequently crashed the tracker due to a failed assertion in the
878
playlist widget. Which shows us that assertions are your
879
friend. Shame on you, Ronny :-)
881
* app/menubar.c: Even more menu bar translation hacking code. This
882
really sucks. Thanks to Yuuki Ninomiya for discussing this with
887
2000-01-15 Michael Krause <m.krause@tu-harburg.de>
889
* app/menubar.c (menubar_create): all_translated calculated
890
correctly now (patch by Yuuki NINOMIYA).
892
* app/sample-editor.c (sample_editor_copy_cut_common): Adjust loop
893
data after cutting parts of the sample (patch by Conrad Parker).
895
2000-01-12 Michael Krause <m.krause@tu-harburg.de>
899
2000-01-12 Kai Vehmanen <kaiv@wakkanet.fi>
901
* Added ALSA pcm2 input and output plugins (ALSA 0.5.0 and newer)
903
2000-01-08 Michael Krause <m.krause@tu-harburg.de>
907
* app/playlist.c (playlist_insert_clicked):
908
(playlist_delete_clicked): Force emission of "song_length_changed"
909
signal. Fixes crashes due to not updated XM structures (bug
910
reported by globber).
912
* app/sample-editor.c: Adds "Sel All" button, renames other
913
buttons, clears up _update_sample() (patch by Conrad Parker).
915
* app/keys.c (keys_fixup_xkeymap): Fix strange keymaps. Fixes
916
problem a Polish user was having.
918
1999-12-26 Michael Krause <m.krause@tu-harburg.de>
922
* app/track-editor.c (track_editor_handle_keys): Delete key:
923
delete note only if in note column. Otherwise delete corresponding
926
* app/gui.c (current_instrument_changed): Don't set gui_cur*_name
929
* app/sample-editor.c (sample_editor_update): Set gui_cursmpl_name
932
* app/instrument-editor.c (instrument_editor_update): Set
933
gui_curins_name correctly.
935
* app/sample-editor.c: Can handle stereo samples now (extracts one
936
channel or mixes left and right). Based on a patch sent in by
937
Stefan Hager on 1999-08-22. Also remember last saved and loaded
940
* app/gui-subs.c (file_selection_create): Add selection entry to
941
list of text entry widgets to be captured.
943
* app/menubar.c (menubar_create):
944
(menubar_init_prefs): If not all menu bar strings could be
945
translated, disable translation of the other menu bar strings
946
completely and issue a warning (all this only for the non-GNOME
951
1999-12-24 Michael Krause <m.krause@tu-harburg.de>
953
* app/file-operations.c (fileops_page_create): Disable certain
954
dialogs in NO_AUDIOFILE case.
956
* app/gui-settings.c: Save path for DIALOG_SAVE_MOD_AS_WAV.
958
* app/playlist.c (playlist_restartpos_changed,
959
playlist_songpat_changed): Only emit signal if value really
962
* app/playlist.[ch]: New functions _freeze_signals() and
965
* app/playlist.c (playlist_set_nth_pattern): If pos ==
966
current_position, set pattern spinbutton value as well.
967
(playlist_set_restart_position): Set spinbutton value.
968
(playlist_songlength_changed): Adjust limits of restart pos spin.
970
* app/audioconfig.c (audioconfig_close_requested): Deinitialize
971
cw_currentobject when closing window. (Conrad Parker striked back
974
1999-12-23 Michael Krause <m.krause@tu-harburg.de>
976
* app/sample-editor.c: "Reverse" function (patch by Conrad
979
1999-12-22 Michael Krause <m.krause@tu-harburg.de>
983
* app/gui-settings.[ch]: Added upper/lower case hex number
986
* app/tracker.c (note2string): Rewritten. Supports upper/lower
989
* app/keys.c (keys_load_config): Recognize EOF condition
990
correctly. Fixes the bug magog@mnf.nu reported (keymap loading
991
wouldn't work for people where the automatic key recognition
994
* app/gui.c (gui_init): Initialize notebook_current_page variable
995
so that keyboard works again.
997
1999-12-20 Michael Krause <m.krause@tu-harburg.de>
999
* app/playlist.[ch]: First attempt at creating a Playlist widget.
1000
At the moment it looks just like the old stuff in the upper left
1001
corner of the main window, but it's easier to modify this way.
1003
* app/instrument-editor.c (instrument_page_create): "Load XI" and
1004
"Save XI" buttons working again instead of crashing.
1005
(instrument_editor_clear_current_instrument): Stop playing before
1006
clearing the instrument.
1008
1999-12-19 Michael Krause <m.krause@tu-harburg.de>
1010
* app/file-operations.c: Handy single-click directory browsing and
1011
loading of modules, samples and instruments. Also handles the
1012
corresponding menu items in a clever way.
1014
* app/file-operations.[ch]: New notebook page; embeds the various
1015
file requesters we have.
1017
1999-12-10 Michael Krause <m.krause@tu-harburg.de>
1019
* po: Updated ja.po. Added ru.po from Michael Shigorin
1020
<mike@lic145.kiev.ua>.
1022
1999-11-20 Michael Krause <m.krause@tu-harburg.de>
1024
* app/menubar.c: "Clear Current" instrument function.
1026
* app/sample-editor.c (sample_editor_clear_clicked): update
1029
* app/instrument-editor.c (instrument_editor_save_instrument),
1030
app/menubar.c: "Save XI" function.
1032
* app/xm.h: Use guint16 instead of short for STEnvelopePoint
1035
* app/xm.c (xm_load_xi): Endianness conversion for some XI header
1036
fields. Don't cut first four letters of instrument name.
1037
(xm_save_xm_instrument): Save endian-converted volfade. Urgs.
1038
(xm_save_xi): New function to save instrument in XI format.
1040
1999-11-14 Michael Krause <m.krause@tu-harburg.de>
1044
* app/xm-player.c: Added "player_looped" variable which indicates
1045
to the audio renderer that the song has either looped, the "Bxx"
1046
command has been used to jump to another pattern or the "F00"
1047
command has been issued in order to stop the song. Should prevent
1048
endless saving loops.
1050
1999-11-13 Michael Krause <m.krause@tu-harburg.de>
1052
* app/audio.c (audio_ctlpipe_render_song_to_file): This is a
1053
special version of audio_ctlpipe_play_song(), which always uses
1054
the file driver, hacks in the desired filename and does the
1055
priority juggling (we don't want to run the rendering at nice
1058
* app/drivers/file-output.c: This driver uses libaudiofile to
1059
render a WAV file. It's not directly accessible from the audio
1060
config, use the special menu item in the "File" menu instead.
1062
* app/scope-group.c (scope_group_timeout): Return immediately if
1063
current_driver is NULL. Fixes a crash.
1065
1999-10-30 Michael Krause <m.krause@tu-harburg.de>
1067
* app/audio.c: Begun work on code to render modules into a WAV
1070
* app/main.c: Initialize effective group ID as well.
1072
* configure.in: Moved poll()/select() check in front of the
1075
* po: Updated it.po and ja.po.
1077
* app/track-editor.c (track_editor_paste_pattern): Fix pasting of
1078
short patterns into long ones (reported by Martin Andersson); also
1079
update pattern length spinbutton in that case.
1081
* app/transposition.c (transposition_transpose_notes_sub): Don't
1082
transpose KEYOFF note (reported by Martin Andersson).
1084
1999-10-16 Kai Vehmanen <kaiv@wakkanet.fi>
1086
* app/drivers/alsa-output.c: Changed default soundcard id to 0.
1088
1999-10-09 Michael Krause <m.krause@tu-harburg.de>
1090
* app/drivers/esd-output.c: Quick and dirty implementation of an
1091
ESD driver. Note that this will not be supported because of its
1094
* configure.in: Added ESD check, updated ALSA check to handle
1095
--disable-alsa correctly.
1097
1999-10-08 Michael Krause <m.krause@tu-harburg.de>
1101
* app/track-editor.c: Selection handling rewritten for multi-track
1104
* app/st-subs.c: Several new functions for dealing with parts of a
1105
track (duplicating, clearing, pasting).
1107
* app/xm-player.c: Replaced sintab[] by sin().
1109
* app/drivers/oss-output.c: Added code to make use of the
1110
high-accuracy SNDCTL_DSP_GETOPTR call when available. Gets rid of
1111
all the gettimeofday() calls. The old code is available as a
1114
1999-10-07 Michael Krause <m.krause@tu-harburg.de>
1116
* doc/hacking.texi: Old `HACKING' file extended to talk a little
1117
bit about ST's internals.
1119
1999-10-06 Michael Krause <m.krause@tu-harburg.de>
1121
* app/st-subs.c, app/menubar.c, app/track-editor.c: Insert track /
1124
* app/track-editor.c: Saving jazz edit settings on exit.
1126
* app/gui-settings.c, app/gui.c, app/sample-editor.c,
1127
app/instrument-editor.c: Remember last used paths and store them
1128
in a configuration file.
1130
* configure.in: Continue if sys/poll.h is found, but poll() isn't.
1132
* po: Updated it.po and ja.po; added es.po from German Jose Gomez
1135
1999-09-26 Michael Krause <m.krause@tu-harburg.de>
1137
* app/mixers/integer32-asm.[sh]: i386 Assembly mixing routines for
1138
16bit samples. These are only marginally faster than the original
1141
* app/mixers/integer32.c: lqmono renamed; cleaned up reverb code
1144
1999-09-25 Michael Krause <m.krause@tu-harburg.de>
1148
* app/gui-settings.c, app/tracker.c: Added tracker row
1151
1999-09-24 Michael Krause <m.krause@tu-harburg.de>
1153
* app/keys.c: Replace some empty strings by NULL pointers
1154
(fixes localization bugs in the keys dialog).
1156
1999-09-23 Michael Krause <m.krause@tu-harburg.de>
1158
* soundtracker.desktop: Added pl and de entries.
1160
* Added de.po from Colin Marquardt, updated ja.po.
1162
1999-09-10 Michael Krause <m.krause@tu-harburg.de>
1166
* app/audioconfig.c, app/audio.c: Editing and Playback drivers can
1167
be selected independently now.
1169
* app/gui.c (gui_handle_standard_keys): Removed "Shift+Space"
1172
* app/track-editor.c (track_editor_handle_column_input): Returning
1173
flag if key was handled.
1175
* app/menubar.c: Added cut'n'paste functions to the Edit menu,
1176
with configurable shortcuts; this should be useful to those using
1177
a window manager that maps Alt-F4 to "exit" :-)
1179
* app/track-editor.c: Split block / pattern / track cut'n'paste
1180
handling into simple functions.
1182
1999-09-09 Michael Krause <m.krause@tu-harburg.de>
1184
* app/tracker.c (tracker_realize): Attach style, just to be sure.
1186
* app/sample-display.c (sample_display_realize): Attach style to
1187
widget, fixes a strange crash when playing with the #chans
1190
* app/keys.c, app/module-info.c (modinfo_page_create): Call
1191
gettext() on some the strings only marked with N_().
1193
* app/time-buffer.c (time_buffer_get): After g_list_remove_link(),
1194
call g_list_free() on the freed node. Fixes the memory leak people
1197
1999-09-08 Michael Krause <m.krause@tu-harburg.de>
1199
* app/mixers/lqmono.c (lqmono_mix): Fix mixbufsize setting. Arghl.
1201
1999-09-07 Michael Krause <m.krause@tu-harburg.de>
1203
* app/mixers/lqmono.c (lqmono_mix): Update mixbufsize after
1204
allocating new mixbuf. Use g_new() and g_free().
1206
1999-09-07 Yuuki NINOMIYA <gm@smn.enjoy.ne.jp>
1208
* app/main.c: Use gtk_set_locale() instead of setlocale().
1210
* app/menubar.c: The bug is fixed that i18n is invalid in the menu
1211
bar when build without GNOME.
1213
1999-09-06 Kai Vehmanen <kaiv@wakkanet.fi>
1215
* app/drivers/alsa-*.[ch]: Fixed some timing bugs and made a few
1216
improvements to the config widgets.
1218
1999-09-06 Michael Krause <m.krause@tu-harburg.de>
1220
* soundtracker.desktop: Added GNOME menu entry.
1222
* Updated ja.po, added it.po from Yuri Bongiorno, added pl.po from
1225
1999-09-04 Michael Krause <m.krause@tu-harburg.de>
1229
* app/cheat-sheet.[ch]: Added an overview of all XM effects.
1231
* app/gui-settings.c: Added "Use anti-aliased envelope editor"
1234
* app/envelope-box.c (envelope_box_canvas_paint_grid): Reduced
1235
left X coordinate of long lines from 30000 to 16384 (non-aa canvas
1238
* HACKING: Contains some `rules' for developers.
1240
* README: Added soundtracker.org homepage and information about
1243
* app/tips-dialog.c: The tips are stored in an array inside this
1244
file now -- translation is easier this way.
1246
* app/preferences.c (prefs_get_line): Remove trailing newlines
1247
from returned strings.
1249
* app/audioconfig.c (audioconfig_clist_select): Fix driver
1252
1999-09-03 Michael Krause <m.krause@tu-harburg.de>
1254
* FAQ: Removed ALSA-related question.
1256
* Added ALSA patch from Kai Vehmanen.
1258
1999-09-02 Giles Constant <gilesc@ftech.net>
1260
* Playback effects menu added
1262
* "Master Reverb" added to playback effects (code ripped and
1263
regurgitated from libmikmod)
1265
1999-08-31 Michael Krause <m.krause@tu-harburg.de>
1267
* po/ja.po: updated by Atsushi Yamagata.
1269
1999-08-29 Michael Krause <m.krause@tu-harburg.de>
1273
* soundtracker.spec (%build): Initalize LINGUAS variable before
1274
building, so that all catalogs get installed.
1276
* INSTALL, FAQ: Some words about the gtk+ update.
1278
* app/sample-editor.c: Added horizontal scroll bar under the
1281
* app/sample-display.c: Added "window_changed" signal which is
1282
triggered whenever win_start / win_length are changed.
1284
* app/sample-editor.c (sample_editor_perform_ramp): change
1285
ABS(*p++) into q=*p++;q=ABS(q); macros suck :-)
1287
* app/sample-display.c: Middle mouse button pans the display
1290
* configure.in (CFLAGS): Require gtk+-1.2.2. Fixes the popular
1291
"GUI freezes if you click the menu bar" bug.
1293
1999-08-25 Michael Krause <m.krause@tu-harburg.de>
1295
* app/sample-editor.c (sample_editor_ok_clicked): Don't call
1296
sampler_page_enable_widgets() (the widgets have already been
1299
* app/gui.c (gui_handle_standard_keys): Handle Shift+Space
1300
manually even though it's in the menu; works around a (so I think)
1303
1999-08-23 Michael Krause <m.krause@tu-harburg.de>
1305
* app/sample-editor.c: Added "Volume Ramp" dialog, including a
1306
normalizing function.
1308
1999-08-22 Michael Krause <m.krause@tu-harburg.de>
1310
* app/menubar.c: Rewrote non-GNOME menubar code to use
1311
GtkItemFactory, because we can handle user-defined accelerators
1312
this way. Added underscores to all the menu texts. Added "Edit"
1313
menu, with "Jazz Mode Edit" toggle and "Transpositions" dialog
1316
* app/gui.c (keyevent): All the key handlers return a flag
1317
indicating if the key has been handled or not. If it has not been
1318
handled, don't stop the signal, but let gtk+ continue to handle
1319
it. We need this to support the menubar correctly.
1321
* app/track-editor.c (track_editor_handle_keys): Binding "Home"
1322
and "End" keys to start and end of current pattern, respectively.
1324
* app/transposition.[ch]: Added new "Transposition Tools" dialog
1325
with a lot of transposition and instrument number related
1328
1999-08-21 Michael Krause <m.krause@tu-harburg.de>
1330
* app/instrument-editor.c: Capturing clavierkey_enter and _leave
1331
signals to display the note the mouse is over in a framed label.
1332
Also added the "Initialize" button which fills the whole samplemap
1333
with the current sample value.
1335
* app/clavier.c: Added _enter and _leave signals which are called
1336
when the mouse is over a key or when it leaves one.
1338
1999-08-19 Michael Krause <m.krause@tu-harburg.de>
1340
* app/sample-editor.c (sample_editor_save_wav): Use libaudiofile
1341
to save WAVs. If compiling without libaudiofile, disable "Save
1344
* po/ja.po: Added japanese translation from Atsushi Yamagata.
1346
1999-08-13 Michael Krause <m.krause@tu-harburg.de>
1350
* app/track-editor.c (track_editor_handle_keys): Shift + Tab goes
1351
one channel to the left.
1353
* app/keys.c (keys_is_key_pressed): New function which finds out
1354
if a key is actually physically pressed. We need this hack to deal
1355
with X's auto-repeat.
1357
* app/gui.c (handle_standard_keys): Toggle jazz edit mode with
1360
* app/track-editor.c: Jazz edit stuff -- core handling is in
1361
track_editor_do_the_note_key.
1363
* app/track-editor.c (track_editor_handle_keys): Send keyoff note
1364
if a key is released.
1365
(track_editor_do_the_note_key): Encapsulated the relevant code for
1366
the other notebook pages.
1368
* app/gui.c (keyevent): Handle key-release events as well. Also,
1369
rename some handle_keys() functions all over the source and add
1370
the `pressed' argument.
1372
* app/gui-subs.c (gui_update_range_adjustment): Moved this from
1375
1999-08-12 Michael Krause <m.krause@tu-harburg.de>
1377
* app/st-subs.c (st_num_save_patterns): Return value based on the
1378
recently introduced save_all_patterns setting.
1380
* app/gui-settings.c: "Save XM saves all non-empty patterns" (as
1381
opposed to only the used patterns) option.
1383
* soundtracker_tips.ja.txt: Added japanese translation of
1384
soundtracker_tips.txt from Atsushi Yamagata
1385
<yamagata@plathome.co.jp>.
1387
* app/mixers/lqmono.c (lqmono_updatesample): We don't stop the
1388
sample if only the loop has changed. In that case, we bend the
1389
current pointer to the loop start!
1391
* app/sample-editor.c (sampler_page_handle_keys): If a key is
1392
pressed, the currently displayed sample is played, not the one
1393
from the sample map (using gui_play_note_full /
1394
xmplayer_play_note_full).
1396
* app/gui.c (gui_play_note_full): The same for the GUI thread.
1398
* app/xm-player.c (xmplayer_play_note_full): Permits more control
1399
over what sample gets played and at which position it starts. Man,
1400
xm-player.c really is a mess...
1402
* INSTALL: some more explanations for the binary packages.
1404
* Bumped version number to v0.3.0
1406
* soundtracker.spec: Added RPM specfile from Arthibus Gissehel,
1407
updated to distribute the NLS stuff as well.
1409
* Made the whole application NLS-aware.
1411
1999-08-09 Michael Krause <m.krause@tu-harburg.de>
1415
* app/gui.c (gui_init): Menubar in non-GNOME version doesn't have
1416
a 4 pixel gap around it any longer.
1418
* app/envelope-box.c (envelope_box_set_envelope): Install dummy
1419
envelope if env pointer is NULL.
1421
* app/instrument-editor.c (instrument_editor_update): Initialize
1422
empty envelope if instrument is null.
1424
1999-08-08 Michael Krause <m.krause@tu-harburg.de>
1426
* app/xm-player.c: Replace 1+!linearfreq by
1427
1+(!linearfreq&&!ismod) in some commands to fix excessive vibrato
1428
depth for ProTracker modules.
1430
* app/audio.c (audio_prepare_for_playing): Allocating scopebufs[]
1431
according to that new GUI option.
1433
* app/gui-settings.c: Added "Scopes Buffer Size" option.
1435
1999-08-07 Michael Krause <m.krause@tu-harburg.de>
1437
* app/sample-editor.c (sample_editor_save_wav): Fix "bytes per
1438
second" field in saved WAV header (Stefan Hager).
1440
* app/gui-settings.c: Load / save all settings, move "hexmode" and
1441
"advance cursor" options from menubar into this window.
1443
1999-08-06 Michael Krause <m.krause@tu-harburg.de>
1445
* app/gui-settings.[ch]: New dialog which contains GUI parameters.
1447
* app/preferences.c: Removed "Preferences" notebook page.
1449
* app/instrument-editor.c (instrument_editor_set_instrument):
1450
Doing most work in _update() instead of here; fixes bug where
1451
loading sample into fresh instrument wouldn't initialize the
1452
instrument editor page.
1453
(instrument_editor_load_instrument): Initialize sample editor.
1455
* app/scope-group.c (scope_group_timeout): rewritten to use the
1456
new scope buffer layout.
1458
* app/audio.c (audio_prepare_for_playing): renamed from
1460
(mixer_mix_and_handle_scopes): rewritten to use a different scope
1463
* app/drivers/oss-output.c (oss_open): Find out number of
1464
fragments used by sound driver and make corresponding corrections
1465
to get_play_time(). Now the GUI is really synchronized to audio,
1466
even with large fragment sizes.
1468
1999-08-05 Michael Krause <m.krause@tu-harburg.de>
1470
* app/gui.c (gui_init): Set minimum possible "Jump" value to 0.
1472
* app/keys.c (keys_dialog): Initialize cw_combostrings (multiple
1473
window openings could leave the combo box empty)
1475
* app/xm.c (xm_load_xi): Bug fix: missing string termination
1478
* app/instrument-editor.c (instrument_editor_load_instrument):
1479
Close file after reading (thanks to erikyyy).
1481
1999-08-02 Michael Krause <m.krause@tu-harburg.de>
1485
* configure.in, acconfig.h, app/sample-editor.c: ST can now build
1486
without libaudiofile. In that case, you will not be able to load
1487
samples in the sample editor.
1489
* app/menubar.c: Added "Load XI" menu item to "Instrument" menu.
1491
* app/xm.c (xm_load_xm_instrument): Fix volfade loading.
1493
* app/instrument-editor.c: Add "Load Instrument" function.
1495
* app/xm.c (xm_load_xi): New function that loads an instrument in
1496
XI format (funny that it isn't the same instrument format as found
1499
1999-07-27 Michael Krause <m.krause@tu-harburg.de>
1501
* app/keys.c (keys_init): Removed unnecessary "symspercode > 4"
1504
1999-07-26 Michael Krause <m.krause@tu-harburg.de>
1506
* app/tips-dialog.c (read_tips_file): Correct "can't find tips
1509
1999-07-25 Michael Krause <m.krause@tu-harburg.de>
1511
* app/drivers/oss-output.c (oss_make_config_widgets): Some layout
1512
beautification. Added delay estimation.
1514
1999-07-21 Michael Krause <m.krause@tu-harburg.de>
1518
* app/Makefile.am (soundtracker_SOURCES): Oh I hate it when that
1519
happens. I left out a source file from the
1520
distribution. Reinserted driver.h ... who said "brown paper bag"?
1524
* app/tracker.c (tracker_expose): Fixed a long-standing bug that
1525
an X expose wouldn't redraw the cursor line correctly.
1527
* soundtracker_tips.txt: Added some useful tips.
1529
* app/tips-dialog.c: I hope this helps reducing stupid questions.
1530
People don't read the README or the FAQ anyway :( This was grabbed
1531
from the GIMP source code.
1533
* app/drivers/oss-output.c: Added configuration widget / loader /
1534
saver. Basically the same as the preferences.c code in previous
1535
versions. This will need beautification!
1537
* app/audioconfig.[ch]: Audio configuration dialog.
1539
* app/preferences.c: Removed all audio-related preferences. These
1540
are handled by the drivers themselves now.
1542
1999-07-20 Michael Krause <m.krause@tu-harburg.de>
1544
* app/sample-editor.c: Rewritten for the new sampling driver
1545
interface. Cool feature: SoundTracker can sample while it's
1546
playing a module, if your sound card supports full duplex.
1548
* app/driver.h: Split into driver-out.h and driver-in.h; Sampling
1549
drivers are controlled by the main thread now instead of going
1550
through the audio thread and a sampling buffer. The "base class"
1551
of the driver classes is still in driver.h.
1553
* app/sample-editor.c (sample_editor_load_wav): Fixed 8 bit sample
1556
1999-07-18 Michael Krause <m.krause@tu-harburg.de>
1558
* app/scope-group.c (scope_group_timeout), app/track-editor.c
1559
(tracker_timeout): Changed to use driver->get_play_time().
1561
* app/time-buffer.c (time_buffer_get): Return NULL if list is
1564
* app/drivers/oss-output.c (oss_poll_ready_playing): An OSS
1565
playing driver for the new driver concept.
1567
* app/audio.c (mixer_mix_and_handle_scopes):
1568
(mixer_mix): return pointer to end of mixed data.
1569
(audio_mix): This routine contains the "main loop", as seen from
1570
the driver's view, now. It calls the player and mixer modules.
1572
* Again some changes to the driver subsystem; this time not as
1573
deep as in the 0.0.11 changes, and the resulting code is a bit
1574
easier. The driver objects handle configuration on their own now,
1575
including own GTK+ widgets. Besides, the driver has a
1576
get_play_time(), which handles what audio_time() did before.
1578
1999-07-15 Michael Krause <m.krause@tu-harburg.de>
1580
* README, INSTALL, FAQ: Updated
1582
1999-07-04 Michael Krause <m.krause@tu-harburg.de>
1586
* app/sample-editor.c (sample_editor_update_mixer_position):
1587
Update sample display accordingly.
1589
* app/audio.c (mixer_mix_and_handle_scopes): Added mixer position
1592
* app/scope-group.c (scope_group_scope_event): Right mouse button
1593
inverts global channel status.
1595
* app/xm.c (xm_load_mod): Call xm_init_locks().
1597
* app/gui.c: Finally added clipping indicator LED again
1599
* app/audio.c (mixer_mix_and_handle_scopes): Added clipping
1600
indicator time buffer.
1602
* app/track-editor.c (tracker_timeout): Use time_buffer
1604
* app/audio.c (audio_play): Use time_buffer
1606
* app/time-buffer.c: New API to handle some audio->gui
1607
synchronization (pattern play position, mixer position, clipping
1608
indicator etc.) in a more generalized way.
1610
* Use gthread functions instead of pthread functions everywhere.
1612
1999-06-29 Michael Krause <m.krause@tu-harburg.de>
1614
* configure.in: Remove pthread check, add gthread module to gtk
1615
check instead. Install some stupid workaround to get the gthread
1616
stuff into the command line.
1618
1999-06-28 Michael Krause <m.krause@tu-harburg.de>
1620
* app/sample-display.c: Added "zero
1621
line". (sample_display_do_marker_line): Make marker lines more
1622
visible. Fix small bug that would cause the line at the rightmost
1623
position not to be displayed.
1625
* app/gui.c: Added pitchbend reset button.
1627
1999-06-22 Michael Krause <m.krause@tu-harburg.de>
1629
* app/preferences.c, app/menubar.c, app/track-editor.c: Added
1630
"Advance Cursor in FX Columns" toggle.
1632
* app/track-editor.c, app/gui.c: Some global variables clean-up.
1634
* app/tracker.c: Removed tracker_note_typed_advance(), added
1635
tracker_redraw_row(), tracker_redraw_current_row(),
1636
tracker_step_cursor_row() instead.
1638
* app/gui.c: Add a "Jump" spin button. Reduce default width of
1639
Instrument / Sample entries.
1641
1999-06-13 Michael Krause <m.krause@tu-harburg.de>
1645
* app/xm.c (xm_load_mod): Call st_clean_instrument() for each
1646
instrument to initialize it.
1647
(xm_check_envelope): Check envelope settings here..
1649
* app/st-subs.c (st_clean_instrument): Set panning envelope to
1650
constant 32 (middle panning).
1652
* app/envelope-box.c: More work on the envelope editor. Not much
1653
code is left from the old version.
1655
1999-06-12 Michael Krause <m.krause@tu-harburg.de>
1657
* app/envelope-box.c: Using the GNOME canvas widget for the
1658
graphical envelope editor. Really easy to use. This is fun. Now,
1659
the very first real reason for a GNOME-only SoundTracker :)
1661
* app/sample-editor.c (sample_editor_load_wav): Checking for
1662
maximum sample length.
1663
(sample_editor_ok_clicked): Dito
1665
* app/xm.c (XM_Load): Add check for correct sample lengths (don't
1666
need to add a similar check for MOD's, cause MOD samples are
1667
generally limited to 1 << 17 bytes).
1669
* app/mixers/lqmono.c (lqmono_startnote): Check for maximum sample
1672
* app/mixer.h, app/mixers/lqmono.c: New mixer structure field
1673
"max_sample_length".
1675
* configure.in (gnome): Remove zvt from linker flags.
1677
1999-06-08 Michael Krause <m.krause@tu-harburg.de>
1681
* Makefile.am (bindist): Added rules for automatic generation of
1682
my binary distributions. This really saves me some work :)
1684
* app/xm-player.c: Some fixes from the current OpenCP CVS version:
1685
(xm_player_playnote_fasttracker): Set procins to 0 if procnot ==
1686
97. (xmpPlayTick): Set procins to 0 if procnot == 97. Vibrato
1687
depth is twice as deep in non-linear frequencies mode (replace 1
1688
by 1+!linearfreq in some commands). Retrigger command fixes.
1690
* app/menubar.c: Synchronized non-GNOME menu with the new version.
1691
Optimized mymenu structure a bit.
1693
1999-06-06 Michael Krause <m.krause@tu-harburg.de>
1695
* app/sample-editor.c (sample_editor_load_wav): Display error if
1696
file is unreadable (don't crash).
1698
* app/drivers/oss.c, app/xm.c, app/preferences.c,
1699
app/sample-editor.c: Make use of new error handling functions.
1701
* app/gui.c (read_mixer_pipe): Handle new backpipe id for errors
1703
(display simple gnome requesters for now).
1705
* app/errors.[ch] (error_error_common):
1707
(error_warning): New file, new functions to handle errors and
1708
warnings more conveniently for the user.
1710
* app/gui-subs.c (gui_update_spin_adjustment): Moved here from
1712
(gnome_error_dialog): New function
1714
* app/drivers/oss.c (oss_open): Added workaround for Linux bug
1715
(some sound drivers, when in use by another program, block when
1716
opened instead of returning EBUSY). Wrote a mail to Thomas Sailer.
1718
1999-06-04 Michael Krause <m.krause@tu-harburg.de>
1720
* app/menubar.c (menubar_save_settings_on_exit_toggled):
1721
(menubar_save_settings_now): Add "Save Settings now" and "Save
1722
Settings on Exit" (default: on) menu items.
1724
* app/gui.c (gui_init): Remove initialization of scopes display
1725
and backing store options. This is handled in
1726
menubar.c:menubar_init_prefs() automatically.
1728
* app/menubar.c: Move "Display Scopes" and "Use Backing Store"
1729
toggles from preferences page to the Settings menu. Add these
1730
settings to the preferences structure. "Use Backing Store" is off
1731
by default now, so that the tracker doesn't use too much CPU time
1732
for first-time users.
1734
* app/track-editor.c (track_editor_handle_column_input):
1735
(track_editor_handle_hex_column_input):
1736
(track_editor_handle_semidec_column_input): Handling decimal
1737
instrument column correctly.
1739
* app/tracker.c (init_display):
1740
(print_notes_line): Line numbers dec/hex display.
1742
* app/menubar.c (menubar_hexmode_toggled):
1743
(menubar_init_prefs): Added hex/dec switch to menu bar.
1745
* app/preferences.c (prefs_get_line):
1748
(prefs_load_config):
1749
(prefs_save_config): Loading and saving preferences on startup and
1752
* app/tracker.c (note2string): Instrument numbers can be displayed
1753
in decimal or hexadecimal.
1755
1999-05-28 Michael Krause <m.krause@tu-harburg.de>
1759
* app/keys.c (keys_init): Clear unused entries in xkeymap[] (Jon
1760
Forsberg <zzed@cyberdude.com>).
1762
1999-05-26 Michael Krause <m.krause@tu-harburg.de>
1766
* app/menubar.c (mymenu): Adjusted menus for non-GNOME version.
1768
1999-05-16 Michael Krause <m.krause@tu-harburg.de>
1770
* Installed glibc-2.1.1pre2 today, and... well, I had to recompile
1771
some parts of my system, but the sound pause bug is gone now!
1772
Seems like this was really a glibc-2.0.7pre3 bug. Life is fun
1773
again, now that I've fixed one of the most disturbing bugs in my
1776
* FAQ: Mentioning the problem here as well...
1778
1999-05-11 Michael Krause <m.krause@tu-harburg.de>
1780
* Got a new machine today, a 400MHz K6-2. The sound pause bug
1781
introduced with kernel 2.2.3 is still present. I really start
1782
believing this is not a soundtracker bug. Besides that, the new
1785
1999-05-02 Michael Krause <m.krause@tu-harburg.de>
1787
* app/instrument-editor.c (instrument_page_create): Add the
1788
clavier widget and necessary callback functions.
1789
(instrument_editor_clavierkey_press_event): Modify samplemap
1792
* app/clavier.c (clavier_draw_label, clavier_set_key_labels):
1793
Added these functions.
1794
(clavier_expose): Clear before drawing.
1795
(clavier_realize): Initializing color GC's.
1796
(clavier_init): Initializing font.
1798
* app/clavier.[ch]: This is Simon K�gedal's Clavier widget, taken
1801
* app/st-subs.c (st_clear_pattern): Clear all the allocated track
1802
space, not just the visible part.
1803
(st_clear_track): optimized
1805
* app/menubar.c: Added "Delete unused instruments", "Find unused
1806
pattern", "Copy current to unused pattern", "Clear unused
1807
patterns", "Pack patterns" and "Optimize module" functions to the
1808
menu. Menu structure changed. Some key shortcuts added.
1809
(menubar_handle_keys): Handling key shortcuts here.
1811
* app/gui.c (change_current_pattern): Renamed to
1812
gui_change_current_pattern() and made public.
1814
* app/st-subs.c (st_copy_pattern, st_is_empty_track,
1815
st_is_empty_pattern, st_find_first_unused_and_empty_pattern,
1816
st_is_pattern_used_in_song): New functions.
1817
(st_dup_pattern): Using st_copy_pattern(). Initializing
1820
* app/module-info.c: Removed "Delete unused instruments" button.
1821
(modinfo_copy_to_empty_pattern, modinfo_find_empty_pattern,
1822
modinfo_clear_unused_patterns, modinfo_reorder_patterns,
1823
modinfo_pack_patterns, modinfo_optimize_module): New functions.
1827
1999-05-01 Michael Krause <m.krause@tu-harburg.de>
1829
* app/gui-subs.c (gnome_warning_dialog): Pure GTK+ implementation.
1831
* app/gui.c (gui_enable_sampler_mode): Fixes for the new GUI
1834
* app/menubar.c: Added menubar_enable() and menubar_disable()
1836
* app/gui-subs.c (gnome_app_ok_cancel_modal): Moved from menubar.c
1839
* app/gtkspinbutton.[ch]: Removed.
1841
* app/gui-subs.c (gui_subs_create_slider):
1842
(gui_put_labelled_spin_button): Use extspinbutton_new() instead of
1843
gtk_spin_button_new()
1845
* app/extspinbutton.[ch]: New widget which inherits from
1846
GtkSpinButton. The old gtkspinbutton size adjustment hack has been
1847
implemented in a clean object-oriented fashion now.
1849
* app/track-editor.c (tracker_page_handle_keys): Added support for
1852
* app/keys.c: Added keyoff note key.
1854
1999-04-30 Michael Krause <m.krause@tu-harburg.de>
1856
* app/xm.c (XM_Load): Trap xm_load_xm_instruments errors
1857
(xm_load_xm_instrument): Return error codes instead of doing
1860
* app/instrument-editor.c (instrument_page_handle_keys),
1861
app/module-info.c (modinfo_page_handle_keys), app/sample-editor.c
1862
(sampler_page_handle_keys): Adjusted for new keys handling
1864
* app/gui.c (gui_play_note): Signature changed; takes note number
1865
instead of KeySym now.
1867
* app/track-editor.c (tracker_page_handle_keys): Adjusted for new
1869
(track_editor_handle_column_input): Renamed from insert_note();
1870
the note column is handled at the beginning of
1871
tracker_page_handle_keys() directly.
1873
* app/keys.[ch]: New file name of notekeys.[ch]. Some fixes to
1874
handle more key combinations.
1876
1999-04-28 Michael Krause <m.krause@tu-harburg.de>
1878
* app/st-subs.c (st_clean_song): Initialize xm->flags to zero.
1880
1999-04-27 Michael Krause <m.krause@tu-harburg.de>
1882
* app/notekeys.c: Nearly rewritten for the configuration
1883
dialog. Still a little bit buggy, and it can't save the settings,
1884
but better than nothing for now.
1886
* app/gui-subs.c (build_option_menu): Taken from testgtk.c
1887
(get_clist_in_scrolled_window): Moved from module-info.c
1889
1999-04-23 Michael Krause <m.krause@tu-harburg.de>
1891
* app/notekeys.c: Start designing notekeys configuration dialog.
1893
* app/menubar.c: Added "Settings" / "Keyboard Configuration".
1895
1999-04-22 Michael Krause <m.krause@tu-harburg.de>
1897
* app/audio.c: Added #include <string.h> for glibc 2.1.1
1899
1999-04-19 Michael Krause <m.krause@tu-harburg.de>
1901
* app/track-editor.c (insert_note):
1902
(tracker_page_handle_keys): accept capital letters as key
1903
accelerators as well. Don't worry about additional modifiers.
1905
* app/sample-editor.c: Use mixer_sample_word_length instead of
1906
accessing type field directly.
1907
(sample_editor_copy_cut_common): remove_clicked() extended to
1908
handle the copy'n'paste buffer. Cut, Remove and Copy call this
1910
(sample_editor_convert_sample): added
1911
(sample_editor_resolution_changed): use convert_sample()
1912
(sample_editor_paste_clicked): implemented
1913
(sample_editor_page_create): enable cut, copy and paste buttons.
1914
(sample_editor_resolution_changed),
1915
(sample_editor_copy_cut_common),
1916
(sample_editor_paste_clicked): remove set_sample(NULL) calls; fixes
1917
crashes while unlock()ing (oops :D).
1918
(sample_editor_init_sample): added
1920
* app/mixer.h (mixer_sample_word_length): New helper function.
1922
1999-04-18 Michael Krause <m.krause@tu-harburg.de>
1924
* app/gui.c (programlist_initialize): This function could destroy
1925
the restart position value. Fixed.
1927
1999-04-13 Michael Krause <m.krause@tu-harburg.de>
1929
* app/audio.c (audio_raise_priority): Replace nice() call by
1930
sched_setscheduler() call to get realtime priority. Now
1931
soundtracker crashes the whole machine randomly while playing :(
1932
Using nice() only for now. You can remove the "&& 0" condition to
1933
test the realtime scheduler if you want.
1935
* app/audio.c: Added #include <errno.h>
1937
1999-03-22 Michael Krause <m.krause@tu-harburg.de>
1939
* configure.in, INSTALL: audiofile 0.1.5 is sufficient.
1941
1999-03-21 Michael Krause <m.krause@tu-harburg.de>
1945
* INSTALL: Updated requirements.
1947
* app/module-info.c (get_clist_in_scrolled_window),
1948
app/gtkspinbutton.c: Remove gtk+-1.0 special-casing.
1950
* configure.in: Require gtk+-1.2.0. I really need some new
1951
functions like gtk_table_resize() and gtk_window_set_modal().
1953
1999-03-20 Michael Krause <m.krause@tu-harburg.de>
1955
* app/envelope-box.c (envelope_box_new): Removed
1956
put_labelled_spin_button in favour of
1957
gui-subs.c/gui_put_labelled_spin_button()
1959
* app/gui-subs.c (gui_put_labelled_spin_button): Additional
1960
argument 'callbackdata'
1962
* app/menubar.c: Added non-GNOME implementations of the menu bar
1963
and the dialog functions; this is based on Peter Zelezny's
1966
* app/scope-group.c: ScopeGroup is now a GTK+ widget and uses a
1967
table to layout the scopes in two rows. Hmm, yes. Much better :-)
1969
* app/sample-display.c (sample_display_size_request): Reduced
1970
minimum height to 32 pixels.
1972
* app/gui.c (gui_init): Reworked layout of the upper part of the
1973
main window. Hmm, yes. Much better :-)
1975
* app/gui-subs.c (gui_subs_create_slider): Returns GtkWidget
1976
instead of adding it to a destbox.
1978
* app/gui-subs.h: Added type field to gui_subs_slider through
1979
which you can disable the hscale in addition to the spinbutton.
1981
* app/preferences.c (prefs_page_create), app/instrument-editor.c
1982
(instrument_editor_update): Use gui_subs_set_slider().
1984
* app/gui-subs.c (gui_subs_set_slider_value):
1985
(gui_subs_get_slider_value): Added new functions for opaque
1986
handling of "gui_subs_slider"s.
1988
* app/preferences.c: Moved Doublebuffer and Scopes toggles to the
1991
1999-03-19 Michael Krause <m.krause@tu-harburg.de>
1993
* app/sample-editor.c (sample_editor_loopradio_changed): Only
1994
update sample.looptype if it has really changed.
1996
* app/track-editor.c, app/sample-editor.c,
1997
app/instrument-editor.c, app/envelope-box.c, app/gui.c,
1998
app/module-info.c: Update xm->modified at all relevant places.
2000
* app/xm.h (xm_get_modified, xm_set_modified): Helper functions to
2001
access the modified flag.
2003
* app/gui.c (file_selected), app/menubar.c
2004
(menubar_clear_clicked): Implemented confirmation dialogs.
2006
* app/menubar.c: Added menu bar containing functions which don't
2007
have to be available as buttons. Moved some stuff from gui.c here.
2008
(menubar_quit_requested): This was gui_quit_requested(), and now
2009
it asks the user before actually quitting (in case the module has
2012
* app/gui.c (gui_init): Added GNOME code (some the above GNOME
2013
stuff is also inspired by Greg S. Hayes' work).
2015
* configure.in: Added GNOME check; copied from xchat-0.9.2 because
2016
it includes a --disable-gnome option which is essential for me.
2018
* app/xm.c (xm_load_mod): Add some more sanity checks to the loop
2019
point initialization.
2021
1999-03-16 Michael Krause <m.krause@tu-harburg.de>
2023
* app/sample-editor.c (sample_editor_load_wav): Sample loader uses
2024
the audiofile library now. Kinda works, but I didn't really
2025
understand the audiofile API.
2027
* configure.in: Added check for audiofile library.
2029
1999-03-07 Michael Krause <m.krause@tu-harburg.de>
2031
* app/audio.c (mixer_mix_and_handle_scopes): Call mixer->mix with
2032
scopebufs == NULL when scopes are disabled in the GUI.
2034
* app/mixers/lqmono.c (lqmono_mix): Only write scope data if
2037
* app/scope-group.c: Made scopes_on variable global.
2039
1999-03-02 Michael Krause <m.krause@tu-harburg.de>
2041
* app/audio.c (audio_thread): Don't die if poll() returns EINTR.
2043
* app/Makefile.am: Added install-exec-local rule which sets the
2044
setuid bit on the soundtracker executable.
2046
* app/main.c (main): Handle user ID's correctly. SoundTracker can
2047
now safely run setuid root; the mixer thread will run at a high
2050
* The audio subsystem is now automatically informed of loop
2051
setting changes; you don't have to play the song to initialize the
2052
sample settings any longer. You can also load, edit and save
2053
samples without having to stop playing.
2055
* app/xm-player.c (xmplayer_play_note): Don't modify
2056
channel->nextsamp (fixes segfault).
2058
* app/sample-editor.c: Lock the sample before changing it in any
2059
way and tell the mixer about it.
2061
* app/mixers/lqmono.c (lqmono_mix): Lock the sample we are
2064
* app/xm-player.c (channel): Removed nextsampid and cursampid
2066
* app/xm.c, app/sample-editor.c, app/xm-player.c: Update for new
2069
* app/lqmono.c: Updated; removed the big sample info array.
2071
* app/audio.c (driver_startnote): Changed signature to use pointer
2072
to st_mixer_sample_info
2074
* app/xm-player.c (xmplayer_init_playing): Removed sample
2075
initialization, it's not needed any longer
2077
* app/audio.c: Removed driver_setsample
2079
* app/mixer.h, app/xm.h et al: Sample structure updated;
2080
encapsulated mixer relevant data. Added synchronization mutex.
2082
* app/audio.c (mixer_mix): Removed some stupid debugging code.
2084
* app/driver.h, app/drivers/oss.c: Removed some superfluous code
2085
that I've prepared to handle self-mixing soundcards. I'm not going
2086
to implement this feature in the near future, and it needs more
2087
code changes anyway, so I'm removing it completely.
2089
* app/xm.c (xm_load_mod): Load more module formats (patch by Maik
2092
1999-02-17 Michael Krause <m.krause@tu-harburg.de>
2096
* app/preferences.c: Added sliders adjusting the update frequency
2097
of the scopes and the pattern scrolling.
2098
* app/scope-group.c (scope_group_set_update_freq):
2099
* app/track-editor.c (tracker_set_update_freq): New functions
2101
* app/xm-player.c: * app/audio.c: * app/scope-group.c: Channels
2102
can be muted again by toggling its scope button.
2104
* app/module-info.c (modinfo_page_handle_keys): Added Linear/Amiga
2105
frequency choices, and ProTracker mode toggle. Besides that, you
2106
can play notes on the keyboard in the module info page now.
2108
* app/gui.c: Added Tempo and BPM sliders.
2110
* app/gui-subs.c (gui_subs_create_slider): Generic
2111
slider/spinbutton combination.
2113
* app/gui.c: Moved general GUI helper functions to gui-subs.c
2115
* app/xm-player.c (xmplayer_init_play_song): When starting playing
2116
at song position 0, reinitialize tempo and bpm.
2118
* app/audio.c (audio_play):
2119
(audio_ctlpipe_set_songpos): * app/gui.c (gui_update_player_pos):
2120
(read_mixer_pipe): Proper "set song position" synchronization.
2121
(read_mixer_pipe): gui_enable(1) when playing has stopped.
2122
(gui_enable): Handling some more widgets here.
2124
1999-02-11 Michael Krause <m.krause@tu-harburg.de>
2126
* app/gui.c (init_xm): Call tracker_set_num_channels().
2128
* app/tracker.c (tracker_set_num_channels): New
2129
function. tracker.c is independent of the global xm pointer now.
2131
1999-02-06 Michael Krause <m.krause@tu-harburg.de>
2133
* app/xm-player.c (xmplayer_final_channel_ops): Don't handle
2134
envelopes, vibrato and volfade in ProTracker mode.
2135
(PlayNote): Split function into two, one for PT and one for FT, to
2136
avoid excessive ismod checks.
2137
(xm_player_playnote_protracker): Remove unnecessary statements,
2138
dealing with keyoff, sustain and so on..
2140
1999-02-05 Michael Krause <m.krause@tu-harburg.de>
2142
* app/xm-player.c (PlayNote): Moved note initialization to
2143
xm_player_start_note().
2144
(xmpPlayTick): Moved glissando handling to
2145
xm_player_handle_glissando().
2146
(PlayNote): Moved frq initialization to xm_player_get_note_freq().
2147
(channel): Renamed ArpNotes to ArpOffsets.
2148
(xmpPlayTick): Arpeggios for ProTracker modules use curtick % 3 as
2150
(xm_player_get_note_frq): For ProTracker modules we fetch the
2151
correct period value from the new table 'protracker_periods',
2152
which was taken from the original ProTracker replayer.
2153
(xmplayer_final_channel_ops): For ProTracker modules we calculate
2154
the frequency out of the period according to the Amiga
2155
Manuals. All these changes result in a perfect mod replay: long
2156
samples no longer get out of sync as they do in most
2157
(all?) other PC module players.
2158
(xmpPlayTick): E10 and E20 are no-ops in ProTracker (they don't
2159
take the last-used value and slide around).
2160
(freqrange): Fixed frequency range check for ProTracker modules.
2162
1999-01-30 Michael Krause <m.krause@tu-harburg.de>
2164
* app/envelope-box.c: Removed frame
2166
1999-01-28 Michael Krause <m.krause@tu-harburg.de>
2168
* app/instrument-editor.c: Added volfade and vibrato widgets
2170
* app/xm.c (xm_load_xm_instrument): vibtype sanity check
2172
* app/gui.c: Moved some GUI helper functions from preferences.c
2174
1999-01-21 Michael Krause <m.krause@tu-harburg.de>
2178
1999-01-20 Michael Krause <m.krause@tu-harburg.de>
2180
* app/gui.c (gui_update_player_pos): Moved gdk_flush() call from
2181
the beginning of read_mixer_pipe() to the end of this function.
2183
1999-01-16 Michael Krause <m.krause@tu-harburg.de>
2185
* app/gui.c: Disabled clipping LED.
2187
1999-01-15 Michael Krause <m.krause@tu-harburg.de>
2189
* app/preferences.c: Preferences page for main window
2190
notebook. Playing parameters can be set independently for editing
2191
and playing mode. Added necessary extensions to the audio
2192
subsystem (driver->setprefs() function). We don't load & save the
2195
* app/scope-group.c, app/track-editor.c, app/audio.c (audio_time),
2196
app/gui.c (gui_audio_tick): Don't let audio subsystem issue ticks
2197
into the backpipe; use time stamps in public variables
2198
(audio_playerpos_*) instead.
2200
* app/gui.c (gui_update_player_pos): Return if set_songpos_count
2203
* app/audio.c (audio_play): Using last_synctime_driver instead of
2204
player time as time stamp.
2206
1999-01-14 Michael Krause <m.krause@tu-harburg.de>
2208
* app/drivers/oss.c (oss_open): fragsize is returned as a byte
2209
count by OSS, but was used as a sample count in the code (this
2210
resulted in oss_poll_ready_playing() blocking at the write()
2211
call). Fixed. Playback should be smoother now.
2213
1999-01-11 Michael Krause <m.krause@tu-harburg.de>
2215
* app/track-editor.c (tracker_timeout):
2216
(tracker_start_updating):
2217
(tracker_stop_updating):
2218
(tracker_set_time): New functions, mostly c'n'p from
2219
scope-group.c. Pattern and song position are updated independent
2220
of audio player ticks now; this should give smoother and more
2221
exact display updates when using large fragment sizes.
2223
* app/gui.c (gui_update_player_pos): This is not done from
2224
track-editor.c since some of the variables should belong to gui.c
2227
* app/audio.c (audio_play): Added ring buffer for player position.
2229
1998-12-29 Michael Krause <m.krause@tu-harburg.de>
2231
* app/xm-player.c (xmpPlayTick): Did the same change to the Fine
2234
1998-12-26 Michael Krause <m.krause@tu-harburg.de>
2236
* app/xm-player.c (xmpPlayTick): Bug fix: The A00 effect (VolSlide
2237
with argument 0) in ProTracker modules does nothing, in
2238
FastTracker modules it uses the previously used argument
2239
(mod.Stardust Memories by Jester).
2241
1998-12-19 Michael Krause <m.krause@tu-harburg.de>
2243
* app/xm.c (XM_Load): A failed header length checking doesn't
2244
prevent loading the rest of the module. SoundTracker versions
2245
earlier than 0.0.12 could save the wrong value in here and 0.0.12
2246
couldn't load those modules.
2248
* app/xm-player.c: Ported KB's OpenCP fixes from 981126. This
2249
mostly affects PlayNote(), vibrato and some strange envelope
2250
sustain handling fix.
2252
1998-12-13 Michael Krause <m.krause@tu-harburg.de>
2256
* app/sample-display.c (sample_display_draw_main): Removed
2257
assertion check against s->width, which was frequently triggered
2258
when changing the number of channels. We're just returning
2261
* app/gui.c (read_mixer_pipe): PLAYING_STOPPED case: enabling GUI
2262
and setting pattern position only if GUI was disabled.
2264
1998-12-12 Michael Krause <m.krause@tu-harburg.de>
2266
* app/module-info.c (modinfo_delete_unused_instruments): This
2267
function is triggered by the new button "Delete unused
2268
instruments" and deletes all unused instrument in the current XM.
2270
* app/st-subs.c (st_instrument_used_in_song): New function, finds
2271
out if an instrument is used in an XM.
2273
* app/gui.c (programlist_songpos_changed): Don't change editing
2274
pattern when browsing in the playlist.
2276
* app/gtkspinbutton.c (gtk_spin_button_insert_text),
2277
app/module-info.c: gtk+-1.1.7 compatibility fixes.
2279
* app/xm-player.c (xmplayer_play_note): Clear channel data before
2280
initializing new note.
2282
* app/sample-editor.c (sample_editor_update): Check current_sample
2283
against NULL and disable the editor if there's no sample.
2285
* app/xm.c (XM_Save): Saving amiga frequencies flag if set.
2287
* app/sample-editor.c: Sampling is working again. Enabled
2290
1998-12-11 Michael Krause <m.krause@tu-harburg.de>
2292
* app/drivers/oss.c (oss_open): Added sampling support.
2294
* app/audio.c (audio_lock, audio_unlock): Added locking
2295
primitives. (audio_sampled): Added basic support for sampling;
2296
limited to 16bit 44.1kHz mono sampling currently.
2298
1998-12-10 Michael Krause <m.krause@tu-harburg.de>
2300
* app/xm-player.c (xmplayer_final_channel_ops): If ismod is set,
2301
pan channels 0 and 3 to the left and channels 1 and 2 to the right
2302
(Amiga stereo support is very digital: left or right :D)
2304
* app/mixers/lqmono.c: Support stereo mixing.
2306
* app/audio.c (mixer_mix): Fixed stereo-to-mono conversion.
2308
* app/xm-player.c (xmplayer_final_channel_ops): ch->chFinalPitch
2309
== 0 is only wrong for Amiga frequencies.
2311
* app/gui.c (play_song, play_pattern): Moved GUI disabling calls
2312
to read_mixer_pipe(). (gui_enable): renamed from
2313
gui_enable_widgets_for_play_mode().
2315
* app/gui.h: New convenience macros (GUI_ENABLED, GUI_EDITING).
2316
Renamed playing to gui_playing_mode and exported enum's.
2318
* app/gui.c (read_mixer_pipe), app/track-editor.c, app/audio.c:
2319
Note playing and editing fixed.
2321
1998-12-09 Michael Krause <m.krause@tu-harburg.de>
2323
* app/scope-group.c (scope_group_create): Setting group spacing to
2324
0. Making buttons insensitive.
2326
* app/xm-player.c (xmplayer_final_channel_ops): Test
2327
ch->chFinalPitch against 0 before setting sample frequency. Fixes
2328
crashes on a lot of modules.
2330
* app/xm.c (xm_save_xm_pattern): Empty patterns are saved with
2333
1998-12-08 Michael Krause <m.krause@tu-harburg.de>
2335
* app/xm.c: Various bug fixes and note saving compression:
2336
(xm_save_xm_instrument): Always use 40 as sample header size.
2337
(xm_put_xm_note): xm_save_xm_note() renamed, renders into a buffer
2338
now instead of into a file. Added note compression.
2339
(xm_save_xm_pattern): Rewritten for xm_put_xm_note().
2340
(XM_Save): put_le_32(xh + 60, ...) instead of put_le_16(). XM's
2341
saved by ST can be loaded into MikIT and FastTracker now :)
2342
(XM_Load): get_le_32(xh + 60, ...) instead of get_le_16().
2344
1998-12-03 Michael Krause <m.krause@tu-harburg.de>
2346
* Released v0.0.11-fixes patch
2348
* app/audio.c: #include <sys/time.h> needed for glibc2.
2350
* app/module-info.c: Replaced GTK_HAVE_FEATURES_1_1_5 check by
2351
explicit check of gtk version.
2353
1998-12-01 Michael Krause <m.krause@tu-harburg.de>
2357
* app/audio.c, app/gui.c: Clipping indicator working again.
2359
* app/audio.c (driver_sync): Pitchbend can now be changed while
2360
playing without crashing.
2362
* app/gui.c (gui_init): Added pitchbend slider.
2364
* app/gui.c (gui_adj_amplification_changed): Updated for the new
2367
* app/audio.c, app/xm-player.c: Added keyboard note playing.
2368
Entered notes are played on the channel the cursor is positioned
2369
in, not in a hidden internal 33rd one as v0.0.10 and earlier did
2372
1998-11-30 Michael Krause <m.krause@tu-harburg.de>
2374
* app/scope-group.c (scope_group_timeout): Fixed the remaining
2377
* app/sample-display.c (sample_display_set_data): These functions
2378
can copy the provided sample into their own buffer now.
2380
1998-11-29 Michael Krause <m.krause@tu-harburg.de>
2382
* app/scope-group.c, app/audio.c, app/mixer.h: I finally have
2383
working scopes again. The new code updates the scopes
2384
independently of the audio thread, so the scopes are updated
2385
frequently even if the audio fragment size is large. There are
2386
still some bugs in here, and the code needs cleanup, but that
2387
doesn't matter at the moment.
2389
* app/sample-display.c (sample_display_new): Widget can be created
2390
without the loop and selection editing properties; it is basically
2391
the scope widget in that case.
2393
* Removed scope.c and scope.h; sample-display.c offers the same
2396
1998-11-28 Michael Krause <m.krause@tu-harburg.de>
2398
* app/xm-player.c, app/audio.c, app/drivers/oss.c: Updated to use
2399
the new polling scheme.
2401
* app/driver.h: Added general fd poll() functions for the driver
2404
1998-11-25 Michael Krause <m.krause@tu-harburg.de>
2406
* Whoo. I see that my just recently updated Emacs has a new date
2407
style. And I always wondered who's interested in the exact day
2408
time in a ChangeLog :)
2410
* app/module-info.c (get_clist_in_scrolled_window): New function
2411
to accomodate to the new clist handling in gtk+-1.1.5
2413
Mon Nov 23 16:59:20 1998 Michael Krause <m.krause@tu-harburg.de>
2415
* app/drivers/oss.c (oss_open): Rewrote to use the new mixer
2416
interface. Tries more playback formats now (unsigned and signed
2417
16 bits little endian / big endian as well as unsigned / signed 8
2418
bit formats) and can also play stereo (there's just the mixer
2419
which has to make use of this :D)
2421
* app/sample-display.c (sample_display_realize):
2422
* app/scope.c (scope_realize):
2423
* app/tracker.c (tracker_realize): Removed gtk_style_detach()
2424
calls. They caused a crash on some people's machines and were
2427
* app/audio.c: Added sound format conversion layer between driver
2428
and mixer. Also added extra layer between XM player and the driver
2429
so we can handle things like pitchbending and balancing
2430
transparently. Pitchbending variable works perfectly.
2432
Thu Nov 19 19:48:28 1998 Michael Krause <m.krause@tu-harburg.de>
2434
* app/xm-player.c (xmpPlayTick): Added some last changes to make
2435
amiga frequencies work.
2437
* app/xm.c (xm_load_mod): Set xm->flags to IS_MOD and AMIGA_FREQ.
2438
(XM_Load): Set xm->flags to AMIGA_FREQ if necessary.
2440
* app/xm.h: Add flags field
2442
Wed Nov 18 17:44:23 1998 Michael Krause <m.krause@tu-harburg.de>
2444
* app/poll.c: poll() emulation via select(). Cleans up the #ifdef
2445
mess in some of the other files.
2447
* app/sample-editor.c: Sampling temporarily disabled until support
2448
for that is in the driver module layer.
2450
* app/endian-conv.h: Using direct memory access on i386 machines.
2452
* app/xm.c (xm_save_xm_instrument): Save vibrato and volfade
2455
Sat Nov 14 17:33:15 1998 Michael Krause <m.krause@tu-harburg.de>
2457
* app/xm.c (xm_load_xm_instrument): Loading vibrato and volfade
2460
* app/xm.h: New fields for vibrato settings and volume fadeout.
2462
* I've just finished a first working version of the new player
2463
system. Also I've decided to replace my own XM player by the one
2464
from OpenCP. The following is a rough description of the changes:
2466
* app/audio.c: This file contains the audio handler thread (it
2467
will also handle sampling). It controls the driver and player
2468
(Note that the player is not (yet) modularized) and the mechanism
2469
for communicating with the main thread.
2471
* app/driver.h: Contains driver module definitions. The driver is
2472
the primary interface which audio.c deals with. I've written it
2473
with auto-sequencer devices like GUS and AWE in mind, but this
2474
might still need some tuning, as I don't own such a card.
2476
* app/drivers/: Contains available driver modules. A driver module
2477
supplies functions for playing and sampling data.
2479
* app/mixer.h: Mixer module definitions. Mixer functions are
2480
usually only called by the driver module which needs the
2481
mixer. The rest of SoundTracker doesn't care whether a mixer is
2484
* app/mixers/: The available mixer modules. lqmono.c contains the
2485
mixer routines as found in 0.0.10.
2487
* app/xm-player.c: XM player routines. xmplayer_play() calls the
2488
driver functions directly and returns when driver->sync()
2489
blocks. Alright, this is the new OpenCP player. It's supposed to
2490
be the most FastTracker compatible player out there, despite of
2491
the chaotic source code :) Had to rewrite all the envelope
2492
handling and note / effect retrieval.
2494
* app/main.c (main): The former mixer communication pipe is
2495
allocated here; also we currently initialize the audio thread with
2496
the OSS driver and the lqmono mixer.
2498
* app/mixer.c: Is now obsolete.
2500
Sat Nov 7 14:19:40 1998 Michael Krause <m.krause@tu-harburg.de>
2502
* Starting to think about a modular audio driver and mixer system.
2504
Sun Nov 1 12:37:39 1998 Michael Krause <m.krause@tu-harburg.de>
2508
* app/xm.c: Doing charset conversion in the XM loader and saver.
2510
* app/recode.c: New file; converts characters between IBM PC and
2511
ISO Latin1 encodings (derived from the recode source code).
2513
* app/mixer.c (mixer_fill_buffer): Changed some loop calculations.
2514
I'm not yet completely happy with this piece of code.
2516
* app/gui.c: Added amplification slider and clipping indicator.
2518
* app/xm.c (xm_load_mod): Initialize sample only if length > 0.
2519
Check for correct loop parameters.
2521
* app/track-editor.c (vscrollbar_changed): Block patpos signal
2522
handler before tracker_set_patpos().
2524
Fri Oct 30 20:13:58 1998 Michael Krause <m.krause@tu-harburg.de>
2526
* app/sample-editor.c: WAV loader and saver do endianness
2527
conversion and handle 8 and 16 bit samples. Added relnote spin
2528
button, resolution display and sample length display. Telling the
2529
mixer to stop playing before doing destructive sample operations.
2530
(sample_editor_ok_clicked): Initialize sample type.
2532
Thu Oct 29 18:30:29 1998 Michael Krause <m.krause@tu-harburg.de>
2534
* app/mixer.c (mixer_fill_buffer): Added amplification and signal
2537
* app/xm.c (xm_load_mod): Initialize s->panning to 128.
2539
* app/mixer.c (mixer_fill_buffer): Added support for 8 bit
2542
* app/xm.c: Added support for 8 bit samples in XM loader/saver and
2545
* app/sample-display.c (sample_display_draw_data): Added support
2546
for 8 bit sample data.
2548
* app/xm.h (struct STSample): renamed 'type' to 'loop' and added
2549
new field 'type' which indicates 16 or 8 bit sample.
2551
* app/sample-display.c (handle_motion): Bug fixed: end points
2552
could be equal to the starting points.
2554
Wed Oct 28 15:11:43 1998 Michael Krause <m.krause@tu-harburg.de>
2556
* app/sample-editor.c: Added some assertions to make sure that the
2557
loop and selection ends are always to the right of the start
2560
* app/sample-display.c: Made the whole source a lot more readable
2561
and fixed a good number of bugs. Thanks to Darin Ohashi for
2562
finding one of them.
2564
* configure.in: Check for select() only if poll() is not found.
2566
* app/gtkspinbutton.c (gtk_spin_button_configure): Fixed some
2567
compatibility #ifdef's and compiler warnings.
2569
* app/mixer.c: Use poll() instead of select() when available.
2571
* gui.c, sample-editor.c, configure.in: Doesn't fail when poll()
2572
is not available -- falling back to select().
2574
Mon Oct 26 11:51:14 1998 Michael Krause <m.krause@tu-harburg.de>
2576
* app/xm.c: Cleaned up and made all routines endianness- and
2579
* app/st-subs.c: New file; moved some of the more general
2580
functions from xm.c to this place.
2582
* configure.in (CFLAGS): Added -Wall. And I always wondered why I
2583
got so few compiler warnings in the last few days :)
2585
* app/xm.h: Got rid of the num_patterns and num_instruments
2586
fields. These were only relevant to xm.c anyway.
2588
Sun Oct 25 18:18:05 1998 Michael Krause <m.krause@tu-harburg.de>
2590
* app/mixer.c (player_tick): Instrument without note retriggers
2591
volume and envelope now.
2595
* TODO: Added a lot of things.
2597
* README: Added a list of keyboard mappings.
2599
* app/mixer.c (player_tick): Added ea* and eb* effects.
2601
* app/xm.c (MOD_Load): Hacked together a ProTracker module
2602
loader. The finetune conversion is not really okay I think.
2604
* app/endian-conv.h (get_be_16): Added.
2606
* app/tracker.c (tracker_draw): only draw when widget is visible.
2608
* app/gui.c (read_mixer_pipe): case STOPPED: tracker_set_pos().
2609
(play_song): change_current_pattern().
2611
* app/mixer.c (stop_playing): Set player_songpos and
2614
Wed Oct 21 20:02:24 1998 Michael Krause <m.krause@tu-harburg.de>
2616
* app/gtkspinbutton.c: Hacked in some #if's to make it compile
2619
Sun Oct 18 12:40:01 1998 Michael Krause <m.krause@tu-harburg.de>
2621
* app/xm.c (XM_load_pattern): Do endianness conversion (whoops,
2622
forgot that yesterday :D) and clear allocated channels.
2623
(XM_load_note): optimized.
2625
Sat Oct 17 14:43:35 1998 Michael Krause <m.krause@tu-harburg.de>
2629
* app/mixer.c (mixer_main): PLAY_NOTE: reset globalvolume and
2630
smplcount only if we aren't playing the module.
2632
* app/sample-editor.c: Added "Clear", "Show All", "Zoom in" and
2633
"Zoom out" operations.
2634
(remove_clicked): fix loop positions after cutting.
2636
* app/sample-display.c: Unified semantics of the loop, selection
2637
and window end: The loop, selection and window end offsets point
2638
to the first sample that is not to be played in the loop / that is
2639
not victim of a forthcoming sample operation / that is not to be
2642
* app/xm.h: Replaced STSample.looplen by loopend and changed the
2643
rest of the source code accordingly.
2645
* app/mixer.c (init_note_freq): Don't reset sample when
2646
initializing 3xx effect.
2648
* app/sample-editor.c (load_wav, save_wav): Do endianness
2651
* app/endian-conv.h: Moved the endianness routines from xm.c to
2654
* configure.in: Remove checks for 'const' and 'inline'. We only
2655
compile on gcc anyway.
2657
* app/xm.c (byteswap_le_16_array): Actually implemented this
2659
(XM_Load): Amiga frequencies are ignored but loading continues.
2660
Do endianness conversion.
2661
(XM_save_samples): Clear sh[] before working.
2662
(XM_load_instrument): Issueing a warning if vibrato or volume
2663
fadeout are used. Do endianness conversion.
2665
* app/sample-editor.c: Displaying selection data; reset button
2668
Fri Oct 16 14:46:44 1998 Michael Krause <m.krause@tu-harburg.de>
2670
* app/sample-display.c (handle_motion): Almost rewritten. Should
2671
be working as expected now.
2673
* app/sample-editor.c (sample_editor_display_loop_changed):
2674
Handling the 'loop_change' signal.
2676
* app/sample-display.c: The loop points can be set with
2677
SHIFT-button1/3. Added signals 'selection_changed' and
2680
* app/sample-editor.c: Added loop type/start/end controls.
2682
* app/gtkspinbutton.c: Modified version of the original GTK+
2683
spinbutton widget which adjusts its width so that the number is
2684
always displayed completely.
2686
* app/xm.c (XM_load_samples): Initialize loopstart/-end if the
2688
(st_clean_sample): Initialize looplen to 1.
2690
* app/gui.c (gui_put_labelled_spin_button,
2691
gui_update_spin_adjustment): made non-static.
2693
* app/sample-editor.c (sample_editor_update): After sampling into
2694
an empty sample slot, all the editing widgets are enabled now.
2696
Wed Oct 13 12:00:00 1998 Michael Krause <m.krause@tu-harburg.de>
2698
* app/sample-display.c: Started to restructure this thing so that
2699
the drawing speed is optimized. Still a bit buggy.
2701
Mon Oct 12 12:36:37 1998 Michael Krause <m.krause@tu-harburg.de>
2703
* app/xm.c (XM_Save): Save real module name instead of
2706
* app/module-info.c: Added "Module Info" page to the main window
2707
notebook, containing a list of all the instruments and samples and
2710
* app/xm.c (XM_new_pattern): Initialize p->alloc_length. Stupid
2713
* app/sample-editor.c (ok_clicked, load_wav): exchange calls to
2714
st_clean_sample() and st_clean_instrument(); add extra call to
2715
st_clean_sample() to set sample name.
2716
(sample_editor_update): Set sample name text entry to new value.
2718
* app/gui.c (offset_current_sample, handle_standard_keys): Added
2719
ctrl-GDK_Up and ctrl-GDK_Down for sample switching.
2721
* app/track-editor.c (tracker_page_handle_keys): Check modifier keys
2722
in GDK_Up and GDK_Down.
2724
* app/gui.c (gui_init): Moved current_instrument_create() and
2725
editing_status_create() into this function. Added sample selector.
2726
(gui_get_text_entry): new function, automatically installs the
2727
keyboard capture handling on a newly created text entry.
2729
Sat Oct 10 11:22:25 1998 Michael Krause <m.krause@tu-harburg.de>
2731
* app/gui.c (read_mixer_pipe): Checking startstop_fifo against 0
2732
before decrementing. Prevents a crash when the mixer stops playing
2733
via the F00 command.
2737
* Using autoconf/automake for configuration now. Moved all the
2738
sources into the 'app' subdirectory.
2740
* mixer.c: Using explicit gint32's instead of int's in some fields
2743
* gui.c (play_song), (play_pattern): Call play_stop() first.
2745
* mixer.c (player_tick): Don't handle more than xm->num_channels
2748
* gui.c, xm.c (st_set_num_channels): Number of channels is
2751
* gui.c (init_xm): Call change_current_pattern() instead of
2752
tracker_set_pattern(). New parameter 'new_xm'.
2754
* gui.c, xm.c (st_set_pattern_length): Pattern length can be
2757
* mixer.c: Replaced all occurences of the word 'period' by
2758
'pitch'. A period is inversely proportional to the frequency; the
2759
value called period in the XM docs is not. 'Pitch' isn't exactly
2760
the right word either, but 'period' is worse because it has
2761
another meaning in the Amiga context.
2763
* gui.c (handle_standard_keys): Added GDK_Multi_key as a synonym
2766
Fri Oct 9 00:15:22 1998 Michael Krause <m.krause@tu-harburg.de>
2768
* mixer.c (period_to_speed): Checking for integer overflow. Very
2769
short periods (very high frequencies) can't be rendered
2770
currently. The mixer code should be using long longs I guess. Some
2771
crashes are prevented for now.
2773
Thu Oct 8 22:22:50 1998 Michael Krause <m.krause@tu-harburg.de>
2775
* gui.c (wait_for_player): Using new startstop_fifo variable to
2776
synchronize with the mixer thread. Fixes crash when loading XM
2777
after playing notes with the keyboard.
2779
* gui.c (free_xm): New routine which resets all subsystems of the
2780
tracker before calling XM_Free(). Fixes crash when loading XM
2781
while in sample editor with samples playing.
2783
* mixer.c (mixer_fill_buffer): Fixed loop handling again; first
2784
sample is now loopstart << ACCURACY, last sample is loopend <<
2787
* gui.c (change_current_pattern): Call mixer_set_pattern even when
2788
we're not in playing_pattern mode. Can now change pattern while
2789
playing a mod, just like in PT.
2791
* mixer.c (mixer_main), gui.c (read_mixer_pipe):
2792
(programlist_songpos_changed): Added set_songpos_fifo variable to
2793
avoid GUI feedbacks when fast-forwarding the song position.
2795
Wed Oct 7 20:03:35 1998 Michael Krause <m.krause@tu-harburg.de>
2797
* gui.c (programlist_songpos_changed): change_current_pattern()
2798
called even if playing. (change_current_pattern): Change
2799
editing_pat first, then call the other routines. Call
2800
mixer_set_pattern() only if in playing pattern mode.
2802
Tue Oct 6 17:37:14 1998 Michael Krause <m.krause@tu-harburg.de>
2804
* gui.c (spin_editpat_changed): Call change_current_pattern() even
2807
* gui.c, xm.c: Added "Clear Song" and "Clear All" operations.
2809
* gui.c: Added restart position widget to the program list.
2811
* gui.c: Instrument name changes are stored.
2813
* mixer.c, gui.c: Position updates are handled together with the
2814
scopes in MSG2MAIN_TICK. Visual updates are a bit smoother on my
2815
slow machine now. And the scope buffers are double-buffered, so
2816
the scope is more in time with the sound.
2818
* mixer.c: Fixed period range checking to use OpenCP's values.
2820
* Makefile: Moved $(LDFLAGS) to the end of the line; some people's
2821
compilers complain otherwise.
2823
Mon Oct 5 17:10:03 1998 Michael Krause <m.krause@tu-harburg.de>
2825
* mixer.c (player_tick): Handling playlist restart position now,
2826
adding support for position jumps. Added dxx effect.
2828
* xm.c: Added the framework for endianness conversion. Rewrote
2829
load_samples and save_samples to use the new "length" semantics.
2831
* xm.h: STSample.length / loopstart / looplen are measured in
2832
samples now, not in bytes. This removes the necessity for a lot of
2833
">> 1" in the rest of the code.
2835
Sun Oct 4 17:29:10 1998 Michael Krause <m.krause@tu-harburg.de>
2839
* sample-editor.c (daemon_thread): renamed daemon() to
2840
daemon_thread() so that we can compile on glibc2 systems :)
2842
* xm.c (XM_load_samples): if an XM has samples with loop length 0,
2843
disable the loop completely.
2845
* mixer.c (mixer_fill_buffer): fixed loop handling so that it
2846
works on very short loops, too. New routine is not yet optimized.
2848
* Released v0.0.5 today (first public release)