![[ Main ]](images/bn_main.gif)

![[ Screenshots ]](images/bn_screenshots.gif)
|
|
25-Jul-1999 (FR)
| |
Remodelled the buffersystem to use semaphores. It's just the functions for buffer maintenance that make use of it tonight. Had some minor problems but they were mostly typos.
|
|
|
24-Jul-1999 (FR)
| |
I read about Semaphores today and began adding Semaphore checks to most functions. For those of you not knowing what a Semaphore is it's like a key to some information. The task that demands access must wait for his turn untill the data is not accessed by others. He then has his semaphore (key) and noone but he may touch the data. There are also shared semaphores which let other to get shared access.
Anyways... the semaphoring is needed for the fact that SoundFactory is soon to be multithreaded and several tasks will be accessing the same data simultaneously and therefor this kind of semaphoring is needed.
|
|
|
22-Jul-1999 (FR)
| |
I got myself to work with Sound Factory. It has probably something to do with the press releases from Amiga Int...
I fixed a bug which Björn mentioned. When the user select something and then Cuts the two gadgets with the Range From and Range To wasn't updated.
I also scrapped the AHI player... if noone is gonna help me with AHI I won't use it. It shouldn't be so hard to implement a simple soundplayer.
I made another (I haven't told you about the first one... trust me... this the second) draft concerning the interface with external modules. You can read it here if you find it interesing and maybe want to comment. Nothing is final here...
|
|
|
11-Apr-1999 (FR)
| |
I finished the CDBE-routines mentioned earlier. It should now be able to do it all. Well.. almost finished. Multiuser-access could lead to a race as there are no locking of the linked lists. Also it will probably get implemented as a library. Anyways when I get to it next time I feel that the main kernel (sounds cool, ehh?) of SoundFactory needs some attention.
|
|
|
19-Mar-1999 (FR)
| |
After some time of not working on SoundFactory (I have started to educate myself and that takes a lot of my time. I'm exhausted when I get home) I finaly got myself to code a bit. I started on some of the core functions in SoundFactory. A way of working with data larger than the physical RAM. Some might call it Virtual Memory... I don't. Caching disk-based editing is closer to what it is. That's one feature I don't like with the editors I've seen before. Either they can't handle data larger than free RAM or they rely on external virtual memory handlers (like SoundForge) which is totally wrong in this case. My method is rather simple and therefor hopefully quite fast.
|
|
|
26-Feb-1999 (FR)
| |
I noticed that I pushed a LOT to the stack. Storm has a default-stack when running the programs of 30k. And when I got some mysterious errors I checked the function last edited. Found nothing strange and then suspected the stack. Hey I was defining large arrays and structs that was put on the stack. After making a lot of it static and dynamicaly allocated the stack usage was down but to increase the executable filesize a few Ks.
|
|
|
28-Feb-1999 (FR)
| |
It has taken some time to redesign the page (again). This time from scratch and using the wonderful HSC. I wasn't satisfied with the old one but this design I'm quite pleased with. I fixed a bug in the samplelayout function. I just moved the multiplies in front of the divisions. a/b*c is not the same as c*a/b when working with integers. By moving it around it worked just fine with 64 channels. I got so exited about it that I grabbed it (with some effort) and you can peek at how it looks like working with 64 channels on the
Screenshots page.
I also added menus to the most of the windows (aren't many) so that the
user may be able to access the most fundamental functions (Load, Save,
Quit, etc.) at all times.
One thing that also found it's way was two neat gadgets which shows the
range's start and end positions. They are integer-gadgets and allows the
user to alter the range by typing the position.
|
|
|
18-Feb-1999 (FR)
| |
I toyed with AHI today. Minor problems. Soon SoundFactory is loud and
clear. I also peeked on BOOPSI. Stunning! I'm actually considering to do
the whole GUI in BOOPSI. But that may be a little too far outside of my
knowledgeframe right now. It's needed though to make imagebuttons. Anyway.
First things first. I've come to a point where there are not so much left
on the main module (command module?). A few editthings. A way to select
fileformat and some generic menubuilding functions and it should be time to
hack on an API for external modules and start poking the effects etc.
|
|
|
15-Feb-1999 (FR)
|
After a couple of days fighting with GadTools about several things in the
GUI for the RAW-file loader. You who are reading
comp.sys.amiga.programmer have
probably read about my problems. Anyway. After some time I got it right and
then coded the acutal loader. It loads and converts on the fly. You can let
it convert to another samplesize while loading so that you f.ex. directly
can edit it in 16-bit although it was 8-bit on disk. As (some of) you can
see on the picture here I've also added 'Pitch' to the bufferproperties.
This to allow regeneration (with our software synthesizer) in different
samplerates but keeping the pitch. 8SVX also supports pitch (In samples per
cycle).
You may wonder why we've decided to make the GUI with GadTools. Two
reasons: Speed and Simplicity (for the user that is). It's ment to be hard
on the programmer to make it easy for the user. That's the way life goes...
unless you cheat with MUI, ClassAct etc. One question. How large percentage
of your windows need to be scalabe? Very few (listviews are often nice to
scale).
|
|
|
12-Feb-1999 (FR)
| |
After copying and modyfying the 8SVX Saver to a AIFF Saver (the formats are
somewhat similar) I discovered a way to increase loading and saving speed
with Audio IFF files. When there are just one channel the data is loaded in
one big chunk. Nice, Bice! =).
|
|
|
11-Feb-1999 (FR)
| |
I finally got the Network Interface Card I'd ordered. I had some troubles
mounting it in my amiga as I've put my A1200 motherboard into a tower and
the PCMCIA-card didn't have room enough to fit I had to unmount my
motherboard and put it on the floor to make it all patch together. After
some hysterical reactions from my mom (it's a kinda horrifying sight for a
mom to see her sons motherboard all ripped out ;-) ) I got it all working
very nicely, though. I also compiled the latest GLib and GTK on my
Linux-box to be able to run the latest x11amp. I also discovered
ShoutCast and made a
script to play live mp3 radio of the net using
HTTPResume and
mpega
(mpega.library).
You should try it ;-).
| |
I coded an IFF 8SVX saver today and it worked like a charm. It also
converts other samplesizes to 8-bit on the fly (poor fly), if needed. Not
much too it. I forgot to mention it earlier but I've now implemented a few
fields in the bufferinfo. Name, Author, Copyright and Annotation. They are
all just strings which are saved along with the files. When AudioIFF Save,
RAW Load/Save is implemented I want to implement Play so I can be able to
listen to the sounds we make.
|
|
|
10-Feb-1999 (FR)
| |
By chaning one single line in the sources and renaming a few files the
temporary name SoundScape is from now on changed to SoundFactory. We have
searched for a better name for quite some time now and it will take some
time to get used to the new name. Anyways... I modified the Audio IFF
loader a bit and implemented a generic IFF loader which then calls upon the
corresponding function when the type has been determined (Audio IFF, 8SVX
etc). I haven't implemented it yet but the IFF can hold several
"files" (actually FORMs) in one file. In the future a file will
be able to contain f.ex. 5 different sounds and will be loaded as they were
separate files (but with the same filename). Also IFF 8SVX has some support
for several octaves. They will also be loaded as separate files. After
implementing RIFF WAVE (*.wav in Microsoft OSes) I wonder if there are more
formats worth supporting. A few external import-modules will be made for
Trackermodules (Sound-/Noise-/ProTracker, OctaMED (MMD*) and probably MPEG
Audio via mpega.library by Stephane Tavenard. Hmm... will probably be
usefull with some possibility to save too =).
|
|
|
09-Feb-1999 (FR)
| |
After a few days of "vacation" from SoundFactory I started coding a memcopy
function which all other functions needing to copy data from one buffer to
another will use. It copes with multiple channels too. It also copes with
different samplesizes (8, 16 & 32 bits) and number of channels. This
function is now used in Cut, Copy and Paste and worked from the first try
and on. I also updated the viewer to Björn's requests. When there are less
samples than pixels across the window two options are now available. 1.
Draw lines between the points and therefor make it look very smooth, 2.
Draw horisontal lines making the sound look "stairstepped". Both options
have their advantages and disadvantages.
|
|
|
06-Feb-1999 (FR)
|
19:45
I have now adapted the sampleviewer and range to work with multiple
channels. However the cut, copy and paste functions got too messed up when
trying to adapt them so they don't copy the data correct. As my brain now
is overloaded I need a pause and will continue later.
|
16:50
Weeeeeeeee! I nailed the bug mentioned before. I accidently skipped every
second byte in memory when loading. Boy, I'm glad! =)
|
|
|
05-Feb-1999 (FR)
| |
Spent half the day (the later half) trying to track down the bug which
comes up when files with several channels are loaded. No luck. Will have to
dig some more tomorrow. I'm really tired! My folks are awakening me too
early (==noon).
|
|
|
04-Feb-1999 (FR)
| |
With the clipboard now almost functional (doesn't convert from different
samplesizes (8, 16, 24 & 32 bits) yet) I started poking around with the
fileloader. It now recognises Audio IFF. However this gave some peculiar
results in the sampleviewer. It worked just fine with both 8-bit and 16-bit
data... but when I slammed in a stereo-file it only showed half the file on
screen =(. I once found it great to interleave the channels. Now I'm
sceptic. In files it's however nice. I'll make it store the channels
separatly in memory.
|
|
|
03-Feb-1999 (FR)
| |
Added copy and paste (is just about to test it...) aswell as a clipboard
(the Cut just deleted the data before). Forgot to mention it yesterday that
Björn gave me a hint that he wanted to be able to save the entire
"desktop" (in the lack of a better word... worktop?) into one file. During
the day (I work at nights =) ) I dug into the IFF specs. and found that IFF
CAT is just what he wanted and allows to have several chunks of data into a
single file. He thought he wanted to be able to save in OctaMed format...
HA! Think again! =). A possibility to export to MMD1 will probably be made
though.
|
|
|
02-Feb-1999 (FR)
| |
The 18-Jan-1999 I actually started coding this baby and uptil now the
following has been done: Main shit (open screens, fonts etc), simple
fileloading (just loads RAW 8-bit samples), some sort of buffer allocation
(keep lists of buffers in memory), pieces of the sample-editor (view, range
and cut currently implemented). Björn also told me today that he
already started writing the manual. I'm also translating the strings in
SoundFactory to swedish (which is my native language) as I insert them.
This will save me a lot of work later on as this program WILL be big when
ready (I hope anyways ;-) ).
|
|
|