what language is live ?
what language is live ?
does anyone know what programming language programs like live,reason,and absynth are written in?
any suggestions on what the best language to write these types of programs is?
i am using a mac g4, if that matters
thanks
madly
any suggestions on what the best language to write these types of programs is?
i am using a mac g4, if that matters
thanks
madly
-
- Posts: 5788
- Joined: Wed Nov 24, 2004 11:05 pm
- Location: Melbourne Australia
- Contact:
Any audio apps should be in C++ or ASM.... anything else is too slow.any suggestions on what the best language to write these types of programs is?
The code has to loop around grabbing incoming samples and processing
them, which if you know code isn't a great thing.... The constant looping
means the closer you get to bare bones the better.
Using C++ means you can port it to Mac and PC without too much trouble.
Using ASM means you're up for some self mutilation
Using Java means you were caught up in the hype and fell for a shit
language. Using VB means you just don't have the right tool for the job.
Using C means you really should go OO with C++ to save your life. Using
some drag objects around connect wires BS means you're using another
engine to create yours and just adding more processing and latency into
the mix.
-Ben
-
- Posts: 8803
- Joined: Wed Mar 31, 2004 3:12 pm
- Location: www.fridge.net.au
- Contact:
C++
Most people who code in lower level languages such as C++ can port stuff like the engine and whatnot across platforms easier. What tends to be the biggest pain is the user interface, since both major platforms have very different ways of implementing GUI toolkits (libraries).
I am assuming Ableton made their own UI library which happens to give Live that unique look. It's quite like Flash interfaces if you ask me. But this would have allowed them to not have to worry too much about porting stuff across platforms.
ASM (Assembler) is probably one of the lowest level of languages, meaning it talks directly to the CPU. If something was created on a PC in ASM it would be extremely difficult to port it across to the Mac because CPU's in PC's use the x86 architechture which at the time I used to play with ASM meant you set 8bits (8 lots of 1's and 0's) to a number, then run an execute command just to do ONE thing. It used to take something like 3 or 4 lines of code just to write one character to the screen. Power PC (the format for the apple CPU's) works in a whole different way.
Other tools which would give you similar performance of C++ are Java (yes it actually can code applications of that level) and Delphi (originated from Pascal).
I disagree that VB is not capable of doing high performance tasks. Well actually on it's own yeah it probably sux, but VB is good at stringing together little modules (libraries) which were most likely made in C++ or ASM.
End of nerd rant
Most people who code in lower level languages such as C++ can port stuff like the engine and whatnot across platforms easier. What tends to be the biggest pain is the user interface, since both major platforms have very different ways of implementing GUI toolkits (libraries).
I am assuming Ableton made their own UI library which happens to give Live that unique look. It's quite like Flash interfaces if you ask me. But this would have allowed them to not have to worry too much about porting stuff across platforms.
ASM (Assembler) is probably one of the lowest level of languages, meaning it talks directly to the CPU. If something was created on a PC in ASM it would be extremely difficult to port it across to the Mac because CPU's in PC's use the x86 architechture which at the time I used to play with ASM meant you set 8bits (8 lots of 1's and 0's) to a number, then run an execute command just to do ONE thing. It used to take something like 3 or 4 lines of code just to write one character to the screen. Power PC (the format for the apple CPU's) works in a whole different way.
Other tools which would give you similar performance of C++ are Java (yes it actually can code applications of that level) and Delphi (originated from Pascal).
I disagree that VB is not capable of doing high performance tasks. Well actually on it's own yeah it probably sux, but VB is good at stringing together little modules (libraries) which were most likely made in C++ or ASM.
End of nerd rant
When the going gets serious, the serious bust out C. Or C++, as the case may be...
Although, I wouldn't mind seeing more audio apps in C#. It's pretty platform-independent and actually can do a lot of very cool stuff.
Also, madly, if you're serious about learning a good lower-level lang such as C++, you should drop by developer.apple.com and register there for a copy of Xcode. It'll be well worth your while if you plan on doing any type of development wiht your mac.
Although, I wouldn't mind seeing more audio apps in C#. It's pretty platform-independent and actually can do a lot of very cool stuff.
Also, madly, if you're serious about learning a good lower-level lang such as C++, you should drop by developer.apple.com and register there for a copy of Xcode. It'll be well worth your while if you plan on doing any type of development wiht your mac.
Last edited by sqook on Wed Mar 30, 2005 8:14 am, edited 1 time in total.
Actually, if I had to guess, I'd say it was written in OpenGL (based on appearance and uniformity across platforms). However, I did some poking around, and the Live executable doesn't link to the gl frameworks, so I guess that rules my theory out. I personally think it'd be a pain to keep porting the UI code back and forth between the two platforms, but as far as I can tell, that's what they're doing...sweetjesus wrote: I am assuming Ableton made their own UI library which happens to give Live that unique look. It's quite like Flash interfaces if you ask me. But this would have allowed them to not have to worry too much about porting stuff across platforms.
FL Studio is written with Delphi as are a number of VSTi - Delphi code is as fast as C/C++. Also Delphi has built in assembler. However, it's not available for Mac.MrYellow wrote: Any audio apps should be in C++ or ASM.... anything else is too slow.
So you'd recommend Assembler.MrYellow wrote: The code has to loop around grabbing incoming samples and processing
them, which if you know code isn't a great thing.... The constant looping
means the closer you get to bare bones the better.
C++ on its own doesn't guarantee what you write will work on both Mac and PC. Using a framework that exists on both helps, though isn't strictly necessary. Just depends how much of the UI and most layers you want to rewrite.MrYellow wrote: Using C++ means you can port it to Mac and PC without too much trouble.
Currently I'm looking at Qt for Windows, Linux and Mac support.
Pete Goodwin
That's the first time I've heard C# (a Microsoft language) described as 'cross platform' unless you are referring to Mono.sqook wrote:Although, I wouldn't mind seeing more audio apps in C#. It's pretty platform-independent and actually can do a lot of very cool stuff.
What cool stuff do you think C# can do? It's dreadful at creating UI apps; also for Windows has a 20MByte download for now, if you don't have the .Net installed. Is .Net available for Mac as yet?
Pete
Yeah, that's what I meant. Same smell, different nostril.imekon wrote: That's the first time I've heard C# (a Microsoft language) described as 'cross platform' unless you are referring to Mono.
I've never been good at designing UI's; I usually prefer to work on the backend of things. However, I did do some UI development in C# for my job, and here were the things that I liked about the dot-net platform:What cool stuff do you think C# can do? It's dreadful at creating UI apps; also for Windows has a 20MByte download for now, if you don't have the .Net installed. Is .Net available for Mac as yet?
- It's really easy to open and read from a variety of data sources. HTTP servers, database servers, access files, text files, whatever, it doesn't care. The calls to get a filepointer are all pretty much the same, and you can generally accomplish it in a half-dozen lines of code or so.
- The structure of the language is very logical and easy to work with. It's basically organized the same way as java (surprise!), but it's much cleaner and more logically structured.
- The level of abstraction between classes is great, especially through the use of properties. It makes it very easy to develop apps on a big team of people, where each member of the team is unaware of everyone else's modules... you just put the classes together, and everything builds.
- Great builtin data structures, such as hashtables (my personal favorite), datasets (make one sql call and all the result rows get dumped into a single data structure), etc. Also, it's very easy to simply nest these structures within one another without having to be terribly concerned about memory management. I know that java provides these features, too, but like everything else in c#, it provides the same functionality as its java counterpart without making you go out of your way to do it.
As far as new, "trendy" languages go, I did like working with c#. I still prefer c++ more, however, but that's partially because I'm a huge performance junkie.
I don't believe that MS has an official .NET runtime environment for OSX yet, and I wouldn't expect them to provide one. However, at least c# is an open standard (unlike java), but the tradeoff of that is that the open-source community got to take the reins. Don't get me wrong; I'm a huge fan of OSS, but like many open-source projects, the .net stuff also suffers from a lack of guidance and direction. As such, there are actually several competing runtimes for both linux and bsd. I messed around with mono and a few others for awhile, but I never got around to doing c# stuff on my mac. Check out o'reilly's .net site if you're interested in developing applications with .net on the mac.