나는 퐁 복제본을 만들었고 충돌이 발생할 때 몇 가지 사운드 효과를 추가하고 싶습니다. 내 문제는 내 전체 응용 프로그램이 단지 90 줄의 코드를 가지고 있으므로 사운드를 합성하는 모든 예제에서 약 30 줄의 코드가 필요하다는 것입니다. 나는 더 간단한 접근법을 찾고있다. 서로 다른 음색의 삐 소리를 만드는 간단한 방법이 있습니까? 기간은 중요하지 않습니다. 나는 단지 다른 음색으로 일련의 삐 소리를 내고 싶다.자바 생성 사운드
답변
다음은 JSyn을 사용할 수 있습니다 Java Sound - Example: Code to generate audio tone
byte[] buf = new byte[ 1 ];;
AudioFormat af = new AudioFormat((float)44100, 8, 1, true, false);
SourceDataLine sdl = AudioSystem.getSourceDataLine(af);
sdl.open();
sdl.start();
for(int i = 0; i < 1000 * (float)44100/1000; i++) {
double angle = i/((float)44100/440) * 2.0 * Math.PI;
buf[ 0 ] = (byte)(Math.sin(angle) * 100);
sdl.write(buf, 0, 1);
}
sdl.drain();
sdl.stop();
java.awt.Toolkit.getDefaultToolkit(). 경고음 경고음()
시리즈?
int numbeeps = 10;
for(int x=0;x<numbeeps;x++)
{
java.awt.Toolkit.getDefaultToolkit().beep();
}
"다른 색조"라고 그는 말했습니다. –
플러스 .beep()이 모든 플랫폼에서 작동하지 않습니다. –
에서 작은 예를 들어 촬영 (짧아)입니다. 이 라이브러리는 설치해야하는 라이브러리입니다 (.DLL
및 .JAR
). 그러나 다른 톤을 만드는 것은 매우 간단합니다.
Link는
이것은 일례이다 (또한 가능한 자습서)
public static void main(String[] args) throws Exception {
SawtoothOscillatorBL osc;
LineOut lineOut;
// Start JSyn synthesizer.
Synth.startEngine(0);
// Create some unit generators.
osc = new SawtoothOscillatorBL();
lineOut = new LineOut();
// Connect oscillator to both left and right channels of output.
osc.output.connect(0, lineOut.input, 0);
osc.output.connect(0, lineOut.input, 1);
// Start the unit generators so they make sound.
osc.start();
lineOut.start();
// Set the frequency of the oscillator to 200 Hz.
osc.frequency.set(200.0);
osc.amplitude.set(0.8);
// Sleep for awhile so we can hear the sound.
Synth.sleepForTicks(400);
// Change the frequency of the oscillator.
osc.frequency.set(300.0);
Synth.sleepForTicks(400);
// Stop units and delete them to reclaim their resources.
osc.stop();
lineOut.stop();
osc.delete();
lineOut.delete();
// Stop JSyn synthesizer.
Synth.stopEngine();
}
마티
여기JSyn은 이제 순수 Java이며 더 이상 기본 DLL이 필요하지 않습니다. – philburk
16 비트
import javax.sound.sampled.AudioFormat;
import javax.sound.sampled.AudioSystem;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.SourceDataLine;
public class MakeSound {
public static void main(String[] args) throws LineUnavailableException {
System.out.println("Make sound");
byte[] buf = new byte[2];
int frequency = 44100; //44100 sample points per 1 second
AudioFormat af = new AudioFormat((float) frequency, 16, 1, true, false);
SourceDataLine sdl = AudioSystem.getSourceDataLine(af);
sdl.open();
sdl.start();
int durationMs = 5000;
int numberOfTimesFullSinFuncPerSec = 441; //number of times in 1sec sin function repeats
for (int i = 0; i < durationMs * (float) 44100/1000; i++) { //1000 ms in 1 second
float numberOfSamplesToRepresentFullSin= (float) frequency/numberOfTimesFullSinFuncPerSec;
double angle = i/(numberOfSamplesToRepresentFullSin/ 2.0) * Math.PI; // /divide with 2 since sin goes 0PI to 2PI
short a = (short) (Math.sin(angle) * 32767); //32767 - max value for sample to take (-32767 to 32767)
buf[0] = (byte) (a & 0xFF); //write 8bits ________WWWWWWWW out of 16
buf[1] = (byte) (a >> 8); //write 8bits WWWWWWWW________ out of 16
sdl.write(buf, 0, 2);
}
sdl.drain();
sdl.stop();
}
}
묘사의 비트와 상기와 동일한 코드이며
- 1. 즉석에서 사운드 생성
- 2. 절차상 사운드 생성 알고리즘?
- 3. 하드웨어 장치가없는 자바 사운드
- 4. 자바 사운드 입력
- 5. 하스켈에서 .wav 사운드 데이터 생성
- 6. 자바 게임에서 사운드 효과 사용하기
- 7. 실시간 자바 사운드 볼륨 조정
- 8. 기본 사운드 생성/합성 라이브러리, 모든 언어
- 9. iPhone 앱에서 생성 된 사운드 녹음
- 10. 자바 재생 사운드. 기본 시스템 사운드가 있습니까?
- 11. 자바 애플릿에서 사용자의 사운드 카드 출력 캡처하기
- 12. 자바 : JAR에 사운드 뱅크 파일 임베드
- 13. 자바 스크립트로 브라우저에서 지연된 사운드 재생
- 14. 간단한 자바 사운드 애플릿이 작동하지 않습니다 !!! ARG!
- 15. Android, 사운드 풀에서 사운드 재생
- 16. Java 및 USB 사운드 카드의 사운드 문제
- 17. 자바 스크립트로 플래시 생성
- 18. WADL에서 자바 스텁 생성
- 19. 자바 1.3에서의 XML 생성
- 20. 자바 스크립트 배열 생성
- 21. 자바 스크립트 플러그인 생성
- 22. 자바 스크립트로 파일 생성
- 23. 자바 프로그램을 통해 WSDL에서 자바 클래스 생성
- 24. 플래시 : 업로드 된 사운드의 사운드 파형 생성/표시
- 25. iOS : 주어진 Hz 매개 변수의 iPad에서의 사운드 생성?
- 26. 사운드 카드의 여러 채널에 사운드 출력
- 27. Google 사운드 API가 있습니까
- 28. 사운드 스트림
- 29. 사운드 컨트롤러
- 30. 플레이 사운드
코드 30 줄은 그리 많지 않습니다. 발견 한 예제를 사용하는 것이 잘못된 이유는 무엇입니까? – Joe
네,하지만 전 복제본은 90 줄입니다. 코드의 1/3은 단순한 경고음을 만드는 데 사용됩니다. 나에게 다소 무의미한. 그러나 만일 내가 다른 어떤 길을 발견 할 수 없으면 나는 그것과 함께 갈 것이다. –
코드의 1/4, 사실 이후. 그게 기분이 나아진다면 ... – Sev