The Lounge is rated PG. If you're about to post something you wouldn't want your
kid sister to read then don't post it. No flame wars, no abusive conduct, no programming
questions and please don't post ads.
( Pls ignore the comment above where I wrote replace 2.0 w/ 3.0 (hardware) .. Obviously, error checking would fail at the receiving end every time w/o firmware update )
These days acoustic drummers are using electric kits to practice. We are triggering drum software on laptops etc for extremely high quality ( studio recorded .. Superior Drummer 3 .. better sound than module ) drum sounds. As usual latency ( usb 2.0 / MIDI ) is an issue along with win drivers ( asio4all driver helps ).
Anyway, just looking to see if my question was an option as 3.0 is much faster.
I came across the same issue trying to run UVI Workstation from a MIDI connected keyboard. As you said, the asio4all driver helps but the latency is still noticeable...enough so that I lost interest and haven't played it in over a year. I still have a digital piano in the living room but was looking for something that could replicate my first keyboard, a Korg DW-8000.
I'm really not sure that the USB 2.0 connection is the cause of the latency, but rather suspect it might be due to issues with your sound card. Good luck!
Edit: There was a time when I was able to plug a bass into a line-in on the sound card and jam with media player either through my nice computer speaker system or through headphones...with no noticable latency. When I moved to Windows 7, despite having better hardware, and despite using the asio4all driver, the latency issue made it impossible. The solution: Move my bass amp into my home office. One of these days, and soon, I intend to buy an external device dedicated for this purpose so I can go back to using the headphones.
I agree with everything OG has said on this, but I would offer two further points to consider:
USB 2.0 can operate at 60 MBS (that's bytes not bits). Nyquist theory for A2D conversion -basically- says that sampling anything above 2 X Freq_max is good, suggesting that for audio, sampling above 40 KHz would serve the audio spectrum. You have lots of slack in 60 MBS.
The second point is that windows is time non-deterministic in events. That is, you do not know if USB events are 15 ms between, or 50 ms between, you have no capability of forcing this. And for the software to do the turn-around takes a bunch of time. To do time deterministic events, you would need a Real Time Operating System or RTOS like some versions of Linux or QNX or NI Labview RT.
That said, I don't think your problem is in the USB 2.0 area, but in some other area that is causing the delays.
No. This spec extends from the USB connector, though the chipset, that open collector buffer thing all the back to the firmware implementation.
Are you certain the latencies you are experiencing are truly due the the speed of usb 2.0?
Your issues are likely your output sound setup (DAW etc...) and not usb 2.0. Chances are your notes
are getting to the output device on time and then being backed up by plugin delay compensation or ASIO buffer size etc. Various DAWs do tight midi to differing degrees. With word on the street that Cubase is best in this regard.
Remember: good old midi (5 pin DIN) was 110 baud. Were talkin iceberg slow. And every thing was good.
That speed can keep up with the fastest music any human may want to hear. USB 2.0 blows old midi away.
I'm thinking about Java and how much I like the idea of Java but I'm also wondering if it really is a dead thing -- except legacy work.
In other words:
Why would anyone choose to start a new/modern project using Java?
Why does it seem that few people do Java dev here (CP) but there seem to always be jobs posted around that want Java dev experience?
For Java devs:
Which IDE do you use, do you like?
Why would I choose JDeveloper (larger) over netbeans?
Is JDeveloper any good? It's a huge 2GB download so I'm curious before downloading/installing.
Is JDeveloper based upon Eclipse?
Is netbeans based upon Eclipse?
Note: I used Eclipse in the earlier days of Android Development and thought it was terrible because its concept of a project was not great and it was difficult to take your "project" to another machine and work on it there.
Is Java a valid choice for cross-platform development (windows to linux to macOS)?
Or is that a dream also?
Not trying to start a huge war about Java technology and why it's obviously the best/worst etc.
I'm thinking about doing some Java work so I'm interested.
Downloaded NetBeans and so far it seems fairly nice and somewhat similar to Android Studio.
Maybe NetBeans is all you need. Plus, I believe it runs on Linux too.
I examined a JavaFX sample project and noticed the entire UI was built in code.
Not even XML files like Android Studio. Then I went out and searched netbeans to see if there was a UI Designer in NetBeans. Well, it says yes for JavaFX 1.0 but no for 2.0.
It is date stamped : Beta Draft: 2013-09-15!!!
I'm literally cracking up.
Okay, I'm done. Java isn't a thing. Bye, Java. So long and thanks for all the stank.
FYI - I know I'm being an ignorant dev here and some long-time Java dev is going to come along and tell me that I'm just so wrong. I understand. I was just examining this on a very quick basis to get an idea of how quickly you could jump in to java dev. IntelliJ probably solves a lot of the problems I am seeing. thanks all.
I had a customer for a while (a very large company known by a TLA) who used Java widely for their in-house manufacturing control systems. Their primary motivation was because it worked on all of the OSs they needed to support which included AIX, Linux, OS/2, WinNT, 2000, XP, and who knows what else. They were able to have a very, very high degree of reusability between all of those platforms also. If I recall correctly, that factor was 100% once the figured out the various issues they had. These were systems that communicated with PLCs, other control systems, and their manufacturing database. The primary function of their systems was to interface between the manufacturing database and the various manufacturing systems. I was involved in the development of several of those manufacturing systems. AFAIK, they are still in production too. That was a long time ago, in a galaxy far, far away.
I worked on a project years ago that was a mix of Java client and C/C++ on Linux server. We chose Java because the client needed to run on all platforms, every flavour of Unix/Linux, Windows, Mac etc. As one of the few Java guys I did most of my development in emacs, only switching to eclipse late in the project. I think I still preferred emacs.
Well it was for Android, but not for ordinary Java development. I think the bloatishness is caused by the structure of Android applications, rather than the IDE. Early versions of Android studio were utterly useless on anything less than Performance Computer, XC Series Supercomputers - Cray[^].
Notice where C is in that list? (To answer question about something being too old.)
Is Java a valid choice for cross-platform development (windows to linux to macOS)?
I have been developing for six years in windows, only windows, and delivering solutions that run in linux, only linux. So certainly seems to work for me.
I used Eclipse in the earlier days of Android Development and thought
I didn't care for eclipse when I used it long ago. I liked the VS IDE when I was doing C#, but even with that I still used my own editor and only used the IDE for building and running. I have heard good things about Intellij.
And for 4 years I didn't use an IDE at all.
I examined a JavaFX sample project and noticed the entire UI was built in code
Yes, but C specifically solves a problem that other languages really do not, or do not do well: embedded programming. And for embedded programming, C is as good as ever. It makes sense to use C in embedded programming since Object Oriented languages are overkill for the most part. I guess anything can be compiled down but good old C just works.
That's my point also. If a person is working on a desktop or app type of thing then Java hasn't provided a great way to build UIs. And since HTML / CSS is there, why not just use that since you app will "deploy" in multiple worlds.
Also, now with dotnet core you can run your ASP.NET MVC web site on Linux* so easily so why would anyone even choose Java EE / JSP etc?
I just worked through getting an ASP.NET MVC web site running on a DigitalOcean droplet (Debian) and it worked so well it was amazing. .NET dev on Linux is very easy now so Java will probably lose more ground.