12000-01-26 Michael Krause <m.krause@tu-harburg.de> 2 3 * Released v0.3.10 4 52000-01-22 Michael Krause <m.krause@tu-harburg.de> 6 7 * app/gui.c: "Escape" can be used to toggle editing on even if 8 we're in playing mode (patch by Conrad Parker). 9 10 * app/clavier.c, app/playlist.c: Also replace custom marshallers 11 by gtk-provided ones. 12 13 * app/sample-display.c: Replace my_2ints_marshal() by 14 gtk_marshal_NONE__INT_INT (patch by Conrad Parker). 15 162000-01-21 Michael Krause <m.krause@tu-harburg.de> 17 18 * app/sample-editor.c (sample_editor_page_create): Rename "Clear" 19 to "Clear Sample". 20 21 * app/track-editor.c: "Insert" and "Backspace" key bindings (shift 22 down / pull up track). (patch by Tomasz Maka) 23 (track_editor_find_next_jazz_channel): Jazz edit logic extracted 24 into a new function. Made more intelligent (takes care of channels 25 that are still busy playing a sample). 26 27 * app/sample-editor.c: Added "Save Region" button, which saves 28 only the selected region as a WAV. (Tomasz Maka) 29 302000-01-19 Michael Krause <m.krause@tu-harburg.de> 31 32 * app/xm.c (XM_Load): setting restart position to song_length - 1 33 if out of range (FT2 does this). 34 352000-01-18 Michael Krause <m.krause@tu-harburg.de> 36 37 * app/track-editor.c (track_editor_set_num_channels): For the jazz 38 edit mode, only display those buttons for channels that are 39 actually available. 40 41 * app/xm.c (XM_Load): Checking if restart_position is < 42 song_length (setting rp to 0 otherwise). Encountered a funny XM 43 from my favourite label "Rohformat" that has a bug here and 44 subsequently crashed the tracker due to a failed assertion in the 45 playlist widget. Which shows us that assertions are your 46 friend. Shame on you, Ronny :-) 47 48 * app/menubar.c: Even more menu bar translation hacking code. This 49 really sucks. Thanks to Yuuki Ninomiya for discussing this with 50 me. 51 52 * po: Updated ja.po. 53 542000-01-15 Michael Krause <m.krause@tu-harburg.de> 55 56 * app/menubar.c (menubar_create): all_translated calculated 57 correctly now (patch by Yuuki NINOMIYA). 58 59 * app/sample-editor.c (sample_editor_copy_cut_common): Adjust loop 60 data after cutting parts of the sample (patch by Conrad Parker). 61 622000-01-12 Michael Krause <m.krause@tu-harburg.de> 63 64 * Released v0.3.9 65 662000-01-12 Kai Vehmanen <kaiv@wakkanet.fi> 67 68 * Added ALSA pcm2 input and output plugins (ALSA 0.5.0 and newer) 69 702000-01-08 Michael Krause <m.krause@tu-harburg.de> 71 72 * po: Updated ja.po. 73 74 * app/playlist.c (playlist_insert_clicked): 75 (playlist_delete_clicked): Force emission of "song_length_changed" 76 signal. Fixes crashes due to not updated XM structures (bug 77 reported by globber). 78 79 * app/sample-editor.c: Adds "Sel All" button, renames other 80 buttons, clears up _update_sample() (patch by Conrad Parker). 81 82 * app/keys.c (keys_fixup_xkeymap): Fix strange keymaps. Fixes 83 problem a Polish user was having. 84 851999-12-26 Michael Krause <m.krause@tu-harburg.de> 86 87 * Released v0.3.8 88 89 * app/track-editor.c (track_editor_handle_keys): Delete key: 90 delete note only if in note column. Otherwise delete corresponding 91 effect column. 92 93 * app/gui.c (current_instrument_changed): Don't set gui_cur*_name 94 here at all. 95 96 * app/sample-editor.c (sample_editor_update): Set gui_cursmpl_name 97 correctly. 98 99 * app/instrument-editor.c (instrument_editor_update): Set 100 gui_curins_name correctly. 101 102 * app/sample-editor.c: Can handle stereo samples now (extracts one 103 channel or mixes left and right). Based on a patch sent in by 104 Stefan Hager on 1999-08-22. Also remember last saved and loaded 105 path. 106 107 * app/gui-subs.c (file_selection_create): Add selection entry to 108 list of text entry widgets to be captured. 109 110 * app/menubar.c (menubar_create): 111 (menubar_init_prefs): If not all menu bar strings could be 112 translated, disable translation of the other menu bar strings 113 completely and issue a warning (all this only for the non-GNOME 114 version). 115 116 * po: Updated ja.po. 117 1181999-12-24 Michael Krause <m.krause@tu-harburg.de> 119 120 * app/file-operations.c (fileops_page_create): Disable certain 121 dialogs in NO_AUDIOFILE case. 122 123 * app/gui-settings.c: Save path for DIALOG_SAVE_MOD_AS_WAV. 124 125 * app/playlist.c (playlist_restartpos_changed, 126 playlist_songpat_changed): Only emit signal if value really 127 changed. 128 129 * app/playlist.[ch]: New functions _freeze_signals() and 130 _thaw_signals(). 131 132 * app/playlist.c (playlist_set_nth_pattern): If pos == 133 current_position, set pattern spinbutton value as well. 134 (playlist_set_restart_position): Set spinbutton value. 135 (playlist_songlength_changed): Adjust limits of restart pos spin. 136 137 * app/audioconfig.c (audioconfig_close_requested): Deinitialize 138 cw_currentobject when closing window. (Conrad Parker striked back 139 again) 140 1411999-12-23 Michael Krause <m.krause@tu-harburg.de> 142 143 * app/sample-editor.c: "Reverse" function (patch by Conrad 144 Parker). 145 1461999-12-22 Michael Krause <m.krause@tu-harburg.de> 147 148 * Released v0.3.7 149 150 * app/gui-settings.[ch]: Added upper/lower case hex number 151 selection. 152 153 * app/tracker.c (note2string): Rewritten. Supports upper/lower 154 case selection now. 155 156 * app/keys.c (keys_load_config): Recognize EOF condition 157 correctly. Fixes the bug magog@mnf.nu reported (keymap loading 158 wouldn't work for people where the automatic key recognition 159 fails). 160 161 * app/gui.c (gui_init): Initialize notebook_current_page variable 162 so that keyboard works again. 163 1641999-12-20 Michael Krause <m.krause@tu-harburg.de> 165 166 * app/playlist.[ch]: First attempt at creating a Playlist widget. 167 At the moment it looks just like the old stuff in the upper left 168 corner of the main window, but it's easier to modify this way. 169 170 * app/instrument-editor.c (instrument_page_create): "Load XI" and 171 "Save XI" buttons working again instead of crashing. 172 (instrument_editor_clear_current_instrument): Stop playing before 173 clearing the instrument. 174 1751999-12-19 Michael Krause <m.krause@tu-harburg.de> 176 177 * app/file-operations.c: Handy single-click directory browsing and 178 loading of modules, samples and instruments. Also handles the 179 corresponding menu items in a clever way. 180 181 * app/file-operations.[ch]: New notebook page; embeds the various 182 file requesters we have. 183 1841999-12-10 Michael Krause <m.krause@tu-harburg.de> 185 186 * po: Updated ja.po. Added ru.po from Michael Shigorin 187 <mike@lic145.kiev.ua>. 188 1891999-11-20 Michael Krause <m.krause@tu-harburg.de> 190 191 * app/menubar.c: "Clear Current" instrument function. 192 193 * app/sample-editor.c (sample_editor_clear_clicked): update 194 modinfo page. 195 196 * app/instrument-editor.c (instrument_editor_save_instrument), 197 app/menubar.c: "Save XI" function. 198 199 * app/xm.h: Use guint16 instead of short for STEnvelopePoint 200 elements. 201 202 * app/xm.c (xm_load_xi): Endianness conversion for some XI header 203 fields. Don't cut first four letters of instrument name. 204 (xm_save_xm_instrument): Save endian-converted volfade. Urgs. 205 (xm_save_xi): New function to save instrument in XI format. 206 2071999-11-14 Michael Krause <m.krause@tu-harburg.de> 208 209 * Released v0.3.6 210 211 * app/xm-player.c: Added "player_looped" variable which indicates 212 to the audio renderer that the song has either looped, the "Bxx" 213 command has been used to jump to another pattern or the "F00" 214 command has been issued in order to stop the song. Should prevent 215 endless saving loops. 216 2171999-11-13 Michael Krause <m.krause@tu-harburg.de> 218 219 * app/audio.c (audio_ctlpipe_render_song_to_file): This is a 220 special version of audio_ctlpipe_play_song(), which always uses 221 the file driver, hacks in the desired filename and does the 222 priority juggling (we don't want to run the rendering at nice 223 -14). 224 225 * app/drivers/file-output.c: This driver uses libaudiofile to 226 render a WAV file. It's not directly accessible from the audio 227 config, use the special menu item in the "File" menu instead. 228 229 * app/scope-group.c (scope_group_timeout): Return immediately if 230 current_driver is NULL. Fixes a crash. 231 2321999-10-30 Michael Krause <m.krause@tu-harburg.de> 233 234 * app/audio.c: Begun work on code to render modules into a WAV 235 file. 236 237 * app/main.c: Initialize effective group ID as well. 238 239 * configure.in: Moved poll()/select() check in front of the 240 library checks. 241 242 * po: Updated it.po and ja.po. 243 244 * app/track-editor.c (track_editor_paste_pattern): Fix pasting of 245 short patterns into long ones (reported by Martin Andersson); also 246 update pattern length spinbutton in that case. 247 248 * app/transposition.c (transposition_transpose_notes_sub): Don't 249 transpose KEYOFF note (reported by Martin Andersson). 250 2511999-10-16 Kai Vehmanen <kaiv@wakkanet.fi> 252 253 * app/drivers/alsa-output.c: Changed default soundcard id to 0. 254 2551999-10-09 Michael Krause <m.krause@tu-harburg.de> 256 257 * app/drivers/esd-output.c: Quick and dirty implementation of an 258 ESD driver. Note that this will not be supported because of its 259 latency. 260 261 * configure.in: Added ESD check, updated ALSA check to handle 262 --disable-alsa correctly. 263 2641999-10-08 Michael Krause <m.krause@tu-harburg.de> 265 266 * Released v0.3.5 267 268 * app/track-editor.c: Selection handling rewritten for multi-track 269 selections. 270 271 * app/st-subs.c: Several new functions for dealing with parts of a 272 track (duplicating, clearing, pasting). 273 274 * app/xm-player.c: Replaced sintab[] by sin(). 275 276 * app/drivers/oss-output.c: Added code to make use of the 277 high-accuracy SNDCTL_DSP_GETOPTR call when available. Gets rid of 278 all the gettimeofday() calls. The old code is available as a 279 fallback, though. 280 2811999-10-07 Michael Krause <m.krause@tu-harburg.de> 282 283 * doc/hacking.texi: Old `HACKING' file extended to talk a little 284 bit about ST's internals. 285 2861999-10-06 Michael Krause <m.krause@tu-harburg.de> 287 288 * app/st-subs.c, app/menubar.c, app/track-editor.c: Insert track / 289 Delete track. 290 291 * app/track-editor.c: Saving jazz edit settings on exit. 292 293 * app/gui-settings.c, app/gui.c, app/sample-editor.c, 294 app/instrument-editor.c: Remember last used paths and store them 295 in a configuration file. 296 297 * configure.in: Continue if sys/poll.h is found, but poll() isn't. 298 299 * po: Updated it.po and ja.po; added es.po from German Jose Gomez 300 Garcia 301 3021999-09-26 Michael Krause <m.krause@tu-harburg.de> 303 304 * app/mixers/integer32-asm.[sh]: i386 Assembly mixing routines for 305 16bit samples. These are only marginally faster than the original 306 C code, though. 307 308 * app/mixers/integer32.c: lqmono renamed; cleaned up reverb code 309 to use arrays. 310 3111999-09-25 Michael Krause <m.krause@tu-harburg.de> 312 313 * Released v0.3.4 314 315 * app/gui-settings.c, app/tracker.c: Added tracker row 316 highlighting. 317 3181999-09-24 Michael Krause <m.krause@tu-harburg.de> 319 320 * app/keys.c: Replace some empty strings by NULL pointers 321 (fixes localization bugs in the keys dialog). 322 3231999-09-23 Michael Krause <m.krause@tu-harburg.de> 324 325 * soundtracker.desktop: Added pl and de entries. 326 327 * Added de.po from Colin Marquardt, updated ja.po. 328 3291999-09-10 Michael Krause <m.krause@tu-harburg.de> 330 331 * Released v0.3.3 332 333 * app/audioconfig.c, app/audio.c: Editing and Playback drivers can 334 be selected independently now. 335 336 * app/gui.c (gui_handle_standard_keys): Removed "Shift+Space" 337 special-casing. 338 339 * app/track-editor.c (track_editor_handle_column_input): Returning 340 flag if key was handled. 341 342 * app/menubar.c: Added cut'n'paste functions to the Edit menu, 343 with configurable shortcuts; this should be useful to those using 344 a window manager that maps Alt-F4 to "exit" :-) 345 346 * app/track-editor.c: Split block / pattern / track cut'n'paste 347 handling into simple functions. 348 3491999-09-09 Michael Krause <m.krause@tu-harburg.de> 350 351 * app/tracker.c (tracker_realize): Attach style, just to be sure. 352 353 * app/sample-display.c (sample_display_realize): Attach style to 354 widget, fixes a strange crash when playing with the #chans 355 spinbutton. 356 357 * app/keys.c, app/module-info.c (modinfo_page_create): Call 358 gettext() on some the strings only marked with N_(). 359 360 * app/time-buffer.c (time_buffer_get): After g_list_remove_link(), 361 call g_list_free() on the freed node. Fixes the memory leak people 362 were seeing. *sigh* 363 3641999-09-08 Michael Krause <m.krause@tu-harburg.de> 365 366 * app/mixers/lqmono.c (lqmono_mix): Fix mixbufsize setting. Arghl. 367 3681999-09-07 Michael Krause <m.krause@tu-harburg.de> 369 370 * app/mixers/lqmono.c (lqmono_mix): Update mixbufsize after 371 allocating new mixbuf. Use g_new() and g_free(). 372 3731999-09-07 Yuuki NINOMIYA <gm@smn.enjoy.ne.jp> 374 375 * app/main.c: Use gtk_set_locale() instead of setlocale(). 376 377 * app/menubar.c: The bug is fixed that i18n is invalid in the menu 378 bar when build without GNOME. 379 3801999-09-06 Kai Vehmanen <kaiv@wakkanet.fi> 381 382 * app/drivers/alsa-*.[ch]: Fixed some timing bugs and made a few 383 improvements to the config widgets. 384 3851999-09-06 Michael Krause <m.krause@tu-harburg.de> 386 387 * soundtracker.desktop: Added GNOME menu entry. 388 389 * Updated ja.po, added it.po from Yuri Bongiorno, added pl.po from 390 Zbigniew Chyla. 391 3921999-09-04 Michael Krause <m.krause@tu-harburg.de> 393 394 * Released v0.3.2 395 396 * app/cheat-sheet.[ch]: Added an overview of all XM effects. 397 398 * app/gui-settings.c: Added "Use anti-aliased envelope editor" 399 option. 400 401 * app/envelope-box.c (envelope_box_canvas_paint_grid): Reduced 402 left X coordinate of long lines from 30000 to 16384 (non-aa canvas 403 would bug here). 404 405 * HACKING: Contains some `rules' for developers. 406 407 * README: Added soundtracker.org homepage and information about 408 the mailing lists. 409 410 * app/tips-dialog.c: The tips are stored in an array inside this 411 file now -- translation is easier this way. 412 413 * app/preferences.c (prefs_get_line): Remove trailing newlines 414 from returned strings. 415 416 * app/audioconfig.c (audioconfig_clist_select): Fix driver 417 selection. 418 4191999-09-03 Michael Krause <m.krause@tu-harburg.de> 420 421 * FAQ: Removed ALSA-related question. 422 423 * Added ALSA patch from Kai Vehmanen. 424 4251999-09-02 Giles Constant <gilesc@ftech.net> 426 427 * Playback effects menu added 428 429 * "Master Reverb" added to playback effects (code ripped and 430 regurgitated from libmikmod) 431 4321999-08-31 Michael Krause <m.krause@tu-harburg.de> 433 434 * po/ja.po: updated by Atsushi Yamagata. 435 4361999-08-29 Michael Krause <m.krause@tu-harburg.de> 437 438 * Released v0.3.1 439 440 * soundtracker.spec (%build): Initalize LINGUAS variable before 441 building, so that all catalogs get installed. 442 443 * INSTALL, FAQ: Some words about the gtk+ update. 444 445 * app/sample-editor.c: Added horizontal scroll bar under the 446 sample display. 447 448 * app/sample-display.c: Added "window_changed" signal which is 449 triggered whenever win_start / win_length are changed. 450 451 * app/sample-editor.c (sample_editor_perform_ramp): change 452 ABS(*p++) into q=*p++;q=ABS(q); macros suck :-) 453 454 * app/sample-display.c: Middle mouse button pans the display 455 window. 456 457 * configure.in (CFLAGS): Require gtk+-1.2.2. Fixes the popular 458 "GUI freezes if you click the menu bar" bug. 459 4601999-08-25 Michael Krause <m.krause@tu-harburg.de> 461 462 * app/sample-editor.c (sample_editor_ok_clicked): Don't call 463 sampler_page_enable_widgets() (the widgets have already been 464 destroyed). 465 466 * app/gui.c (gui_handle_standard_keys): Handle Shift+Space 467 manually even though it's in the menu; works around a (so I think) 468 gtk+ menu bug. 469 4701999-08-23 Michael Krause <m.krause@tu-harburg.de> 471 472 * app/sample-editor.c: Added "Volume Ramp" dialog, including a 473 normalizing function. 474 4751999-08-22 Michael Krause <m.krause@tu-harburg.de> 476 477 * app/menubar.c: Rewrote non-GNOME menubar code to use 478 GtkItemFactory, because we can handle user-defined accelerators 479 this way. Added underscores to all the menu texts. Added "Edit" 480 menu, with "Jazz Mode Edit" toggle and "Transpositions" dialog 481 launcher. 482 483 * app/gui.c (keyevent): All the key handlers return a flag 484 indicating if the key has been handled or not. If it has not been 485 handled, don't stop the signal, but let gtk+ continue to handle 486 it. We need this to support the menubar correctly. 487 488 * app/track-editor.c (track_editor_handle_keys): Binding "Home" 489 and "End" keys to start and end of current pattern, respectively. 490 491 * app/transposition.[ch]: Added new "Transposition Tools" dialog 492 with a lot of transposition and instrument number related 493 functions. 494 4951999-08-21 Michael Krause <m.krause@tu-harburg.de> 496 497 * app/instrument-editor.c: Capturing clavierkey_enter and _leave 498 signals to display the note the mouse is over in a framed label. 499 Also added the "Initialize" button which fills the whole samplemap 500 with the current sample value. 501 502 * app/clavier.c: Added _enter and _leave signals which are called 503 when the mouse is over a key or when it leaves one. 504 5051999-08-19 Michael Krause <m.krause@tu-harburg.de> 506 507 * app/sample-editor.c (sample_editor_save_wav): Use libaudiofile 508 to save WAVs. If compiling without libaudiofile, disable "Save 509 WAV" widget. 510 511 * po/ja.po: Added japanese translation from Atsushi Yamagata. 512 5131999-08-13 Michael Krause <m.krause@tu-harburg.de> 514 515 * Released v0.3.0 516 517 * app/track-editor.c (track_editor_handle_keys): Shift + Tab goes 518 one channel to the left. 519 520 * app/keys.c (keys_is_key_pressed): New function which finds out 521 if a key is actually physically pressed. We need this hack to deal 522 with X's auto-repeat. 523 524 * app/gui.c (handle_standard_keys): Toggle jazz edit mode with 525 shift-space. 526 527 * app/track-editor.c: Jazz edit stuff -- core handling is in 528 track_editor_do_the_note_key. 529 530 * app/track-editor.c (track_editor_handle_keys): Send keyoff note 531 if a key is released. 532 (track_editor_do_the_note_key): Encapsulated the relevant code for 533 the other notebook pages. 534 535 * app/gui.c (keyevent): Handle key-release events as well. Also, 536 rename some handle_keys() functions all over the source and add 537 the `pressed' argument. 538 539 * app/gui-subs.c (gui_update_range_adjustment): Moved this from 540 track-editor.c 541 5421999-08-12 Michael Krause <m.krause@tu-harburg.de> 543 544 * app/st-subs.c (st_num_save_patterns): Return value based on the 545 recently introduced save_all_patterns setting. 546 547 * app/gui-settings.c: "Save XM saves all non-empty patterns" (as 548 opposed to only the used patterns) option. 549 550 * soundtracker_tips.ja.txt: Added japanese translation of 551 soundtracker_tips.txt from Atsushi Yamagata 552 <yamagata@plathome.co.jp>. 553 554 * app/mixers/lqmono.c (lqmono_updatesample): We don't stop the 555 sample if only the loop has changed. In that case, we bend the 556 current pointer to the loop start! 557 558 * app/sample-editor.c (sampler_page_handle_keys): If a key is 559 pressed, the currently displayed sample is played, not the one 560 from the sample map (using gui_play_note_full / 561 xmplayer_play_note_full). 562 563 * app/gui.c (gui_play_note_full): The same for the GUI thread. 564 565 * app/xm-player.c (xmplayer_play_note_full): Permits more control 566 over what sample gets played and at which position it starts. Man, 567 xm-player.c really is a mess... 568 569 * INSTALL: some more explanations for the binary packages. 570 571 * Bumped version number to v0.3.0 572 573 * soundtracker.spec: Added RPM specfile from Arthibus Gissehel, 574 updated to distribute the NLS stuff as well. 575 576 * Made the whole application NLS-aware. 577 578