Lissajous Figures 1.2

    • Release
    • Open Source

    Es gibt 37 Antworten in diesem Thema. Der letzte Beitrag () ist von Artentus.

      So, ich wurde gestern leider von der Downtime unterbrochen, also erst jetzt.
      Die Version 1.1 ist draußen, Aufnahmegeräte sollten funktionieren, der Dialog behält die Einstellungen bei, die Laser ist dünner und mit dem Mausrad könnt ihr jetzt zoomen.
      Fehler beim Mikrofon:
      Spoiler anzeigen

      Brainfuck-Quellcode

      1. Informationen über das Aufrufen von JIT-Debuggen
      2. anstelle dieses Dialogfelds finden Sie am Ende dieser Meldung.
      3. ************** Ausnahmetext **************
      4. System.NotSupportedException: Not supported encoding.
      5. bei CSCore.DMO.MediaTypes.MediaTypeFromEncoding(AudioEncoding encoding)
      6. bei CSCore.DMO.MediaType.FromWaveFormat(WaveFormat waveFormat)
      7. bei CSCore.DSP.DmoResampler.InitCom(WaveFormat inputformat, WaveFormat outputformat)
      8. bei CSCore.DSP.DmoResampler..ctor(IWaveSource source, WaveFormat outputFormat)
      9. bei LissajousFigures.Form1.Start(InputSelectionForm inputDialog)
      10. bei LissajousFigures.Form1.selectInputButton_Click(Object sender, EventArgs e)
      11. bei System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
      12. bei System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
      13. bei System.Windows.Forms.Control.WndProc(Message& m)
      14. bei System.Windows.Forms.ButtonBase.WndProc(Message& m)
      15. bei System.Windows.Forms.Button.WndProc(Message& m)
      16. bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
      17. ************** Geladene Assemblys **************
      18. mscorlib
      19. Assembly-Version: 4.0.0.0.
      20. Win32-Version: 4.0.30319.18444 built by: FX451RTMGDR.
      21. CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/mscorlib.dll.
      22. ----------------------------------------
      23. LissajousFigures
      24. Assembly-Version: 1.1.0.0.
      25. Win32-Version: 1.1.0.0.
      26. CodeBase: file:///C:/Users/Fabian/AppData/Local/Temp/Rar$EXa0.267/LissajousFigures.exe.
      27. ----------------------------------------
      28. System.Windows.Forms
      29. Assembly-Version: 4.0.0.0.
      30. Win32-Version: 4.0.30319.18408 built by: FX451RTMGREL.
      31. CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll.
      32. ----------------------------------------
      33. System.Drawing
      34. Assembly-Version: 4.0.0.0.
      35. Win32-Version: 4.0.30319.18408 built by: FX451RTMGREL.
      36. CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll.
      37. ----------------------------------------
      38. System
      39. Assembly-Version: 4.0.0.0.
      40. Win32-Version: 4.0.30319.18408 built by: FX451RTMGREL.
      41. CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll.
      42. ----------------------------------------
      43. System.Core
      44. Assembly-Version: 4.0.0.0.
      45. Win32-Version: 4.0.30319.18408 built by: FX451RTMGREL.
      46. CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll.
      47. ----------------------------------------
      48. CSCore
      49. Assembly-Version: 0.9.2.0.
      50. Win32-Version: 0.9.2.0.
      51. CodeBase: file:///C:/Users/Fabian/AppData/Local/Temp/Rar$EXa0.267/CSCore.DLL.
      52. ----------------------------------------
      53. mscorlib.resources
      54. Assembly-Version: 4.0.0.0.
      55. Win32-Version: 4.0.30319.18408 built by: FX451RTMGREL.
      56. CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/mscorlib.resources/v4.0_4.0.0.0_de_b77a5c561934e089/mscorlib.resources.dll.
      57. ----------------------------------------
      58. System.Windows.Forms.resources
      59. Assembly-Version: 4.0.0.0.
      60. Win32-Version: 4.0.30319.18408 built by: FX451RTMGREL.
      61. CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.resources/v4.0_4.0.0.0_de_b77a5c561934e089/System.Windows.Forms.resources.dll.
      62. ----------------------------------------
      63. ************** JIT-Debuggen **************
      64. Um das JIT-Debuggen (Just-In-Time) zu aktivieren, muss in der
      65. Konfigurationsdatei der Anwendung oder des Computers
      66. (machine.config) der jitDebugging-Wert im Abschnitt system.windows.forms festgelegt werden.
      67. Die Anwendung muss mit aktiviertem Debuggen kompiliert werden.
      68. Zum Beispiel:
      69. <configuration>
      70. <system.windows.forms jitDebugging="true" />
      71. </configuration>
      72. Wenn das JIT-Debuggen aktiviert ist, werden alle Ausnahmefehler an den JIT-Debugger gesendet, der auf dem
      73. Computer registriert ist, und nicht in diesem Dialogfeld behandelt.


      Außerdem funktioniert das Zoomen nicht und leider sind Farben immer noch nicht auswählbar :/ .

      8-) faxe1008 8-)
      Fehler mit CSCore bitte immer an @thefiloe weiterleiten, ich kann da nicht helfen.
      Zoomen funktioniert zu 100%. Du bewegst den Cursor über die schwarze Fläche und drehst am Rad -> fertig.
      Wegen der Farbe, ich weiß nicht, finde ich bei sowas irgendwie ziemlich unwichtig.
      Keine Ahnung was ich "falsch" aber wenn ich scrolle passiert nichts.... Die Prozentzahl links oben ändert sich btw. auch nicht.

      Artentus schrieb:

      ich weiß nicht, finde ich bei sowas irgendwie ziemlich unwichtig.


      Naja ohne dir jetzt allzunahe treten zu wollen, ich sehe jetzt generell nicht den überragenden Sinn dahinter, ist halt ne nett gemachte Spielerei :D.

      8-) faxe1008 8-)
      Ach sieh mal an, das Scollen funktioniert nur, wenn man Scroll++ am laufen hat. :D Na immerhin tut das Programm, was es soll, war jetzt aber natürlich etwas ungünstig.
      Ich werd mich drum kümmern, aber erst, wenn sich thefiloe zu dem Encoding-Fehler gemeldet hat, sonst muss ich zweimal neu hochladen.
      Soweit ich weiß gar nicht.
      Der Fehler tritt ja an folgender Stelle auf:

      Quellcode

      1. resampler1 = new DmoResampler(source1, 44100);
      2. resampler2 = new DmoResampler(source2, 44100);


      Du kannst den aber so nicht durchschleifen. Da du einen Resampler verwendest, musst du schauen, wie du das richtige Format bekommst, Fakt ist, das die source nicht konvertiert werden.
      Da haut also was nicht mit dem Aufruf hin
      Liebe Grüße
      sothere
      Du kannst den Bug insofern umgehen, indem du die zweite Überladung des DmoResampler Konstruktors verwendest.
      Würde dann ca. so aussehen:
      Spoiler anzeigen

      Quellcode

      1. ​private void Start(InputSelectionForm inputDialog)
      2. {
      3. const int targetSampleRate = 44100;
      4. source1 = inputDialog.Input1;
      5. source2 = inputDialog.Input2;
      6. resampler1 = new DmoResampler(source1, PrepareFormatForResampler(source1.WaveFormat, targetSampleRate));
      7. resampler2 = new DmoResampler(source2, PrepareFormatForResampler(source2.WaveFormat, targetSampleRate));
      8. notificationSource1 = new NotificationSourceEx(resampler1);
      9. notificationSource1.Interval = 10;
      10. notificationSource2 = new NotificationSourceEx(resampler2);
      11. notificationSource2.Interval = 10;
      12. dataMerger1 = new PlotterDataMerger(notificationSource1);
      13. dataMerger1.DataMerged += DataMergedHandler1;
      14. dataMerger1.Start();
      15. dataMerger2 = new PlotterDataMerger(notificationSource2);
      16. dataMerger2.DataMerged += DataMergedHandler2;
      17. dataMerger2.Start();
      18. soundOut1 = new WasapiOut();
      19. soundOut1.Initialize(notificationSource1.ToWaveSource(16));
      20. soundOut2 = new WasapiOut();
      21. soundOut2.Initialize(notificationSource2.ToWaveSource(16));
      22. if (!inputDialog.PlayInput1) soundOut1.Volume = 0;
      23. if (!inputDialog.PlayInput2) soundOut2.Volume = 0;
      24. soundOut1.Play();
      25. soundOut2.Play();
      26. loopRunning = true;
      27. updateThread = new Thread(UpdateLoop);
      28. updateThread.IsBackground = true;
      29. updateThread.Start();
      30. }
      31. private WaveFormat PrepareFormatForResampler(WaveFormat sourceFormat, int targetSampleRate)
      32. {
      33. WaveFormat targetFormat;
      34. if (sourceFormat is WaveFormatExtensible)
      35. {
      36. var sf = sourceFormat as WaveFormatExtensible;
      37. targetFormat = new WaveFormatExtensible(targetSampleRate, sf.BitsPerSample, sf.Channels, sf.SubFormat, sf.ChannelMask);
      38. }
      39. else if (sourceFormat is WaveFormat)
      40. {
      41. targetFormat = new WaveFormat(targetSampleRate, sourceFormat.BitsPerSample, sourceFormat.Channels, sourceFormat.WaveFormatTag, 0);
      42. }
      43. else
      44. {
      45. throw new ArgumentException("Unknown WaveFormat", "sourceFormat");
      46. }
      47. return targetFormat;
      48. }


      Opensource Audio-Bibliothek auf github: KLICK, im Showroom oder auf NuGet.
      Auf jeden Fall eine ganz nette Spielerei, gefällt mir auf den ersten Blick ganz gut, auch wenn die zugrunde liegende Lib noch nicht ganz fehlerfrei ist.
      Und sowohl an Artentus, als auch an thefiloe großes Lob für die Umsetzung, scheint mir schon recht komplex zu sein.