2008-12-24 61 views
9

Có cách nào để phát một giai điệu Giáng sinh trên PC hoặc Mac mà không có tệp âm thanh được ghi trước không? (Không có tệp .mp3 hoặc .wav hoặc bất kỳ tệp âm thanh nào)Mã bưu điện phát một giai điệu Giáng sinh

Tôi nhớ âm thanh TI 99/4A và Apple II của tôi (giống nhạc) có thể phát được. Không chắc chắn nếu máy tính hiện đại có những khả năng này (ngoài beep).

Trả lời

1

MIDI là một tùy chọn, mặc dù trên PC thường nghe có vẻ hơi tệ như tiếng bíp.

+1

Đó là một tạo phẩm có âm thanh kém nk. Với soundbank chất lượng cao, MIDI có thể phát ra âm thanh tốt như nhạc thật. Trong thực tế, cộng đồng âm nhạc sử dụng MIDI mỗi ngày; họ không có cùng quan điểm tiêu cực về MIDI mà các lập trình viên thường có. –

3

Có, bạn có thể chơi midi.

Midi không mã hóa âm thanh mỗi lần, nó mã hóa thông tin được sử dụng để phát nhạc; sân, giai điệu, cường độ vv

Có một C# midi toolkit trên CodePlex tại địa chỉ: http://www.codeproject.com/KB/audio-video/MIDIToolkit.aspx

Chất lượng âm thanh phụ thuộc hoàn toàn vào thiết bị midi sử dụng để chơi nó, vì vậy nó sẽ khác nhau về chất lượng từ máy tính đến máy tính.

Bạn có thể tìm thấy một danh sách tốt đẹp của file midi Giáng sinh tại địa chỉ: http://www.lockergnome.com/midi/

Windows Media Player có thể chơi các tập tin midi như thể Quick Time (Tôi tin).

3
PLAY "e4 e4 e2 e4 e4 e2 e4 g4 c4 d4 e2" 
+0

Ngôn ngữ này là gì? – Ricket

+0

@Ricket: đó là QBASIC đối với tôi. có thể đó là một BASIC khác cho người khác. –

2

Điều gì về việc tạo dữ liệu PCM khi đang bay? PCM - Pulse Code Modulated - âm thanh chỉ là một loạt các mẫu điện áp trên một hệ thống âm thanh analog.

Suy nghĩ về người nói. Khi âm thanh được phát, nó rung. Nếu bạn lấy một người cai trị và đo vị trí của loa với tốc độ nhanh hơn thì tần số của âm thanh sẽ như thế nào? Bạn sẽ nhận được một hình ảnh của một dạng sóng. Đó là chính xác dữ liệu PCM trông như thế nào, với mỗi phép đo được lưu trữ dưới dạng int 8 hoặc 16 bit. Tần số, nói 44khz là số lượng mẫu trên giây. CD sử dụng tần số lấy mẫu 44khz và mẫu 16 bit.

DirectSound (trên cửa sổ) và OpenAL (nền tảng chéo) là hai thư viện bạn có thể sử dụng để phát bộ dữ liệu đầy đủ dữ liệu PCM. Tôi đã sử dụng DirectSound trong quá khứ, không phải để chơi dữ liệu mà là để đọc dữ liệu từ micro để có được mức âm lượng.

Nếu bạn muốn tạo mẫu PCM cho một ghi chú nhất định, bạn chỉ cần tính tần số (đây là table), và sau đó đặt một sinewave trong bộ đệm của bạn. Bạn có thể kết hợp các tần số khác nhau với nhau chỉ bằng cách thêm chúng (đảm bảo tổng nhỏ hơn khối lượng tối đa, để tránh cắt)

7

"Jingle Bells" trong java (bloated như bình thường), sử dụng JFugue, với chuông hình ống và xylophones (polyphonic!):

import org.jfugue.*; 

public class JingleBells 
{ 
    public static void main(String[] args) 
    { 
     Player player = new Player(); 
     player.play("T170 "+ 
        "  V0 I[XYLOPHONE] C4q C4q C3h C4q C4q C3h C3q B3q A3q G3q C4h "+ 
        "  V1 I[TUBULAR_BELLS] E5q E5q E5h E5q E5q E5h E5q G5q C5q D5q Eqh "+ 
        "  V2 I[XYLOPHONE] G3h  G2q G3q G3h  G3h"); 
    } 
} 
6

Nói về "tồi tệ như tiếng bíp", nếu bạn có beep cài đặt trên hộp linux, bạn có thể chạy các script vỏ sau (trong bối cảnh đó là câu trả lời Jeremy Ruten của):

#!/bin/sh 
beep -f 659 -l 400 
sleep 0.05 
beep -f 659 -l 400 
sleep 0.05 
beep -f 659 -l 800 
sleep 0.05 
beep -f 659 -l 400 
sleep 0.05 
beep -f 659 -l 400 
sleep 0.05 
beep -f 659 -l 800 
sleep 0.05 
beep -f 659 -l 400 
sleep 0.05 
beep -f 783 -l 400 
sleep 0.05 
beep -f 523 -l 400 
sleep 0.05 
beep -f 587 -l 400 
sleep 0.05 
beep -f 659 -l 800 
Các vấn đề liên quan