vAGI and stuff

Joakim Hi all,

Just wanted to inform you that I'll be posting new builds of the Visual AGI Sound Editor regularly at the old Visual AGI beta site. I don't have the time to update the page, and absolutely not to package things nice and do the manuals at this time. So, please feel free to try the beta versions out and give me _shitloads_ with feedback on ALL bugs and features missing (I'll try to add the features missing in the beta_notes.txt, so look in that document first though)

Also, I happen to like .NET (Microsoft's new API) a lot. Therefore I've started a small project to create an "AGI.DLL" for all new .NET projects. The dll is supposed to feature all neccessary encoding and decoding of AGI resources, but right now it only does small parts of it. But check it out nevertheless, especially if you've never written any C# code before!

Both will be found at in the immediate future (tonight).

/ Joakim
sonneveld wow.. 4.5 megs.. I'll have to test this new version at uni!

Good work though.. I've managed to get it working on another system and I'll try it out for you.

- Nick
sonneveld Is there any chance of just getting a zip file with the .exe files and the .dll's? 4.5 megs is just a little big.

- Nick
Sami_Tervo pack vagi to cab. that should really reduce the size.
Brian_Provinciano Try building it as a static exe having all it's dependencies packed in. That way, any extra stuff from the DLLs will be discarded. Also, ditch the installation utility. I just want to extract the utility to a directory and run it--which especially makes sense since it's beta.

Considering AGI Studio is 550kb or so in it's zip, a sound editor probably shouldn't be 4.5mb :) hehe
sonneveld Well I think most of the room is taken up by the installation program.. that's why I suggested a zip file.

But that's besides the point.. I think we've exhausted the possibilities to do with the installation.. what does everybody think of the program itself?

- Nick
Joakim Hehe..

I totally agree with all of you that an installation package of 4,5MB is quite over the top, since the actual sound editor is 100kB unpacked. The problem is that;

1) Not everyone have the latest version of Microsoft Installer.

2) Not everyone have the latest MFC DLL files (7.0)

3) I would like it to work for all of you with a minimum of hassle.

Nevertheless, new updates of the editor as the work progresses will be posted without the full package, as you only need to update Microsoft Installer once.

Don't you all have T1's at home? ;)

/ Joakim
AGI1122 I haven't been able to try it... I have an impared browser and I can usually only download things that are up to maybe 1mb any higher and my download manager stuffs up by jumping in percentage even though it hasn't downloaded it. 4.2mb is just way to much for my browser :'( Some times I even have trouble downloading things that are less than a 1mb but that is when I get a slow connection. The only way I can usually download things larger than that is by someone e-mailing them to me or if I use and ftp program and download it directly from a server.
Joel Unfortunately, it still suffers from lack of documentation and intuitive interface. I can't really take the time to play with it for more than a few minutes, and I haven't figured out how to do anything yet. Unfortunately, that also means I can't comment on the program any more than that because I don't know any more than that.
Joakim
Joel wrote:

Unfortunately, it still suffers from lack of documentation and intuitive interface. I can't really take the time to play with it for more than a few minutes, and I haven't figured out how to do anything yet. Unfortunately, that also means I can't comment on the program any more than that because I don't know any more than that.


Documentation - won't be any. Not until a proper beta is released that is. This version is purely for the possibility for all AGI interested to influence the development in a good way. (let's call it a technology preview) As soon as all features are in place, I will write proper documentation.

Intuitive interface - ? It's as intuitive as any tracker application. (Buzz, FastTracker, ScreamTracker etc) If you aren't used to them, the following is neccessary information;

The keys "Z" to "M" and "Q" to "P" is used as a virtual keyboard. (imagine a piano laid out on the keys)
The key "." clears a row.
The left pane is called the "sequencer", where you put the order of the patterns to play.
The right pane is where you edit a pattern. Doubleclick a pattern in the sequencer to open it in the pattern editor. (or rightclick-Edit, or press enter)

That's about all you need to know to create a simple song. If you can't figure it out with the above information, this sound editor is not for you.

/ Joakim
Joel I am actually completely unfamiliar with tracker applications, but I'm starting to figure this thing out now.

It would be good if there were a way to remove notes in place (so that the notes following it don't move up, I mean). I also think it would be good if you could just do a right click menu or something, have an "Add note" option where you could then specify the note, the register, and the duration. That would greatly alleviate the kind of difficulty I was having learning how to use the program. I couldn't figure out how to add notes until you told me, and I only accidently figured out how to set the register. Right click menus to do that would also be good. Good user interfaces are visible. Now that I'm starting to get the idea with this thing, I'm starting to like it.

I'm having trouble with the player not going past note 15 or something. How do you get it to do that, or is that not implemented yet? I still don't completely get all the UI elements of the program, but I'm starting to understand.
Joel I don't seem to be able to import an AGI sound resource into the program, either. No matter what resource I use, I'm getting an illegal operation message and Windows shuts the program down. I was able to import sound resources while the program was inside the Visual AGI shell, so this is a recent problem only.
sonneveld I don't know if it's already been implemented.. but I think vAGI (and other external tools like picedit) should implement some mechanism for being called from AGI Studio.

You don't want vAGI to extract resources, that's agi studio's job.. so I thought maybe something along these lines for editing a sound from agi studio:

1) AGI Studio extracts file and saves it in windows\temp as snd1234.tmp
2) AGI Studio calls: "vagi -e c:\windows\temp\snd1234.tmp"
3) edit file and save again
4) here's where it get's hazy.. either agi studio interpreters a return code or checks to see if the temp file's modification date has changed

- Nick
Joakim
Joel wrote:

It would be good if there were a way to remove notes in place (so that the notes following it don't move up, I mean). I also think it would be good if you could just do a right click menu or something, have an "Add note" option where you could then specify the note, the register, and the duration. That would greatly alleviate the kind of difficulty I was having learning how to use the program. I couldn't figure out how to add notes until you told me, and I only accidently figured out how to set the register. Right click menus to do that would also be good. Good user interfaces are visible. Now that I'm starting to get the idea with this thing, I'm starting to like it.


The "right click"-method to add a note is an excellent idea. It will also be consistent with the "add pattern" in the sequencer pane. I will add that to the next beta version.


I'm having trouble with the player not going past note 15 or something. How do you get it to do that, or is that not implemented yet? I still don't completely get all the UI elements of the program, but I'm starting to understand.


I am not quite sure what you mean, so choose one of the following answers. ;)

1) A row consists of a note in the form "X-Y ZZ", where X is the note (C,D,etc), Y is the octave (0-9) and ZZ is the attenuation (0-15 where 15 is silent)

2) The default pattern (created in a new document) is only 15 rows long. Unfortunately I haven't done the properties-dialog of a pattern, so you cannot change the row count of a pattern afterwards. It will be added to the next beta. Right now, you have to create a new pattern and change the number of rows to your wanted count. (rightclick in the sequencer->Add pattern)

But, don't forget that the whole point of a tracker is to create small parts (patterns) with unique musical parts, and then organize them in the sequencer so that you do not have to rewrite them all the time.

I will try to create some sample music to include in the next release.

/ Joakim
Joakim
Joel wrote:

I don't seem to be able to import an AGI sound resource into the program, either. No matter what resource I use, I'm getting an illegal operation message and Windows shuts the program down. I was able to import sound resources while the program was inside the Visual AGI shell, so this is a recent problem only.


Could you please send me a copy of the resource you are trying to import, so that I can investigate it? I have no troubles importing resources at my computer. Send your resources to the e-mail address found in the beta_notes.txt !

Are you sure that you are using the File->Import function to import AGI resources?

I am aware that there are a lot of missing parts from the error handling in the file load operations. I will try to add more error checking and file validating in the next beta version....

/ Joakim
Joakim
Nick Sonneveld wrote:

I don't know if it's already been implemented.. but I think vAGI (and other external tools like picedit) should implement some mechanism for being called from AGI Studio.


Right now, the executable will take an argument, but only load a file in the ".vas" format. That is because the editor needs to store the resources in an internal format to be able to store additional information to help create resources. But, I will try to add some way to use a syntax similar to;

vagi_se -i <filename>

To specify that it should import an AGI resource.

/ Joakim
Joel It was more like the second option.

I'll try to explain this as well as I can. I did do the add pattern thing and I set the number of rows to I think 32, then I set up some notes to test it out and it wouldn't play past row 15 in the 32 row pattern. This happens regardless of whether I add the pattern at Voice0 - 0 in the left side table or Voice 0 - 16 or Voice1 - 0. There is a solid white bar just above the 16 in the left side table and that doesn't move, but I'm not completely sure what it's meaning is or if it's related. I'm also not completely sure what the meanings of those numbers in the left side table are. I assumed they were row counts, but I'm allowed to set a pattern beside the 32 in Voice 0 after setting the pattern beside the 16 in Voice 0 to a pattern with 64 rows.

I'm prettty sure that I was trying to load an AGI resource with the Import option, but I'll try to do it again, and if it doesn't work I'll send you one of the files I was trying to load.
Joel Correction: if I set the new pattern at Voice0 - 16, it never plays far enough into the resource to play the notes in the new pattern.
Joel Ok, I definitely did the File->Import option. What happens is that the left pane seems to load fine (whether it's finishing that job or not I don't know, but I can see numbers in the left pane), but the right pane never gets repainted before an error occurs. I'll send you the file I just tested a little later.
Joakim
Joel wrote:

Correction: if I set the new pattern at Voice0 - 16, it never plays far enough into the resource to play the notes in the new pattern.


Ok. Now I understand your problem. Guess I'll have to write some parts of the manual, at least the keyboard commands.. ;) (stupid of me)

The white bars in the sequencer represents the "play loop". The player will start from the first white bar and play to the second. You set the play position bars with the following keyboard shortcuts;

CTRL-B - sets the beginning of the song
CTRL-E - sets the end of the song

Happy hacking!

I will look into your import troubles and upload a new version of the sound editor today. As suggested by Brian, this beta version should link the DLL's statically. That way the zip file will be much smaller. Sorry for that!

/ Joakim
Joel Thanks, I got it to play more rows now.

I think that menu commands with the keyboard shortcuts for those commands listed with the menu item (as in the File and Edit menus) would reduce the need to write documentation at this point. The only real problems I'm having using this program are that I'm looking for some GUI way to do what I want to do and when I can't find that I really don't know where to go from there. If there were a "Set beginning of song here" and a "Set end of song here" type menu item then I probably would have been able to play around with the commands to see what they do and then figured it out. When the only way to do something is with keyboard shortcuts, it becomes a lot more difficult, because although I'm usually willing to click on things in a program just to see what they do, I'm much less willing to try random Ctrl+key combination to see if they do anything.

By the way, I also think the "Add Note" menu item I suggested earlier should probably be duplicated somewhere in the menu bar on the top with the context menu as just an additional way to do it.

Just curious: are there keyboard shortcuts for play, pause and stop?
Joakim
Joel wrote:

I think that menu commands with the keyboard shortcuts for those commands listed with the menu item (as in the File and Edit menus) would reduce the need to write documentation at this point.


I will add it to the next version!


The only real problems I'm having using this program are that I'm looking for some GUI way to do what I want to do and when I can't find that I really don't know where to go from there. If there were a "Set beginning of song here" and a "Set end of song here" type menu item then I probably would have been able to play around with the commands to see what they do and then figured it out. When the only way to do something is with keyboard shortcuts, it becomes a lot more difficult, because although I'm usually willing to click on things in a program just to see what they do, I'm much less willing to try random Ctrl+key combination to see if they do anything.


I absolutely see your point. The thing is that adding menus and shortcuts is something that I tend to do later in the project, together with the other cleanup that has to be done. In the first betas, I try to only add all functionality and a rough layout. That way, it is easier to do large rewrites of the code. I will try to add more menus as I release new beta versions.


Just curious: are there keyboard shortcuts for play, pause and stop?


See above. ;)

I have fixed a number of bugs concerning the file import and resource loading. Please try the new version and see if it works better now! (I will upload it later tonight)

/ Joakim
Joel Ok, just tried out the new version. The imports appear to work much better now (it doesn't crash). There is a minor bug where the scrollbar is not appearing for me in the left pane unless I use the keyboard to navigate downward. Once I get to the bottom of the visible window and press down again, then the scrollbar appears like it's supposed to.
AGI1122 Well now that the second beta is out I can try it. And I didn't need any of the dll's. It looks pretty good from what I have seen so far, but I think I will play around with it some more. :) Oh man I remember that example song... my dad used to play it on the piano a long time ago. :'(
Joakim
Joel wrote:

Ok, just tried out the new version. The imports appear to work much better now (it doesn't crash). There is a minor bug where the scrollbar is not appearing for me in the left pane unless I use the keyboard to navigate downward. Once I get to the bottom of the visible window and press down again, then the scrollbar appears like it's supposed to.


I love to hear that the import bug is gone. Don't ever try to write outside the bounds of an array, it's just plain stupid. ;)

About the scrollbar issue, if you mean that you start a new document and the scrollbar does not appear? In that case, it is by design. (no point in showing the scrollbar unless you need to)

But, have you found an issue where you have loaded/imported a song and it doesn't show the scrollbar even though there are data further down? In that case, could you describe how you get to that situation?

/ Joakim
Joel sorry, I meant the scrollbar thing was happening when I import a song with data further down. I didn't really do anything other than import the song (sound 30 from PQ1 - but it happens for any other, as well). The scrollbar just wasn't there. Also, the wheel on my mouse doesn't scroll the window when the scrollbar isn't there and it does scroll the window when the scrollbar appears. It appears to be an import issue only, because the scrollbar does appear if I import the song, save it as a .vas file, close the window (or the whole program), then open the .vas file. It's also not a sometimes bug. It happens every time I import a song with data that extends beyond the end of the screen. The scrollbar also appeared when I saved it as a .vas file, meaning that when I pressed enter in the save dialog box with the name that I wanted to save the file as, the scrollbar suddenly appeared.
Joakim
Joel wrote:

sorry, I meant the scrollbar thing was happening when I import a song with data further down. I didn't really do anything other than import the song (sound 30 from PQ1 - but it happens for any other, as well). The scrollbar just wasn't there. Also, the wheel on my mouse doesn't scroll the window when the scrollbar isn't there and it does scroll the window when the scrollbar appears. It appears to be an import issue only, because the scrollbar does appear if I import the song, save it as a .vas file, close the window (or the whole program), then open the .vas file. It's also not a sometimes bug. It happens every time I import a song with data that extends beyond the end of the screen. The scrollbar also appeared when I saved it as a .vas file, meaning that when I pressed enter in the save dialog box with the name that I wanted to save the file as, the scrollbar suddenly appeared.


Yup! You are correct again. It has been fixed, I will try to upload the new version today or tomorrow.

Anyone else found something strange? I actually found a bug in the export routine, it would make the songs play 10% faster than the original version. It's also already patched, so you do not have to report that one.

/ Joakim
sonneveld Still doesn't work under Windows 95 however. "A required DLL file, OLEACC.DLL was not found." :(

- Nick
Joakim
Nick Sonneveld wrote:

Still doesn't work under Windows 95 however. "A required DLL file, OLEACC.DLL was not found." :(

- Nick


I have actually investigated that one, and I have noticed that the new version of Visual C++ automatically adds functions for Active Accessibility (for people with disabilities). I have found that you can download Active Accessibility 1.3 for Windows 95 at Microsoft's homepage, but that's not actually the best way to solve the situation. (I see no point in adding accessibility functions anyway)

I will try to see if I can build a version without support for accessibility tonight!

/ Joakim