Thu Dec 16 23:09:48 MET 1999
Ok, have done some experiments with xsoundtrack and a microphone.
Seems I've got something with this "oooooooo" and "aaaaaaaaaa" stuff.
I gonna kick some code for now. See if I was right or not.
The idea is to move from one wave form to the other one by a simple
vertical translation, you know, just as if you were mixing two
pictures, when you take for example 10% of the red of one and 90%
of the red of the other, then you take 50% each then 90% and 10%.
You have gone from one picture to the other one.
There, we have sounds, and in fact not exactly sounds but wave
forms (with control points let's say and sin-interpolation between
the control points). So the idea is the same.
Let's see if my "oooo" and 'aaaa" wave forms are ok, if I place my control
points where I have too. Woooo woooo woooo ! it's exciting !
Fri Dec 17 02:00:02 MET 1999
Well, works a bit. My wave forms are far from perfect, but we can listen
to some "ooo" "aaaa". I guess I should try a little more to get a satisfying
result. Let's bed ourself !

Sun Dec 19 21:05:41 MET 1999
Ok, let's kick an interface - X. I need this to work faster. Modify values
by hand then run the prog then load the file produced into xsoundtrack to
watch the wave form is too slow. Let's kick it !
Sun Dec 19 23:19:17 MET 1999
The interface is drawn. A very big window (1024x868) ! but I need it.
Now, I have to draw the wave stuff, and deal _all_ the events, which is
a big thing. Surely won't be over today, but let's kick it.
Mon Dec 20 02:30:33 MET 1999
Ok, interface begins to work. I can add/delete control points. What misses
is the pointer modification when I come onto a point, so I could better
check that case. And the drawing is not perfect, in the down I don't always
have the control point. Should check that later. Now, I should make button
stuff and file name stuff. I see that I don't have put a "quit" button !
Damned. Then, the funniest of it all, the player ! Wooo, I had lotsa bugs
for what I have. Really, interface coding is not so easy. Event with
Xsoundtrack I have some strange bugs (I've seen that those last days).
I should create a method to easy and fast code interfaces. I guess I would
have some success here and there ! with all those coders making so much bugs
in their interfaces. (Well, yes, they almost all use stuff like gtk, but roots
coders are still alive ! I am still alive !) Let's have some sleep now, am
a bit tired.

Mon Dec 20 20:26:30 MET 1999
Ok, let's continue this funny project. Today, I will have sound playable !
Mon Dec 20 21:57:00 MET 1999
Ok, works. Not perfect, far from that but it works. I will have to add some
cursors for the mouse, it's hard to change the wave forms, when I want to
just move a point I never click on it so I create a new one. With different
aspects of the mouse, things will be easier.
Mon Dec 20 22:40:15 MET 1999
Ok, I've got some cursors. Now, I should handle the buttons, add a "quit"
button, and a "reset" one for the wave forms. But first, I will display
the coordinates of the current point when in wave form window and in play
window. let's kick it !
Mon Dec 20 23:03:04 MET 1999
Ok, mouse coordinates shown. The code becomes very barbarian ! Now "quit"
and "reset".
Mon Dec 20 23:11:30 MET 1999
Buttons drawn. Now, handle them !
Mon Dec 20 23:56:01 MET 1999
Ok, buttons handled. Just have to do "load" and "save" functions, so deal
with file name field. So should make a file selector I guess (but I won't
and some popup windows to tell the user if success or not, but won't do
it either, fuck, it's not the purpose of the fun).
Anyway, I have a bad quality of sound, because it jumps for one position
to the other one with no continuity, making bad results, really. This
_must_ be better handled. Not so easy job but...
Tue Dec 21 00:18:45 MET 1999
Ok, had a little break, getting some food. I live in a building, 7th floor,
and in front of this building, there is a little house. A guy live their with
his dog. His dog is the master, so some troubles arise. But that's not the
point. Today, this afternoon, strange things happened. At one moment, I was
looking out through the window, and I saw a nice girl, very lovely, really,
waiting at the door. Then this guy arived, they talked a little, some tension
was there, for sure. Then they got in, if I remember well. After a while, the
girl was thrown out by the guy. She went to the bistrot near the corner of
the street, a little farther. I though it was over, but she came back. And
once again, was thrown away. Then she came back again. At one time, the guy
hurted her physically (do you like my syntax ? cool eh ? it's french syntax !).
It durated all the afternoon like that. I saw him bite her very hardly at one
time (I guess so because they have a barrier, we cannot see well the garden
even at 7th floor). Then I saw her go away. But as I was eating my chase-
sandwich right a few minutes ago, I saw a girl come back to the house ! I
did not recognize her, but she had something on her head because it's getting
really cold down here. But if it's was her, it's really really strange. Why the
fuck does she stay with this crazy guy ? (when you see how he handles his dog,
you can say he's crazy. Yesterday, the dog was wouafwouafing all the day !)
And me, a clean and normal guy, I have no girl at all. But this is another
problem. If I release this toy, I don't want people learning too much about me.
Sed must remain a concept, you know, in this post-modern area where nothing
has no value anymore, and self-called artists produce absolute shit, saying
it's art, I want participate ! I want to create concepts too ! Useless and
meaningless concepts. Why not, huh ? Post-modernism sucks... Let's finish
this, deal with text and load/save stuff.
Tue Dec 21 01:05:52 MET 1999
Ok, text areas handled, even if I should put a little vertical bar. I'll do
it now, but it will always be present.
Tue Dec 21 01:08:35 MET 1999
Ok, now let's finish it. load/save stuff. Easy. My code is ugly. All is in
screen.c. Very bad.
Tue Dec 21 01:42:14 MET 1999
Ok, it works fine. All is done ! Nope, I must deal with the sound continuity.
Hard hard hard. And there is a bug with the buttons, they don't draw the
same when pushed or not ! Damned...
Tue Dec 21 01:46:34 MET 1999
Ok, CapButt was the shit. CapRound rules ! Well, for sound continuity, my
brain gets tired. I gonna have some sleep for now. And anyway, I can experiment
now ! But let's have some sleep.

Tue Dec 21 23:13:37 MET 1999
Ok, let's put continuity in the sound. The idea will be that at time t the
mouse is at position (x,y) and that at time t+delta it will be at position
(x', y'), thus it's simple. I interpolate between the positions instead of
saying it's at position (x, y) for all the time in [t, t+delta[ (that's what
I currently do). The delta chosen will correspond to a buffer length of 512
samples, my unit. Ok, let's kick it.
Tue Dec 21 23:37:40 MET 1999
Woo ! Woo ! Woo ! It's simply perfect !!!!! Just had to play 2048 samples
instead of 512 and you hear an absolute continuity in the stuff ! Simply
perfect. Woo ! I must release this toy !
23:53 : played a little. A strange thing : when I play, I release the mouse
button then press it again very quickly after having release it, the new
press is not seen ! It is impossible, but true... why does it do that ?
Dunno...
23:57 : well, it's because of the init_sound, that I do at each click. I will
have to open sound when I get in the black zone, and close it when I'll get
out. So, to let it know to everyone, I'll add a small message saying when the
sound is opened/closed for the user to know that (he could want to open the
sound when not playing but being in the black zone it would not work) (but
how could he open the sound with another program while in the black zone ?)
(well, maybe with a shortcut, like alt+f1 or something) (let's do it)
00:34 : ok, done. Played a bit with it. Works fine now. Exactly what I though.
Maybe the button press is lost, the linux kernel never sees it because of the
init_sound code it has to deal with. What I should add is the possibility to
choose the number of octaves available (we have 4 for now). And the possibility
to choose the central frequency (for now 440 Hz). Well, let's keep some stuff
to do for tomorrow, nope !? I really like this program. Really. It's very cool
to use. I have something very close to a real instrument. I'm very proud of me,
really ! not a joke. Electro-acoustical music could be done with that. A thing
that miss is the possibility to save the work in a wav file. It would be very
great. But it would not be very intuitive to use, well I don't know, maybe
I should do that. But how ? When to create the file ? should I create it each
time I enter the play window ? Overwrite it when I come back a new time ? What
if I went out by mistake ? And if I don't overwrite it I must save the wav
header at some time, but when ? Or maybe save it at each close_sound and
open it again in append mode, yeah ! I think it's great like that. So now,
I could save the music I create. I should add stuff like sound envelop (you
know with a growing amplitude and this amplitude getting down with the time,
like a guitar string. But it's a hard job, nope ? I guess I should first
release the stuff as it is, then for a future version add this possibility.
It's a great program ! I am happy to have done it ! Yes ! In those times, those
terrible times, where everyone is gonna get mad because of a 1999 going to a
2000, a time where I begin to get depressed to see how people can be so stupid
just for preposterous numbers, it makes me fell a little happy to success in
coding. 4 steps to go where I am, that's good. Sure, that's not the perfect
interface, but it's not so bad. The biggest thing that is bad is the size of
it, 1024x868 is a little big, nope ? Well enough noise for today. Another
problem is the code organisation. Almost all is within screen.c, that's not
godd at all, even code dealing with waves, that should so be in waves.c. Bad
bad bad. Well, let's go to bed, little tired for now.

Thu Dec 23 14:28:26 MET 1999
Ok, let's start with the file messages.
15:26 : done. My code is so ugly, it fucks my head ! Really, I should one day
code something generic. Interface must be generic, and there I have to change
this and that here and there, it's not a good way of coding at all. There are
surely lotsa bugs now. Damned. Let's load at stratup time o.oa and a.oa.
15:29 : done. Simply add two lines. That's the speed I should have gone for
the previous stuff where I spent 1 hour ! I really have to seriously think of
having my own toolkit, really. I need it ! (Or use an already existing one like
gtk ? Isn't it lame ? Well, I dunno...) Let's now handle central frequency
choice and number of octave choice.
15:41 : add a little bug with button_release. I did not redraw the button
up when I was out of the button, thinking a previous pointer_motion did the
job. (If the button was up out of the button drawned, it meant that I received
a previous pointer_motion that took me out of the button drawned, so I
already had redrawn up the button, but in fact I can go out of the button and
in the same event move the pointer, so X only send a button_release, making the
economy of one pointer_motion event. Damned, I should be familiar with X and
pointers !)
16:06 : stuff drawn. Now, have to deal with it - interface point of view.
16:10 : done. Easy stuff. Now, deal with sound's side (and I'll have to check
if the values are ok or not, so a little bit interface code too, to put default
values if not correct).
16:23 : checks are done, now have to use the values in the sound module.
16:29 : ok, all done. Works fine. Begins to be a cool toy. Soon a release will
be possible ! (Well, because of collective hysteria dealing with numbers, you
know, 1999 and 2000, absurdites like that, I gonna stay home for some days, so
no release before next year. I hate to see people getting crazy for such absurd
things. It fills me with despair, I hate to own to the same species than so
crazy beings, so I prefer stay home for a little while. December the 31st, I
guess at one moment of the day I'll be listening to very loud and noisy music
not to hear the ambient madness. Fuck it up. Every year it's the same shit,
but this time, because of all those 9 getting to 0, they'll get much more mad.
Damned shit.)
23:01 : a little break. I played a little for some minutes there and I had
a little bug. I had a current pos, long double, and it grew up. At one time,
no more sound because of this value getting to high. Funny. Fixed. Let's dump
it to wave now, then I'll be over or almost with this ! First, the interface.
23:16 : interface almost drawn, just a little button to draw.
23:28 : ok, drawn, handled. Now, have to deal with the wav file. I gonna be
clean and create a new file ! wav.c ! woo ! woo ! woo !
00:49 : ok, works fine. The last oa date is 00:29, so I guess the last change
was at that time. That's cool ! I can release now. People will be able to
produce some crazy wavs. Damned, never though I would go so far. Well, I said
to me I would not go out, but maybe I will tomorrow to make a release. It is
a real cool program !

Tue Jan  4 15:56:38 MET 2000
Am at school to release a 1.0.1 version, without mixer stuff.
People really don't like the mixer to be set by other programs
than their own mixers. Ok, I'll get it for my next prods...

Fri Nov 17 13:00:30 CET 2000
At school again. Christian Klein (chris@schwer.bewaff.net)
wanted a grid in the black area. Well, not a bad idea,
though, much easier to play "melodies". But red/green sux,
so let it be darkgrey/white. Let's release now.
