Eigen audio progje (Java)

Almeros

Moet dat... een titel?
Lid sinds
22 februari 2002
Berichten
1.613
Locatie
Groningen
Ik ben de laatste tijd niet zo productief als het om nieuwe tracks maken gaat maar juist meer met programmeren. Om toch weer wat meer met geluid bezig te zijn ben ik maar eens begonnen met een testprogrammaatje in Java om iets met audio te doen...


Hoe te gebruiken
Je kunt hem downloaden en uitproberen. Je moet wel de nieuwste Java Runtime Environment geinstalleerd hebben. Die kan je hier gratis downloaden.
Download daarna m'n progje. AudioPoc.jar. Een dubbelklik op het bestand zou het programma al moeten starten.

(Ohw... even een disclaimer!!!. Zet je volume zacht genoeg dat je monitors niet beschadigen e.d. Ik ben er niet verantwoordelijk voor als je iets opblaast okay 8D)

Weet niet of ie werkt op een Mac of Linux machine (ookal gebruik ik java)... Misschien dat je kan laten weten of het werkt als je een Mac of Linux machine gebruikt..


Wat doet het
Niet bijster bijzondere dingen... Ik heb het gemaakt als een Proof of Concept (...een test dus) om te kijken hoe het een en ander werkt. Ben nog opzoek naar goeie ideeen dus als je nog een leuke toepassing weet??? let me know...

Nu kan ie:
  • Audiostreams tussen verschillende sound cards routen
  • Opnemen en later afspelen
  • Opnemen en direct afspelen (Full Duplex)
  • Oscillators voor input en output display
  • Compressor/Limiter
  • Foldback Distortion


Ben benieuwd wat/of jullie er wat van vinden. Als ik updates heb dan laat ik het wel weten hier ;) Happy prutsing!

PS. Is er iemand met een sound card met multi I/O's die me kan laten weten of ie kan routen tussen de verschillende Inputs en Outputs van de sound card?
 
ik zie geen .jar ... wel .zip misschien heb je iets fout gedaan?
 
Bij mij werkt ie gewoon, maar ik heb hier op mijn werk geen audio ingang... dus..

(sommige browsers neigen van een .jar een .zip file te maken. Gewoon renamen naar .jar en gaan!)
 
ik krijg wel leuke noises als ik gewoon simpelweg op record druk maar er verder nix instop :)
 
Origineel geplaatst door JohnnyBusca
Bij mij werkt ie gewoon, maar ik heb hier op mijn werk geen audio ingang... dus..

(sommige browsers neigen van een .jar een .zip file te maken. Gewoon renamen naar .jar en gaan!)

Ohja... goeie tip! Een jar file is inderdaad ook zo goed als een zip bestand. Kan me ook voorstellen dat winzip of winrar jar bestanden koppelt bij de installatie. De dubbelklik zorgt er dan inderdaad voor dat de unpacker hem opent =(

Wat je kan proberen in windows; Rechter muisknop op de jar... Bestand openen met... en dan Javaw of iets wat erop lijkt aanklikken.

Voor de volgende versie maar een soort installertje maken of iets dergelijks ;)
 
Krijg na 1 minutje speelen de volgende foutmelding (in een .log bestand)
#
# An unexpected error has been detected by HotSpot Virtual Machine:
#
# EXCEPTION_ACCESS_VIOLATION (0xc0000005) at pc=0x6d4a22c2, pid=1652, tid=3360
#
# Java VM: Java HotSpot(TM) Client VM (1.5.0_06-b05 mixed mode, sharing)
# Problematic frame:
# C [jsoundds.dll+0x22c2]
#

En de applicatie kapt er mee, op dat moment was ik fanatiek op de compressor knopjes aan het drukken...aan/uit/aan/uit... ja ik ben dwangmatig... toen liep hij vast.
Verder hoor ik veel tikjes met het gebruik van de compressor.

Verder werkt alles wel goed voor zover ik kan testen, leuk projectje!
 
Re: Eigen audio progje (Java)

Misschien dat je kan laten weten of het werkt als je een Mac of Linux machine gebruikt..

Hij start in ieder geval op Linux (Fedora Core 4 / laatste Sun JRE)

Bij afspelen gaat hij onderuit met de mededeling:

javax.sound.sampled.LineUnavailableException: line with format PCM_SIGNED 44100.0 Hz, 16 bit, mono, 2 bytes/frame, little-endian not supported.
 
Laatst gewijzigd:
Tijd voor een updateje! 8)

De oude versie heb ik van de server gegooid dus je kan de nieuwe weer downloaden: AudioPoc.jar
Je kunt hem gebruiken zoals hierboven al beschreven is.




Enkele zichtbare/hoorbare aanpassingen in deze update:

-Signal: Multi channel compatible (nu hard ingesteld op stereo)
-Signal: Sinus generator synth (eigenlijk vooral voor test doeleinden)

-DSP: Geen overclippende DSP fx meer
-DSP: Delay + instelbare settings
-DSP: Vocal Remover (First impression)
-DSP: Verbeteringen aan Compressor en Foldback

-GUI: Platform eigen layout
-GUI: Gebruik van meerdere windows in basis window
-GUI: Oscilloscopes zijn resizable




Ben benieuwd wat jullie er van vinden tot nu toe. Zullen nog wel veel bugs in zitten die ik nog niet heb gevonden (of waar ik nog even geen zin in had om op te lossen :z)... dus let me know als er iets niet werkt! Wordt zeer gewaardeerd!
 
Krijg geen foutmelding meer,

tip: de stop knop werkt nu niet als je op Play drukt, nu moet je de hele opname afwachten..

Herhaaldelijk op play drukken (dus 10 x in een seconden..) krijg je fijne glitch-shit.. overigens als je 2 x achter elkaar op play drukt speelt hij de opname ook op een vreemde manier af.. alsof hij bij elke keer op play-drukken een teller of pointer laat mee lopen, en meerdere keeren op play veroorzaakt meerdere pointers.. de audio stream hikked,stoort en hakkelt..Ook de FPS raakt helemaal in de war van herhaaldelijk op play drukken..

Qua effect vind ik het wel cool klinken, glitchie! *D
 
Origineel geplaatst door Syntax Terror
Krijg geen foutmelding meer,

tip: de stop knop werkt nu niet als je op Play drukt, nu moet je de hele opname afwachten..

Herhaaldelijk op play drukken (dus 10 x in een seconden..) krijg je fijne glitch-shit.. overigens als je 2 x achter elkaar op play drukt speelt hij de opname ook op een vreemde manier af.. alsof hij bij elke keer op play-drukken een teller of pointer laat mee lopen, en meerdere keeren op play veroorzaakt meerdere pointers.. de audio stream hikked,stoort en hakkelt..Ook de FPS raakt helemaal in de war van herhaaldelijk op play drukken..

Qua effect vind ik het wel cool klinken, glitchie! *D

Sjah als het nou ook een bedoeld effect was ;)

Maar wat je zegt klopt. Elke keer als je op play drukt wordt een nieuw proces gestart (thread) en elke keer propt elk proces een stukje samplebuffer weer in de audio output stream en in de oscilloscope... dat kan niet tegelijk. Kan wel maar dan krijg je dus dit resultaat ;)

Denk dat ik wel ff het stopknopje ga enabelen hiervoor maar voor de rest wil ik dit samplertje nog meer gaan uitbreiden op andere manieren (midi playable bijvoorbeeld) en dan ga ik op dat moment de verschillende signalen mixen zodat er weer 1 signaal de output en de oscilloscope in gaat...

Thanks voor je reactie!
 
Heb je dat allemaal zelf geprogrammeerd, of heb je een package zoals JSyn of JMusic gebruikt? Ik ken ook wel wat java, maar omdat java een garbage collector gebruikt, heb ik er nooit aan gedacht om eens iets met audio te maken in java omwille van die garbage collector (of is er een mannier om betere geheugen-management in te bouwen met java?). Zou eigelijk wel de source code eens willen zien... Welke JDK heb je geruikt om dit te maken ? (ik gebruik JDK 1.5.0_02 met JVM van Sun).
 
Origineel geplaatst door Almeros

Denk dat ik wel ff het stopknopje ga enabelen hiervoor maar voor de rest wil ik dit samplertje nog meer gaan uitbreiden op andere manieren (midi playable bijvoorbeeld) en dan ga ik op dat moment de verschillende signalen mixen zodat er weer 1 signaal de output en de oscilloscope in gaat...

Thanks voor je reactie!

Zou je die samples ook kunnen laten loopen? Een ADSR env. er bij? Dan kun je al bijna een synth bouwen op basis van korte stukjes sample...in JAVA..:Z ik droom verder..;)

Hoe dan ook,
Goed bezig:okdan:
 
Origineel geplaatst door kefkekeyser
Heb je dat allemaal zelf geprogrammeerd, of heb je een package zoals JSyn of JMusic gebruikt?

Gewoon zelf... Dat vind ik nou juist de uitdaging. En als je diep genoeg in Java zit dan is het goed te doen.


Ik ken ook wel wat java, maar omdat java een garbage collector gebruikt, heb ik er nooit aan gedacht om eens iets met audio te maken in java omwille van die garbage collector (of is er een mannier om betere geheugen-management in te bouwen met java?).

Euh... wat is er voor probleem met Garbage Collection waardoor je geen audio applicatie kan maken? Garbage Collection is een prima geheugen management manier hoor. Apart daarvan moet je bij tijdkritieke programma's sowieso zuinig zijn met vele objecten. Als je doelt op audiobuffers (arrays) kan je hier vaak beter een referentie (zeg maar pointer) doorgeven ipv een kopie van die buffer te maken... maar dat laatste gaat prima met de lowlevel System method ArrayCopy.


Zou eigelijk wel de source code eens willen zien... Welke JDK heb je geruikt om dit te maken ? (ik gebruik JDK 1.5.0_02 met JVM van Sun).

Hèhè, de code krijg je niet hoor ;) Heb er zelf erg veel tijd in gestopt tot nu toe al. Ik weet ook nog helemaal niet wat ik ermee wil doen. Misschien nog wel iets commercieels of misschien een Open Source projectje. Als je wat wilt maken moet je maar eens op de volgende sites kijken:

http://java.sun.com/j2se/1.5.0/docs/guide/sound/programmer_guide/contents.html
http://www.jsresources.org/

Ik compileer de boel ook op JDK 1.5. Zijn ook bepaalde functies die pas hierin goed werken op bv Linux.
Kan het je aanraden om te gaan knutselen als het je serieus leuk lijkt... 8) Is wel verslavend ;)
 
Origineel geplaatst door Syntax Terror
Zou je die samples ook kunnen laten loopen? Een ADSR env. er bij? Dan kun je al bijna een synth bouwen op basis van korte stukjes sample...in JAVA..:Z ik droom verder..;)

Hoe dan ook,
Goed bezig:okdan:

Thanks! Ja tuurlijk.... dat kan allemaal (In JAVA ;))! Maar ben nu eerst aan het kijken naar het gebruik van ASIO :D (en tijd vinden :erm: )
 
Ik zit te denken om iets met MIDI in C++ te doen binnenkort als ik al mijn andere suffe thuisprojectjes eens af heb. Dit ziet er wel interessant uit ook. Ik wist niet dat je zo 'makkelijk' nog met soundcards aan de slag kon onder Java :)
 
Back
Top