Italian community of Lazarus and Free Pascal

Programmazione => Generale => Topic aperto da: Giuani - Febbraio 28, 2020, 05:13:30 pm

Titolo: Suoni con Lazarus
Inserito da: Giuani - Febbraio 28, 2020, 05:13:30 pm
Salve,
Ho letto un topic relativo a suoni generati con lazarus e udibili via altoparlanti del PC.
Anziché scrivere sul vecchio topic, su suggerimento del sito apro /riapro la discussione/richiesta.
Sul mio PC Windows 7 vorrei generare un suono di data frequenza e durata che si senta negli speakers.
si può fare ? e come ?
Grazie.
Titolo: Re:Suoni con Lazarus
Inserito da: Otto - Febbraio 28, 2020, 07:09:54 pm
Salve.

Sul mio PC Windows 7 vorrei generare un suono di data frequenza e durata che si senta negli speakers.
si può fare ? e come ?
Si, è possibile. Ho dei progetti di esempio che potrebbero essere corrispondenti alla tua richiesta. Te li farò avere al più presto.

Saluti.
Otto.
Titolo: Re:Suoni con Lazarus
Inserito da: Otto - Febbraio 28, 2020, 07:38:08 pm
Ad esempio, per produrre una nota alla frequenza di 440Hz (La) e dalla durata di 1000ms potresti usare:   
 “Windows.Beep(440, 1000);”

Codice: [Seleziona]
unit unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, Forms, Controls, Graphics, Dialogs, StdCtrls,
  Windows;

type

  { TForm1 }

  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private

  public

  end;

var
  Form1: TForm1;

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.Button1Click(Sender: TObject);
begin
  Windows.Beep(440, 1000);      // Produce una nota alla frequenza di 440Hz della durata di 1000ms
end;

end.       

Qualora ti servisse qualcosa di più elaborato, tipo suoni con strumenti MIDI, avrei anche quello. 

Saluti.
Otto.
Titolo: Re:Suoni con Lazarus
Inserito da: Giuani - Febbraio 28, 2020, 09:32:42 pm
Ringrazio con stima,
ho provato Windows.Beep(440, 1000);non fa errori, ma non si sente niente.
Grazie per la generosa disponibilità di altri programmi, in quanto newbie, al momento voglio solo capire come generare un suono con Windows.Beep(440, 1000).
A tutti fraterni saluti. 
Titolo: Re:Suoni con Lazarus
Inserito da: Otto - Febbraio 29, 2020, 09:41:14 am
Ciao Giuani.
Le cause potrebbero essere molteplici.
Nel caso tu avessi copiato il codice da me postato ho il dubbio che nel tuo progetto non sia stato associato l’evento del mouse-click del pulsante al metodo corrispondente “TForm1.Button1Click(Sender: TObject);”. In questo caso è necessario effettuare manualmente l’associazione.
Per sicurezza allego un progetto completo nella speranza che risolva il problema.

Per qualsiasi altro dubbio non esitare a fare domande: sicuramente qualcuno della community saprà risponderti.


Saluti.
Otto.
Titolo: Re:Suoni con Lazarus
Inserito da: Giuani - Febbraio 29, 2020, 04:26:07 pm
Ciao Otto
il codice che hai postato è quello che avevo provato anche io.
Sul PC Win 7 con scheda audio Asus Realtek non si sente, ma su PC Win 10 HP si sente benissimo.
Credo sia una impostazione della scheda audio.
Ora ci lavoro un po', in caso di necessità tornerò a chiedere.
Grazie e fraterni saluti,