Coder Social home page Coder Social logo

bucklespring's People

Contributors

3v1n0 avatar akbertram avatar alexanderwillner avatar anjandev avatar blinry avatar dankrank avatar ehaupt avatar jeroenknoops avatar jeromenerf avatar jwilk avatar mirabilos avatar natureshadow avatar nisker avatar petertonoli avatar rabin-io avatar returndanilo avatar rindeal avatar somini avatar ssgelm avatar tensorknower69 avatar tnagorra avatar vain avatar vkhv avatar zevv avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

bucklespring's Issues

Add support for kFreeBSD and hurd

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.

Do not issue a sound when an application is grabbing the keyboard

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).

MacOS instructions don't work

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.

Sound is distorted as soon as I start BuckleSpring

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)

Make a release

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)?

Bucklespring + (Lollypop) music playback = fuzzy sound

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.

Steps to reproduce:

  1. Play music through Lollypop
  2. Launch bucklespring and the fuzzing starts.
  3. The loudness of the fuzzing increases when typing. but there is also a noticable fuzzing when not typing and music is playing.

System sounds?

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

Broken on Catalina

 ~/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

Does not compile on Ubuntu 16.04 x64 + gcc version 5.4.0

As of commit ID:

  • a002853 (HEAD -> master, origin/master, origin/HEAD) Link win32 with -static-libgcc -static-libstdc++

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

this is the coolest project

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...

Won't compile properly on Bash on Ubuntu on Windows 10

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:

  • libopenal-dev
  • libalure-dev
  • libxtst-dev
  • make
  • pkg-config
  • gcc
  • build-essential
  • g++

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)

Mac support

Please, pretty please add Mac support! This should be easy-ish, I guess.

Error loading libdumb.so and libfluidsynth.so.1 on start

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?

Breakage with OpenAL 1.8

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.

Background- or comfort noise

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.

Doesn't make sounds in LibreOffice

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

[Sugestion] Add mouse click sound also

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.

Sound layouts?

Different sounds for different keyboard layouts?

And it is desirable to do this not the sounds themselves, but use tonal filters.

Fixing Bucklespring for Windows

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.

  • What is broken?
  • Any fixes you have in mind?
  • What all should I learn?
  • A little about the code you already wrote?

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

Win32 Installation RTFM?

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?

Crash on Windows 10

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)

Please add copyright note to README

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?

Randomize sounds

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?

Stop buckle sounds by app.

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?

Sound lag after player sound in another app

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.

The first press of a given key doesn’t play the right sound on a Mac.

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.

Lacks sound files for the numeric keypad and media keys

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

Missing files

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

4f-1.wav - failed to open file on Ubuntu 18.04

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:

image

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.

branch ogg?

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

Independent volume control for keys?

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.

Run bucklespring on Mac OS X

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.

What about a release?

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?

Problem: undefined references during compilation (Ubuntu)

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.

failed to create event tap

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?

Use gcc for linking

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.