Probleme mit UOS

Tanketorion
Beiträge: 25
Registriert: Mo 7. Apr 2014, 20:55

Probleme mit UOS

Beitrag von Tanketorion »

Hi Leute

Ich schreibe ein Programm auf einem Raspbian Pi welches als Metronom laufen soll.
Ich versuche den Sound mit uos abzuspielen, aber das will nicht so ganz und ich finde den Fehler auch nicht.
Hoffentlich könnt ihr mir da etwas weiter helfen :)

Code: Alles auswählen

program project1;
 
{$mode objfpc}{$H+}
{$DEFINE UseCThreads}
 
uses
  {$IFDEF UNIX}{$IFDEF UseCThreads}
  cthreads,
  cwstring, {$ENDIF}{$ENDIF}
  Interfaces, // this includes the LCL widgetset
  Forms, Unit1, Unit2, Unit3
  { you can add units after this };
 
{$R *.res}
 
begin
  Application.Title:='ChanginDestiny';
  //RequireDerivedFormResource := True;
  Application.Initialize;
  Application.CreateForm(TSetlist, Setlist);
  Application.CreateForm(TSong, Song);
  Application.CreateForm(TMetronom, Metronom);
  Application.Run;
end.


Code: Alles auswählen

procedure TMetronom.Timer1Timer(Sender: TObject);
var
  In1Index, Out1Index, LibsLoaded: integer;
  ordir: string;
begin
  ordir := application.Location;
  LibsLoaded := uos_LoadLib(
    PChar('/home/pi/fredvs-uos-78045ce/examples/lib/Linux/32bit/LibPortaudio-32.so'),
    PChar('/home/pi/fredvs-uos-78045ce/examples/lib/Linux/32bit/LibSndFile-32.so'),
    PChar('/home/pi/fredvs-uos-78045ce/examples/lib/Linux/32bit/LibMpg123-32.so'),
    PChar('/home/pi/fredvs-uos-78045ce/examples/lib/Linux/32bit/LibSoundTouch-32.so')
  );
  if LibsLoaded <> 0 then
  begin
    uos_CreatePlayer(1);
    In1Index := uos_AddFromFile(1, PChar('/home/pi/Lazarus/Metronom/Sound/High.wav'), -1, 0, -1);
    Out1Index := uos_AddIntoDevOut(1, -1, -1, uos_InputGetSampleRate(1, In1Index), -1, 0, -1);
    uos_CreatePlayer(2);
    In1Index := uos_AddFromFile(2, PChar('/home/pi/Lazarus/Metronom/Sound/Deep.wav'), -1, 0, -1);
    Out1Index := uos_AddIntoDevOut(2, -1, -1, uos_InputGetSampleRate(1, In1Index), -1, 0, -1);
    if Timer1.Tag=0 then
    begin
      Timer1.Interval:=t div beat;
      uos_Play(1);
      timer1.tag:=1;
      Exit;
    end;
  if timer1.tag=1 then
    begin
      uos_Play(2);
      timer1.tag:=2;
      Exit;
    end;
  if timer1.tag=2 then
    begin
      uos_Play(2);
      timer1.tag:=3;
      Exit;
    end;
  if timer1.tag=3 then
    begin
      uos_Play(2);
      timer1.tag:=0;
      Exit;
    end;
  end
  else
    ShowMessage('Libs not loaded');
end;     


Wie ihr seht sollen hier 2 verschiedene Audiodatein abgespielt werden.
Wundert euch dabei bitte nicht über die Befehle mit Timer1.Tag und so, das problem liegt nur an den Audios.

wenn ich versuche das programm zu starten läuft der Compiler.
Es wird jedoch angezeigt das Out1Index und ordir nicht verwendet werden und ich weis auch nicht wie ich diese verwenden soll.
wenn die Audios dann abgespielt werden sollen kommt die Meldung:

Project Project1 raised exception class 'External: SIGSEGV'.

Was bedeutet das und wie kann ich den Fehler beheben??

Danke schon mal für euer Interesse

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Probleme mit UOS

Beitrag von pluto »

Kopiere mal die Libs nach /lib/ oder /usr/lib/
Hast du mal geprüft ob LibsLoaded <> 0 ist?

PS: Such mal nach LibXINE oder LibVLC da gibt es schöne Pascal Versionen von...
MFG
Michael Springwald

Tanketorion
Beiträge: 25
Registriert: Mo 7. Apr 2014, 20:55

Re: Probleme mit UOS

Beitrag von Tanketorion »

Also ich habe den Quelltext von uos aus einem anderen Beitrag übernommen und da stand
if LibsLoaded = 0 then....

ich habe das so umgeschrieben, da bei mir dann immer die Fehlermeldung kam mit
ShowMessage('Libs not loaded');
Ich war der Meinung das dieses =0 ein Tipp bzw Denkfehler war, da der wert geladener Datein bestimmt nicht 0 ergibt


Ich habe auch versucht die datein in /lib bzw /usr/lib zu kopieren aber dazu fehlen mir leider die rechte

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Probleme mit UOS

Beitrag von pluto »

Ich war der Meinung das dieses =0 ein Tipp bzw Denkfehler war, da der wert geladener Datein bestimmt nicht 0 ergibt

Nein, dass war kein Denk Fehler. Wenn er die Dateien nicht laden kann ist der Wert ungleich 0.
Meine ich jedenfalls. Am besten gibst du dir mal den Wert aus.
Weil die Fehler die du hast, deuten darauf hin, dass die LIBs nicht geladen werden.
MFG
Michael Springwald

Tanketorion
Beiträge: 25
Registriert: Mo 7. Apr 2014, 20:55

Re: Probleme mit UOS

Beitrag von Tanketorion »

Ok dann werde ich das wieder ändern

Ich habe das gerade in einem anderen Forum gefunden....

you can only use software specifically compiled for the Pi (which uses an ARM processor).
Your question regarding 32/64 bits is only relevant when running a version of Linux on a machine with an Intel compatible processor (such as a typical PC).

könnte das ein Grund sein warum die datein nicht geladen werden??

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Probleme mit UOS

Beitrag von pluto »

Ja. Wenn die SO Datei im Falschen Format vorliegt, kann es auch nicht gehen.
MFG
Michael Springwald

Tanketorion
Beiträge: 25
Registriert: Mo 7. Apr 2014, 20:55

Re: Probleme mit UOS

Beitrag von Tanketorion »

Hat einer eine Idee was ich da machen kann?

Edit:
ICh bin mir jetzt auch zimlich sicher das es an den Lib's liegt :(

Tanketorion
Beiträge: 25
Registriert: Mo 7. Apr 2014, 20:55

Re: Probleme mit UOS

Beitrag von Tanketorion »

Denkt ihr so etwas könnte funktionieren??
es handelt sich bei mir ja auch nur um Einzeltöne...

Code: Alles auswählen

procedure fillSinus(freq: single; laenge: single);
var samples: array of smallint;
    i: integer;
begin
  setlength(samples, round(laenge*44000)); // laenge Sekunden lang den Ton abspielen, auch Kommawerte erlaubt
  for i:=0 to high(samples) do begin
    samples[i]:=round(30000*sin(i/44000*2*pi/freq));
  end;
  SoundLibrary_Upload_Data(@samples[0], length(samples), SoundLibrary_Format_16bit_signed, 44000); // durch spezifische Funktion ersetzen; 1. Parameter: Zeiger auf Daten; 2. Parameter: Anzahl Samples, 3. Parameter: Datenformat, 4. Parameter: Samplefrequenz
end;


ist aus Töne viewtopic.php?f=12&t=5738

creed steiger
Beiträge: 957
Registriert: Mo 11. Sep 2006, 22:56

Re: Probleme mit UOS

Beitrag von creed steiger »

Tanketorion hat geschrieben:Hat einer eine Idee was ich da machen kann?

Edit:
ICh bin mir jetzt auch zimlich sicher das es an den Lib's liegt :(


Wenn die libs nicht das sind, könne sie auch nicht geladen werden .........
rumkopieren ist Gemurkse, kannst du die libs nicht aus den Repos nachziehen?

Tanketorion
Beiträge: 25
Registriert: Mo 7. Apr 2014, 20:55

Re: Probleme mit UOS

Beitrag von Tanketorion »

was genau meinst du mit
"kannst du die libs nicht aus den Repos nachziehen?"

creed steiger
Beiträge: 957
Registriert: Mo 11. Sep 2006, 22:56

Re: Probleme mit UOS

Beitrag von creed steiger »

http://de.wikipedia.org/wiki/Repository

sowas z.B.
http://www.raspbian.org/RaspbianRepository

kommt halt auf dein Betriebssystem/dein Distro an

du hast doch bestimmt einen Paketmanager über den du Software nachinstallieren kannst?

Tanketorion
Beiträge: 25
Registriert: Mo 7. Apr 2014, 20:55

Re: Probleme mit UOS

Beitrag von Tanketorion »

Ich denke das bringt nichts.....
Ich habe den Quelltext jetzt mal unter Windeows ausprobiert und es läuft ohne Probleme....
daher wird es wohl an den Lib's liegen

pluto
Lazarusforum e. V.
Beiträge: 7178
Registriert: So 19. Nov 2006, 12:06
OS, Lazarus, FPC: Linux Mint 19.3
CPU-Target: AMD
Wohnort: Oldenburg(Oldenburg)

Re: Probleme mit UOS

Beitrag von pluto »

Es liegt bestimmt an der Art und weise wie du die Libs eingebunden hast.
War die Datei Endung immer .so? Sind sie wirklich im Linux Format?
Hast du die Dateien mal ins /lib Verzeichnis kopiert?
Normalerweise gibt man nur den Dateinamen an und kein Verzeichnis. Kann sein, dass das Windows anders handhabt.
Es gibt ja gewisse Unterschiede zwischen Linux und Windows.
Stimmt die Groß Kleinschreibung?
MFG
Michael Springwald

creed steiger
Beiträge: 957
Registriert: Mo 11. Sep 2006, 22:56

Re: Probleme mit UOS

Beitrag von creed steiger »

Tanketorion hat geschrieben:Ich denke das bringt nichts.....
Ich habe den Quelltext jetzt mal unter Windeows ausprobiert und es läuft ohne Probleme....
daher wird es wohl an den Lib's liegen


was bringt nichts?
Du hast vorher angedeutet das du irgendwelche x86 oder sonstwas verwendet haben könntest, das kann nicht gehen

wo sind die Bibliotheken den abgelegt, auf was verweisen die .so Dateien?
Normalerweise ist die .so nur ein Link auf xyz1.1.so um die Versionierung zu vereinheitlichen.
portaudio, mpg123 usw solltest du doch aus ganz einfach aus dem Repo ziehen können und dann passt alles.
Was ist den überhaupt für eine Distribution auf dem Pie?
Paketverwaltung hast du schon einmal benutzt?

creed steiger
Beiträge: 957
Registriert: Mo 11. Sep 2006, 22:56

Re: Probleme mit UOS

Beitrag von creed steiger »

Tanketorion hat geschrieben:Ich denke das bringt nichts.....
Ich habe den Quelltext jetzt mal unter Windeows ausprobiert und es läuft ohne Probleme....
daher wird es wohl an den Lib's liegen


was bringt nichts?
Du hast vorher angedeutet das du irgendwelche x86 oder sonstwas verwendet haben könntest, das kann nicht gehen

wo sind die Bibliotheken den abgelegt, auf was verweisen die .so Dateien?
Normalerweise ist die .so nur ein Link auf xyz1.1.so um die Versionierung zu vereinheitlichen.
portaudio, mpg123 usw solltest du doch aus ganz einfach aus dem Repo ziehen können und dann passt alles.
Was ist den überhaupt für eine Distribution auf dem Pie?
Paketverwaltung hast du schon einmal benutzt?

Antworten