SDD Project Journal

15
SDD Project Journal Phase I........................................................................................................... 2 Term 1................................................ 2 14 th Feb..............................................2 25 th Feb..............................................2 4 th March.............................................2 10 th March............................................3 18 th March............................................3 26 th March............................................3 6 th April.............................................4 11 th April............................................4 20 th April............................................4 25 th April............................................4 Term 2................................................ 4 3 rd May...............................................4 7 th May...............................................5 10 th May..............................................5 15 th May..............................................5 16 th May..............................................5 Phase II.......................................................................................................... 6 26 th May..............................................6 6 th June..............................................6 13 th June.............................................6 16 th June.............................................6 22 nd June.............................................6 30 th June.............................................7 6 th July..............................................7 9 th July..............................................7 13 th July.............................................7 20 th July.............................................8 Term 3................................................ 8 23 rd July.............................................8 25 th July.............................................8 26 th July.............................................8 28 th July.............................................9 29 th July.............................................9 30 th July.............................................9 31 st August...........................................9 Lexicon.............................................. 10

description

SDD Project Journal

Transcript of SDD Project Journal

SDD Project JournalSDD Project Journal

2Phase I

2Term 1

214th Feb

225th Feb

24th March

310th March

318th March

326th March

46th April

411th April

420th April

425th April

4Term 2

43rd May

57th May

510th May

515th May

516th May

6Phase II

626th May

66th June

613th June

616th June

622nd June

730th June

76th July

79th July

713th July

820th July

8Term 3

823rd July

825th July

826th July

928th July

929th July

930th July

931st August

10Lexicon

Phase ITerm 114th Feb

Today handed in project proposal.

Basically, it is a program to database a large collection of MP3 files, and to locate these files, which are stored on a set of numbered back-up CDs (I have over 20 of these CDs and finding files is a pain, so this program will come in handy). Once in the database, the file information (which is stored in the ID3 tag) can be edited for single or multiple files. This lets the user keep information such as track number, title, artis, album and genre.

Also to be included is a front-end (interface) for an MP3-encoding program such as the freeware BladeENC. This ripping section of the program may also link up to the CDDB to download track names for CDs so as not to have to type them all out.

A simple MP3 player will also be included by using Windows Media Player OLE.

25th Feb

Have talked to Mr Lane about project, and am ready to begin. I will use Visual Basic. Today I found a freeware program with source code that is similar to the program I proposed, but it is much more complex. Anyway, looking through the code has given me some more ideas, and the code will be useful if I get stuck somewhere. The program can be found at http://home.ti.cz/~bghost. While looking around, I found a class module for feeding ID3 tags into text strings, which will make editing the tags very simple by including the module.

I have created some basic storyboards today, so I have a clear idea how many screens will be required.

4th March

The main menu screen design is done (not that I doubt it will be reworked at a later date). This week I plan to create the screen for the database, add automation from access for the DB and then to implement the ID3 class module, so tags can be edited. It will take all the periods at school to finish. Once this is done, next week I can put in search and sorting functions.

One problem: I planned to have it save changes to ID3 tags as soon as they are changed. But when files are on CD, this cant be done; so only files that havent been backed up can have edited tags. I also need to consider whether each back up CD will have its own database, which the main one reads through, or use one huge database, with a field for CD#.

10th March

Well, I didnt add automation to my DB, Ill get that done this week. But I did make a very basic MP3 player using Media Player OLE that reads and writes to ID3 tags.

Reading through the project summery paper we were handed, I realised I have jumped the gun a bit, also plan to work through the bullet points this week. That means identifying modules needed, algorithm approaches, structure charts etc.

They will be contained in separate documents. After they are done, Ill continue creating my interfaces and leave stubs for modules I need to come back to.

18th March

This week in class we began creating Gantt Charts using MS Project. Spent a while learning to use the program, but now all previous tasks are documented, and I have plans that will take me through to the end of the holidays. Must finish all project definition stuff this week, and have all interfaces done before end of term, with stubs for modules, so everything can be handed into Mr Lane for marking. Also, this week I have to send away a contract to America for a SDK to add CDDB links to my program. Once they receive my signature that my program will abide by some conditions they will issue me with a password so I can download the SDK.

Due to exam block, I have not made much progress the last two weeks, and probably wont in the next week either. But once exams are finished I will have 2 weeks to accomplish a lot before handing in at end of term.

Then, once holidays are on, I can start to get stuck into modules and begin to make progress on the actual program.

26th March

As I thought, exams have left no time to work on project. I did however, go back to the CDDB website (http://www.cddb.com/). CDDB is a database of CD titles and track names, for on-line retrieval, used in many MP3 rippers, players and devices (I saw an MP3 home stereo with a built-in modem for linking up to it). Last time I looked in the development page, it required me to print out a form, sign it and post to the US in order to obtain a password to receive the SDK. Now, it has the option for non-commercial users (me!!) to receive the SDK and all I had to do was read a licence agreement (which I did, the whole thing too stranger things have happened). So I can use the SDK, but I have to put a logo and note in my program to say Powered by Gracenote or some garbage, and mail the company a copy of my finished product AND tell them how many end-users and going to be logging into their site through my program. Is it just me or does a GPL seem much easier (now thats just idealism talking isnt it)

Anyway, the SDK is apparently a simple set of API calls so I should be able to work with it in VB fairly easily. Also I downloaded the BladeENC MP3 ripping program as a command-line program and as a DLL library, as well as the front-end for it called RazorBlade (source code and compiled). [note: need websites for blade and razor]

So, now I have all the code and SDKs I need, I have all the planning for the program almost done, and I have an idea how to start putting it together, I plan to have a good deal completed over the holidays. Before the end of term however, I still need to submit all Ive done to Mr Lane, so I need to make sure all interfaces are complete and stubbed. Shouldnt be a problem (but then again Ill see how I go).

Reading back over the journal, I havent really accomplished much yet, and have repeated myself, but at least I have a goal before the end of term.

6th April

No progress made this week.

11th April

End of Term 1. Have been given handout for marking guide of Phase I along with a due date (16th May). Most of the project definition has been done. Heres whats ready for the hand-in: Social and Ethical Report, Project Requirements Checklist, Project Statement and the Gantt chart is filled out. Over the holidays I will work on the IPO, storyboard and data flow diagrams.

20th April

The holidays have been busy, and I have had so much work for other subjects my project has been pushed aside. But next week I should have some more program layout done.

25th April

OK, basic screens are complete. You can click between screens, but everything is stubbed. I am working on the database in Access. Ill try having automation in before the project is handed in.

Term 23rd May

All documentation for Phase I is complete except the IPO and dataflow diagrams.

I am not going to make much more progress than is needed before the 16th, due to the large number of assessment tasks I have to deal with in the next 2 weeks.

7th May

Today Mr. Lane suggested producing a survey (similar to a D-Tech project) to find the needs of the average user. So tonight I created one, Ill hand it out in the next few days to kids in the class, and friends who use MP3 a lot.

10th May

This afternoon I helped Jasmine with some ideas for her project. It was useful as a way of checking that I had covered most parts required myself. I still need to extend on the needs of users, and the modular definition of the program. I think I will ask Mr Lane for some help with the dataflow diagrams on Monday if I dont get it over the weekend.

Also, I have 8 lots of survey results. They have been tabulated and added to the Phase I document. Mr Lane is going to show us how to put a table of contents in, which will clear that document up no end.

15th May

Phase I is almost complete. In tomorrows lesson I will add a few small touches, but all the documentation is complete. I havent created a data dictionary, as I really have no code or variable to put into the dictionary yet.

I am not really pleased with the actual progress of my program, but I do know where to go, and most of the code is fairly easy to work out using the books and sample code I have.

Some modular breakdowns and algorithm descriptions are not complete as I am not sure how I will implement some features.

Also, I havent included a structure diagram, only a dataflow diagram.

There are some discrepancies between my Gantt chart and my list of program requirements. This is due to many ideas I have had for the program that I wish to add, but am not sure if I will get around to. So if any reference is made to a program feature that isnt documented very well, it is really just something that I would include in future versions of the program if I had time. The main features are the database and the ripping front-end. The link to the CDDB should (hopefully) be feasible. But exporting play lists, generating HTML lists and creating layouts for burning CDs I doubt any of these features will make it.

16th May

Handed in Phase 1 for marking today

Phase II26th May

Had retreat this week, got nothing done.

6th June

Added the database link, as well as code to edit records and add new records. Took ages, figuring it all out from the MSDN Library. Also, I need to learn more about using ADO Data Controls (like I am to put the Access database in).

And the computer crashed after about 3 hours of work, so I had to re-do it all again. That made me really happy.

13th June

This week I made up the basic database for adding files into the ripping part of the program. I really need to find out how to select multiple files in a common dialog, because at the moment each has to be added separately and that really sucks. The command to run the DOS ripping program has been done, so, in its simplest function, the ripper works. Still, a lot of work (including the CDDB link) needs to be done.

16th June

I took my project home to work on, and it wont work on my computer, the ADO controls just wont work, and I cant seem to fix it. I think Ill have to re-write all the code back out (but at least I can add more internal documentation which I left out last time).

???Also got Phase 1 back this week... I was pretty pleased with results ;)

22nd June

I found a new flex-grid control with more power than the standard Microsoft one in visual basic, so Im using that for my database links now.

The database now adds, removes and edits records (but I need to make the editing work better). Saving records is much harder however. I tried a sub-function for mass-adding new records and one for mass-editing records that run on program exit, but I still dont know all the ADO commands. Ill work it out soon.

30th June

Double clicking on a record in the database now plays a song, and full media player controls allow control over playback.

Have also implemented the options form for ripping, so the user can choose bitrate, output folder, and other settings.

6th July

Massive computer surgery windows crashed totally and Ive had to reformat. Reinstalling everything is taking a few days, but luckily I have everything backed up for the project.

9th July

Computer is back online. In a newsagent today I found a CD/booklet pack with lots of controls and add-ons for VB. It had a newer version of the flex grid control Im using (VSgrid 7).

To complete this project before the due date, I have reorganised which features I want to have complete. This has been updated in the Gantt chart.

The database component now only adds/removes files, saves changes to the database and tags, edits records and tags, and has a built in MP3 player.

The ripper only creates files entered and produced the correct filenames and tags.

The CDDB component and advanced ripping options have been cut. Also, tracking back-up archives (CD-R) of files wont be implemented.

13th July

This week I have made huge progress but have not written in the journal.

Also, received e-mail from Mr Lane, regarding the due date of the project.

The new grid control I found has made editing records easier, as all you have to do now is click in a cell to edit it.

Adding multiple files from a common dialog now works too, although I had to modify a totally re-written control to make it work. This helps the database and ripper.

Removing records from the database has been tested, and a few bugs have been fixed.

Saving changes to the tags and database are two parts I have to work on. A single file will work, but multiples dont.

The grid control allows for automatic sorting, and the search within the database is working ok, but needs improving.

Also, added a little gadget that will make changing lots of records to the same text easier (for adding artist or album names). Basically, it is the same as the auto-complete feature in Internet Explorer that pulls up the URL to pages already accessed.

The in-built player uses a MS Media Player control, and plays, stops and pauses songs. I still have to create icons for these buttons.

So, besides saving changes, the database is almost done besides some polishing.

Next week, the ripper gets some work.

20th July

First part of this week I spent doing study and homework for other subjects.

Second part of this week, my computer required more surgery, and as of this moment, I do not have Visual Basic on my computer, so I cant do any more progress on my code.

So, I spent today starting some of the documentation needed for the phase 2 hand in. The Gantt chart is up-to-date. My on-line user manual is started, using MS HTML Help. Mr Lanes idea of a lexicon for the technical terms involved in my project has been made as part of the journal.

The file listing has been updated, and reformatted as Mr Lane wished.

Term 323rd July

As the school term resumes, my code is nearing completion. I have implemented another visual basic OCX control time for a browse folder dialog (for the rip options output directory). Also, I have included another function, which works with the VSflexgrid to output the contents of a grid into an html table and save it as a html file. This allows for it to be transferred, saved or printed, as the user wishes.

25th July

Today I wrote out all that still has to be done, and organised which tasks I will complete each day. Mainly all I have is documentation to produce along with improving my layout.

Also, my Gantt chart has been updated and re-adjusted so it correlates with my project.

26th July

For a test, I used the Visual Studio Package and Deployment wizard to make a test run compilation of my program. Things seemed to go OK and the program worked fine both during the install process as well as being run. However, I have not tested it on any computer but my own.

28th July

Tonight was spent creating the programs start screen image, putting the wallpaper onto the flex grids, finding and inserting icons for my pseudo-toolbars. Some re-designing of screen layouts followed, due to the graphics added.

29th July

Today was spent working on documentation, ensuring I have all parts at least attempted. Created a dataflow diagram using the shareware program WizFlow (obtained from Download.com). Some test data has also been produced, however I am not sure if it is correct.

30th July

Most everything is done. There are still errors in the code, in the 3 most important functions: saving tags, saving the database and ripping files. The problem with ripping files is that the external DOS program used to do it (BladeEnc) does not understand Windows long filenames (ones with spaces). I need to work out the correct method for returning DOS 8.3 paths and filenames (the ones filled with tills) from common dialogs. The user manual is also complete now, including screen shots.

31st August

Last night / this morning (its past midnight now) has seen great progress in my code. So many little bugs have been ironed out. ID3 tags now save correctly. Files are added to the database and read tags in correctly (there was a problem earlier where if the file had no tag, then any files inserted after it would not be read, but by adding a On Error Resume Next statement, it now just bypasses files without tags.). Most of all, the ripper is working.

There is a slight problem well ok, a problem that I have no time to fix, although I have some code that would probably fix it. Because the program doesnt know when the DOS window finishes, if you have mope than one file in the list to be ripped, then they will all try and rip simultaneously. I need to add a function that waits until the DOS window is finished before proceeding I have found one, but am not too sure how it works, so Im not adding it for now. There is another way around this, instead of opening a new window for each file, the command line argument lines up all the files to be ripped in one statement. That would probably need an array to work. But ripping one file at a time works (a bit slow, but the quality is great)

I have produced 2 install programs. One in the Microsoft Package and Deployment Wizard (19meg install files..?) and one using Spoon Installer (250k..?). There are problems with the database in both of these, so I recommend Mr Lane executes the program from the source code when testing, as I am not sure if either install package will work on a computer that is not my own not due to missing files but due to machine dependant database ODBC Data Sources.

My entire project is being burnt to a CD with several different folders. There will be a text file in the root directory explaining the contents of each.

Lexicon

ADO

A method of database access, which is utilised in VB6. More efficient and powerful than DAO or MSJet

Auto-complete

The way a text field will provide a shortcut to what has already been typed, based off the first few characters entered

CDDB

Compact Disc Database. An on-line database which stores track listings and other information about numerous audio CDs.

Flex Grid

The object, which displays the data in my program. It uses an ADO data object as its source, and reads in data from an external file, then saves it back to that file

ID3

Identification tag, which stores information about the MP3 file in the last 127 bytes of the file. Includes fields such as artist, album, title, genre, year and comment.

MP3

MPEG layer-3 format files. A media file which stores audio as compressed data, but at high quality. Very popular for playing songs through the computer, and now in cars, personal CD players etc.

Ripper

A program which takes a WAV (or audio CD track same type of data) and converts it into an MP3 file by compressing the data and ignoring a certain number of samples.

Visual Basic

A RAD programming environment, based on the BASIC language. Made by Microsoft, easy to pick up, yet able to harness most of the Windows environment.