1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 962 963 964 965 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 1066 1067 1068 1069 1070 1071 1072 1073 1074 1075 1076 1077 1078 1079 1080 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 1100 1101 1102 1103 1104 1105 1106 1107 1108 1109 1110 1111 1112 1113 1114 1115 1116 1117 1118 1119 1120 1121 1122 1123 1124 1125 1126 1127 1128 1129 1130 1131 1132 1133 1134 1135 1136 1137 1138 1139 1140 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 1151 1152 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 1168 1169 1170 1171 1172 1173 1174 1175 1176 1177 1178 1179 1180 1181 1182 1183 1184 1185 1186 1187 1188 1189 1190 1191 1192 1193 1194 1195 1196 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 1215 1216 1217 1218 1219 1220 1221 1222 1223 1224 1225 1226 1227 1228 1229 1230 1231 1232 1233 1234 1235 1236 1237 1238 1239 1240 1241 1242 1243 1244 1245 1246 1247 1248 1249 1250 1251 1252 1253 1254 1255 1256 1257 1258 1259 1260 1261 1262 1263 1264 1265 1266 1267 1268 1269 1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 1283 1284 1285 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 1316 1317 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 1361 1362 1363 1364 1365 1366 1367 1368 1369 1370 1371 1372 1373 1374 1375 1376 1377 1378 1379 1380 1381 1382 1383 1384 1385 1386 1387 1388 1389 1390 1391 1392 1393 1394 1395 1396 1397 1398 1399 1400 1401 1402 1403 1404 1405 1406 1407 1408 1409 1410 1411 1412 1413 1414 1415 1416 1417 1418 1419 1420 1421 1422 1423 1424 1425 1426 1427 1428 1429 1430 1431 1432 1433 1434 1435 1436 1437 1438 1439 1440 1441 1442 1443 1444 1445 1446 1447 1448 1449 1450 1451 1452 1453 1454 1455 1456 1457 1458 1459 1460 1461 1462 1463 1464 1465 1466 1467 1468 1469 1470 1471 1472 1473 1474 1475 1476 1477 1478 1479 1480 1481 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 1497 1498 1499 1500 1501 1502 1503 1504 1505 1506 1507 1508 1509 1510 1511 1512 1513 1514 1515 1516 1517 1518 1519 1520 1521 1522 1523 1524 1525 1526 1527 1528 1529 1530 1531 1532 1533 1534 1535 1536 1537 1538 1539 1540 1541 1542 1543 1544 1545 1546 1547
|
2012-06-28 James Morris <james@jwm-art.net>
* Fixed dish-file load of a bank containing a patch
without a sample file specified.
* Change status from error to warning for "Failed to
parse" message.
* Add check for sandbox directory for debug build.
2012-06-27 James Morris <james@jwm-art.net>
* Fixed build for older Cairo versions which do
not support CAIRO_OPERATOR_HSL_LUMINOSITY.
* Fixed build for older JACK versions without
session support.
* Fixed a few uninitialized warnings.
2012-06-22 James Morris <james@jwm-art.net>
* Restored sliders visual aspect to pre-cairo days.
* Fixed bug in vertical slider mark drawing.
2012-06-21 James Morris <james@jwm-art.net>
* not kept up with the ChangeLog as usual...
2012-06-15 James Morris <james@jwm-art.net>
* gui/mod_section.c: prevent change of env mod source
in amp tab from causing gtk critical console messages.
* gui/global_settings.c: free new sample_file_filter str.
2012-06-11 James Morris <james@jwm-art.net>
Preparatory Work for 0.1.3 Release
==================================
* added dist target
* removed obsolete source files
* changed default build to release
* fixed some warnings caused by not-#defined debug
* fixed some warnings about unused variables/parameters
(grep why is this still here)
2012-06-09 James Morris <james@jwm-art.net>
* libpetrifoo/patch_private/patch_data.c, patch_copy:
add call to lfo_update_params for GLFOs (VLFOs are
updated on voice trigger).
2012-06-08 James Morris <james@jwm-art.net>
* libpetrifoo/patch_set_and_get.c: fix assertion
range check for envelope key tracking.
* libpetriui/dish_file.c: fix saving of LFO sync
setting.
* libpetrifoo/pf_error.c: add missing enum cases
to switch, modify handling of unacknowledged
errors to be more informative.
* gui/lfotab.c: only sensitize relevant widgets when
changing LFO between tempo-synced frequency and
non-synced frequency.
* gui/lfotab.c: finish dynamically sensitizing LFO
amount sliders (this time for when switching between
different LFOs).
* gui/idselector.c: change debug statement to output
BEFORE signal emmission.
2012-06-07 James Morris <james@jwm-art.net>
* gui/sampletab.c, fix for play mode assertion failure.
Fixed logic for handling play modes where the to-end
checkbox should sometimes be ignored.
* fixed "program returns random data in a function".
(oops added an unneeded return statement).
* dynamically set LFO amount sliders sensitivity to reflect
state of appropriate modulation source.
* remove ***IS*** textview message
2012-06-06 James Morris <james@jwm-art.net>
* sample-selector auto-preview fixes
2011-08-06 Brendan Jones <brendan.jones.it@gmail.com>
* gui/global_settings.[ch]
Stores last-used sample and bank directories into
XDG_CONFIG_HOME/petri-foo/rc.xml
2011-08-06 James Morris <james@jwm-art.net>
* New zoom-in, zoom-out, zoom-fit, and zoom-1:1 buttons
these buttons replace the cruddy oldspin button previously
used for zooming and which the values of were meaningless.
* Mouse-wheel zooming.
Moving the mouse-wheel down will zoom in to wherever the
pointer is pointing in the waveform.
* Probably stuff which I've forgotten and not added into
this Changelog.
* PHIN fan sliders have fans disabled by default.
the fans of the fan sliders require desktop compositing
so are disabled by default.
* PHIN fan slider setting stored via global_settings
* sample.c: Fixed raw/headerless sample loading
* float_section.c: Fixed portamento time setting.
2011-07-26 James Morris <james@jwm-art.net>
* new build system using cmake. alter dir structures.
* include subset of PHAT in build and call it phin.
2011-07-23 James Morris <james@jwm-art.net>
* patch_util.c, new function: patch_get_samplerate(void)
* dish_file.c: current samplerate is written into the
dish_file within the "Master" node. This means that if the
bank is loaded at a later date and JACK is running at a
different samplerate, the values for the play+loop points
can be adjusted accordingly for the resampled audio-data.
* sample.[ch]: removed resample_ratio from struct _Sample.
the resample_ratio member was added in the previous commit
and removed again due to the dish_file being responsible
for calculating differences in play+loop points when
JACK samplerate changes (between instances, not during a
single instance).
* sample.c, sample_default: scaled output of LFO.
scale output of LFO to prevent the default sample having
samples exceeding the range -1.0 to +1.0.
2011-07-20 James Morris <james@jwm-art.net>
* dish_file.c: fix/restore read/write of Portamento/Legato
* sample.[ch]: added sample_get_resampled_size
this function provides a means to get the size the
sample will use once loaded. this is required for when
soft-limits to the size of samples petri-foo will load
is implemented.
* sample.[ch]: addition and usage of MAX_SAMPLE_FRAMES
enumeration MAX_SAMPLE_FRAMES = INT32_MAX; replaces
previous detection of overly-large samples by casting
sf_count_t variables to int and noticing difference.
* patch_util.c, patch_sample_load: scale loop points.
loop points of the default sample are now scaled to
the global sample rate as they should.
2011-07-19 James Morris <james@jwm-art.net>
* Minimum and maximum Velocity value specification
for patche to allow velocity layering of patches.
Thanks to Brendan Jones for submitting patch.
* mod_section.c: fix bug in amplitude modulation amount
Finally fixed this bug by the removal of a dangerously
misplaced else.
* --unconnected command line option to not auto-connect
JACK ports. This is required for JACK Session to work
properly.
* patch.c, patch_set_and_get.c, mod_section.c:
inverted velocity mapping
Allows negative setting of velocity sensitivity. Means
you can cause low velocity to have the effect of high
velocity and vice-versa.
2011-07-14 James Morris <james@jwm-art.net>
* Auto preview toggle added to the sample selector
dialog so that samples automatically play without
loading.
* Added keyboard shortcut for 'Loa_d' in sample selector.
Thanks to Brendan Jones for submitting these additions.
2011-06-30 James Morris <james@jwm-art.net>
* added gpl header to all source files
* PETRI-FOO_ORIGINAL_FILES
new file listing files i consider to be original
to petri-foo and my own work.
* removed gui/amptab.[ch]
* removed gui/pitchtab.[ch]
both pairs of files were not used and had been
obsoleted by gui/paramtab.[ch].
2011-06-28 James Morris <james@jwm-art.net>
* sample.c: fix bug caused by neglecting to set correct
frame count after resampling.
2011-06-27 James Morris <james@jwm-art.net>
* gui.c: menu item generalization function
* gui.c, patchlist.c: add default patch menu item.
* patch_util.c, patch_private/patch_data.c:
duplication of patches working, i claim with
93.76% certainty.
* sample.[ch]: addition of sample_deep_copy function.
********
probably still very much mostly likely:
some testing required.
2011-06-26 James Morris <james@jwm-art.net>
* patchlist.c: my beloved context menu is back.
* gui.[ch]: made the patch list menu callbacks
non-static and declared them in the header so
patchlist.c's context menu can use them.
* <<<< MOD3 branch merged yesterday >>>>
2011-06-22 James Morris <james@jwm-art.net>
* envtab.c: cleaner GUI labels when EGs turned on/off.
title is packed into main box rather than the table
and the table is sensitized to take care of labels.
* lfotab.c: cleaner GUI labels when LFOs turned on/off.
similar process to envtab.c, but required an additional
box for packing (lfotab has different orientation).
* dishfile.c: add envelope key tracking.
2011-06-?? James Morris <james@jwm-art.net>
* adsr.[ch]: added key tracking, added params init.
* dish_file.c: load/save of LFO amplitude modulation
* envtab.c: added key tracking
* patch.c: handles MIDI CC again, but in the better way.
* patch_set_and_get.[ch]: added envelope key tracking.
2011-06-10 James Morris <james@jwm-art.net>
* lfotab.c: add statements to handle modification of
amplitude modulation amounts.
* lfotab.c: reduce highest rate of LFO from 250 hrtz
down to 50.0 hrtz.
* midi_control.h: add macro to define a static inline
function to be used by jackdriver.c and midi.c for
mapping MIDI CC values where balance and pan are mapped
between -1.0 and +1.0 while all else mapped between
0.0 and +1.0 (pitch wheel is handled separately).
2011-06-09 James Morris <james@jwm-art.net>
* lfo.[ch], gui/lfotab.c, patch_set_and_get.[ch], etc
Changes to add two amplitude modulation sources to
the LFOs. This was necessary for functionality such
as using the modwheel controller to adjust the amount
of modulation an lfo gives. See ML for notes.
2011-06-08 James Morris <james@jwm-art.net>
* * * * * * * * * * * * * * * * * * * * * * * * * * * *
* * * * * * * MIDI CC as Modulation Sources * * * * * *
* * * * * * * * * * * * * * * * * * * * * * * * * * * *
* MIDI CC numbers/names can now be chosen as modulation
sources within. lots of things have changed to accomplish
this.
* Removal of hard-coded MIDI CC effects on pitch, amplitude,
filter cutoff, filter resonance, and panning.
* "Default" sample is no longer a sine wave but a triangle wave.
Triangle chosen over sine as there's not much to filter out of
a sine wave.
* "Default" sample now generated by an LFO and consequently
has better accuracy with regard to looping
2011-06-06 James Morris <james@jwm-art.net>
* gui/mod_section.c: refresh
now calls mod_section_set_patch to blanket update entire
mod section widget (ie, parameter, sources, amounts, etc).
2011-06-05 James Morris <james@jwm-art.net>
* control.h: addition of new enumerations for midi cc.
* removal of LASH support.
* patch_macros.h: INLINE_PATCH_TRIGGER_GLOBAL_LFO_DEF
fixed global lfo modulation settings by adding call to
lfo_rigger.
* jackdriver.c: process
fixed handling of pitch bend wheel data so that resting
position is zero.
* jackdriver.c: map_control
addition of new midi cc enumerations
* gui/mod_section.c: mod_section_set_param
modified so a timeout to call refresh is added for every
parameter type.
* gui/mod_section.c: refresh
modified so parameter changes via midi cc are reflected
in the gui.
2011-05-THIRTEEN James Morris <james@jwm-art.net>
* simplified mono+legato voice operation
after removing half the logic which was ignored, it only left
logic which could be easily simplified. that's what i've done.
* oh yes and i forgot to mention yesterday that i'd rejiggled
a load of the patch_private goings on, too. made that directory
build as a static lib. there was some rationale there at some
point for doing it. honest.
2011-05-12 James Morris <james@jwm-art.net>
* This is a release of major code tweakery under the hood.
* LFO is now an opaque data type
* ADSR is now an opaque data type
* Patch and PatchVoice now allocated from heap.
* scrapped passing around of lfo and envelope array indices
from public patch functions.
* naming and id, names.h/names.c +mod_src.h/mod_src.c
*** previously, lfo and eg names were seperate entities, and their
*** IDs were simply index numbers of an array.
*** now however, modulation source names and modulation source IDs
*** are used instead.
*** this has required some changes into how modulation source IDs
*** work. the IDS now have 4 categories, MISC, EG, VLFO, and GLFO
*** which have ID values of 0x10, 0x20, 0x40, and 0x80 respectively.
*** So if an EG is expected, just (expected_eg_id & MOD_SRC_EG) to
*** discover if the ID is an EG ID.
*** these ID values are now passed around where the old lfo/eg index
*** values were.
*** example IDs:
*** name:"VLFO1" id:MOD_SRC_VLFO
*** name:"VLFO3" id:MOD_SRC_VLFO + 2
*** name:"Key" id:MOD_SRC_KEY
*** ...see patch.h for more.
*** it should be noted, that src/gui/mod_src.[ch] have been renamed
*** as src/gui/mod_src_gui.[ch] so as not to conflict with the newly
*** created mod_src.[ch]
2011-04-18 James Morris <james@jwm-art.net>
* fixed seg-fault when sample-selector was opened on
an empty bank.
* make repetitions of sample-editor play button turn off
previously triggered playing sample before playing again.
* give voice lfos sensible starting frequency.
2011-04-17 James Morris <james@jwm-art.net>
* really can't remember much at all, this is the best
i've got:
* added ability to load raw/headerless samples
* cleaned up sample-selector gtkfilechooser code
* fixed loop/xfade bug/glitch/badcrash resulting
from setting xfade after setting loop points
derived from sample length and xfade length
when loading sample.
* lots of meaningless-to-user modifications
2011-04-10 James Morris <james@jwm-art.net>
* forgotten all sorts of much more important changes than:
* added -DGSEAL_ENABLE for aid gtk3 transition at some
point in the future.
* removed patch_set/get_range and range gboolean from
patch_data. basically range = (lower note == upper note).
2011-03-14 James Morris <james@jwm-art.net>
* yeah like i remember ffs, b!
* implemented sampler x-fades
* implemented sampler fade-in/outs
* tweaked mono+legato code
* tweaked adsr attack for when using mono+legato
2011-03-04 James Morris <james@jwm-art.net>
* another hopelessy out-of-date Changelog entry
* removed specific patch_set/patch_get methods for
play/loop start/stop points.
* replaced above with patch_set_mark and patch_get_mark
* replaced naming of sample_start sample_stop with
play_start and play_stop to reflect naming conventions
i'd already started.
2011-02-26 James Morris <james@jwm-art.net>
* gui/voicetab.c - set portamento time slider range
from 0.25 seconds to 1.0 seconds to reflect the range
allowed for MIDI control changes (see midi.c map_control).
* gui/*.[ch] changed almost all custom widgets (most of
which don't need to be widgets at all) so their
implementation data is private to the implementation.
* gui/*.c replaced *_get_type(void) and other *_class_init
declarations with G_DEFINE_TYPE.
* gui/*.c removed ->destroy methods as a) they were misused
and b) they were n't doing anything which wasn't done
anyway. see: http://mail.gnome.org/archives/gtk-app-devel-list/2011-February/msg00189.html
* gui/waveform.c replace waveform_destroy with waveform_dispose
(see above link). This though, means using GObject instead
of GtkObject for the ->dispose method.
2011-02-23 James Morris <james@jwm-art.net>
! sorry no real right and proper changelog entries
* removed alsa driver
* mixer no longer uses gettimeofday
* removed support for JACK versions < 0.116.0
* --enable-debug now enables the following options:
-O0 -std=gnu99 -ggdb -Wextra
-DGTK_DISABLE_DEPRECATED -DGDK_DISABLE_DEPRECATED
* thanks to above options more deprecated GTK/GDK code
replaced.
* moved GUI code from src/jackdriver.c src/audio_settings.c
2011-02-17 James Morris <james@jwm-art.net>
* bisected the monolithic patch.[ch] to form patch_util.[ch].
within patch.[ch], all the setters and getters have gone,
along with a few functions necessary for them.
unfortunately, this means some variables are no longer static
to patch.c and are declared extern in private/patch_data.h.
such is the cost of bisecting 3000 lines of code of one file
to form two files.
* lots of other changes probably more exciting than this have
not of course been added to the changelog :-P
2011-02-13 James Morris <james@jwm-art.net>
* house keeping: transferred patch_*_names functions into
mod_src_*_names functions.
2011-02-09 James Morris <james@jwm-art.net>
* fixed bug caused by usage of wrong patch_* function for tuning
steps.
* fixed GLFO output lists to only consist of global (ie non-voice)
outputs (ie only GLFO outputs can modulate GLFOs, which is as it
should be).
2011-02-06 James Morris <james@jwm-art.net>
* removed amptab.[ch] and pitchtab.[ch] replaced with paramtab.[ch]
which can be used to generate the amplitude, pitch, and filter
tabs via mod_section.[ch].
2011-02-05 James Morris <james@jwm-art.net>
* changed all occurrences of volume with amplitude. Includes
capitalized variants. using sed.
* Slowly working on GUI. Removing Pitch/Amplitude (formerly volume)
from patchsection into dedicated pitch and amp tabs. Patchsection
will now only contain the tabbed pages.
2011-02-02 James Morris <james@jwm-art.net>
* yeah right like I remember: forked and made independant LFOs and
ADSRs...
------------------------------------------------------------------------------
2007-09-06 Juuso Alasuutari <juuso.alasuutari@gmail.com>
* src/gui/patchlist.c: Fixed regression introduced in rev 42 which
made the patch list unscrollable, forcing the window height to
grow as new patches were added.
* src/specimen.c: Unified code formatting.
* configure.ac: Removed -Werror from SPECIMEN_CFLAGS because it breaks
compile with GCC 4.2. The warning comes from the ALSA library and
is beyond our reach. Debian also implements the same fix in their
latest specimen package. (Note to self: Request the Debian devel to
also post any fixes upstream from now on.)
* src/specimen.c: Modified help text and changed client_name var to
instance_name.
* src/instance.c, src/instance.h, src/Makefile.am: Added to introduce
get_instance_name().
* src/jackdriver.c, src/driver.c, src/driver.h,
src/gui/audio-settings.c, src/specimen.c, src/specimen.h: Changed
DEFAULT_INSTANCE_NAME references in audio driver code to
get_instance_name().
* src/lashdriver.c, src/specimen.c: Changed lash_init() to register
client name from get_instance_name().
* src/gui/gui.c, src/specimen.c: Add instance name to window title
if it's supplied.
* src/midi.c: Get sequencer client name from get_instance_name().
2007-01-30 Eric Dantan Rzewnicki <eric@zhevny.com>
* added specimen.desktop for gnome/kde users.
* change to jackdriver.c for jack midi api update.
* changed jackdriver.c to use jack_client_open() instead of
jack_client_new(). This allows multiple specimen instances.
* added command line options for bank to load and jack client name
as submitted by Daniele Torelli <me@danieletorelli.net>.
2006-08-11 Eric Dantan Rzewnicki <eric@zhevny.com>
* configure.ac, Makefile.am, src/Makefile.am, src/gui/Makefile.am,
pixmaps/Makefile.am, bootstrap, autogen.sh (symlink to bootstrap),
specimen.spec.in: changes merged from "0.5.1.1" branch
representing paugh's reworking of the build system.
* configure.ac: changed phat check to version 0.3.1. Need to check
with paugh about why this was changed from -devel tarball.
* src/jackdriver.c, src/mixer.h, src/mixer.c: applied jack-midi
patch from Lars Luthman. NOTE: this should probably be made
conditional on a check for a jack version with jack-midi support.
* src/lfo.h, src/driver.h, src/lashdriver.c, src/specimen.c,
src/gui/Makefile.in, src/gui/patchlist.h, src/gui/Makefile.am,
src/gui/gui.h, src/patch.h, src/lashdriver.h, src/specimen.h,
src/Makefile.am, configure.ac: applied specimen-lash.patch from
drobilla (I think ... or was it Loki? need to clarify this). The
pertinent changes are in lashdriver.[ch], specimen.c and the build
system. The other changes are all cosmetic. There may be some
slight confusion with the build system since this patch was made
before paugh's build system rework.
2005-09-14 Pete Bessman <ninjadroid@gazuga.net>
* src/midi.c (open_seq): Renamed sequencer client to "specimen" to
match up with the JACK client name. Removed old LADCCA stuff that
was lying around.
2005-08-06 Pete Bessman <ninjadroid@gazuga.net>
* src/gui/gui.c (create_about): Fixed the author entry for me in
the about box. It was missing the trailing >. Chris thinks this
is a very big problem, and was quite concerned, and had a
discussion with me at great length on the matter. This lead into
a speech about my direction in life, and his fear that my aimless
maunderings will find me a whisky drenched hobo in orleans. So I
stabbed him. That's OK. He's fat, and fat people don't have the
same rights as you and I. In fact, I propose using fat people as
an alternative fuel source. Think about it. We can have
concentration camps to make the authoritarians happy, and we can
burn the fat people to make the nanny staters happy, and we have a
sustainable and relatively clean (or at least, amusing) source of
energy to please the hippies. Plus, we eliminate the need for any
sort of relations with despotic middle eastern countries. Which
pretty much means that the next time johnny jihad bombs something,
the leftists are going to implode because they simply will not be
able to fashion any sort of apologia for our assailants that even
an autistic monkey could be persuaded to accept as plausible.
...
I fucked your mom last night.
2005-08-02 Pete Bessman <ninjadroid@gazuga.net>
* src/mixer.c (preview_render): use DEFAULT_VOLUME
* src/gui/sample-editor.c (cb_play): replace horribly broken velocity of 127 with 1.0
* src/patch.c: fixed cuts (they got broken when I fixed envelope
noteoffs for singleshots)
2005-07-31 Pete Bessman <ninjadroid@gazuga.net>
* src/gui/gui.c: added an about dialog.
2005-07-27 Pete Bessman <ninjadroid@gazuga.net>
* src/patch.c: fixed so that singleshot patches will still release
any envelopes they have turned on.
2005-07-23 Pete Bessman <ninjadroid@gazuga.net>
* src/gui/gui.c (cb_menu_patch_add): new patches now have same
channel as current one.
* src/gui/midisection.c (midi_section_set_patch): added code to
center keyboard around root note.
2005-07-18 Pete Bessman <ninjadroid@gazuga.net>
* src/beef.c (beef_write): added a missing cast for xmlChar (once
again, thanks to Suva)
* configure.ac: added libgnomecanvas-2.0 check for
pkg-config (thanks to Suva for pointing out it's abscence!)
2005-07-12 Pete Bessman <ninjadroid@gazuga.net>
* src/gui/patchsection.c: yanked out play and panic buttons.
* src/gui/gui.c: added a help menu and put the panic button (STFU!) in there.
2005-07-09 Pete Bessman <ninjadroid@gazuga.net>
* src/gui/channelsection.c, channelsection.h: split out from the
midisection for GUI alignment.
* README: updated to reflect new stuff.
* src/patch.c (patch_dump): changed sorting to go by channels and then note.
* src/gui/patchlist.c (patch_list_update): can now select either
by index or patch id; updated invocations to reflect change.
2005-07-08 Pete Bessman <ninjadroid@gazuga.net>
* src/gui/midisection.c: added code for setting root note and range through keyboard.
2005-07-06 Pete Bessman <ninjadroid@gazuga.net>
* src/patch.c (patch_trigger_with_id): verify note is in range before accepting.
* src/gui/midisection.c, midisection.h, gui.c: added new section for setting midi params.
2005-07-03 Pete Bessman <ninjadroid@gazuga.net>
* src/gui/patchsection.c: changed default title to the more appropriate "empty bank."
* src/gui/gui.c (gui_refresh): added function.
* src/specimen.c (main): added ability to load bank from cmdline.
2005-06-17 Pete Bessman <ninjadroid@gazuga.net>
* src/gui/patchsection.c, voicetab.c, filtertab.c: use
g_timeout_add() instead of g_idle_add() for refresh functions, and
set to newly defined GUI_REFRESH_TIMEOUT interval created in gui.h
2005-06-04 Pete Bessman <ninjadroid@gazuga.net>
* src/patch.c (filter): convert freso to logreso via lin_to_log() and apply.
(patch_create): use DEFAULT_VOLUME for new patch volumes.
* src/specimen.h (DEFAULT_VOLUME): renamed DEFVOL to
DEFAULT_VOLUME and modified source tree to reflect change.
* src/mixer.c (mixer_mixdown): convert 'volume' to 'logvol' via lin_to_log()
and apply that to samples.
* src/patch.c (gain): convert 'vol' to 'logvol' via lin_to_log()
and apply that to samples.
* src/mixer.c (mixer_init): set volume to DEFAULT_VOLUME.
(mixer_mixdown): renamed 'offset' to 'write' for clarity.
(mixer_flush): added code to clear preview.
* src/maths.c: added lin_to_log() and log_to_lin() to convert back
and forth between linear and logarithmic volumes.
2004-11-30 Pete Bessman <ninjadroid@gazuga.net>
* src/patch.c (prepare_pitch): fixed a bug which prevented
portamento from working properly when a sample had been tuned.
2004-11-22 Pete Bessman <ninjadroid@gazuga.net>
* src/gui/patchsection.c (play_cb): fixed play button to use
velocity of 1.0, not 127.
2004-10-09 Pete Bessman <ninjadroid@gazuga.net>
* src/gui/mastersection.c (master_section_init): added a bit of
vertical padding between the section and the contents beneath it.
2004-10-08 Pete Bessman <ninjadroid@gazuga.net>
* src/gui/lfotab.c (lfo_tab_init): set lower value of sync
sliderbutton to .25.
* src/gui/*: updated to reflect
adjustments to PhatSliderButton API change.
2004-10-06 Pete Bessman <ninjadroid@gazuga.net>
* applied c0ffs patches to move jitter correction code to mixer
2004-10-03 Pete Bessman <ninjadroid@gazuga.net>
* src/gui/envelopetab.c: Fixed locking of amount fan for volume
envelope.
* src/gui/patchsection.c: Added patch title display and panic button.
* src/gui/gui.c: Use PatchList to control our current patch now.
* src/gui/patchlist.c: Created the PatchList widget, a better way
to keep track of patches.
* src/gui/patchsection.c: Replaced patch_section_update() with
patch_section_set_patch().
* src/beef.c: Account for monophonic and legato properties.
* src/gui/voicetab.c: Implemented legato switch.
* src/patch.c: Implemented legato
2004-10-02 Pete Bessman <ninjadroid@gazuga.net>
* src/gui/voicetab.c: Implemented monophonic switch.
* src/gui/waveform.c: Now use an orange color to draw loop points.
* src/patch.c: Implemented manual declicking for patches without
volume envelopes. Modified to handle LFO and Envelope switching.
Implemented monophonic patches.
* src/gui/lfotab.c: Implemented switch.
* src/gui/envelopetab.c: Implemented switch.
* src/gui/envelopetab.c, envelopetab.h: Adopt same behavior as
LfoTab when adjusting pitch modulation. Enable the on/off check
box.
* src/beef.c: Added pitch_steps and monophonic properties.
2004-10-01 Pete Bessman <ninjadroid@gazuga.net>
* src/gui/gui.c (gui_init): Added (...) to end of Add, Rename, and
Settings menu entries.
* src/gui/filtertab.c (filter_tab_destroy): remove refresh() from idle loop
* src/gui/voicetab.c (voice_tab_destroy): remove refresh() from idle loop
* src/gui/patchsection.c (play_cb): changed to handle [button|key]-press-event
(stop_cb): changed to handle [button|key]-press-event
(connect): changed to connect [play|stop]_cb to [button|key]-press-event
(patch_section_destroy): remove refresh() from idle loop
2004-09-30 Pete Bessman <ninjadroid@gazuga.net>
* src/gui/voicetab.c, patchsection.c, filtertab.c (refresh): added
simple redisplay code so you can see the effects of MIDI CCs.
* src/patch.c, patch.h, control.h (new), midi.c, mixer.c mixer.h:
merged in c0ff's MIDI CC patch.
* src/midi.c (calc_bpm): use errmsg() to print cop-out message
* src/Makefile.am (specimen_SOURCES): added control.h
2004-09-29 Pete Bessman <ninjadroid@gazuga.net>
* src/patch.c (patch_duplicate): added code to store/restore lfo
tables
* src/gui/*: removed all old and unused files, finished up new interface.
wootzor to the max0r!
2004-09-28 Pete Bessman <ninjadroid@gazuga.net>
* src/gui/*: added hooks to new gui elements to read parameters
from the engine
2004-09-27 Pete Bessman <ninjadroid@gazuga.net>
* configure.ac: removed checks for ladcca and gtk-2.4, and removed
their use throughout the code
* gui.c: removed bank builder and piano, added calls for new GUI
components.
* bank-builder.*, piano.*, leash.*: DELETED!
* *tab.*, *secion.*: created new GUI components. Not hooked up
yet.
2004-08-06 Pete Bessman <ninjadroid@gazuga.net>
* beef.c: pitch is now saved/loaded, thanks to Rocco
(linuxmedia4@netscape.com) for pointing out that it wasn't
previously.
2004-07-22 Pete Bessman <ninjadroid@gazuga.net>
* beef.c: committed changed version by Sacha Berger
(sacha@woanders.de) which accounts for new patch parameters.
2004-07-01 Pete Bessman <ninjadroid@gazuga.net>
* waveform.c: fixed the drawing to use the same concept behind
Brensenham's algorithm for better accuracy, optimized and cleaned
a bit.
2004-06-28 Pete Bessman <ninjadroid@gazuga.net>
* ROADMAP: updated to reflect Thorsten's GUI contributions; 0.9.X
is now an audit/pre-release phase.
2004-06-21 Pete Bessman <ninjadroid@gazuga.net>
* lfo.c: restructured as a general class, share LFO tables now for
more memory efficiency. Added "positive" attribute, which
constrains output from [0, 1] as opposed to [-1, 1] when set.
* patch.c: added lfos at the voice level and global level on a
per-parameter basis. Added special handlers for LFO and ADSR
amount setters for pitch, and added necessary code to advance(),
so that the amount parameter for pitch modulators effectively sets
the pitch that is reached.
* lfo-settings.c, lfo-settings.h: removed from source tree
* param-settings.c: added controls for LFO manipulation, adjusted
amount widgets and code to work intuitively with the user
(displaying amount in half-steps).
* release: 0.4.0, "Smooth"
...braaaaaaaiiinssss... gah...
2004-06-19 Pete Bessman <ninjadroid@gazuga.net>
* patch.c: added pitch setters/getters, and pitch_steps setters
getters. Use pitch and pitch_steps to implement tuning. Added
setters/getters for delay and hold phases of envelopes, modified
patch_create() to initialize those values.
* gui.c: added controls for pitch and pitch_steps
* adsr.c: added support for delay and hold phases
* param-settings.c: increased precision of control for spinboxes,
added controls for delay and hold
2004-06-17 Pete Bessman <ninjadroid@gazuga.net>
* param-settings.c: added pitch option
* patch.c: pitch is a parameter now, added pitchenv to PatchVoice
and pitch to Patch, modified advance() to handle pitch modulation.
Added properties necessary for portamento to work right to
PatchVoice and Patch and created setters/getters. Implemented
portamento in patch_trigger_patch() and advance().
* gui.c: changed starting master volume value to 80, added
hooks for porta-params dialog
* porta-params.c, porta-params.h: created the portamento settings dialog
2004-06-15 Pete Bessman <ninjadroid@gazuga.net>
* gui.c: renamed "chokes" back to "cuts." It would be appear that
neither naming scheme is terribly intuitive. That being the case,
I'll go for the shorter one.
* patch.c: revised the order of volume scaling operations in
gain(); we now add the LFO value first, then apply the envelopes,
then apply velocity.
2004-06-14 Pete Bessman <ninjadroid@gazuga.net>
* sample.c: converted to a full-blown object
* patch.c, mixer.c: adjustments to accomodate new sample.c
* patch.c: reduced maximum number of patches to 32 and polyphony
to 8. This should tide us over until we have a global polyphony
limit. Added a temporary table to hold LFO values during mixdown
process which render subroutines reference. Added a hook int
driver_set_buffersize() to resize these tables when/if the
buffersize changes.
* driver.h, driver.c: added driver_set_buffersize()
* mixer.c: removed lfo control and went back to "old" way of
calling patch_render with full block of frames.
2004-06-13 Pete Bessman <ninjadroid@gazuga.net>
* configure.ac, Makefile.am: total rewrite, cleaning up
everything and removing redundancy between Makefiles. Builds
that don't specify --enable-debug are also built with -O3 and
without -g.
* pixmaps: created a new dir for the pixmaps and a makefile to
manage them
* play.png, stop.png: redid these; they're prettier and smaller
now. sodipodi > all
* specimen.h: changed the debug() macro to expand to nothing if
DEBUG isn't defined. This should save us a handful of cycles
during optimized builds for free.
* patch.c: added patch_init/shutdown(), acting as a
constructor/destructor pair. Created patch_lock() functions and
replaced explicit pthread_mutex_lock() calls with them. Bugfixed
patch_create() so that new patches start of with PATCH_MIN_RELEASE
(lest the wrath of clicky samples be upon the unwitting user).
* mixer.c: added mixer_init/shutdown(), acting as a
constructor/destructor pair. Added a mutex to the MixerPreview
structure and replaced locks on the sample mutex with locks on
this new mutex.
* sample.h, sample.c: removed mutex from Sample structure. Having
it take care of locking for us was rather unhelpful.
2004-06-12 Pete Bessman <ninjadroid@gazuga.net>
* alsadriver.c: removed G_MAXINT* and replaced with hexadecimal
constants. The G_MAXINT* features are only available in glib-2.4
which isn't in wide enough use among LADers yet.
* configure.ac: ripped out gthreads and added a check for pthreads
(their usage is cleaner than with gthreads).
* TODO, ROADMAP: updated these files at long last.
2004-06-11 Pete Bessman <ninjadroid@gazuga.net>
* sync.h, sync.c: added sync_set_method()
* alsadriver.c: calls sync_set_method() with SYNC_METHOD_MIDI
whenever it's config frame is shown. Added code to restore
settings to their internal values if you close the audio-settings
window or switch to the jackdriver and back without actually ever
starting the alsa driver. device is now stored with a GString.
Status is now stored with an atomic variable instead of a mutex
(we can get away with it... but why am I putting so much effort
into a doomed module).
* jackdriver.c: added a checkbox to use jack_transport syncing,
processed on cofig_frame shows. Improved the transport code to
handle tempo changes (necessary in order to work with the
jack_transport shell, possibly necessary in general, a good idea
no matter what).
* patch.c: fixed a bug in patch_set_samplerate() where changes
wouldn't take effect until the next call.
* Released version 0.3.0, "Leading the Strike;" can't deny the
users LFOs any longer.
2004-06-10 Pete Bessman <ninjadroid@gazuga.net>
* lfo.c: changed lfo_advace() to use cubic interpolation
* mixer.c: changed FRAMES to 1 (these things should be run-time
configurable)
* patch.c: fixed a bug in patch_get_env_release() where the value
returned would always be zero.
2004-06-09 Pete Bessman <ninjadroid@gazuga.net>
* global: made (mostly) sure the rules laid down in STYLE are followed (tons of fun)
* jackdriver.h, alsadriver.h: removed these files and replaced them with extern
references in driver.c
* jackdriver.c, alsadriver.h: removed custom *msg code, added
driver type to initializing message
* specimen.h: modified *msg macros to print __FUNCTION__
* patch.c: fixed an *insidious* bug in patch_render_patch() that
only manifests itself when switching samples. If the new sample
has fewer frames than the original sample, and there are one or
more active voices with frame-positions greater than the new
number of frames, we get a good-ol-fashioned segfault when we
attempt to render those voices. Took about an hour of focused
ninja debugging, could have been worse I suppose. The solution
was to add a check in patch_render_patch() to make sure that
voices which exhibit such pathological behavior are ditched.
* patch.c: created functions patch_flush() and patch_flush_all()
2004-06-08 Pete Bessman <ninjadroid@gazuga.net>
* driver.c, driver.h: created a new driver interface
* mixer.c, patch.c, ticks.c: changes to accomodate new driver
interface (the samplerate must be stored and cannot be explicitly
retrieved)
* jackdriver.c, patch.c: driver_set_samplerate() now called whenever
driver is successfully started and if the samplerate changes
* maths.c, maths.h: cerp() now demands an 8 bit fractional position value,
rather than shifting a 32bit one
* patch.c: replaced bit-twiddling for hex in expression for the maximum value
of guint32 in patch_trigger_patch(), changed to accomodate new math.h
* Makefile.am, gui/Makefile.am: added -Werror to CFLAGS
2004-06-06 Pete Bessman <ninjadroid@gazuga.net>
* lfo.c: added a minor optimization to lfo_advance()
* lfo-settings.c: increased the maximum allowable frequency to 20
* patch.c: created a new function, patch_set_sample_rate(), removed patch_sample_reload_all()
* audio-settings.c: adjusted to use patch_set_sample_rate()
* globally: did some style cleanups to ensure consistency
* STYLE: a new file to hold the style guidelines
* PROFILE: a new file to hold the most recent gprof performance profile.
We need a streamlined way to do a profiling build.
* gprof-helper.c: ripped this file from the net to make gprof usable
in multithreaded environments.
2004-06-06 Loki Davison <ltdav1@student.monash.edu.au>
* lfo-settings.c: added ui for lfo sync.
2004-06-05 Pete Bessman <ninjadroid@gazuga.net>
* patch.c: fixed a few bugs in the lfo handling code
* lfo.c: changes to allow for tempo syncing
* lfo-settings.c: tweaked Loki's lfo-sync code
* midi.c: a few cleanups (ph33r). ALSA midi syncing doesn't seem
to work on 2.6.6 kernels, added a check for FPEs (should have been
there anyway).
* jackdriver.c: redid the jack syncing code (sorry Loki)
2004-06-04 Loki Davison <ltdav1@student.monash.edu.au>
* sync.c, sync.h, jack-driver.c, midi.c: created midi/jack syncing code
2004-06-04 Pete Bessman <ninjadroid@gazuga.net>
* lfo.c, lfo.h: initial creation of the LFO module
* param-settings.c, param-settings.h: the files formerly known as
adsr-settings.*, moved here to accomodate our kludgey UI.
* gui.c: removed the huge #ifdef commented block, and adjusted for
adsr-settings.* renaming.
* lfo-settings.c, lfo-settings.h: new gui interface to control LFOs.
* patch.c: added hooks to store lfo settings, rendering functions
now account for LFOs
* mixer.c: added LFO needed code
* audio-settings.c: added call to lfo_set_sample_rate() during
sample rate changes
2004-05-28 Pete Bessman <ninjadroid@gazuga.net>
* configure.ac: removed redundant AC_CHECK_LIB for libsndfile, and
redundant gtk+-2.0 general pkg-config check
* bootsrap: added autoheader call
* Makefile.am: added GTK_FLAGS
* sample-editor.c: added Loki's change to use a spinbutton for zoom level
* adsr-settings.c: fixed amount spinbutton to be between -1.0 and 1.0
* adsr.c: fixed erroneous conversion of sustain time to ticks in adsr_set_params()
* gui.c: made the scrollbar policy for the piano's viewport completely automatic
* patch.c: re-implemented envelopes for vol, pan, ffreq, and freso
with new rendering system. Set minimum release value to prevent
clicks.
* midi.c: changed to *actually* ignore redundant start/stop commands
* BUGS: created this file to keep track of known bugs
2004-05-27 Pete Bessman <ninjadroid@gazuga.net>
* Created a new set/get interface for patch envelopes
* Created a new patch_param_t for parameters which also
have envelope information
* Modified mixdown system so that each patch tracks
and renders its own voices (huge change)
* Created a new interface for note activation and deactivation
* Lots and lots of other little cleanups, tweaks, and optimizations
that I doubt anyone will notice. Comparing the old against the new,
I'm amazed the old worked at all.
2004-05-25 Loki Davison <ltdav1@student.monash.edu.au>
* piano.c, gui.c: Got rid of the externs Pete hated and added some
helper functions instead. You can now drag and drop onto the file
button as well, loading a new sample.
* configure.ac: added check for libsoundfile, some how we missed it.
2004-05-24 Loki Davison <ltdav1@student.monash.edu.au>
* piano.c, bank-builder.c: Add multifile drag and drop support.
* piano.c: fixed horrible crash if you dragged of the end of the
piano, spotted by AudioFranky.
2004-05-22 Loki Davison <ltdav1@student.monash.edu.au>
* bank-builder.c, gui.c: Added the ifdefs to check for gtk 2.4.
* configure.ac: added test for gtk2.4.
2004-05-20 Loki Davison <ltdav1@student.monash.edu.au>
* bank-builder.c, bank-builder.h: Added the new bank builder, requires
gtk 2.4 now.
* piano.c: Added support for drag and drop creation of patches using
the bankbuilder.
* gui.c: Changed the layout into 2 columes to support the bank
builder, added the bank builder and changed location of the piano.
* README: added bit about drag and drop.
2004-05-18 Pete Bessman <ninjadroid@gazuga.net>
* maths.c, maths.h: created these files and moved our
interpolation routines here. This is the future home of all
future general purpose math routines.
* ticks.c, ticks.h: moved getticks() and friends here. All time
related routines will go here in the future.
* specimen.c, specimen.h: removed our in-house basename() and
substituted all uses of it for g_path_get_basename().
* specimen.h: fixed b0rken PIXMAPSDIR check/redef code. Removed
that old and crappy thread_data_t stuff (go go gadget vestigial
newbie code).
* configure.ac: added --enable-debug option
* beef.c, patch.c: fixed a bug where loading a bank which has a
patch with no samplefile causing segfaults.
2004-05-12 Pete Bessman <ninjadroid@gazuga.net>
* midi.c: finally got around to cleaning this file up.
* patch.c, patch.h: finally got around to using a sensible
naming scheme for the functions here (patch_set_foo instead
of patch_foo_set), and it was all done automagically via the
beauty of sed. Mmmmm... sed.
2004-05-12 Loki Davison <ltdav1@student.monash.edu.au>
* sample-editor.c: Changed the zoom buttons to a scroll button with
acceleration and scroll wheel support, as suggested by AudioFranky.
2004-05-10 Pete Bessman <ninjadroid@gazuga.net>
* gui.c: renamed "cuts" to "chokes", since the former caused
confusion. Layout is now done with tables, and the piano widget
is packed into a viewport to keep things nice and tidy.
* waveform.c: fixed the aliasing problem, and adjusted the colors
a tad. There are still a few slight accuracy problems left to
fix, as well as getting it to run smoothly with huge files.
* sample-editor.c: made the scroll bar have a finer-grained
resolution.
2004-05-09 Pete Bessman <ninjadroid@gazuga.net>
* midi.c: note-on events with velocity of 0x00 are now interpreted
as note-offs (thanks to Alexander <aharvey@ij.net> for the tip)
* piano.c: applied Loki's patch to purtify things a bit.
* sample-selector.c: selector now keeps track of its current directory.
2004-05-08 Loki Davison <ltdav1@student.monash.edu.au>
* piano.c, piano.h, gui.c : added new piano interface for showing
range and location. Based on the widget from Swami.
* configure.ac: Piano widget uses gnome_canvas so added check for it.
you don't need all of gnome to use it.
* README: Added bit about how to use the piano.
2004-04-27 Loki Davison <ltdav1@student.monash.edu.au>
* cca.c : added this file to support Lash/Ladcca. Has the main lash
loop. Calls the gui to update about new patches.
* jackdriver.c, specimen.c, midi.c: Minor changes to support lash.
* Makefile.am: includes the extra libs needed for lash.
* configure.ac: test for lash.
2004-03-11 Pete Bessman <ninjadroid@ml1.net>
* patch.c: fixed bug where initial resonance and panning would
have whack values (thanks to Paul Brossier for spotting this bug).
2004-02-24 Pete Bessman <ninjadroid@ml1.net>
* patch.c: exercised the power of memcpy to minimize grunt work in
patch_create() and patch_duplicate(). Support for resonance and
panning envelopes added. Got rid of stupid conversions for pan
and volume setters/getters, that's the responsiblity of the
caller. Envelopes can be turned on and off.
* adsr-settings.c: support for resonance and panning envelope added,
ability to turn envelopes on and off.
* mixer.c: support for resonance and panning envelope added.
Filtering is now done before gain adjustment.
* beef.c: cleaned up the file opening process, accomodated new
parameters.
2004-02-24 Pete Bessman <ninjadroid@ml1.net>
* waveform.c: applied Torben Hohn's optimization patch to *great*
effect. Made another tweak and it's running like a raped ape now.
* mixer.c, patch.c, patch.h, adsr-settings.c: added support for
cutoff ADSR. Still pondering the best way to do this, wonder
if I ought to go for a completely modular approach. Need to
sleep on it and ask around.
2004-02-23 Pete Bessman <ninjadroid@ml1.net>
* Makefile.am, gui/Makefile.am: fixed to use $(pkgdatadir) instead
of @datadir@ when determining where to put the pixmaps (thanks
to Torben Hohn for the tip).
* configure.ac: removed useless dependency on gthread
* specimen.spec: included and modified Florin Andrei's rpm specfile
* mixer.c: fixed a bug in the ping-pong looping logic. This
has really been the bane of my existence as of late >:O
2004-02-22 Pete Bessman <ninjadroid@ml1.net>
* adsr-settings: created interface to set adsr envelope parameters.
* path.c: added volume adsr parameters to patch structure and created
setters and getters.
* mixer.c: added support for volume adsr. Fixed a bug in the ping-pong
loop logic.
2004-02-22 Pete Bessman <ninjadroid@ml1.net>
* Complete source tree reorganization. Subdirectories and
everything. Much prettier now. Ah.
* playmode-settings.c: created this file to contain the widgets
to set a patches play mode.
* gui.c: now uses playmode-settings.c to set play mode for a
patch.
* patch.c: play_mode_t restructured as a bit field, allowing
direction and duration properties to be separate but represented
in one variable.
* mixer.c: more tweaks to improve quality and accuracy, in
addition to accomodating new restructuring of play_mode_t. simple
lowpass filter and resonance support added.
* holy shit, I didn't sleep...
2004-02-21 Pete Bessman <ninjadroid@ml1.net>
* mixer.c: made a change so that notes in excess of the polyphony
limit take the place of the oldest note currently playing, rather
than being dropped. Thanks to David R. Clark for bringing the
necessity of this to my attention. Reimplemented the cubic
interpolation routine as a FIR (pow() was freakin' slow). Made
some other optimizations, mainly by substituting floats with ints
and bitshifting.
* patch.c: added patch_duplicate() function.
* gui.c: added Duplicate to action menu.
2004-02-20 Pete Bessman <ninjadroid@ml1.net>
* mixer.c, mixer.h: moved mixing functions here.
* loadsample.c, loadsample.h: modularised sample loading into
here.
2004-02-17 Pete Bessman <ninjadroid@ml1.net>
* gui.c: fixed a minor control interaction bug.
* Today marks the release of version 0.2.0 of Specimen, or the
"Mortal Wombat" release as those in the know refer to it.
Documentation has been painstakingly (snicker) prepared and is
available on the website.
2004-02-16 Pete Bessman <ninjadroid@ml1.net>
* waveform.c: supports range parameters so that it only draws a
specified part of the waveform. This makes good zooming possible.
No, plastic doesn't make it possible. Eat me.
* editsample.c: file initialized. This is the interface for
editing sample play and loop start/stop points. I dare say it's
halfway beastly.
* editsample.h: file initialized. Contains prototypes for the
sample editing interface.
* patch.c: modified the play/loop point setters to modify other
parameters so that a sane configuration is maintained when unsane
arguments are given, rather than returning an error. Came up with
better names for the enumerated event constants. The
interpolation calls were simplified a bit and the whole mixdown
function now accounts for playing samples in both directions.
* gui.c: controls for ping pong mode and reverse mode added.
2004-02-15 Pete Bessman <ninjadroid@ml1.net>
* waveform.c: transformed into a custom gtk widget Waveform.
Drawing routine is significantly optmized.
* gui.c: now displays waveform using the new Waveform widget.
2004-02-14 Pete Bessman <ninjadroid@ml1.net>
* gui.c: extirpated a very minor (but stylistically abominable)
bug in the way loop/play control constraints and values are set
during patch changes.
* waveform.c: now supports displaying loop and play points.
* patch.c: modified file writing to write patches in order of
their display index. Fixed a *really* stupid bug in the sorting
part of patch_dump() (swapped twice instead of once...).
2004-02-13 Pete Bessman <ninjdroid@ml1.net>
* got off my lazy ass and started working on this again.
* alsadriver.c: made sure that we don't wait on threads that don't
exist when trying to shutdown when we aren't running.
* patch.c: replaced patch_id_get_all() with patch_dump(), which
does the same thing only better and sorted. Created the function
patch_verify() for testing that a patch exists and is sane. Right
now, this basically means ensuring that the specified patch is
active. Any out-o-whack integer parameters will get constrained
to something reasonable by the nature of the gtk_spin_button
class. I also created patch_deactivate_by_id() so that you can
preview looped samples without subjecting yourself to them for
eternity. Eliminated places where ints were constantly being
converted to floats by storing those values as floats.
* gui.c: cleaned this up like your mother cleans my pole when the
rent's due. Just kidding. About your mom, I mean. The code is
significantly cleaner, and accounts for the changes made to
patch.c.
* waveform.c: created this file, which contains the waveform
display code. It's pretty much where it needs to be, now I just
have to use it on a grander scale.
2004-02-09 Pete Bessman <ninjadroid@ml1.net>
* patch.c: fixed a few erroneous newlines in some of the returns
of patch_strerror(). Modified loop and play point setters to do
nothing if there is no sample for the specified patch (they used
to return errors).
* gui.c: changed cb_sample_load() to call update_interface()
instead of making changes to the sample button directly.
2004-02-09 Pete Bessman <ninjadroid@ml1.net>
* patch.c: added display_index property to patches and a getter
for it. Modified patch_create() to initialize it and
patch_destroy() to account for it.
* gui.c: update_interface() now organizes menu entries according
to display_index.
2004-02-06 Pete Bessman <ninjadroid@ml1.net>
* patch.c: added patch_flush() to stop any events currently in the
queue. patch_mixdown() has been cleaned up a lot, it should be much
easier to expand on it in the future.
* audiosettings.c: calls patch_flush() whenever changing drivers
to clear out accumlated events. Not doing this results in a nasty
pop sometimes, so this is a nice improvement.
* configure: got an autoconf/automake setup going on now. What
a huge pain in the nuts that was.
2004-02-03 Pete Bessman <ninjadroid@ml1.net>
* patch.c: fixed another memory bug in the interpolation
section of patch_mixdown().
2004-02-03 Pete Bessman <ninjadroid@m1.net>
* gui.c: created a separate module for sample loading and
added much needed "load" and "preview" functions.
* patch.c: modularized sample loading and added support
for "previewing" a sample.
2004-02-02 Pete Bessman <ninjadroid@ml1.net>
* gui.c: current_patch no longer as file scope.
2004-02-01 Pete Bessman <ninjadroid@ml1.net>
* gui.c: removed useless call to update_interface when loading samples
that only served to disorient.
* patch.c: fixed a math bug in the cubic interpolation algorithm.
2004-01-31 Pete Bessman <ninjadroid@ml1.net>
* The first beta release of specimen, code named VOMITRON (those
of you who get that kick ass) is made today. Believers rejoice,
sinners repent, etc. and so forth.
* gui.c: controls added for loop points.
* patch.c: patch_mixdown() does looping. File reading/writing
pays attention to sample start/stop info now. Cuts work again. I
think I fixed some audio quality bug also, but I'm not sure.
2004-01-27 Pete Bessman <ninjadroid@ml1.net>
* gui.c: controls added for manipulating sample start and stop points.
* patch.c: patch_mixdown() accommodates sample start and stop
parameters.
2004-01-26 Pete Bessman <ninjadroid@ml1.net>
* bank.c: created a new file to handle the gui aspects of managing
patch banks.
* patch.c: set to use bank.c now.
2004-01-24 Pete Bessman <ninjadroid@ml1.net>
* patch.c: patch_mixdown() does real linear interpolation when pitch
scaling now.
* patch.c: scant moments later, patch_mixdown() has been updated
to do REAL LIVE CUBIC INTERPOLATION OMG!!? WTF?!!?
* patch.c: fixed what should have been a horrible memory addressing
bug and cleaned up the code a bit, excising gratuitous variables.
2004-01-23 Pete Bessman <ninjadroid@ml1.net>
* In celebration of another year of our Sun not going super nova
on us, another release of specimen has been made, monikered as the
"Little Pink Christina Aguieasfdflarea Monsters"
(HETAERA) release. Midi velocity information isn't blatantly
ignored, cuts are implemented, and crummy pitch scaling has forced
its way into the code.
2003-12-22 Pete Bessman <ninjadroid@ml1.net>
* Amateur hour continues with the "Winter is too friggin' cold"
(WITFC) release. The driver interface has some semblance of taste
now, there is one mixdown function which does it's job well, and
the CLI babbles incessantly as always.
2003-11-25 Pete Bessman <ninjadroid@ml1.net>
* Initial ultra-mega-super-alpha release, code-named "It seemed
like a good idea at the time," or "ISLAGIATT" since acronyms are
way sweet. Features a brain damaged output driver interface, slow
mixdown functions, and copius CLI output.
|