zevv / bucklespring Goto Github PK
View Code? Open in Web Editor NEWNostalgia bucklespring keyboard sound
License: GNU General Public License v2.0
Nostalgia bucklespring keyboard sound
License: GNU General Public License v2.0
Once installed, I attempt to run ./buckle
which gives me the following message:
failed to create event tap
Unsure how to proceed.
In Debian, we found that bucklespring does not build on non-linux architectures because there is no code for the scan()
function there.
Adding support for these kernels would be nice.
The xterm manpage mentions this nice feature:
The xterm menu (see MENUS above) contains a Secure Keyboard entry
which, when enabled, attempts to ensure that all keyboard input is
directed only to xterm (using the GrabKeyboard protocol request). When
an application prompts you for a password (or other sensitive data),
you can enable Secure Keyboard using the menu, type in the data, and
then disable Secure Keyboard using the menu again.
· This ensures that you know which window is accepting your
keystrokes.
· It cannot ensure that there are no processes which have access to
your X display that might be observing the keystrokes as well.
The problem here is that bucklespring is “observing the keystrokes as well”. Maybe it can detect when another application on the same server uses “the GrabKeyboard protocol request” and, in that case, cease emitting sounds for its duration (maybe even play a toggle sound so the user knows the keyboard is now secured and unsecured, respectively).
This is an inital idea, I did not check yet whether this is actually doable within X11 (I don’t know X11 very well).
Your Mac OS instructions:
$ brew install alure pkg-config
$ make
$ sudo ./buckle
Line 1 does not put anything in the cwd, it installs something in /usr/local/Cellar/alure
.
There doesn't seem to be any sourcecode or Makefile there that would build a buckle
app for you.
please create one using:
https://github.com/gorlak/NoisyTyper/tree/master/bin/data
I installed bucklespring on my Ubuntu 16.04 desktop using sudo snap install bucklespring
and then I started bucklespring using bucklespring.buckle
Whenever I played sound while this program was running it was distorted and almost sounds like a screeching buckling sound. I experienced this distortion in Totem Video Player and Google Play Music.
Also, the buckling sound appears to lag by just enough that it is uncomfortable to type.
sudo snap install bucklespring
2017-06-14T07:29:44-07:00 INFO snap "core" has bad plugs or slots: core-support-plug (unknown interface)
bucklespring 1.4.0+git-snap2 from '3v1n0' installed
carsen@Sol:~$ bucklespring.buckle
ssfsdfsdfError opening audio file "/snap/bucklespring/23/wav/72-1.wav": Failed to open file
Error opening audio file "/snap/bucklespring/23/wav/72-0.wav": Failed to open file
Error opening audio file "/snap/bucklespring/23/wav/73-1.wav": Failed to open file
Error opening audio file "/snap/bucklespring/23/wav/73-0.wav": Failed to open file
^C
UPDATE:
I opened bucklespring a second time and was experiencing none of these issues. Including the Error opening audio file
before running the program a second time, the sound that is supposed to be played on keypress seemed to be either distorted or playing twice on top of itself (if that makes any sense)
I would like to package bucklespring for Debian.
It would be very helpful if we could get a stable (or beta) release tarball, or at least a version tag, for something that can be released as a working version. While simply packaging git master is kind of acceptable, it is far nicer to work with a real release.
Is the repo in a state that you'd call stable, or beta ready, right now? If so, would you be ready to give it a version number, and tag it (and probably provide a source tarball, but that would only be sugar on top)?
I suppose this is a leftover that could be removed
Line 81 in a889922
Issue: Constant fuzzing sound when using bucklespring and listening to music at the same time. Fuzzy sound stops when using killall buckle
Music player: Lollypop
I didn't try other music players.
OS: Ubuntu 18.04
Buckle was installed via snap.
I try to install bucklespring on Ubuntu 16.04, but it tells me that unable to locate bucklespring. I finally clone it to local machine, and make. But it may be a tiny problem. The program is great, thanks very much!
Maybe split PATH_WAVS
and PATH_AUDIO
in Makefile
?:
PATH_WAVS ?= ./wav
PATH_AUDIO ?= $(PATH_WAVS)
#= /usr/share/sounds/bucklespring
For test:
make
For system sounds:
make PATH_AUDIO=/usr/share/sounds/bucklespring
Not?
See also #82
~/bucklespring make Wed Nov 13 16:17:25 2019
cc -O3 -g -Wall -Werror -DVERSION=\"1.4.0\" -DPATH_AUDIO=\""./wav"\" -I/usr/local/Cellar/alure/1.2/include -c main.c -o main.o
main.c:155:16: error: 'alcGetString' is deprecated: first deprecated in macOS 10.15 - OpenAL is
deprecated in favor of AVAudioEngine [-Werror,-Wdeprecated-declarations]
opt_device = alcGetString(NULL, ALC_DEFAULT_DEVICE_SPECIFIER);
^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/OpenAL.framework/Headers/alc.h:236:38: note:
'alcGetString' has been explicitly marked deprecated here
ALC_API const ALCchar * ALC_APIENTRY alcGetString( ALCdevice *device, ALCenum param ) OPENAL...
^
main.c:160:11: error: 'alcOpenDevice' is deprecated: first deprecated in macOS 10.15 - OpenAL is
deprecated in favor of AVAudioEngine [-Werror,-Wdeprecated-declarations]
device = alcOpenDevice(opt_device);
^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/OpenAL.framework/Headers/alc.h:209:38: note:
'alcOpenDevice' has been explicitly marked deprecated here
ALC_API ALCdevice * ALC_APIENTRY alcOpenDevice( const ALCchar *devicename ) OPENAL_DEPRECATED;
^
main.c:167:12: error: 'alcCreateContext' is deprecated: first deprecated in macOS 10.15 - OpenAL is
deprecated in favor of AVAudioEngine [-Werror,-Wdeprecated-declarations]
context = alcCreateContext(device, NULL);
^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/OpenAL.framework/Headers/alc.h:191:38: note:
'alcCreateContext' has been explicitly marked deprecated here
ALC_API ALCcontext * ALC_APIENTRY alcCreateContext( ALCdevice *device, const ALCint* attr...
^
main.c:168:7: error: 'alcMakeContextCurrent' is deprecated: first deprecated in macOS 10.15 - OpenAL
is deprecated in favor of AVAudioEngine [-Werror,-Wdeprecated-declarations]
if (!alcMakeContextCurrent(context)) {
^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/OpenAL.framework/Headers/alc.h:193:38: note:
'alcMakeContextCurrent' has been explicitly marked deprecated here
ALC_API ALCboolean ALC_APIENTRY alcMakeContextCurrent( ALCcontext *context ) OPENAL_DEPRECATED;
^
main.c:172:2: error: 'alGetError' is deprecated: first deprecated in macOS 10.15 - OpenAL is
deprecated in favor of AVAudioEngine [-Werror,-Wdeprecated-declarations]
TEST_ERROR("make default context");
^
main.c:28:10: note: expanded from macro 'TEST_ERROR'
error = alGetError(); \
^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/OpenAL.framework/Headers/al.h:405:27: note:
'alGetError' has been explicitly marked deprecated here
AL_API ALenum AL_APIENTRY alGetError( void ) OPENAL_DEPRECATED;
^
main.c:174:2: error: 'alListener3f' is deprecated: first deprecated in macOS 10.15 - OpenAL is
deprecated in favor of AVAudioEngine [-Werror,-Wdeprecated-declarations]
alListener3f(AL_POSITION, 0, 0, 0);
^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/OpenAL.framework/Headers/al.h:438:25: note:
'alListener3f' has been explicitly marked deprecated here
AL_API void AL_APIENTRY alListener3f( ALenum param, ALfloat value1, ALfloat value2, ALfloat ...
^
main.c:175:2: error: 'alListener3f' is deprecated: first deprecated in macOS 10.15 - OpenAL is
deprecated in favor of AVAudioEngine [-Werror,-Wdeprecated-declarations]
alListener3f(AL_VELOCITY, 0, 0, 0);
^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/OpenAL.framework/Headers/al.h:438:25: note:
'alListener3f' has been explicitly marked deprecated here
AL_API void AL_APIENTRY alListener3f( ALenum param, ALfloat value1, ALfloat value2, ALfloat ...
^
main.c:176:2: error: 'alListenerfv' is deprecated: first deprecated in macOS 10.15 - OpenAL is
deprecated in favor of AVAudioEngine [-Werror,-Wdeprecated-declarations]
alListenerfv(AL_ORIENTATION, listenerOri);
^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/OpenAL.framework/Headers/al.h:440:25: note:
'alListenerfv' has been explicitly marked deprecated here
AL_API void AL_APIENTRY alListenerfv( ALenum param, const ALfloat* values ) OPENAL_DEPRECATED;
^
main.c:191:11: error: 'alcGetContextsDevice' is deprecated: first deprecated in macOS 10.15 - OpenAL
is deprecated in favor of AVAudioEngine [-Werror,-Wdeprecated-declarations]
device = alcGetContextsDevice(context);
^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/OpenAL.framework/Headers/alc.h:203:38: note:
'alcGetContextsDevice' has been explicitly marked deprecated here
ALC_API ALCdevice* ALC_APIENTRY alcGetContextsDevice( ALCcontext *context ) OPENAL_DEPRECATED;
^
main.c:192:2: error: 'alcMakeContextCurrent' is deprecated: first deprecated in macOS 10.15 - OpenAL
is deprecated in favor of AVAudioEngine [-Werror,-Wdeprecated-declarations]
alcMakeContextCurrent(NULL);
^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/OpenAL.framework/Headers/alc.h:193:38: note:
'alcMakeContextCurrent' has been explicitly marked deprecated here
ALC_API ALCboolean ALC_APIENTRY alcMakeContextCurrent( ALCcontext *context ) OPENAL_DEPRECATED;
^
main.c:193:14: error: 'alcDestroyContext' is deprecated: first deprecated in macOS 10.15 - OpenAL is
deprecated in favor of AVAudioEngine [-Werror,-Wdeprecated-declarations]
if(context) alcDestroyContext(context);
^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/OpenAL.framework/Headers/alc.h:199:38: note:
'alcDestroyContext' has been explicitly marked deprecated here
ALC_API void ALC_APIENTRY alcDestroyContext( ALCcontext *context ) OPENAL_DEPRECATED;
^
main.c:194:13: error: 'alcCloseDevice' is deprecated: first deprecated in macOS 10.15 - OpenAL is
deprecated in favor of AVAudioEngine [-Werror,-Wdeprecated-declarations]
if(device) alcCloseDevice(device);
^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/OpenAL.framework/Headers/alc.h:211:38: note:
'alcCloseDevice' has been explicitly marked deprecated here
ALC_API ALCboolean ALC_APIENTRY alcCloseDevice( ALCdevice *device ) OPENAL_DEPRECATED;
^
main.c:224:27: error: 'alcGetString' is deprecated: first deprecated in macOS 10.15 - OpenAL is
deprecated in favor of AVAudioEngine [-Werror,-Wdeprecated-declarations]
const ALCchar *devices = alcGetString(NULL, ALC_DEVICE_SPECIFIER);
^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/OpenAL.framework/Headers/alc.h:236:38: note:
'alcGetString' has been explicitly marked deprecated here
ALC_API const ALCchar * ALC_APIENTRY alcGetString( ALCdevice *device, ALCenum param ) OPENAL...
^
main.c:352:3: error: 'alGenSources' is deprecated: first deprecated in macOS 10.15 - OpenAL is
deprecated in favor of AVAudioEngine [-Werror,-Wdeprecated-declarations]
alGenSources((ALuint)1, &src[idx]);
^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/OpenAL.framework/Headers/al.h:498:25: note:
'alGenSources' has been explicitly marked deprecated here
AL_API void AL_APIENTRY alGenSources( ALsizei n, ALuint* sources ) OPENAL_DEPRECATED;
^
main.c:353:3: error: 'alGetError' is deprecated: first deprecated in macOS 10.15 - OpenAL is
deprecated in favor of AVAudioEngine [-Werror,-Wdeprecated-declarations]
TEST_ERROR("source generation");
^
main.c:28:10: note: expanded from macro 'TEST_ERROR'
error = alGetError(); \
^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/OpenAL.framework/Headers/al.h:405:27: note:
'alGetError' has been explicitly marked deprecated here
AL_API ALenum AL_APIENTRY alGetError( void ) OPENAL_DEPRECATED;
^
main.c:357:4: error: 'alSource3f' is deprecated: first deprecated in macOS 10.15 - OpenAL is
deprecated in favor of AVAudioEngine [-Werror,-Wdeprecated-declarations]
alSource3f(src[idx], AL_POSITION, -x, 0, (100 - opt_stereo_width) / 100.0);
^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/OpenAL.framework/Headers/al.h:511:25: note:
'alSource3f' has been explicitly marked deprecated here
AL_API void AL_APIENTRY alSource3f( ALuint sid, ALenum param, ALfloat value1, ALfloat value2...
^
main.c:359:3: error: 'alSourcef' is deprecated: first deprecated in macOS 10.15 - OpenAL is
deprecated in favor of AVAudioEngine [-Werror,-Wdeprecated-declarations]
alSourcef(src[idx], AL_GAIN, opt_gain / 100.0);
^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/OpenAL.framework/Headers/al.h:509:25: note:
'alSourcef' has been explicitly marked deprecated here
AL_API void AL_APIENTRY alSourcef( ALuint sid, ALenum param, ALfloat value ) OPENAL_DEPRECATED;
^
main.c:361:3: error: 'alSourcei' is deprecated: first deprecated in macOS 10.15 - OpenAL is
deprecated in favor of AVAudioEngine [-Werror,-Wdeprecated-declarations]
alSourcei(src[idx], AL_BUFFER, buf[idx]);
^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/OpenAL.framework/Headers/al.h:515:25: note:
'alSourcei' has been explicitly marked deprecated here
AL_API void AL_APIENTRY alSourcei( ALuint sid, ALenum param, ALint value ) OPENAL_DEPRECATED;
^
main.c:362:3: error: 'alGetError' is deprecated: first deprecated in macOS 10.15 - OpenAL is
deprecated in favor of AVAudioEngine [-Werror,-Wdeprecated-declarations]
TEST_ERROR("buffer binding");
^
main.c:28:10: note: expanded from macro 'TEST_ERROR'
error = alGetError(); \
^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/OpenAL.framework/Headers/al.h:405:27: note:
'alGetError' has been explicitly marked deprecated here
AL_API ALenum AL_APIENTRY alGetError( void ) OPENAL_DEPRECATED;
^
fatal error: too many errors emitted, stopping now [-ferror-limit=]
20 errors generated.
make: *** [main.o] Error 1
! ~/bucklespring 129ms Wed Nov 13 16:17:26 2019
As of commit ID:
Just tried to follow the instructions in the readme and compile it but, make failed:
❯ make
g++ -g -lalure -lopenal -lXtst -lX11 -o buckle main.o scan-linux.o scan-windows.o
main.o: In function `play':
/tmp/bucklespring/main.c:255: undefined reference to `alSourcePlay'
/tmp/bucklespring/main.c:256: undefined reference to `alGetError'
/tmp/bucklespring/main.c:235: undefined reference to `alureCreateBufferFromFile'
/tmp/bucklespring/main.c:242: undefined reference to `alGenSources'
/tmp/bucklespring/main.c:243: undefined reference to `alGetError'
/tmp/bucklespring/main.c:246: undefined reference to `alSource3f'
/tmp/bucklespring/main.c:247: undefined reference to `alSourcef'
/tmp/bucklespring/main.c:249: undefined reference to `alSourcei'
/tmp/bucklespring/main.c:250: undefined reference to `alGetError'
/tmp/bucklespring/main.c:237: undefined reference to `alureGetErrorString'
main.o: In function `list_devices':
/tmp/bucklespring/main.c:159: undefined reference to `alcGetString'
main.o: In function `main':
/tmp/bucklespring/main.c:109: undefined reference to `alcOpenDevice'
/tmp/bucklespring/main.c:116: undefined reference to `alcCreateContext'
/tmp/bucklespring/main.c:117: undefined reference to `alcMakeContextCurrent'
/tmp/bucklespring/main.c:121: undefined reference to `alGetError'
/tmp/bucklespring/main.c:123: undefined reference to `alListener3f'
/tmp/bucklespring/main.c:124: undefined reference to `alListener3f'
/tmp/bucklespring/main.c:125: undefined reference to `alListenerfv'
/tmp/bucklespring/main.c:130: undefined reference to `alcGetContextsDevice'
/tmp/bucklespring/main.c:131: undefined reference to `alcMakeContextCurrent'
/tmp/bucklespring/main.c:132: undefined reference to `alcDestroyContext'
/tmp/bucklespring/main.c:133: undefined reference to `alcCloseDevice'
/tmp/bucklespring/main.c:130: undefined reference to `alcGetContextsDevice'
/tmp/bucklespring/main.c:131: undefined reference to `alcMakeContextCurrent'
/tmp/bucklespring/main.c:104: undefined reference to `alcGetString'
scan-linux.o: In function `scan':
/tmp/bucklespring/scan-linux.c:23: undefined reference to `XOpenDisplay'
/tmp/bucklespring/scan-linux.c:29: undefined reference to `XRecordAllocRange'
/tmp/bucklespring/scan-linux.c:39: undefined reference to `XRecordCreateContext'
/tmp/bucklespring/scan-linux.c:45: undefined reference to `XFree'
/tmp/bucklespring/scan-linux.c:47: undefined reference to `XRecordEnableContext'
scan-linux.o: In function `key_pressed_cb':
/tmp/bucklespring/scan-linux.c:87: undefined reference to `XRecordFreeData'
/tmp/bucklespring/scan-linux.c:87: undefined reference to `XRecordFreeData'
collect2: error: ld returned 1 exit status
Makefile:31: recipe for target 'buckle' failed
make: *** [buckle] Error 1
OS:
Ubuntu 16.04.1 LTS x64
GCC:
❯ g++ -v
Using built-in specs.
COLLECT_GCC=g++
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu 5.4.0-6ubuntu1~16.04.2' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --with-system-zlib --disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo --with-java-home=/usr/lib/jvm/java-1.5.0-gcj-5-amd64/jre --enable-java-home --with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-5-amd64 --with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-5-amd64 --with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.2)
Libraries:
❯ sudo aptitude show libopenal-dev libalure-dev libxtst-dev
Package: libopenal-dev
State: installed
Automatically installed: no
Multi-Arch: same
Version: 1:1.16.0-3
Priority: optional
Section: universe/libdevel
Maintainer: Ubuntu Developers <[email protected]>
Architecture: amd64
Uncompressed Size: 181 k
Depends: libopenal1 (= 1:1.16.0-3)
Breaks: libopenal-dev:i386 (!= 1:1.16.0-3)
Replaces: libopenal-dev:i386 (< 1:1.16.0-3)
Description: Software implementation of the OpenAL audio API (development files)
OpenAL, the Open Audio Library, is a joint effort to create an open, vendor-neutral, cross-platform API for interactive, primarily spatialized audio. OpenAL's primary audience are application developers and desktop users that rely on
portable standards like OpenGL, for games and other multimedia applications.
This package contains the files necessary for development with OpenAL .
Homepage: http://kcat.strangesoft.net/openal.html
Package: libalure-dev
State: installed
Automatically installed: no
Multi-Arch: same
Version: 1.2-6
Priority: optional
Section: universe/libdevel
Maintainer: Ubuntu Developers <[email protected]>
Architecture: amd64
Uncompressed Size: 430 k
Depends: libopenal-dev, libalure1 (= 1.2-6)
Suggests: alure-doc
Breaks: libalure-dev:i386 (!= 1.2-6)
Replaces: libalure-dev:i386 (< 1.2-6)
Description: AL Utilities REtooled (development files)
ALURE is a utility library to help manage common tasks with OpenAL applications. This includes device enumeration and initialization, file loading, and streaming.
The purpose of this library is to provide pre-made functionality that would otherwise be repetitive or difficult to (re)code for various projects and platforms, such as loading a sound file into an OpenAL buffer and streaming an audio
file through a buffer queue. Support for different formats is consistant across platforms, so no special checks are needed when loading files, and all formats are handled through the same API.
Currently ALURE includes a basic .wav and .aif file reader, and can leverage external libraries such as libSndFile (for extended wave formats and several others), VorbisFile (for Ogg Vorbis), and FLAC (for FLAC and Ogg FLAC), and others.
External libraries can also be dynamically loaded at run-time, or individually disabled outright at compile time.
This package contains the files necessary for development.
Homepage: http://kcat.strangesoft.net/alure.html
Package: libxtst-dev
State: installed
Automatically installed: no
Multi-Arch: same
Version: 2:1.2.2-1
Priority: optional
Section: libdevel
Maintainer: Ubuntu Developers <[email protected]>
Architecture: amd64
Uncompressed Size: 103 k
Depends: libxtst6 (= 2:1.2.2-1), libx11-dev, libxext-dev, libxi-dev, x11proto-xext-dev (>= 7.0.99.3), x11proto-record-dev (>= 1.13.99.1)
Breaks: libxtst-dev:i386 (!= 2:1.2.2-1)
Replaces: x11proto-record-dev (< 1.13.99.1), x11proto-xext-dev (< 7.0.99.3), x11proto-xext-dev:i386 (< 7.0.99.3), x11proto-record-dev:i386 (< 1.13.99.1), libxtst-dev:i386 (< 2:1.2.2-1)
Description: X11 Record extension library (development headers)
libXtst provides an X Window System client interface to the Record extension to the X protocol.
The Record extension allows X clients to synthesise input events, which is useful for automated testing.
This package contains the development headers for the library found in libxtst6. Non-developers likely have little use for this package.
More information about X.Org can be found at: <URL:http://www.X.org>
This module can be found at git://anongit.freedesktop.org/git/xorg/lib/libXtst
While I use a real model m to share the joys of a shared office... this is by far the best candidate for an IG Nobel prize in Computer Science... if would exist...
Since the win32 version doesn't work, I thought I'd try it on Windows 10's spiffy new bash shell, but after getting the packages:
I receive the following error:
Assertion 'pthread_mutex_unlock(&m->mutex) == 0' failed at pulsecore/mutex-posix.c:108, function pa_mutex_unlock(). Aborting.
Aborted (core dumped)
Please, pretty please add Mac support! This should be easy-ish, I guess.
On ubuntu 16.04 LTS the package is nowhere to be found, do we need a ppa?
This was brought to my attention by a user of the bucklespring-git AUR package. When dumb and fluidsynth are not installed, you're getting these warning when starting the program:
Error loading libdumb.so: libdumb.so: cannot open shared object file: No such file or directory
Error loading libfluidsynth.so.1: libfluidsynth.so.1: cannot open shared object file: No such file or directory
It works just as fine, anyhow. Can you think of why this happens?
First of all, thanks for creating this. I still start buckle on every boot, but muted, so that I can impress people on a touch of a button.
I'm using Arch Linux and a few days ago OpenAL was updated to version 1.18. Suddenly, buckle stops playing sounds and just keeps allocating memory forever and brings the entire computer to a halt.
I used the -vvv
argument but no logs were printed from the moment it was supposed to play sounds.
Just a note to self:
Another option I'd like to implement is the addition of comfort noise: a continuous hiss in the background when no keys are pressed. This will mask the starting and stopping of the samples - which also contain background noise - much less obvious.
This noise will be simple the recording of the 'silence' in the studio where the samples are recorder.
I enjoy the sounds a lot, but where I type most of the time, it doesn't make a sound! Sounds heard on all other programs.
Debian 10 BUSTER
Kernel: x86_64 Linux 4.19.0-9-amd64
DE: GNOME
WM: GNOME Shell
Intel Core i5-3320M
I liked Bucklespring so much that I'd also like to have click noises for the mouse button clicks. Specially while using the touchpad it would be very useful.
Different sounds for different keyboard layouts?
And it is desirable to do this not the sounds themselves, but use tonal filters.
Hi @zevv, First of all, I love Bucklesping and I am willing to try and fix it for Windows. Like you I too, don't know much about Windows and its development. All my development goes on Linux too. So if you can help me get started then I can probably get it fixed.
Also, I have taken this on as a project at my college so if this doesn't work out. I might find another way of making the same thing and packaging it in .exe
Not sure if I am misinterpreting your instructions or the windows build just isn't suppose to work?
How do I build/install on win?
It's great program, I love it.
So if I want it to play piano music notes, so I can distinguish the key clicks clearly by my ear, how to do it?
Thanks!
There is a simple opus decoder:
https://github.com/deltabeard/trivial_opus_dec
Decodes the opus to raw.
Is there any way to combine it with libalure1 + libopenal1?
The program crashes as soon as you press any key on the keyboard.
Log from the console:
Opening OpenAL audio device "Generic Software"
vkCode=68 scanCode=32 flags=0 time=347515
scancode 32/0x20
Loading audio file "./wav/20-1.wav"
And then just "buckle.exe has stopped working".
Using Windows 10, 64-bit (version 1607, OS build 14393.51)
While a copyright note in every source file is nice, but not strictly necessary, it was found that there is no copyright note anywhere in the project.
Could you jsut add a short note like "Copyright 2016 Ico Doornekamp" to README.md?
This is the one feature which would make bucklespring perfect in my eyes, I think I already suggested it some time ago over another channel.
When tapping the same key repeatedly, for example Return or Backspace, it becomes apparent that it's always the same sound. A tiny variation in pitch, or a small lowpass filter with varying cutoff frequency would probably improve this. @zevv, I think you said you tried that once, and didn't like it? Any other ideas on how to avoid the repeating sound?
Similar to the conf files for compositors, I guess. I know Compton can be activated or changed based on the application name or window class.
So if a certain application is in focus, Bucklespring remains silent. For example, I have found it a bit troublesome to tap SCRL LCK when going to Kodi (which already has its own sounds) and tap again when I go back to another application.
Not sure if it is do-able or not, just would be nice. It's a great fun application, I love it. I cannot afford to "spring" for an old school mechanical keyboard, so this gives me the next best thing.
See what I did there?
Hi, I am using bucklespring 1.4.0 on Ubuntu and here is my ~/.alsoftrc
file:
period_size = 32
periods = 4
# for headphones.
hrtf = true
I run bucklespring in a terminal window and, initially, there is almost no lag in the sound, it feels quite realistic. But then after a few minutes the sounds get delayed a bit, and there is perhaps a small delay (small, but noticeable) between key press and sound, which doesn't sound/feel as good.
Any idea why this happens and/or how I can ensure that the lag is minimal? Note that if the solution involves building it from source then I can do that if necessary.
Just installed this on a new Mac OS Sierra, on a new Touch Bar MacBook pro.
When I press an alphanumeric key for the first time, I hear the appropriate background noise, but not the main “click” component of the sound. If I press the same key again quickly, I get the expected clicky sound.
Arrow keys seem to exhibit the right behaviour.
I tried all the alternative options available in ~/.alsoftrc
, but nothing helped.
I get lots of these errors while using the numeric keypad:
Error opening audio file "./wav/90-1.wav": Failed to open file
Error opening audio file "./wav/90-0.wav": Failed to open file
Error opening audio file "./wav/ab-1.wav": Failed to open file
Error opening audio file "./wav/ab-0.wav": Failed to open file
Error opening audio file "./wav/a6-1.wav": Failed to open file
Error opening audio file "./wav/a6-0.wav": Failed to open file
Error opening audio file "./wav/a5-1.wav": Failed to open file
Error opening audio file "./wav/a5-0.wav": Failed to open file
Error opening audio file "./wav/7f-1.wav": Failed to open file
Error opening audio file "./wav/7f-0.wav": Failed to open file
Error opening audio file "./wav/56-1.wav": Failed to open file
Error opening audio file "./wav/56-0.wav": Failed to open file
This should be added to readme.md.
The source that solved the problem for me.
Just created a package for Fedora @ https://copr.fedorainfracloud.org/coprs/rabiny/bucklespring/
the spec file can be found here https://gist.github.com/rabin-io/5398f59fab2faaf150a97d53876269b4
there is a small "patch" in it to add the install option for make.
and currently i install the package to /usr/local
maybe you can add configure
and make install
?
Is this normal? Is there some active waiting involved? Is there possibly a way around it? Thanks! :)
Hi,
Firstly, thanks a million for Bucklespring. I have been looking for exactly this functionality for the past 14 years and finally found it.
I installed Buckle 1.4.0 on Ubuntu 18.04 from the standard Ubuntu repositories. In an effort to reduce the volume level of the keyboard sounds (I frequently listen to podcasts while working on the PC) I experimented by starting buckle (the name of bucklespring in Ubuntu) with this command:
buckle -g 20
While I cannot determine if any keyboard clicks are missing, this message appears on the terminal:
Listing that directory in a terminal, the file 4f-1.wav does indeed not exist.
It is also possible that this is an error specific to the Ubuntu package for Bucklespring.
Thanks in advance.
Maybe return wav files in branch? And modify Makefile:
...
PATH_WAVS ?= ./wav
PATH_OGGS ?= ./ogg
PATH_AUDIO ?= $(PATH_OGGS)
#= /usr/share/sounds/bucklespring
OGG_ENC ?= oggenc -Q -q 1
...
STRIP = $(CROSS)strip
TEST = test
MKDIR = mkdir -p
WAV_FILES = $(wildcard $(PATH_WAVS)/*.wav)
OGG_FILES = $(WAV_FILES:$(PATH_WAVS)/%.wav=$(PATH_OGGS)/%.ogg)
...
$(BIN): $(OBJS) $(PATH_OGGS) $(OGG_FILES)
$(CCLD) $(LDFLAGS) -o $@ $(OBJS) $(LIBS)
$(PATH_OGGS)/%.ogg: $(PATH_WAVS)/%.wav
$(OGG_ENC) -o $@ $<
$(PATH_OGGS):
$(TEST) -d $@ || $(MKDIR) $@
dist:
...
clean:
$(RM) $(OBJS) $(BIN) core rec
$(RM) -fr $(PATH_OGGS)
...
See also #74
Bucklespring is an amazing tool! It simply makes me want to type more and helps enormously with long English assignments :-)
One suggestion though. Only a minor one. I think some sort of GUI volume adjustment for the keys independent of the volume for the rest of the system would be brilliant. There are times when, you might be typing and listening to music or watching a video and the sound of the keys becomes simply too much as increasing the system volume also increases the key sounds; to the point where it becomes unrealistic because the keys are so loud in comparison to the other sounds.
The README.md says:
"[…] You need superuser privileges to create the event tap […]"
which works fine:
$ sudo ./buckle
I can't seem to get the second option to work, though: ("[…] unless accessibility is enabled. To do so, select the 'Enable access for assistive devices' checkbox in the Universal Access system preference pane."). That setting doesn't seem to be available in OS X 10.11.
I think a new release with the changes by @mirabilos would be a good idea.
What about calling it 1.4 now, as it has a quite relevant new feature?
Building from the git codebase on Ubuntu 14.04 gives me:
bucklespring> sudo apt-get install libopenal-dev libalure-dev libxtst-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
libxtst-dev is already the newest version.
libalure-dev is already the newest version.
libopenal-dev is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 188 not upgraded.
bucklespring> make
g++ -g -lalure -lopenal -lXtst -lX11 -o buckle main.o scan-linux.o scan-windows.o
main.o: In function `play':
/home/ph/temp/bucklespring/main.c:255: undefined reference to `alSourcePlay'
/home/ph/temp/bucklespring/main.c:256: undefined reference to `alGetError'
/home/ph/temp/bucklespring/main.c:235: undefined reference to `alureCreateBufferFromFile'
/home/ph/temp/bucklespring/main.c:242: undefined reference to `alGenSources'
/home/ph/temp/bucklespring/main.c:243: undefined reference to `alGetError'
/home/ph/temp/bucklespring/main.c:246: undefined reference to `alSource3f'
/home/ph/temp/bucklespring/main.c:247: undefined reference to `alSourcef'
/home/ph/temp/bucklespring/main.c:249: undefined reference to `alSourcei'
/home/ph/temp/bucklespring/main.c:250: undefined reference to `alGetError'
/home/ph/temp/bucklespring/main.c:237: undefined reference to `alureGetErrorString'
... etc.
I get this when I run on Mac OSX Sierra:
sudo ./buckle
failed to create event tap
AL lib: (EE) alc_cleanup: 1 device not closed
What can be done?
While packaging for Debian, I noticed that g«« is used for linking the buckle binary.
Why is this so? I simply replaced it with gcc, and it works.
The problem with g«« is that it automatically links with libstdc««, which buckle does not use, and thats adds an unnecessary dependency.
If there is no good reason to use g««, please link with gcc instead.
Needs .wav files for the numeric keypad keycodes. I'd sample them myself if I had a model M to do it. :)
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.