What to study first to create a Chatroom? - programming-languages

What are some languages I should study to create a Chatroom?

The programming language doesn't matter; you can create a chatroom in any programming language. What you probably want to know about is the Extensible Messaging and Presence Protocol (XMPP), how t perform network communication in the language of your choice, and any libraries that might help such as libpurple if you want to integrate with any of the standard IM protocols.

IRC (Internet Relay Chat) is probably what you need.

Related

Which developer roles or titles are needed to build a software DAW?

So far, I've used many different Audio Production software on Mac and Windows platforms. Often times, I ponder on the idea of creating my own DAW, but I realize that would be an extremely difficult challenge for a single person to undertake (especially if only knowledgeable in one particular area / language of programming).
There's a flood of ideas / features that comes to my mind just by the thought of some of the other DAWs I've used. From implementing MIDI in/out, Audio Routing, Mix Buses, VST support, User Interface for a Piano Roll and Song view, etc...
So my question is...
Which roles would be required in a team of developers to create a complete Digital Audio Workstation (DAW) Software?
I think the right answer is several good developers (you don't need so many, perhaps 3) a good product manager, an ui designer/graphist a lot of testers. And a good coffee machine.
The real problem is what kind of DAW do you want, portable on mac and windows, which OSs, which formats (vst 2, 3, AU, RTAS, AAX, rack extension, DX), do you want only MIDI and adio tracks, which external MIDI devices you want to support, do you support OSC, other protocols?
What will be the features of you mixer, integrated effects? What support of audio API on windows (wasapi, asio ...) do you want some cloud feature ? community or online store integration?
What kind of breakthrough would you have compared to cubase, live, PT, DP, Logic, garage band, bitwig, studio one, sonar, fl studio ...? Do you want modular patches or just tracks? Will you have advanced integrated controls or midi modifiers?
All that is the problem...
This is a very complex question!

Is there a industry interface standard for TTS and ASR?

I am asked to develop a text-to-speech module in our product, which should support a variety of text-to-speech engines.
Is there a standard describes how to interface with third party TTS(text-to-speech) service or ASR(auto-speak-recognition) service?
Most ASR's use Media Resource Control Protocol (MRCP) as the standard for their interface. It can also be used for TTS.
it depends on what is your purpose or the field you would use ASR & TTS in.
you can use MRCP to control ASR, TTS media resources if you will use it in IVR (Interactive Voice Response) apps like call centers and so on, in this case you would interface your MRCP server with Voice Gateway like CISCO and VXML server.
a famous and common MRCP implementation is unimrcp , its a C implementation of the protocol , its a good and stable open source project.
but at end, it depends on your purpose as I said, you may never need to use MRCP, you can use your TTS engine as a stand alone server if it would work alone.
famous open source TTS engines are Mary TTS written in Java, Festival written in C++.
famous open source ASR engines are cmu Sphinx4 written in Java, Julius written in C.

Difference between SIP and H.323

What is the difference between SIP and H.323, I mean what are the salient features between them?
To start with ,
SIP is text based while H.323 is binary.
SIP is by IETF while H.323 by ITU.
SIP is basically request-response based like HTTP, while H.323 is not like that(is based on session).
What were the motivating factors which led to SIP's development?
How is one advantageous from other?
Both are relatively the same on the technical side - there are differences, but you can use both to run a VoIP service.
They both started at about the same time to develop, with H.323 gaining more traction in the beginning and SIP taking center stage in the past several years.
The main advantages of H.323 is the level of interoperability it provides in existing video conferencing equipment - something that can't be matched by SIP today (yet), and the fact that it holds most of the deployments of video conferencing in enterprises.
The main advantages of SIP is a larger ecosystem and dominance in voice calls and PBX systems. And the fact that it is viewed as the future of VoIP (at least to some extent).
I also wrote about it in the past in my company's blog: http://blog.radvision.com/voipsurvivor/2011/03/24/ask-an-expert-which-protocol-do-you-prefer-sip-or-h323/
H323 is familiar to telecommunications people. It reuses many concepts, terms and protocols from ISDN.
SIP is familiar to internet people. It's a lot like HTTP, re-uses all the response codes and standards like URI-s, uses the DNS well, etc.

voice encryption on fly in mobile phones

I want to encrypt voice calls on the fly. so which programming language should be preferred for symbian os. Are any API available for this purpose. which channel could be preferably used?
Have a look at http://www.developer.nokia.com/Community/Wiki/How_do_I_start_programming_for_Symbian_OS%3F about the different possibilities (programming language wise).
BTW: A good programmer can write faster code in Visual Basic than a bad programmer in Assembler.

What is the best way to program MIDI for Windows?

I am looking to write a small program that receives input from an external device and then sends MIDI signals to any MIDI compatible software. What is the best way, from the MIDI perspective, to go about this? Are there any specific libraries I should look into?
Thanks.
PortMidi! http://portmedia.sourceforge.net/
It's easy to use, examples for Windows are provided.
MIDI protocol is quite simple, most MIDI APIs offer manipulation with MIDI events and their parameters. What differs is the way how MIDI devices are enumerated and opened.
Correct answer depends on your requirements.
What input from what external device will you use? Will it be another MIDI device, mouse, keyboard or something that will allow input event parsing? Or will you need some low level hardware access? This one may influence programming language selection, if Java, C++ or something different and therefore the library choice.
What programming language do you prefer? C++, Java... If you plan to develop in Java, you can do that with API that JDK provides.
Should the program be multiplatform? If it should and you plan to develop in C++, you should use multiplatform MIDI library, e.g http://portmedia.sourceforge.net/ mentioned by darasan or https://github.com/jdkoftinoff/jdksmidi Otherwise you could just stick with native platform API (Windows API, ALSA, not sure about Mac stuff).
Do you plan to use some specific MIDI device? Maybe there is library that provides easy access to some device functions via MIDI, that you would have to handle by yourself (e.g. some predefined SysEx data)
With more question details more libraries (or less libraries) can be recommended.

Resources