Kleinen "Sampler" programmieren. Welche Sprache eignet sich?

Im Prinzip kann man mit den anderen Sprachen auch das gleiche erreichen. Ich hab mir die Academic License geleistet. Mit RB kann man halt sehr schnell und unkompliziert GUIs basteln, das geht mit kaum einem anderen Tool so leicht. Java verwende ich aus Überzeugung nur am Server (also jsp usw.), da ich auf der Uni mal ein Graphenberechnungsprogramm mit GUI in Java geschrieben habe und es hierbei hassen gelernt habe ;) .

Also eine GUI kann man auch mit QT sehr schnell unter C++ basteln, aber auch Java ist da nicht wirklich unkomfortabel. Aber das ist wohl alles Geschmackssache, ich hab immernoch am liebsten C++ oder Java :).
 
Könnten wir mal zurück zum Thema kommen? Das wäre HILFE bei REALbasic!
 
Ich schau mir diesen Thread schon eine Weile an und vermute, dass REALBasic vollkommen an Deinem Bedarf vorbeigeht!

Das Coden einer kleinen GUI ist trivial; das Problem ist das Playback: Ich vermute mal, Du willst so eine Art "Stefan-Raab-Sampler", der sofort bei Knopfdruck losdudelt. Das Problem hierbei ist die Latenz: Die üblichen Playback-Routinen machen es sich sehr sehr einfach: Die laden das gesamte Sample komplett ins RAM und spielen es erst dann ab. Das kann sekundenlang dauern, zumindest gibt es eine störende "Kunstpause" im dreistelligen Millisekundenbreich. Was Du brauchst, ist ein Funktionsinterface, das den Sound pufferbasiert streamt.

Ich habe zu REALBasic in der Hinsicht nichts gefunden, nur das es Sound grundsätzlich abspielen kann. Ich bezweifle stark, dass sich die RB-Macher die Mühe machen, ein plattformübergreifendes streamingbasiertes Sound-Interface bereitzustellen. Bevor Du einen Cent ausgibst, lass Dir von den Leuten hier bestätigen, wie RB intern mit Sound umgeht.

Die Sound API von Java bietet genau das übrigens; Formatsupport von Hause aus zumindest WAV, AU und AIFF. Zudem kann die seit einiger Zeit auch vernünftig mit MIDI umgehen, insbesondere SysEx-Daten. Wenn Du ein Keyboard oder externen MIDI-Controller hast, kannst Du die Sounds sogar darüber triggern.

Was ich Dir nicht auf Anhieb sagen kann ist, wie Java Sound unter OS X mit der CoreAudio-Hardware umgeht; unter Linux/ALSA mit intel-HighAudio hatte ich ein Problem mit gleichzeitiger Wiedergabe aus unterschiedlichen Anwendungen.

Grad gesehen: Da will Dir im RB-Forum wohl keiner helfen... Nimm Java.
 
Zuletzt bearbeitet:
Das große Problem ist einfach, dass das Programm die Tastatureingaben überwachen muss. Egal ob es im aktiv ist oder nicht! Geht sowas überhaupt mit Java?
 
Das große Problem ist einfach, dass das Programm die Tastatureingaben überwachen muss. Egal ob es im aktiv ist oder nicht! Geht sowas überhaupt mit Java?
Nein, und es würde mich wundern, wenn RB dazu fähig wäre. Dazu müsstest Du eine native Software schreiben. Um das unter Windows realisieren, müsste man die Hook-Api verwenden und unter Mac OS X ist das auch nicht trivial.

Könntest Du ein MIDI-fähiges Keyboard einsetzen?
 
Zuletzt bearbeitet:
Das große Problem ist einfach, dass das Programm die Tastatureingaben überwachen muss. Egal ob es im aktiv ist oder nicht! Geht sowas überhaupt mit Java?

Also das kannst du Plattform übergreifend vergessen, da es wie schon erwähnt unter den verschiedenen Systemen Unterschiedlich geht. Wie gesagt das ganze wird ein ziemlicher Overkill wie du es anstellen willst. Warum nicht einfach die Sounds auf Globale Shortcuts legen? Ich weiss dann hast du keine GUI aber wofür brauchst du die Wenn du das Programm sowieso nicht aktive (also im Vordergrund) hast?
Bevor ich anfangen würde mit Sachen wie Hooks rumzuspielen (was wirklich nicht einfach ist, hab das mal gesehen aber selber nie gemacht) würde ich mir doch überlegen was das Ziel des Programms ist und wo man vllt kürzen kann.

MFG
 
Schau mal Spark an, das kann globale Shortcuts realisieren. Aber es scheint nicht mehr gepflegt und nicht UB.

Was Hooks anbetrifft, sind die sehr einfach zu handhaben, nur scheinen sie unter OS X keine Entsprechung zu haben. Jedenfalls hat hier damals jemand auf die diese Frage keine Antwort erhalten. Ich vermute, Spark arbeitet irgendwie mit Mach-Injection. Damit kenn ich mich leider nicht aus...
 
ES GEHT ABER. Wie oft muss ich das noch schreiben...
Meine Frage war ob JAVA es kann...
Steht nirgendwo.
Frage habe ich beantwortet.
Nicht in dem Ton.
Und Tschüss.
 
Zuletzt bearbeitet:
FDW schrieb:
ES GEHT ABER. Wie oft muss ich das noch schreiben...
Meine Frage war ob JAVA es kann...

ruhig Blut! ;)

Java läuft in einer virtuellen Maschine! Was außerhalb passiert liegt zum Großteil außerhalb des Einflusses von Java! Schon allein aus der Sicht wird es schwierig!

Zum anderen ist es meist so, das Messages in einen Stream je Applikation gehen und somit die Applikation auch nur dann Events bekommt, wenn Sie den Fokus hat! Soll eine Applikation alle Messages der GUI bekommen und selbst entscheiden welche es wie verwertet ( das ist ja das was Du vorhast), so muß es sich entsprechend des Systems und der GUI an dem zugehörigen Message-System anmelden. Ist klar, daß das unter Windows anders ist als unter Mac OS und unter LINUX wieder anders oder?

Aus beiden Gründen bin ich mir sehr sicher das das nicht gehen wird!
 
Naja wie ich bereits gesagt habe:
Man nehme folgendes Script:

tell application "Quicktime Player"
play "PATHTOFILE"
end tell


Das ganze legst du mit http://www.red-sweater.com/fastscripts/ auf eine Tasten Kombination und fertig.

Das script verträgt natürlich noch ein bissal tuning ;)

MFG
 
Zurück
Oben Unten