Конференция "Прочее" » Звуки для PC-спикера
 
  • Petr V. Abramov © (23.11.08 03:18) [0]
    Во времена 286-386-х игрушки комповые уже процветали и дурно пахли, а звуковая карта была все же не крутой, но роскошью. И все игрушки поддерживали режим "PC-Speaker" рядом с "SoundBlaster" и фиг его знает чем.
    И комп через голимый PC-speaker умел крякать, пукать, издавать звуки влюбленных пар и ударов по морде, даже говорить человеческим голосом, хоть и сильно электронным. Все это делалось на переключении частота-длительность.
    Может, кто знает, где скачать, или у кого сохранилась (пиво гарантировано) библиотечку разных веселых звуков, пусть в виде asm-программ, но чтоб там в каком-то виде был массив "частота-длительность"
    Нужно для программирования странного девайса, но имеющего спикер и работающего по тому же (как ни странно :) принципу
  • Германн © (23.11.08 05:00) [1]

    > Petr V. Abramov ©   (23.11.08 03:18)  

    Петь. Но ведь раньше (в доисторические времена) не было принято, и не было стандартов на "хранение" звуков в отдельном файле! У меня есть уйма старых игрушек, которые выдают звуки через спикер.
  • Petr V. Abramov © (23.11.08 05:06) [2]

    > У меня есть уйма старых игрушек, которые выдают звуки через
    > спикер


    > Германн ©   (23.11.08 05:00) [1]

    у меня тоже. dosgames.ru :)
    мне пофиг "стандарты", пусть не в mp3. но если есть у кого коллекция, а если кто в инет выложил....
  • Petr V. Abramov © (23.11.08 05:09) [3]

    > не было принято, и не было стандартов на "хранение" звуков
    > в отдельном файле!


    > пусть в виде asm-программ, но чтоб там в каком-то виде был
    > массив "частота-длительность"

    sorry за персонально double
  • Тыщ © (23.11.08 10:32) [4]
    Через спикер можно даже mp3-шки играть (mp3pc.exe).
  • DVM © (23.11.08 11:40) [5]

    > Германн ©   (23.11.08 05:00) [1]


    > Но ведь раньше (в доисторические времена) не было принято,
    >  и не было стандартов на "хранение" звуков в отдельном файле!
    >  

    были, и еще была трекерная музыка с вполне определенными форматами файлов.
  • Dimaxx © (23.11.08 22:36) [6]

    > еще была трекерная музыка с вполне определенными форматами
    > файлов.

    Почему "была"? Она и сейчас есть. А если писалась профессионалами - ваще сказка. Например, музыка в Unreal...
  • DVM © (23.11.08 22:38) [7]

    > ваще сказка

    мне тоже нравится.
  • AndreyV © (23.11.08 22:49) [8]
    Был драйвер под Win3, который имитировал звуковую карту, делаля вывод звука на спикер, хагружая процессор на 100%. Найти вряд ли смогу.

    Если тебе надо просто проиграть, сделай преоразование ИКМ в ШИМ.
  • Petr V. Abramov © (23.11.08 22:54) [9]

    > Если тебе надо просто проиграть, сделай преоразование ИКМ
    > в ШИМ.

    мне не надо играть, мне надо простенькие звуки проиграть на девайсе, к компу отношения не имеющием, но имеющем спикер. И нужна раскладка звуков по "частота-длительность"
  • AndreyV © (24.11.08 02:21) [10]
    > [9] Petr V. Abramov ©   (23.11.08 22:54)
    > мне не надо играть, мне надо простенькие звуки проиграть
    > на девайсе, к компу отношения не имеющием, но имеющем спикер.
    > И нужна раскладка звуков по "частота-длительность"

    1. Звучать будет прямоугольно.
    2. Если тебе нужен произвольный звук - юсай ШИМ, объём памяти если позволит. А если не позволит - совсем просто см. 1.
  • Petr V. Abramov © (24.11.08 05:12) [11]

    > 1. Звучать будет прямоугольно.

    хренсним, мне не битлов играть, а кота, которого за яйца тянут ( без шуток)

    > Если тебе нужен произвольный звук - юсай ШИМ,

    это что?
  • KilkennyCat © (24.11.08 11:11) [12]
    Широтно-Импульсная-Модуляция
  • Anatoly Podgoretsky © (24.11.08 12:19) [13]

    > 2. Если тебе нужен произвольный звук - юсай ШИМ, объём памяти
    > если позволит. А если не позволит - совсем просто см. 1.
    >
    Вообще то
    > И нужна раскладка звуков по "частота-длительность"
    предполагает не использование ШИМ, а именно частота-длительность, как например в электронных звонках.
    В соответствующие годы так таблиц в журналах было много.
    А я в свое время переводил ноты в подобную таблицы, это простая задача. А в некоторых Бейсиках была и функция, которая прямо из нот играла, только ноты в символьной нотации, как A4
    Каждая нота имеет одназначное соответстивие по частоте и длительности.
  • iZEN © (24.11.08 14:22) [14]
    Был драйвер под Win95, который эмулировал звуковую карту и пускал все звуки на спикер.
  • Anatoly Podgoretsky © (24.11.08 14:24) [15]
    > iZEN  (24.11.2008 14:22:14)  [14]

    Не все конечно, а только WAV
  • AlexKniga © (24.11.08 16:23) [16]
    Const HappyBirthDay: Array [1..30] of TFullNote =
         ( (N: Mi1;  D: 2), (N: Mi1;  D: 2), (N: FaD1; D: 1),
    (N: Mi1;  D: 1), (N: La1;  D: 1), (N: SolD1;D: 0.5), (N: Pause; D: 2),
    (N: Mi1;  D: 2), (N: Mi1;  D: 2), (N: FaD1; D: 1),
    (N: Mi1;  D: 1), (N: Si1;  D: 1), (N: La1;  D: 0.5), (N: Pause; D: 2),
    (N: Mi1;  D: 2), (N: Mi1;  D: 2), (N: DoD2; D: 1),
    (N: La1;  D: 1),
    (N: SolD1;D: 2), (N: La1;  D: 2), (N: SolD1;D: 1),
    (N: FaD1; D: 1),          (N: Pause; D: 2),
    (N: Re2;  D: 2), (N: Re2;  D: 2), (N: DoD2; D: 1),
    (N: La1;  D: 1), (N: DoD2; D: 1), (N: Si1;  D: 0.5), (N: Pause; D: 8) );




    Unit Music;
    {--------------------------}Interface
    Procedure Sound (Hz: Word);
    Procedure NoSound;

    Var Duration: Word;
    {Type  TNote=(Pause,
    C1,  Cs1,  D1,  Ds1,  E1,  F1,  Fs1,  G1,  Gs1,  A1,  As1,  B1,
    C2,  Cs2,  D2,  Ds2,  E2,  F2,  Fs2,  G2,  Gs2,  A2,  As2,  B2);}

    Type  TNote=(Pause,
    Do1, DoD1, Re1, ReD1, Mi1, Fa1, FaD1, Sol1,SolD1,La1, LaD1, Si1,
    Do2, DoD2, Re2, ReD2, Mi2, Fa2, FaD2, Sol2,SolD2,La2, LaD2, Si2);
         {перечисление нот
    *1, *2 - первая, вторая октавы
    ??D? (?s?) - диез (sharp)}

         TDuration = Single;
         TFullNote = Record
         N: TNote;     {Нота}
         D: TDuration  {Длительность}
       End;

    {Пример вся 1ая октава + До второй}
    {Const Melody0: Array [1..8] of TFullNote =
        ( (N: Do1; D: 1), (N: Re1; D: 1), (N: Mi1; D: 1), (N: Fa1; D: 1),
          (N: Sol1;D: 1), (N: La1; D: 1), (N: Si1; D: 1), (N: Do2; D: 1) );}


    Procedure PlayNote (FullNote: TFullNote);
    Procedure Play (Melody: Array of TFullNote);

    {--------------------------}Implementation
    Function Stp (L: Double; R: ShortInt): Double;
     Var i: Byte;
         Pr: Double;
     Begin
       Pr:=1;
       For i:=1 to Abs(R) do Pr:=Pr*L;
       If R<0 Then Stp:=1/Pr
       Else Stp:=Pr
     End;

    Var Base, Trans: Double;

    Procedure Sound (Hz: Word); Assembler;
     Asm
    MOV BX,SP
    MOV BX,SS:[BX+4]
    MOV AX,34DDH
    MOV DX,0012H
    CMP DX,BX
    JNC @@2
    DIV BX
    MOV BX,AX
    IN AL,61H
    TEST AL,3
    JNZ @@1
    OR AL,3
    OUT 61H,AL
    MOV AL,0B6H
    OUT 43H,AL
    @@1: MOV AL,BL
    OUT 42H,AL
    MOV AL,BH
    OUT 42H,AL
    @@2: RETF 2
     End;

    Procedure NoSound; Assembler;
     Asm
    IN AL,61H
    AND AL,0FCH
    OUT 61H,AL
    RETF
     End;

    Procedure PlayNote (FullNote: TFullNote);
     Begin
       With FullNote do
       Begin
         If N=Pause
         Then NoSound
         Else Sound( Round( Base * Stp(Trans, Ord(N)) ) );
         Delay( Duration / D )
       End
     End;

    Procedure Play (Melody: Array of TFullNote);
     Var i: Word;
     Begin
       For i:=Low(Melody) to High(Melody) do
         PlayNote(Melody[i]);
       NoSound
     End;

    Begin
     Trans:=Exp(Ln(2)/12);
     Base:=440*Stp(Trans, -10);
     Duration:= 400;
    End.

  • Труп Васи Доброго © (24.11.08 16:31) [17]
    Вообще-то, всё что тебе нужно возьми в любом WAV файле, там же чистый сигнал записан и частота дискретизации указана. Думаю разложить сигнал в спектр по частотам не будт для тебя проблемой, длительность сама определится. Если в обработке звука 0, то на теорию и написание программы неделя уйдёт, а потом хоть кота, хоть Элвиса раскладывай по "частоте-длительности".
  • Petr V. Abramov © (24.11.08 18:33) [18]

    > Труп Васи Доброго ©   (24.11.08 16:31) [17]

    а может, кто такую программу уже написал? :)
  • @!!ex © (24.11.08 18:57) [19]
    > [18] Petr V. Abramov ©   (24.11.08 18:33)

    Конечно написали уже... на два поста выше.
 
Конференция "Прочее" » Звуки для PC-спикера
Есть новые Нет новых   [134448   +1][b:0][p:0.002]