AudioClip.Create
static function Create(name: string, lengthSamples: int, channels: int, frequency: int, _3D: bool, stream: bool): AudioClip;
static AudioClip Create(string name, int lengthSamples, int channels, int frequency, bool _3D, bool stream);
static def Create(name as string, lengthSamples as int, channels as int, frequency as int, _3D as bool, stream as bool) as AudioClip
static function Create(name: string, lengthSamples: int, channels: int, frequency: int, _3D: bool, stream: bool, pcmreadercallback: PCMReaderCallback): AudioClip;
static AudioClip Create(string name, int lengthSamples, int channels, int frequency, bool _3D, bool stream, PCMReaderCallback pcmreadercallback);
static def Create(name as string, lengthSamples as int, channels as int, frequency as int, _3D as bool, stream as bool, pcmreadercallback as PCMReaderCallback) as AudioClip
static function Create(name: string, lengthSamples: int, channels: int, frequency: int, _3D: bool, stream: bool, pcmreadercallback: PCMReaderCallback, pcmsetpositioncallback: PCMSetPositionCallback): AudioClip;
static AudioClip Create(string name, int lengthSamples, int channels, int frequency, bool _3D, bool stream, PCMReaderCallback pcmreadercallback, PCMSetPositionCallback pcmsetpositioncallback);
static def Create(name as string, lengthSamples as int, channels as int, frequency as int, _3D as bool, stream as bool, pcmreadercallback as PCMReaderCallback, pcmsetpositioncallback as PCMSetPositionCallback) as AudioClip
Description

Creates a user AudioClip with a name and with the given length in samples, channels and frequency.

Set your own audio data with SetData. Use the PCMReaderCallback and PCMSetPositionCallback delegates to get a callback whenever the clip reads data and changes the position. If stream is true, Unity will on demand read in small chunks of data. If it's false, all the samples will be read during the creation.
	#pragma strict
	// Creates a 1 sec long audioclip, with a 440hz sinoid
	var position: int = 0;
	var sampleRate : int = 0;
	var frequency : float = 440;
	function Start () {
		var myClip = AudioClip.Create("MySinoid", 44100, 1, 44100, false, true, OnAudioRead, OnAudioSetPosition);
		sampleRate = AudioSettings.outputSampleRate;

audio.clip = myClip; audio.Play(); }

function OnAudioRead(data:float[]) { for (var count = 0; count < data.Length; count++) { data[count] = Mathf.Sign(Mathf.Sin(2 * Mathf.PI * frequency * position / sampleRate)); position++; } }

function OnAudioSetPosition(newPosition:int) { position = newPosition; }
using UnityEngine;
using System.Collections;

public class Example : MonoBehaviour {
    public int position = 0;
    public int sampleRate = 0;
    public float frequency = 440;
    void Start() {
        AudioClip myClip = AudioClip.Create("MySinoid", 44100, 1, 44100, false, true, OnAudioRead, OnAudioSetPosition);
        sampleRate = AudioSettings.outputSampleRate;
        audio.clip = myClip;
        audio.Play();
    }
    void OnAudioRead(float[] data) {
        int count = 0;
        while (count < data.Length) {
            data[count] = Mathf.Sign(Mathf.Sin(2 * Mathf.PI * frequency * position / sampleRate));
            position++;
            count++;
        }
    }
    void OnAudioSetPosition(int newPosition) {
        position = newPosition;
    }
}
import UnityEngine
import System.Collections

public class Example(MonoBehaviour):

	public position as int = 0

	public sampleRate as int = 0

	public frequency as float = 440

	def Start() as void:
		myClip as AudioClip = AudioClip.Create('MySinoid', 44100, 1, 44100, false, true, OnAudioRead, OnAudioSetPosition)
		sampleRate = AudioSettings.outputSampleRate
		audio.clip = myClip
		audio.Play()

	def OnAudioRead(data as (float)) as void:
		count as int = 0
		while count < data.Length:
			data[count] = Mathf.Sign(Mathf.Sin(((((2 * Mathf.PI) * frequency) * position) / sampleRate)))
			position++
			count++

	def OnAudioSetPosition(newPosition as int) as void:
		position = newPosition