DBDelve
Dive deep into your data. A fast, native, multi-engine database client written in Rust. Free and open source, no telemetry.
翻译准备中
Open-source Linux driver for the Creamware / Sonic Core Pulsar II DSP card: ALSA, PipeWire, SCOPE effects and mixers, modular rack GUI
翻译准备中
正在加载完整 README。
查看完整 README ↗English | Italiano
Pulsar Scope, the modular GUI. The meter levels and the notes were recorded on a real Pulsar II while the DSP synth was playing.
A Linux driver for the Creamware / Sonic Core Pulsar II DSP sound card (PCI 14b5:0600, 6× Analog Devices
SHARC ADSP-21065L). It was written by reverse engineering the Windows SCOPE 5.1 software: the kernel driver
scScope.sys and the Sim2k.dll library.
Project site: https://pulsar.faghy.it
This is an independent project. It is not affiliated with, endorsed by or supported by Sonic Core or Creamware. "Creamware", "Sonic Core", "Pulsar" and "SCOPE" are trademarks of their owners and are used here only to say which hardware the driver is for.
| Feature | Status |
|---|---|
| PCI detection, BAR0 mapping, IRQ | working |
Boot of the 6 DSPs (puls2os*.21k OS images) | working: every DSP answers |
| Internal audio clock at 44.1 kHz | working (measured: 44,095 samples/s) |
| 48 kHz | working (default, same as PipeWire) |
| External clock | implemented, not yet tested |
| DSP module loading (linker), analog outputs | working: test tone on outputs 1/2 |
| Playback from the PC (ALSA PCM, PipeWire) | working: "Pulsar2 Stereo" output |
| Recording from analog inputs 1/2 | working: "Pulsar2 Stereo" input |
Direct input → output monitoring, levels in alsamixer | working: "DSP Out", "Input Monitor" |
| Installation with automatic start-up (DKMS + systemd service) | working: the card starts by itself at boot |
pulsard daemon: DSP modules loaded and wired while the card runs (pulsarctl) | working |
| "Pulsar Scope" GUI (Qt): module library, drag & drop, cables, input sliders | working (first version) |
Projects: save/open (.pulsar), rack restored automatically after a reboot | working |
.deb package (DKMS driver, service, tools, GUI) | working |
SCOPE devices (.dev): 36 effects (EQ, filters, dynamics, distortion, phaser, flanger, chorus…) as one block with knobs in real units | working |
| SCOPE-style knobs (Hz, dB…) for devices and common modules, correct float/integer pad encoding | working |
| SCOPE factory mixers (DynamicMixer, MicroMixer, STM 1632, STM 16 S, STM 48 S) as one block: channels appear when their input is connected, channel-strip panel with faders, pan, mute (On/Muted), aux sends and per-channel input meters | working (DynamicMixer tested on the card) |
| GUI: drag the rack view with the mouse, zoom to the pointer, on-screen MIDI keyboard (mouse + computer keys), coloured DSP load | working |
| Delays and reverbs (PC-side delay lines in host RAM, new kernel ioctls) | working (Delay S tested on the card) |
Licensed "Effect Package" devices: unlocked by the card with your own SCOPE licence key file (sudo pulsar-import-dsp --license YOURSERIAL.v5) | working: 107 devices with a licence |
Factory presets (.pre): preset menu in the device panel, pulsarctl load_preset | working |
| PC MIDI in (ALSA sequencer client "Pulsar2 MIDI") + polyphonic test synth (4 voices) | working: notes and chords in tune |
| Factory synths (voice arrays), ADAT/S/PDIF/MIDI ports | to do |
As on Windows, the kernel driver only exposes the hardware; the DSPs are booted from userspace:
snd-pulsar.ko: kernel module. It detects the card and handles the IRQ. The hwdep device
/dev/snd/hwC<n>D0 allows mmap of BAR0 (4 MB). The ALSA PCM device is created once the DSP modules are
loaded (PULSAR_IOCTL_SET_ROUTE ioctl). ALSA mixer controls are backed by DSP module values.tools/pulsar_loader.py: card reset, DSP OS upload, start-up and clock configuration.tools/sc_decode.py: decoder for SCOPE DSP files (.21k/.dsp/.ol, scrambled Analog Devices COFF).tools/pulsar_modules.py: DSP module linker (relocation, upload, execution chain, connections).tools/scope_dev.py: decoder for SCOPE device files (.io/.dev/.mdl/.pro).tools/pulsard.py + tools/pulsarctl.py: daemon that owns the card after boot and accepts commands
(pulsarctl status, load, connect, set, unload) on the /run/pulsard.sock socket (group audio).tools/pulsar_scope.py: "Pulsar Scope" modular GUI (Qt/PySide6, any desktop): drag modules from the
library onto the rack, wire pads with the mouse, set input values, save and open projects (.pulsar).
Started from the applications menu. The current rack is also saved automatically and restored at boot.tools/scope_device.py: turns a SCOPE device (.dev) into an assembly plan: DSP modules, internal
wires, external ports, parameters with units and SCOPE curves (plan, survey, raw).tools/pulsar_values.py / tools/pulsar_widgets.py: pad value encoding (fixed 1.31, integer, float) and
the SCOPE-style knob used by Pulsar Scope.tools/sharc_dis.py: SHARC disassembler (port of MAME's sharc_dasm.cpp, BSD-3).docs/: reverse-engineering notes (register map, command protocol, boot sequence, clock, streaming).The DSP files belong to Sonic Core and are not distributed in this repository. You need the official
installer SONIC_CORE_SCOPE_PCI_v5.1.2709-x64_EN.exe and a valid licence. Extract it with innoextract into a
scope_full folder next to the repository:
innoextract -d ../scope_full SONIC_CORE_SCOPE_PCI_v5.1.2709-x64_EN.exe
Alternatively, point the PULSAR_DSP_DIR variable to its App/Dsp folder.
以上为 README 的开头部分。其余内容请阅读原文。 查看完整 README ↗