473,699 Members | 2,734 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Aumplib beta 2: Open source C# audio conversion namespace

This is to announce the beta 2 release of Aumplib. After garnering
comments from this newsgroup, I have modified the code to use a more
standard style convention.

Aumplib is a C# namespace which is made up of a set of classes that
interface several prominent open source audio conversion projects via
DLL and P/Invoke: LAME (MP3 encoding), libsndfile (non-MP3 audio
conversion), and libmad (MP3 decoding; through madlldlib). Essentially,
Aumplib provides an OO wrapper to these libraries.

I am interested in any comments anyone would like to make on the code
(providing they are constructive). You can download the source at:

http://www.arbingersys.com/dnlds/aumplib-1.0b2.zip

(There's too many source files to try and paste into this message.) If
you wish to leave your comments or questions in my development forum you
may:

http://www.arbingersys.com/forums/viewforum.php?f=3

A short outline of how the namespace is arranged is below.

namespace Aumplib {

- class Aumpel
[Primary interface to other classes]

- class WrapLame
[Interfaces with LAME DLL, lame_enc.dll, for MP3 encoding]

- class WriteLame
[Uses WrapLame and overrides BinaryWriter for easier usage in C#]

- class WrapLibsndfile
[Interfaces with libsndfile.dll to convert between many non-MP3 audio
formats]

- class WrapMadlldlib
[Interfaces to madlldlib, a DLL for decoding MP3]

- class WrapMadnpsrv
[Uses named pipes to communicate to madlldlib for MP3 decoding]

}

Thanks, James
Nov 16 '05 #1
3 8783

<gi***@arbinger sysBADSPAMBOT.c om> wrote in message
news:uo******** ******@TK2MSFTN GP09.phx.gbl...
This is to announce the beta 2 release of Aumplib. After garnering
comments from this newsgroup, I have modified the code to use a more
standard style convention.

Aumplib is a C# namespace which is made up of a set of classes that
interface several prominent open source audio conversion projects via DLL
and P/Invoke: LAME (MP3 encoding), libsndfile (non-MP3 audio conversion),
and libmad (MP3 decoding; through madlldlib). Essentially, Aumplib
provides an OO wrapper to these libraries.

I am interested in any comments anyone would like to make on the code
(providing they are constructive). You can download the source at:

http://www.arbingersys.com/dnlds/aumplib-1.0b2.zip

(There's too many source files to try and paste into this message.) If you
wish to leave your comments or questions in my development forum you may:

http://www.arbingersys.com/forums/viewforum.php?f=3

A short outline of how the namespace is arranged is below.

namespace Aumplib {

- class Aumpel
[Primary interface to other classes]

- class WrapLame
[Interfaces with LAME DLL, lame_enc.dll, for MP3 encoding]

- class WriteLame
[Uses WrapLame and overrides BinaryWriter for easier usage in C#]

- class WrapLibsndfile
[Interfaces with libsndfile.dll to convert between many non-MP3 audio
formats]

- class WrapMadlldlib
[Interfaces to madlldlib, a DLL for decoding MP3]

- class WrapMadnpsrv
[Uses named pipes to communicate to madlldlib for MP3 decoding]

}
Only one gripe. On the whole, LameWrapper and LameWriter would be closer to
standard conventions, but this is a considerable improvement over the last
beta as far as naming conventions go(I still havn't had time to actually
test the functionality, ;).
Thanks, James

Nov 16 '05 #2
Daniel O'Connell [C# MVP] wrote:
Only one gripe. On the whole, LameWrapper and LameWriter would be closer to
standard conventions, but this is a considerable improvement over the last
beta as far as naming conventions go(I still havn't had time to actually
test the functionality, ;).


This is kind of aggravating, actually. I had searched Microsoft for
coding conventions, and came across the below link, which I consulted in
my "conventionaliz ing" of Aumplib:

http://msdn.microsoft.com/library/de...techniques.asp

It didn't really address object names--but I assumed incorrectly that it
was implied. (It had an ambiguously titled "Names" section.) I realize
now it was really only talking about routines. I went off the statement
"Use the verb-noun method for naming routines that perform some
operation on a given object, such as CalculateInvoic eTotal()". I took
this to also apply to objects, which is why I ended up with names like
"WrapLame". Then, of course, I found this, a more thorough and clear
paper, which says to use a "noun or noun phrase to name a class".

http://msdn.microsoft.com/library/de...guidelines.asp

What's aggravating is that I had wanted to use names styled as you
mention above for the objects. I guess I'll have to do some
search-and-replace and get it right in Beta 3.

James

Nov 16 '05 #3
gi***@arbingers ysBADSPAMBOT.co m wrote:
It didn't really address object names--but I assumed incorrectly that it
was implied. (It had an ambiguously titled "Names" section.) I realize
now it was really only talking about routines. I went off the statement
"Use the verb-noun method for naming routines that perform some
operation on a given object, such as CalculateInvoic eTotal()". I took
this to also apply to objects, which is why I ended up with names like
"WrapLame". Then, of course, I found this, a more thorough and clear
paper, which says to use a "noun or noun phrase to name a class".

http://msdn.microsoft.com/library/de...guidelines.asp
What's aggravating is that I had wanted to use names styled as you
mention above for the objects. I guess I'll have to do some
search-and-replace and get it right in Beta 3.


Per the above message, I have released Beta 3 (this was a quick one):

http://www.arbingersys.com/dnlds/Aumplib-1.0b3.zip

which entails the name fixes per the suggestions at the above link. A
quick summary of the changes:

- The namespace "Aumplib" is now "Arbingersys.Au dio.Aumplib"
- The classes are named using the "noun/noun phrase" approach.

Here is how it looks now:

namespace Arbingersys.Aud io.Aumplib {

- class Aumpel
[Primary interface to other classes]

- class LameWrapper
[Interfaces with LAME DLL, lame_enc.dll, for MP3 encoding]

- class LameWriter
[Uses LameWrapper and overrides BinaryWriter for easier usage in C#]

- class LibsndfileWrapp er
[Interfaces with libsndfile.dll to convert between many non-MP3 audio
formats]

- class MadlldlibWrappe r
[Interfaces to madlldlib, a DLL for decoding MP3]

- class MadnpsrvWrapper
[Uses named pipes to communicate to madlldlib for MP3 decoding]

}

Again, I am interested in any constructive comments or suggestions
anyone would like to make about the library; I'd like to tone up the
code where it needs it (if it needs it) before moving to any release
revision. Thanks,

James
Nov 16 '05 #4

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

0
1107
by: Bryan Weingarten | last post by:
py_mpgedit SDK 0.2 beta has been released ========================================= CHANGES * Added volume control * Fixed exception handling when not using callbacks DESCRIPTION
1
2176
by: Robert Hathaway | last post by:
COMP.OBJECT FAQ Version II Beta now Available http://www.objectfaq.com/oofaq2 ================================================== - Latest Important Information on Object Technology - What's New Page - What professionals *must keep up on* in rapidly changing environment - Available on Homepage, email notification on updates now available - Good Resource Site - Latest in Object Technology - Complete Coverage of Object Orientation - Up to...
14
3058
by: gilad | last post by:
Hi, I have just released the initial beta of a C# project called 'aumplib'. aumplib is a C# namespace which is made up of a set of classes that interface several prominent open source audio conversion projects via DLL and P/Invoke: LAME (MP3 encoding), libsndfile (non-MP3 audio conversion), and libmad (MP3 decoding; through madlldlib). Essentially, aumplib provides an OO wrapper to these libraries. I am interested in any comments anyone...
3
2458
by: Alan Dunne | last post by:
Two questions. The first and one more likely to be answered is Can you call/run a Windows executable file from within C++ source code? The executable itself runs in a DOS window and asks for user input, i.e. choose 1 to use an audio stream, 2 to read from a file, and 0 to exit. If 2 is selected a file name and path is required. I'd like to know if it is also possible to supply these parameters through the interface program as opposed to...
29
4215
by: Natan | last post by:
When you create and aspx page, this is generated by default: using System; using System.Collections; using System.Collections.Specialized; using System.Configuration; using System.Text; using System.Text.RegularExpressions; using System.Web; using System.Web.Caching;
3
1168
by: VB Programmer | last post by:
Do I need IIS installed before the beta 2 will work? I got (another) conversion issue... http://localhost/MyWebsite/ Errors 1 Conversion Issues - http://localhost/MyWebsite/: Unable to open the Web 'http://localhost/MyWebsite. Could not find a Web server at 'localhost' on port 80. Please check to make sure that the Web server name is valid and your proxy settings are set correctly. If you are sure that everything is correct, the Web...
0
2072
by: Marc G. Fournier | last post by:
After 4 weeks of work, involving alot of bug fixes, and documentation improvements, to the source tree, we have just released our 4th Beta of 8.0.0. Most of the items on Bruce's Open Items list have been completed, but we still have a half dozen or so Windows related items still open. For a complete list of changes/improvement since Beta 1 was released, please see: ftp://ftp.postgresql.org/pub/source/v8.0.0beta/ChangeLog-Beta3-to-Beta4
0
1213
by: Philippe Couillez | last post by:
Greetings, Our company, AVE Intervision, is looking for people across the world willing to participate in the beta testing of our application VCR (Virtual Class Room). VCR is a new concept of videoconferencing where people can communicate with bidirectional audio and video, but also accessing a chat (private or public
0
8612
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it. First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
0
9171
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
1
8905
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
0
8880
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
1
6532
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
4373
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
0
4625
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
3053
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
3
2008
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.