2
- I have started with some tries to make the midi work and due to the
3
success I have even made an object to manage the midi : midiOut
6
- Waking up at 7:00am, working from 8:20 to 11:20 and doing some fixes
7
at 14:20, I have been able to play a midi file through the /dev/sequencer
8
using the class midiOut and writing some new classes like : midfile
12
- Today I have made a midi mapper (object mapper) which read a map config file
13
and is used to support older synths without general midi compliance.
16
- I have made a window, with a KMenuBar, and a KSilder, which reads a mid file
17
and play it (using a fork)
20
- fork copy the memory and thus, I cannot tell the player to pause, I have read
21
much about the subject, and about threads
24
- I have made a small program to test the threads and forks, threads apparently
25
are faster, but it seems to have a problem with libqt or anyone, and I get
26
core dumpes what I run kmid even if I only link libpthread but don't use it.
27
So I've decided to make a fork, in the other way, I've learned to share memory
30
- Christian Esken has told me to use mediatool, but I don't have the
31
documentation, so I cannot continue work until I get it.
34
- Well, I'll continue even without the docs, and when I have them, I will
35
make the neccesary changes to the code. I have made a few details in windows
38
- Today I have made the Pause and Stop buttons work. Also, I have made the
39
slide bar move. And also, I have made a parser of the midi file, which tells
40
how long the song is, in seconds. If this was little, I have made the interface
41
between the ui and the player.
44
- The interface between the ui and the player doesn't work well, I have to
45
redesign it because it's difficult to be accurate writing the karaoke at the same that the note plays
48
- I have redesigned twice the interface between ui and player and it still
49
doesn't work well, the first method was creating a list of the karaoke events
50
and using a timer to process the next event at the right time, but that doesn't
51
work perfectly, because the text appears a moment after or before the note is
52
played. The second method is a while loop, which calls processEvents, but
53
that isn't a very good option, because, though text appears just at the same
54
time of the note is played, top tells me that kmid is consuming up to 98% of
55
CPU time, and I don't want to make such a monster.
58
- Another failed method, and another passed day
61
- Some small changes beautifying the monster to send it to Christian
64
- More debugging and no result. I have uploaded current version to arrakis for
68
- Eureka ! , at last, I have made the player and the ui run at the same time
69
with PERFECT syncronisation :-) (at 10:30 pm)
71
Friday,Saturday,Sunday 26,27,28-9-97
72
- I've been looking at the birds flying freely from tree to tree in all this
73
weekend, also, I've studied for the test drive.
76
- I have passed the exam and also, I have (almost) done the karaoke widget
77
and it works very well !
80
- The karaoke widget is finished, it also have a scrollbar to see all the
81
lyrics. By the way, StarTrek : First Contact is a very recommended film
84
- I have fixed pause and stop, which were broken during the karaoke syncro
85
By the way, kmid consumes 0.0% CPU and 00:00 time while playing a 6 minute song
86
(and I think that even in longer songs !)
89
- I have started classes, so I think I will have less time :-(
92
- The player now recognizes the SETPOS message, but the ui is not syncronized
96
- S. R. has "show"ed me the way to initialize the menu, toolbar and client of a
97
KTopLevelWidget, without the need to resize the window.
100
- I have made that all time variables are expressed in milliseconds, so no
104
- I have programmed very little this week, but today I have kill a big bug,
105
now all the songs play well. Some songs were played with some parts faster and
106
some parts slower than they should (thanks to Christian Esken for reporting
110
- WOE, KDE-Beta-ONE is even better than before. But now kmid doesn't compile (?)
113
- After compiling the kde libs, kmid compiles ok. KSlider has changed and its
114
behaviour (Arrrgh!), so I have trickered a little the code.
117
- I have cleaned a little the code.
120
- I started to "rewrite" the track class to make the slider work well
123
- I have passed the day working in the time.
126
- Eureka !!!, KMid works great! with good timings and syncronization between
127
O ~ music and lyrics.
132
- After 10 hours in the university, I have made the final touches to send
133
kmid 0.1 to the internet.
136
- Finally, there's an impossible-better syncro between the program
137
and the user !!!. I mean, that when you press the pause button, the music
138
is inmediatly paused !!!
141
- So I suppose yesterday was Friday, but I should demostrate it :-)
142
I have added drag & drop support in kmid to load files by dropping them from kfm
143
Also made the slider show the time played at resizeable steps
146
- Today I have made possible to change the font and I have made an icon.
147
Prepare a version to upload tomorrow to the internet.
150
- I have nearly rewritten (made lots of changes to) the lyrics display widget
151
Also fixed that old "bug" that let in black the last word of a phrase in some
155
- Automatic text event chooser is done !
156
- Fixed a bug that could freeze kmid under very rare circunstances.
157
- Added more support for incomplete/broken files
160
- I have changed the exit-behaviour for a messagebox-behaviour
161
- Fixed a bug that could leave the children running when closing kmid
164
- KMid adds a mime entry for karaoke files in audio/x-karaoke
165
- Real Session Management.
166
- Made the first rpm of kmid.
169
- Release version 0.3 in tgz and rpm
172
- I've been quite busy this week, but I have had reports and patches :-) on
173
how to make kmid to work with an AWE, a GUS, and in FreeBSD :-))))
176
- I have fixed a small bug with which the time that a song longs was not well
178
- Also a tiny bug in consolekmid
181
- I've made the first feature that I've been asked for. Another thing to map
182
with the midi mapper for Dietmar's PSR500
185
- Nearly done the map chooser so that there will no be needed to edit the kmidrc
187
Now when you choose a new map or change GM/MT32 mode, the music is automatically
188
changed while playing !.
191
- I have been the rest of the month implementing a midi server that I will
192
call KMidServer and that will provide any application with easy control over
196
- KMid now can play gzipped midi files just as any other normal file.
199
- I have improved the midi mapper by allowing to factor the pitch bender.
200
Now pitch benders works OK !! (at last I have improved the windows mapper :-)
201
I have also added support to convert expression events to volume events.
202
* I have been doing the kfourier this month and studying (little time to do more)
206
- After doing my first exam this year, I have decided to calm things a little
207
by programming something. I have made the options added to the mapper available
208
through the config map file.
211
- 2nd exam done and a bug that I introduced last thrusday fixed.
214
- I've finished exams, have installed the yesterday snapshots and have
215
updated the configure scripts to add rpath and all that stuff to my copy
216
of kmid (thanks to Kulow, who added it to kmid in kdemultimedia)
219
- Fixed the not-a-feature problem with FM, next time I will not let the
220
option for the user to select something that doesn't work.
221
Final touches to release kmid 0.41 tomorrow morning.
224
- I've started working on FM support (and it goes very fast)
227
- fm already works, but notes are shifted to a higher key !!!
228
Also pitch bender seems not to be accurate.
231
- pitch bender is now fixed, and also the shift of notes, now the problem
232
is that some notes are lost (always from the same track/channel/patch?!?!)
235
- The problem with the lost notes is fixed :-/, the problem was that some
236
notes are played through the left speaker and some thru the right speaker,
237
and my wires for the right speaker were broken, but it wasn't noted with
238
the surround activated :-))))))) (Sometimes I feel real shame). Three days
242
- I've gone to the country and I've done the internals of the playlists in a
243
486/50 without linux, so I'll compile the Monday.
246
- Some test with multiple toolbars.
249
- Started to do the collections manager dialog
252
- The collections manager dialog is done.
255
- KKeyConfig is a really good class, easy to use to make the karaoke scroll
256
when arrow keys are pressed.
259
- I've done the playlist hardest part, now it works and there's only left
260
some final touches to do
263
- Playlists are finally working ok.
266
- Fixed the session management (in fact, I've changed it a little to support
270
- Fixed some small bugs.
273
- I have replaced my new Makefiles.am (just two days old) with the one
274
of Stephan Kulow which look much better.
277
- Finished deleting printf's to upload kmid tomorrow :-)
280
- Upload it, but as I forgot to delete some printf messages :-( , I had
281
to quickly do a fix and send also 0.5.1
284
- I've passed many days configuring the modem, the internet connection,
285
sendmail, kppp, cvs and all those programs :-)
288
- I've implemented the save-Lyrics feature that Adrian Knoth suggested (thanks!)
291
- I've done some changes to support the new KFileDialog and the new
292
changes in kdelibs done by Matthias.
298
- I've found and fixed a memory leakage bug, I forgot to delete the
299
SpecialEvents from each song, so kmid was using more and more memory with
303
- Aaaargh !, I have to remove the changes that I did last tuesday because it
304
seems that the changes in the kdelibs have been removed.
307
- Added support for midi files with strange headers not related to midi files.
308
(suggested by Adrian Knoth, thanks !)
311
- At last, I have had some free time and have done some things:
312
1. Finally fixed the synchronization between gui and player (hopefully forever)
313
2. Fixed a problem openning a gzipped file with spaces in its name
314
3. Fixed a bug which caused kmid to freeze if collection has only 1 song, and
315
trying to play next song in aleatory mode.
316
4. Fixed the problem which made some songs to play at a lower volume when
317
moving the slider, but no if playing from the beginning
318
That's all for now :-) , there have been so many changes that I've call
322
- Released version 0.6 to update my homepage which was getting very outdated
325
- After fixing my midi cable, I've noticed that fm is (as Gyula Kerekes
326
reported), playing in mono, and I've fixed it.
329
- I've fixed a small bug with which midi files without text events (nor lyrics)
330
got the time slider very desynchronized after pausing for a long time.
333
- Applied a patch submitted by Kevin Street, to compile kmid on FreeBSD 3.0
334
systems with awe support (directory settings has changed since 2.2)
337
- I'm on exams, but just to relax a few minutes I've been hunting for bugs :-)
340
- Wow, KDE-1.0 is finally here, and it is REAL, so I will prepare very quickly
341
KMid 1.0 before the freeze of kdemultimedia.
344
- Just finished exams :-), and I've implemented the (long awaited feature of a)
348
- I'm doing a channel view in which you can see the keys being pressed
349
and released, it's very nice :-)
352
- Using the (still hot) shutDown signal (the most awaited thing for
356
- I've restructured the Channel view, it's much nicer and allows for easier
357
expansion. It also shows the used instrument
360
- Wow, I haven't updated this file for so long ...
361
I've finished the changing instrument feature and so the channel view.
362
I've also improved speed a little by supressing some parses to the midi file.
363
I have improved consolekmid, now it is much more usuable.
364
Finally, I've changed the sources to use the KAccel class.
367
- I've fixed some bugs, the most important one being that kmid left its player
368
processes as zombies after stopping playing (it worked ok, but now it doesn't,
369
dunno why). That problem made to appear some weird dialogs telling "song is already
370
playing" at each moment
371
- I left a color hardcoded in button*.xpm when it should be Transparent (not
372
everybody has a window background color of #5D5D8F8FA0A0 :-) )
373
- I created a Motif 1.0 combo box in the channelview, but it should be Motif 2.0
374
because 1.0 has a "feature" for large como boxes (as this one)
378
- Fixed the last bug for leaving zombies around.
381
- Released Version 1.2
384
- Added the change tempo widget and the KTriangleButton widget
387
- It's possible now to change the tempo of a song.
390
- Fixed some problems
394
The long awaited fix has arrived for songs keeping playing after X11' logout
395
when channelview was actived.
396
Now also the ChannelView change its colors when the user change the
397
global colors, kdisptext paints a frame over the karaoke text,
398
KLCDNumber only accepts a range of values (from 3 to 999)
401
- Improved support for really broken files.
402
- Added some translations to Spanish
405
- I've started writing the internals of a rhythm view
408
- Now KMid shows a new widget to make easier follow the rhythm of songs.
409
I've also fixed a small bug by which the tempo (and rhythm) changed its
410
state before the event actually happening if you moved the timebar near
411
before the event time. The problem was caused by volatile shared variables.
414
- Fixed a serious bug I introduced in the previous commitment
417
- Fixed some problems
423
- I've finally fixed the bug that made kmid play music sometimes
424
faster and sometimes slower on some machines (i.e. mine, since I installed
426
This bug was there since the real beginning, and now, it is FIXED.
427
This deserves a new 2.0 version, probably next week.
430
- Fixed a broken link in the .kdelnk file (DocPath) and raised version
434
- Added new sgml documentation, updated up to KMid 1.6
437
- Fixed a shared memory leackage bug (hopefully the last bug in KMid :) ).
440
- Initial support for SoftOSS (this is making some sound now :))
441
- Indentified the player directory sources and beautified them a little
444
- Fixed a geometry layout bug
447
- Fixed a problem when [un]installing midi devices (not such a mad idea if you
448
use kernel modules) that made kmid segfault because it couldn't found
452
- Decode URL before showing it on the screen.
455
- Fixed a null pointer access while generating beats, because I didn't
456
checked for songs which didn't contain any spev (songs which use absolute 0 spev
457
are extremely rare to find, as any song must include at least a tempo event)
460
- Removed ; after QOBJECT and fixed default midi map in consolekmid (not kmid)
463
- Made a quick hack (no more than 15 lines) and kmid uses KIOJob to be
464
net transparent (now it can download files using an http or ftp protocol just
465
using dnd from a kfm window or using the open file dialog)
468
- The sound driver in Linux kernels from the 2.2.x series work very different
469
than the ones in 2.0.x so kmid was severely damaged. After several days of
470
hacking (and after getting from A.Cox that this wasn't going to be fixed in the
471
kernel) I've found a fix that even works in the 2.0.x kernels.
474
- Fixed the high pitch of AWE cards (thanks to Joseph H. Buehler and Takashi Iwai for
476
- Raised version number to 1.7
479
- Did a workaround for a bug in egcs which doesn't seem to optimize simple
480
return-a-value function as an inline function when using -O2 and it made kmid
481
freeze under certain conditions when parsing some midi files.
483
- Removed a comparison of double variables which is very dangerous (_even_ after
484
storing in one of them the value of the other one)
485
- Fixed a problem by which kmid didn't play the last half second or so of some songs.
488
- Fixed a problem that made Kmid consume 99% of CPU since a month ago. Now it's back
489
to the usual 0.00% of CPU use :-)
492
- Fixed a bug that made KMid freeze when trying to open a directory
495
- Better support for broken karaoke files which has duplicated lyrics
498
- Fixed a problem with corrupt files that suddenly doesn't work (but KMid
499
from the 1.1 branch works ok (?) ). Anyway, I've got it to work even
500
better with broken files
501
- Fixed the KLed usage, which was broken since the KLedLamp -> KLed transition.
502
- Fixed a repaint bug with the time tags that has been here for too long.
505
- Instead of using manual layout, let's use QLayouts (there are still some
507
- Added xdnd support (finally !)
510
- Changed a lot of code to look much better
511
- Fixed many problems when painting lyrics in different colors
514
- The lyrics display doesn't flicker anymore (finally :-) )
515
- Reworked the scrolling code, it's smooth now instead of line-by-line (but also
516
makes consumes a bit of CPU, so I'll make it configurable for people who don't
517
want to waste resources)
518
- note: don't call resizeContents from drawContents, or you'll have some
519
problems (QScrollView bug ?, anyway, this note should be on the docs)
522
- SoftOSS is working now !
523
- Added LOTS of documentation to the MIDI library. Anyway, there's a lot more
525
- Also fixed a few problems in the lyrics display, and added a new option
529
- Ported KMid to use the "official" LibKMid and KXMLGUI, with the following
532
Before: 769 1450 24820 kmidframe.cpp
533
After : 622 1171 19045 kmidframe.cpp
536
- Added ALSA support to libkmid
539
- I'm making KMid a part
541
It took me : exactly 13 minutes to port the app
542
30 seconds to do /LD/LIB/ in Makefile.am
543
5:14 to compile it and see that kbrowser.h doesn't exist now :(
546
- Now libkmid does build and run on systems where OSS is not installed.
547
- Updated the code to simplify it a bit due to libkmid changes.
548
- I still have to search for a bug that makes KMid (and the part!) to crash
549
when destroying KDisplayText (the curious thing is that it crashes on
553
- Now Libkmid links with kdecore and qt in order to use a KConfig object to
554
read the default settings as saved by the user with the midi kcontrol module.
555
- It creates a "dummy" KInstance in case of the application being a non-KDE
557
- Fixed compilation of KMid, as 1) someone renamed klinedit.h to klineedit.h
558
and 2) now we have to include qiconset.h when creating an action with pictures
560
- Now I just have to find why KMid doesn't show any interface except the
564
- Hmm, it's been a long time since I don't update this file. In summer
565
I've fixed ALSA support and many related bugs.
566
- Today, I've finally added the accelerators.
567
- Raised version to 2.0