-
Notifications
You must be signed in to change notification settings - Fork 2
/
ChangeLog
664 lines (572 loc) · 29.3 KB
/
ChangeLog
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
2011-01-23 Frank Kober <goemusic@yahoo.fr>
* midilfo.*, lfowidget.*, lfoscreen.*, mainwindow.cpp : LFO can
now record controller data sent to its input. The record mode is set
by a toolbutton equipped with MIDI Learn. Usage idea is to move a
controller while pressing an assigned record button on an external
controller to have a controller phrase looper.
At this time the maximum resolution of recording is limited to 16 but
will be extended.
2011-01-19 Frank Kober <goemusic@yahoo.fr>
* midiarp/lfo/seq.*, *screen.*: mainwindow.cpp: playhead cursor
implemented for all modules. The former packet pre-scheduling has
been changed so that only 1 event is scheduled per alsa echo. The
LFO still uses increasing packet size for resolutions > 16 to avoid
excessive drawing cycles.
2011-01-18 Frank Kober <goemusic@yahoo.fr>
* version changed to 0.4.0
2011-01-08 Frank Kober <goemusic@yahoo.fr>
* src/translations/qmidiarp_es.ts, src/Makefile.am:
spanish translation added, provided by Pedro Lopez-Cabanillas
* groovewidget.cpp, slider.cpp: font-size-sensitive widths improved
+++ Release 0.3.9 (2011-01-05) +++
2011-01-04 Frank Kober <goemusic@yahoo.fr>
* configure.ac: broken Qt lib checks disabled atm, changed version
number to 0.3.9
* man/*: SUPPORT mailing address updated
* mainwindow.h: about message updated
2010-12-09 Frank Kober <goemusic@yahoo.fr>
* arpwidget.cpp: fixed combobox updates 'repeat mode and trig mode)
* seqdriver.*: fixed get_time() function that led to glitches in
trig mode
* midiarp.cpp: fixed legato in trig mode
2010-12-05 Frank Kober <goemusic@yahoo.fr>
* arpscreen.*, midiarp.*: handling of follower position improved
* midiarp.*, seqdriver.*: trigger-by-note-on capability added.
There are now (finally) three trigger modes:
o No trigger: the original continuous mode
o Kbd restart: pattern position is reset upon stakato note-on
o Kbd trigger: arp is retriggered upon stakato note-on time.
Absence of this mode has probably confused some users about
the general function of the arpeggiator.
* arpwidget.*: combobox added for trigger mode choice.
* man/*: manpages updated
2010-11-27 Frank Kober <goemusic@yahoo.fr>
* arpwidget.*, midiarp.*: new latch mode implemented. When latch
button is checked, released notes are removed only after 200ms. If
within this period all notes are released, the note buffer is
latched. It gets unlatched when pressing the footswitch or
unchecking the latch button.
* arpscreen.cpp, seqdriver.*, mainwindow.cpp, midiarp.*: follower
line now governed by midiarp.
2010-11-13 Frank Kober <goemusic@yahoo.fr>
* lfowidget.*: copyToCustom button removed, copying is done upon
first leftclick on lfoscreen. WaveFormBox and Frequency get MIDI
learn.
* arpwidget.*: random and envelope boxes made checkable. Controls
hidden by default.
* mainwindow.cpp, arpwidget.cpp: keyboard shortcuts made unique
* seqwidget.cpp: note and velocity input made independent again
* *screen.*: gray background when muted
* *widget.*, midi*.*, mainwindow.cpp: some members renamed, consistency
2010-11-11 Frank Kober <goemusic@yahoo.fr>
* midilfo.*, mainwindow.cpp, arpdata.*: alsalib headers removed
* seqdriver.*, midiarp.*, arpscreen.cpp: fixed keyboard input latency.
midiarp reacted very slowly to input note events. It basically took
two arpeggio steps to hear changes played on the keyboard affecting
the arpeggio:
o Output notes were scheduled very early into the alsa queue, i.e.
upon the last output note (1 step of latency)
o The scheduled notes took into account the note buffer state at
the step before (1 step of latency).
Both delays are now squeezed. 1) Notes are scheduled only 8 alsa ticks
before they go out. 2) The note buffer state is taken into account
at the time they are scheduled. The arp is now playable live without
hicks.
* arpwidget.*, arpdata.cpp: presetSelection added to MIDI controllables
2010-02-16 Frank Kober <goemusic@yahoo.fr>
* midilfo.cpp: fixed data storage inconsistency
2010-02-15 Frank Kober <goemusic@yahoo.fr>
* midilfo.*: hi-res drawing interpolation slightly improved
2010-02-14 Frank Kober <goemusic@yahoo.fr>
* lfowidget.*, midilfo.*, seqwidget.*, midiseq.*: muting ranges
by holding right mouse button now possible.
* passwidget.cpp, midicctable.cpp: Layout improved
* man/*/qmidiarp.1: Midiclock description updated
2010-02-13 Frank Kober <goemusic@yahoo.fr>
* passwidget.*, mainwindow.cpp, seqdriver.*: false midiclock tpqn
editing removed since it has a clear standard definition.
* mainwindow.*, passwidget.*: passWidget (Settings) is now a dialog
window, compact style no longer default, compact style applies
immediately when checkbox toggled, but applies to widget
spacings only for modules added after change.
* seqdriver.h, lfowidget.cpp: cleanups
* mainwindow.*, midicctable.cpp: fixed memory leak when opening
midi control editor
* pixmaps/jacktr.xpm: icon polished
2010-02-09 Frank Kober <goemusic@yahoo.fr>
* midilfo.*, seqdriver.cpp, main.h: frame size for each LFO data
queueing at a time limited to 256 points to fix playout of
high resolution and length LFO waveforms.
2010-02-08 Frank Kober <goemusic@yahoo.fr>
* midilfo.*, lfowidget.cpp: Drawing improved to avoid skipping
points for custom waveforms with higher resolution than mouse
resolution (reported by David Adler)
* lfoscreen.cpp: Drawing behavior on edges made easier
2010-02-06 Frank Kober <goemusic@yahoo.fr>
* man/*/qmidiarp.1: manpages updated.
2010-02-04 Frank Kober <goemusic@yahoo.fr>
* seqdriver.*, midiseq.*, seqwidget.*, seqscreen.*, mainwindow.cpp:
Step-by-step recording for sequencer module added. Recording starts
at the last modified note when record mode is enabled. Note-on
events need to be enabled for the module to record.
* pixmaps/seqrecord.xpm: record icon added.
* pixmaps/Makefile.am: record icon added to package.
2010-02-02 Frank Kober <goemusic@yahoo.fr>
* midiarp.cpp, arpscreen.*, mainwindow.cpp, arpwidget.cpp: Arp
pattern changes again possible without restarting sequencer queue,
fixed double-performed pattern change.
* seqdriver.cpp: fixed initial tick not always been set to zero on
queue stop.
2010-02-01 Frank Kober <goemusic@yahoo.fr>
* seqdriver.cpp, midiarp.cpp: 4 more ticks added as tolerance for
external sync to avoid getting off the hook by small clock
variations, tick folding function implemented to allow for smooth
envelope behavior when jack transport is looping (or restarting)
* jacksync.*: reverted to be normal object, no need to have this as
a thread separate from seqdriver.
2010-01-31 Frank Kober <goemusic@yahoo.fr>
* seqdriver.*, jacksync.*, midiarp.*: First attempt to run the MIDI
and arpeggio engine in threads. QSocketNotifier replaced by poll for
MIDI processing thread. Some timing cleanups for jack transport
sync.
2010-01-23 Frank Kober <goemusic@yahoo.fr>
* mainwindow.cpp, arpwidget.cpp: Tags added to resource file items
for more flexibility. Old resource file will be without effect and
then overwritten.
2010-01-20 Frank Kober <goemusic@yahoo.fr>
* seqdriver.*, mainwindow.*: Jack transport sync capability
integrated as a user choice. Jack sync object is created/destroyed
as a child of seqdriver by toggling jackSync toolbar button.
Alsa queue is started at 0 on reception of jack transport start
regardless the current jack transport position. Jack transport
position is used as calibrator for alsa event scheduling. On
reception of jack shutdown/connect fail, an event is emitted
toggling back the jack transport button, which stops the queue and
switches back to internal clock.
* jacksync.cpp, jacksync.h: jackSync class added providing jack
transport data and emitting signals on transport start and jack
shutdown.
* jacktr.xpm: icon added.
* configure.ac, src/Makefile.am, src/pixmaps/Makefile.am: jack
dependency added, new files added to package.
2010-01-14 Frank Kober <goemusic@yahoo.fr>
* mainwindow.cpp: Session name added to XML file, recent files menu
added with code from AMS
* arpwidget.*: missing reading-skips of unknown xml elements added
2010-01-13 Frank Kober <goemusic@yahoo.fr>
* mainwindow.*, arpwidget.*, lfowidget.*, seqwidget.*: Session file
format changed to XML, file extension changed to .qmax, old text
files can be imported by selecting .qma files in fileOpen dialog
filter.
2010-01-10 Frank Kober <goemusic@yahoo.fr>
* arpdata.cpp, midicctable.cpp: mute MIDI controller behaviour
extended: if min=max (default), a control value=127 toggles state.
if min!=max, control value=min mutes, control value=max unmutes
2010-01-09 Frank Kober <goemusic@yahoo.fr>
* seqdriver.*, arp/lfo/seqwidget.*, midicctable.cpp: MIDI Channel
added to controller filter
2010-01-08 Guido Scholz <guido.scholz@bayernline.de>
* mainwindow.*: Handler for SIGINT added to handle unsaved or
changed files more carefully at program termination. Handler for
SIGUSR1 added to provide support for LADISH level 1.
2010-01-08 Frank Kober <goemusic@yahoo.fr>
* arp/lfo/seqwidget.cpp: modified flags upon midi controller
attribution change added, check for double-attributed controllers
added
* arpdata.cpp, midicctable.cpp: min/max settings adapted for toggler
controls
* midicctable.cpp: revert and remove row functions added
2010-01-07 Frank Kober <goemusic@yahoo.fr>
* seqwidget.cpp: note length slider maximum set to 127
* midicctable.*: items made editable, "OK" button replaces current
controllers by table content, "Cancel" quits without applying changes
* arpdata.cpp: min and max controller settings made active
2010-01-04 Frank Kober <goemusic@yahoo.fr>
* lfo*.*: custom wave made controllable by offset slider (and MIDI)
2009-12-31 Frank Kober <goemusic@yahoo.fr>
* MIDI control handling modified: controllers can be attributed to
mute checkbox and various sliders by context menu and MIDI
learn/forget.
Each module holds a control/controller item list, incoming
controllers are handled in arpdata.cpp
* midicctable.*: control editor implementation started
2009-12-23 Frank Kober <goemusic@yahoo.fr>
* *lfo*.cpp: implement mouse wheel on lfoscreen to change offset of
LFO waveform. This is of interest mainly for the custom drawn wave
2009-12-06 Frank Kober <goemusic@yahoo.fr>
* mainwindow.cpp: GUI settings stored through saveState() Qt function
applying to *.qma files and .qmidiarprc file as a Hex-encoded part.
* passwidget.cpp: compact style for modules is now default
2009-12-04 Frank Kober <goemusic@yahoo.fr>
* seqdriver.*, arpdata.*, *widget.*: all modules MIDI-mutable,
mute MIDI controller depends on position in tabbed dock (order of
module creation) instead of position in midiArpList
* passwidget.*, mainwindow.*, main.h, *widget.*: "compact style" can
be checked in passwidget acting on font size, grid spacing and
element heights for all modules, to allow for placing several
modules next to each other on desktop. compactStyle property
added to rc-file items.
* man/*/qmidiarp.1: updated
* NEWS: updated
2009-11-29 Frank Kober <goemusic@yahoo.fr>
* midi*.*, *widget.*, mainwindow.*: goodbye tabWidget, hello
dockWidget, all modules are floatable, by default tabified
Dock Windows now
* lfowidget.*: small pixmaps for waveform combobox included
* pixmaps/lfow*.xpm: pixmaps for waveform combobox added
2009-11-23 Frank Kober <goemusic@yahoo.fr>
* midilfo.cpp, midiseq.cpp: small computation optimization
* midiarp.cpp: debug printf removed
* seqwidget.cpp: keyboard shortcuts cleaned up
* man/de/qmidiarp.1: German translation of manpage added
provided by Robert Dietrich
* man/*/qmidiarp.1: improvements/corrections
2009-11-22 Frank Kober <goemusic@yahoo.fr>
* mainwindow.cpp: use seqdriver->runArp instead of
runQueue->isChecked() for resetting queue, group action disabling in
functions
* arpscreen.*: obsolete variables removed
* man/*/qmidiarp.1: man pages updated
2009-11-15 Frank Kober <goemusic@yahoo.fr>
* seqdriver.cpp: compute MIDI clock slave timing on every received
clock event and stabilized a bit against MIDI clock tempo changes
2009-11-13 Frank Kober <goemusic@yahoo.fr>
* midiseq.*, seqwidget.*, seqscreen.*: step Sequencer module added.
Current features: adjustable resolution, length and global velocity,
note length, transpose. Velocity and transpose can optionally be
obtained from input notes played on keyboard. Notes can be drawn and
muted by left/right mouse click.
* src/pixmaps/seqadd.xpm, src/pixmaps/seqwavcp.xpm: seq icons added
* mainwindow.*, seqdriver.*, arpdata.*, Makefile.am, configure.ac:
incorporate stepsequencer handling
2009-11-09 Frank Kober <goemusic@yahoo.fr>
* mainwindow.*: fixed: startup with GUI settings defined in
MainWindow constructor, also when .qmidiarprc is being created the
first time
2009-11-08 Frank Kober <goemusic@yahoo.fr>
* mainwindow.cpp: some icons added, View items added to toolbar
* eventlog.xpm, groovetog.xpm, settings.xpm, pixmaps/Makefile.am:
some icons added
* filesave.xpm, filesaveas.xpm: icons polished
2009-11-07 Frank Kober <goemusic@yahoo.fr>
* mainwindow.cpp: MIDI clock resolution and toggle added to saved
items
* translations/*.ts: minor fixes
* man/fr/qmidiarp.1, Makefile.am, configure.ac: French manpage added
* man/qmidiarp.1: slight editing
2009-11-06 Frank Kober <goemusic@yahoo.fr>
* mainwindow.cpp: fixed double employed Ctrl-L keysequence
* lfowidget.cpp: fixed keyboard tab focus sequence
* man/qmidiarp.1: streamlined
2009-11-05 Frank Kober <goemusic@yahoo.fr>
* NEWS, README: updated
* mainwindow.cpp: fixed disabling of removePattern action for all arps
2009-11-04 Frank Kober <goemusic@yahoo.fr>
* mainwindow.*, arpdata.*, arpwidget.*: arp preset pattern handling
changed. If the preset list is modified in one arp, all arps get
updated. GUI settings stored to .qmidiarprc file along with arp
patterns. rc file is written on exit of the application and when
the arp preset list is modified.
* lfowidget.cpp: abort reading LFO waveform data when none was saved
2009-11-02 Frank Kober <goemusic@yahoo.fr>
* mainwindow.cpp: tempoSpin box disabled when queue running atm
2009-11-01 Frank Kober <goemusic@yahoo.fr>
* arpwidget.*: obsolete headers removed
* man/qmidiarp.1: manpage updated
2009-10-31 Frank Kober <goemusic@yahoo.fr>
* midilfo.cpp, lfowidget.*, lfowavcp.xpm: toolbutton to copy
current wave to custom wave added
2009-10-30 Frank Kober <goemusic@yahoo.fr>
* midilfo.cpp, lfowidget.cpp: custom waveform and mute pattern now
saved to qma file as clear text, custom waveform initialized in
LFO constructor and survives changes of waveform type
2009-10-28 Frank Kober <goemusic@yahoo.fr>
* midilfo.cpp: fixed quantization issue with drawn waveforms
* lfowidget.cpp: deactivate freq amp and offset for custom waveform
* midilfo.*, lfoscreen.*, lfowidget.*, seqdriver.cpp: remove
"lfo..."-particle from variable names where appropriate
2009-10-27 Frank Kober <goemusic@yahoo.fr>
* midilfo.*, lfoscreen.*, lfowidget.*, seqdriver.cpp:
custom mouse-drawable LFO waveform added, muting of single waveform
points added. If custom waveform is selected, the waveform can be
drawn with the left mouse button. For all waveforms, the right mouse
button activates/deactivates event generation for the point under
the mouse cursor
* slider.cpp: restore possibility to use Qt:Vertical for sliders
TODO: store custom waveform somehow, deactivate freq, amp and offset
for custom waveform
2009-10-25 Frank Kober <goemusic@yahoo.fr>
* package: first draft of manpage added
2009-10-11 Frank Kober <goemusic@yahoo.fr>
* obsolete C-headers removed or updated
* lfowidget.cpp: amplitude slider fixedWidth removed
2009-10-11 Guido Scholz <guido.scholz@bayernline.de>
* mainwindow.*: Obsolete aboutWidget removed.
* mainwindow.cpp: Sequence of "View" and "Module" menus changed,
to meet common standards.
* mainwindow.cpp, arpdata.*, seqdriver.*: Show ALSA client id in
window title
* translations/*.ts: Obsolete messages removed
* arpwidget.cpp: Widget placement by standard layout margins.
Focus follows tab fixed.
* groovewidget.cpp: Widget placement by standard layout margins.
* lfowidget.*: Obsolete header files removed, missing keyboard
shortcuts added, layout improved
* slider.*: Layout improved, label member variable removed.
2009-10-10 Frank Kober <goemusic@yahoo.fr>
* passwidget.*, mainwindow.cpp, seqdriver.cpp: "discard" logic
changed to "forward to" to be more intuitive
* seqdriver.*, midiarp.*: footswitch now properly channel-filtered
and handled in midiarp
* seqdriver.*: more cleanups regarding midi clock
* mainwindow.cpp: show file menu by default
2009-10-07 Frank Kober <goemusic@yahoo.fr>
* mainwindow.cpp: fixed: do not call delete in moduleDelete()
* midilfo.cpp, lfowidget.cpp: offset slider and function enabled
2009-09-28 Frank Kober <goemusic@yahoo.fr>
* seqdriver.*: switched from ALSA tick to ALSA realtime event
scheduling to allow for smoother MIDI clock slave operation.
Internal handling continues to be in ticks. On-the-fly tempo changes
while running including those of the incoming MIDI clock are still
troublesome, starting midi clock speed is guessed from local
tempo value
* mainwindow.cpp: fixed unmatched port value update when file
loaded, stop Queue before clear(), add View menu, add tooltips,
fix double employed Ctrl-N key sequence
* logwidget.cpp: disable logging by default
2009-09-26 Frank Kober <goemusic@yahoo.fr>
* mainwindow.*, lfowidget.*, arpwidget.*, seqdriver.*, arpdata.*:
new load/save/saveAs logic adapted from Guido's implementation in
qmidiroute started
* seqdriver.cpp: some optimization for LFO data queueing
* midiarp.cpp: fixed: repeatPatternMode "down" didn't work with chords
in pattern, a bug from original version I think (spotted by Robert
Dietrich)
* midilfo.cpp: fixed uninitialized isMuted state
2009-09-25 Frank Kober <goemusic@yahoo.fr>
* lfoscreen.cpp: max number of divisor separators limited to 64
* seqdriver.cpp: mute state of midilfo now handled, muting gets active
only after a completed LFO cycle
2009-09-24 Frank Kober <goemusic@yahoo.fr>
* midilfo.cpp: fixed triangle waveform in terms of length
* lfoscreen.*: new class for waveform display added
* lfowidget.*: lfoscreen added and updated on every parameter change
* seqdriver.cpp: fixed missing initial echo request when no
LFO present
2009-09-23 Frank Kober <goemusic@yahoo.fr>
* src/*:MIDI LFO added as new feature. GUI-wise LFOs coexist with
Arps in
tabwidget. They are handeled in parallel through arpdata.cpp and are
using the same queue as the arps. Each LFO outputs MIDI controller
data in adjustable resolution, waveform, amplitude, table length.
* midilfo.*, lfowidget.*, lfoadd.xpm: added
* arprename.xpm, arpremove.xpm: changed since they are used for arps
and LFOs.
* arpdata.*: add midiLfoList in parallel to midiArpList
* seqdriver.* : LFO data requesting and queueing added
* mainwindow.* : LFO handling added, load/save routines adapted
* TODO *:
Widgets in the tabwidget are currently recognized by their name
to distinguish between LFO and Arp. A better solution would be nice.
LFO Amp offset slider has no function yet
LFO mute has no function yet
LFO GUI needs improvement
implement Guido's file change monitoring/Load/Save/SaveAs
2009-09-22 Guido Scholz <guido.scholz@bayernline.de>
* main.cpp: Command line help streamlined.
2009-09-20 Frank Kober <goemusic@yahoo.fr>
* arpscreen.cpp: more optimizations avoiding double precision
calculations
* arpwidget.cpp: LineEdit used replacing PlainTextEdit, pattern edit
toolbuttons disabled instead of hidden
2009-09-19 Frank Kober <goemusic@yahoo.fr>
* mainwindow.cpp: Layout improved, using more QDockWidgets
* arpwidget.cpp: QGridLayout used where appropriate
* slider.*: tickStep parameter added, ticks added
2009-09-18 Frank Kober <goemusic@yahoo.fr>
* arpwidget.cpp, midiarp.cpp: don't pass arpScreen to midiarp,
maximum height of arpScreen increased, groove values passed
to arpscreen (not handled yet), queueTempo awareness added
to midiarp for atk/rel display in seconds
* arpscreen.cpp: math header removed, replace rectangles by lines to
optimize, only one call to height() and width()
* seqdriver.cpp: ALSA error number included in message, dependency
on C headers removed, midiarp gets queueTempo on every loop
* mainwindow.cpp: PACKAGE replaced by APP_NAME on all occurences
2009-09-17 Frank Kober <goemusic@yahoo.fr>
* main.cpp: fixed start options, --help message extended, dependency
on stdio.h removed
2009-09-16 Frank Kober <goemusic@yahoo.fr>
* mainwindow.*, main.*: load filename without -f option, store About
message in const char, AboutQt added, renamed load(QString) to
fileOpen(QString), display filename in window title
* configure.ac: APP_NAME added
2009-09-15 Frank Kober <goemusic@yahoo.fr>
* mainwindow.*, passwidget.*: moved midi clock toggler into main
toolbar, disable arp menu functions and file load when midi clock
enabled
* midiclock.xpm: icon added
2009-09-14 Frank Kober <goemusic@yahoo.fr>
* midiarp.cpp: removeNote(*ev..) removes only one of potentially
multiple occurences of notes at a time, note buffer cleared on queue
stop (both changes from original behaviour), rework note buffer to
correctly account for double strokes/releases also when received
at same time (sequencers!), remove released vel=0 notes earlier to
avoid temporary silences
* mainwindow.cpp, arpwidget.cpp: envelope params added to disk-saved
items
* mainwindow.cpp: unnecessary newTempo signal removed
* arpwidget.cpp: display attack/release in seconds (not yet real)
2009-09-13 Frank Kober <goemusic@yahoo.fr>
* midiarp.cpp: fixed attack function buffer getting corrupted by
removed notes.
* seqdriver.cpp: changed ALSA client names in analogy to QMidiRoute,
FootSwitch now applies to all arps in list
TODO: handle FootSwitch to be channel-filtered as all note events
* mainwindow.cpp: tempo added to disk-saved items keeping
compatibility with files saved with older versions
2009-09-12 Frank Kober <goemusic@yahoo.fr>
* arpdata.cpp: fixed memory leak due to non-deleted QList item
introduced by incomplete Qt4 port (gscholz)
* mainwindow.cpp: make passWidget and logWidget dockable, hidden by
default, floatable windows, adapt tab index conditions
* midiarp.cpp: fixed from original: additional note was produced when
control items were present at end of pattern text.
2009-09-09 Frank Kober <goemusic@yahoo.fr>
* midiarp.*, seqdriver.*, arpwidget.*:
Simple envelope implementation started. When attack slider is
set > 0, the velocity is ramped up from zero with alsa tick as
timescale. When release is > 0, velocities of released notes are
ramped down until velocity=0 and then removed from buffer.
Tick and release mark information is stored with note in buffer.
2009-09-06 Frank Kober <goemusic@yahoo.fr>
* mainwindow.cpp, midiarp.cpp, seqdriver.cpp, passwidget.cpp:
MIDI controller for muting arps implemented. The controller for the
first arp can be configured in the settings tab, the other arps in
row are the following CC numbers. When the corresponding CC with
value 127 is received, the arp mute state is toggled.
* qmidiarp_*.ts: translations updated, obsoletes left atm
2009-09-03 Frank Kober <goemusic@yahoo.fr>
* mainwindow.cpp: new Arp pulldown menu, keyboard shortcuts added
* qmidiarp_*.ts: translations updated, obsoletes left atm
2009-08-29 Frank Kober <goemusic@yahoo.fr>
* gui.* removed
* mainwindow.cpp, mainwindow.h: created, containing MainWindow
class, all Gui elements moved to MainWindow
2009-08-25 Frank Kober <goemusic@yahoo.fr>
* midiarp.cpp: Queue start with empty pattern fixed
2009-08-25 Frank Kober <goemusic@yahoo.fr>
* gui.cpp, main.h: automatic filename extension added
* gui.*, main.cpp: save and save As support added
* gui.cpp: qt4 port error in removeArp(int index) hopefully fixed
(affecting load() when one of the three settings tabs was active)
* gui.cpp, main.cpp: buttonBox toolbar gets attached to top widget
* seqdriver.cpp: fixed FootSwitch event that still got copied to unmatched
* passwidget.cpp: port numbers really starting at 1 now
* known issue: Queue start when pattern empty but arp present
2009-08-23 Frank Kober <goemusic@yahoo.fr>
* qmidiarp_fr.ts: French translation updated
* slider.*, groovewidget.*, arpwidget.h: Sliders improved (idea: gscholz)
* arpwidget.cpp: random box again visible, toggle button removed
* qmidiarp2.xpm: adjusted image position in pixmap
* arpwidget.cpp: in/out boxes Layout improved
* arpwidget.cpp, seqdriver.cpp: Channel and Port numbers
starting from 1 instead of 0
2009-08-22 Guido Scholz <guido.scholz@bayernline.de>
* arpdata.cpp arpscreen.* gui.* midiarp.* seqdriver.*: Some
cleanups, improved string parameter handling
* arpwidget.cpp: Adjust size of Input/Output boxes
2009-08-16 Frank Kober <goemusic@yahoo.fr>
* qmidiarp_fr.ts: French translation added
2009-08-16 Guido Scholz <guido.scholz@bayernline.de>
* arpwidget.cpp: Keyboard shortcuts added for some widgets,
fixed layout bug, texts made translatable
* arpscreen.cpp: Obsolete pen.setColor() calls removed, unused C
header files removed.
* groovewidget.cpp, logwidget.cpp, passwidget.cpp: Keyboard
shortcuts added, layout improved, label text made translatable
* main.cpp: Support for Qt library message translation added
* configure.ac, main.cpp, src/translations/*.ts: Support for
application message translation added, German translation added
2009-08-15 Frank Kober <goemusic@yahoo.fr>
* arpscreen.cpp: fixed fall through in switch and unfinished "."
interpretation, removed resizeEvent(), set font at beginning of
the drawEvent routine
* gui.cpp, seqdriver.cpp: fixed queue start issue when no arp is
present, the queue is now off on program startup and has to be
enabled manually after addArp or load
* passwidget.cpp: fixed yet another logic problem with enabling
MIDI clock
* seqdriver.cpp: take into account MIDI clock for ArpScreen
follower line
2009-08-13 Guido Scholz <guido.scholz@bayernline.de>
* package: cleanups, use .qmidiarprc instead of .qmarc
2009-08-13 Frank Kober <goemusic@yahoo.fr>
* package: use xpm icons instead, which are part of sources now and
EXTRA_DIST
2009-08-08 Frank Kober <goemusic@yahoo.fr>
* package: optimized layout, removed unnecessary QWidgets (gscholz)
* package: icons are now installed properly in
PREFIX/share/qmidiarp/pixmaps by using
a gcc ... -D option as defined in icons/Makefile.am
*
* arpwidget.cpp, gui.cpp: pattern preset structure is now saved
in a .qmarc file created in the user's home if non-existent.
* arpwidget.cpp: added 'removePattern' Toolbutton
* arpwidget.cpp, midiarp.cpp: the mute button is now working by
setting all note velocities = 0 when checked
* gui.h, main.cpp: use PACKAGE for version reporting
2009-08-02 Frank Kober <goemusic@yahoo.fr>
* seqdriver.cpp, arpscreen.cpp: a follower line now indicates the
queue position in the arpscreen pattern. The position is derived
from the current tick and the pattern length and unaware of the actual
output notes. Therefore the queue is restarted at every pattern change.
* arpwidget.cpp: a pattern preset structure is now in place in form
of a combobox. Pattern presets can be edited and stored to memory
(no diskwrite yet), pattern text is now hidden by default and
appears upon click of the new 'edit pattern' button
* arpwidget.cpp: further GUI refactoring:
qtoolbuttons/actions replace the qpushbuttons, added icons,
created a toolbar holding the main buttons and tempo spinner,
todo: install icons in PREFIX/share/qmidiarp,
added a mute checkbox (non-functional yet),
random settings are now hidden by default and appear upon press
of a toolbutton, inserted various stretches to eliminate fixed width
labels, shamefully added arpscreen to the pattern groupbox
2009-07-15 Frank Kober <goemusic@yahoo.fr>
* seqdriver.cpp: added support for damper footswitch to hold and buffer
incoming notes
* seqdriver.cpp: queue start is now back working
* gui.cpp: queue start button is grayed when midi clock use checked
2009-07-12 Frank Kober <goemusic@yahoo.fr>
* package: added autotools build environment, moved sources to the
src subdirectory, updated COPYING file and added two sentences to
the README, updated INSTALL file
Remaining issues:
Tempo needs to be the same as that of the midi clock master
Queue is not automatically started
Queue start button should be grayed when receiving MIDI clock start
2009-02-07 Frank Kober <goemusic@yahoo.fr>
* package: added a graphical representation of the pattern text
that is updated on every text change, included port counter in out
port names and renamed in port to "QMidiARP in", initial MIDI
real time clock start and stop support:
When MIDI clock is being checked, the queue is stopped and
started upon reception MIDI_START
Known issue: the queue is not started automatically. You need to
un/recheck 'start queue'
MIDI ticks per beat and MIDI Clock Mode can be selected from the
passWidget
Added a switchable filter for MIDI Clock events to the logWidget.
The logtext is now color
minor UI tweaks:
Tempo Spinner and Queue Start Button now in the top row of the
GUI, visible all the time
Fixed maximum size of the groove and pass widgets
2009-06-25 Frank Kober <goemusic@yahoo.fr>
* package: corrected disable/enable behaviour of rename button,
addArp and renameArp do now respect 'cancel' in name dialog
corrected: renaming of all tabs including the three 'system' tabs
was permitted
2009-06-24 Frank Kober <goemusic@yahoo.fr>
* package: ported from Qt3 to Qt4 library