Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
HardwareMixerProjekt
View unanswered posts
View posts from last 24 hours
View posts from last 7 days

 
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) Diskussionsforum
View previous topic :: View next topic  
Author Message
docdoc
n00b
n00b


Joined: 08 May 2008
Posts: 5

PostPosted: Thu May 08, 2008 6:25 pm    Post subject: HardwareMixerProjekt Reply with quote

Hallo Gentoo Gemeinde,

Ich ich habe eine etwas ungewöhnliche Idee. Mir schweb ein Mischpult auf Basis einer normalen Hauptplatine vor.
Gespickt mit 2 bis 4 Soundkarten je nach bedarf und Verfügung.
Haptidee dabei wäre die normalen Fader für die Kanäle durch optischen Sensoren von USB-Mäusen zu realisieren um die klassischen Verschleißerscheinungen zu vermeiden.
Evt. dann auch mit Erweiterungen wie z.B. Effekteinheiten Equilizer

Mich interessiert eure Einschätzung zu meiner Idee im Bezug auf Folgendes:
Grundsätzliche Realisierbarkeit?
Wäre gentoo geeignet?
Würdet ihr andere Distributionen empfehlen? Welche? Warum?
Sind ähnliche Projekte bekannt?
Wo liegen evt. Schwierigkeiten?
Lassen sich USB Mäuse "Zweckentfremden" / so umkonfigurieren dass direkt die Lautstärke eines Kanals gesteuert wird?

Und dann habe ich natürlich immer ein offenes Ohr für eure Ideen und Anregungen.

Jetzt bin ich mal gespannt was euch so einfällt!
Greez
Back to top
View user's profile Send private message
Finswimmer
Bodhisattva
Bodhisattva


Joined: 02 Sep 2004
Posts: 5467
Location: Langen (Hessen), Germany

PostPosted: Thu May 08, 2008 6:48 pm    Post subject: Reply with quote

Hi!

Willkommen im Forum.
Ich schieb deine Idee mal ins Diskussionforum.

Zum Thema: Wie meinst du das mit "Haptidee dabei wäre die normalen Fader für die Kanäle durch optischen Sensoren von USB-Mäusen zu realisieren um die klassischen Verschleißerscheinungen zu vermeiden. "
Was sind "Verschleißerscheinungen"?

Tobi

Moved from Deutsches Forum (German) to Diskussionsforum.
_________________
Bitte auf Rechtschreibung, korrekte Formatierung und Höflichkeit achten!
Danke
Back to top
View user's profile Send private message
docdoc
n00b
n00b


Joined: 08 May 2008
Posts: 5

PostPosted: Thu May 08, 2008 7:34 pm    Post subject: Reply with quote

Danke fürs Verschieben.
Bei handelsüblichen Mischpulten ist oft nach gewisser Zeit beim Verschieben der Regler ein Knacken auf dem entsprechenden Audiokanal zu hören. (Verschleiß / Abnutzung)
Dieses Knacken möchte ich unterbinden indem ich die optischen Sensoren von USB-Mäusen verwende um die Lautstärke der eingebauten Soundkarten zu kontrollieren.
Ich möchte also z.B. durch "nach-Oben-bewegen" der Maus (möglichst in Echtzeit) die Eingangslautstärke meiner Soundkarte erhöhen.
Das ganze dann mit 2 oder mehr Mäusen parallel. Für jeden Eingang eine Maussensor zur Steuerung der jeweiligen Eingangslautstärke.

Ich hoffe ich konnte meine Idee etwas genauer verdeutlichen.

docdoc
Back to top
View user's profile Send private message
Finswimmer
Bodhisattva
Bodhisattva


Joined: 02 Sep 2004
Posts: 5467
Location: Langen (Hessen), Germany

PostPosted: Thu May 08, 2008 7:49 pm    Post subject: Reply with quote

Ok. Was spricht gegen alsamixer?
_________________
Bitte auf Rechtschreibung, korrekte Formatierung und Höflichkeit achten!
Danke
Back to top
View user's profile Send private message
AmonAmarth
l33t
l33t


Joined: 03 Mar 2005
Posts: 727

PostPosted: Thu May 08, 2008 8:15 pm    Post subject: Reply with quote

man kann es auch bestimmt realisieren das die mausbewegungen irgendwelche JACK mischer bedienen. gerade weil du das thema echtzeit auf den plan bringst
Back to top
View user's profile Send private message
docdoc
n00b
n00b


Joined: 08 May 2008
Posts: 5

PostPosted: Thu May 08, 2008 8:27 pm    Post subject: Reply with quote

Gegen Alsamixer spricht nichts.
Meine Sorgen liegen viel mehr bei der Steuerung mit mehreren Mäusen und der Konfiguration einer Mausaxe auf einen bestimmten Eingangsregler einer Soundkarte,

Lässt sich also z.B. eine zusätzlich an einen Laptop angesteckte USB-Maus so konfigurieren dass sich nicht der Mauszeiger bewegt, sonder beim Bewegen der Main-Regler des Alsamixers gesteuert wird?

gute nacht
Back to top
View user's profile Send private message
manuels
Advocate
Advocate


Joined: 22 Nov 2003
Posts: 2146
Location: Europe

PostPosted: Fri May 09, 2008 8:34 am    Post subject: Reply with quote

Das geht im Prinzip schon. Du muesstest nur eine Software dafuer schreiben - X11 so umzukonfigurieren klappt glaub ich nicht.
_________________
Build your own live cd with catalyst 2.0!
Back to top
View user's profile Send private message
Freiburg
Guru
Guru


Joined: 19 Jun 2004
Posts: 504
Location: Freiburg

PostPosted: Fri May 09, 2008 6:38 pm    Post subject: Reply with quote

Also wenn du selber programmieren willst würde ich schauen das ich alte Joysticks zerlege und darüber die Kanäle steuere, sollte eigentlich reichen wenn du "normale" Regler nimmst und anstelle der alten Achsen mit einer Joystickplatine verbindest (ok die Spannungen und Wiederstand muss wohl angepasst werden). Danach brauchst du nurnoch eine Software die die richtige Axe auf den richtigen Kanal mapped, alernativ gibts bei Conrad oder so sicher fertige Platinen mit usb anschluss die analoge Eingänge haben, bei der Auflösung die Alsa in den Mixern bietet sollte ein 7bit A/D wandler ausreichen
Back to top
View user's profile Send private message
bell
Guru
Guru


Joined: 27 Nov 2007
Posts: 510

PostPosted: Fri May 09, 2008 7:29 pm    Post subject: Reply with quote

Im Prinzip braucht man folgendes:
1. Der X-Server darf nicht auf die zu verwendenden Mäuse reagieren. Das kann man in der xorg.conf einstellen. (Nur eine bestimmte Maus angeben, und nicht /dev/input/mice)

2. Maus auslesen. Das geht z.B. über evtest aus dem games-util/joystick Paket und "evdev"-Kernel Modul. Das ergibt folgendes:
Code:

 
 # evtest /dev/input/event2
Input driver version is 1.0.0
Input device ID: bus 0x3 vendor 0x5fe product 0x11 version 0x110
Input device name: "Wireless Mouse Wireless Mouse"
Supported events:
  Event type 0 (Sync)
  Event type 1 (Key)
    Event code 272 (LeftBtn)
    Event code 273 (RightBtn)
    Event code 274 (MiddleBtn)
    Event code 275 (SideBtn)
    Event code 276 (ExtraBtn)
  Event type 2 (Relative)
    Event code 0 (X)
    Event code 1 (Y)
    Event code 8 (Wheel)
  Event type 4 (Misc)
    Event code 4 (ScanCode)
Testing ... (interrupt to exit)
Event: time 1210360953.069137, type 2 (Relative), code 1 (Y), value 2
Event: time 1210360953.069141, -------------- Report Sync ------------
Event: time 1210360953.085137, type 2 (Relative), code 0 (X), value -2
Event: time 1210360953.085144, type 2 (Relative), code 1 (Y), value 5
Event: time 1210360953.085145, -------------- Report Sync ------------
Event: time 1210360953.101134, type 2 (Relative), code 0 (X), value -3
Event: time 1210360953.101137, type 2 (Relative), code 1 (Y), value 10
Event: time 1210360953.101138, -------------- Report Sync ------------
Event: time 1210360953.117135, type 2 (Relative), code 0 (X), value -4
Event: time 1210360953.117142, type 2 (Relative), code 1 (Y), value 11
[...]


3. Ein Alsa-Client, der Skriptfähig die Lautstärke ändern kann. Kenne ich jetzt spontan nicht.

4. Ein Skript, der 2 parst und 3 bedient.

Eine fertige Lösung habe ich leider nicht.

EDIT: Für 3 eignet sich amixer aus dem media-sound/alsa-utils Paket. Jetzt fehlt "nur" noch ein Skript.

EDIT2: Ich habe mit Bash etwas gespielt. Die Latenzzeiten sind nicht akzeptabel. Der Regler reagiert zu spät :( . Ich denke, mit C und den dazugehörigen Libs könnte man da mehr Erfolg haben. Würde mich auf jeden Fall interessieren :)
Back to top
View user's profile Send private message
docdoc
n00b
n00b


Joined: 08 May 2008
Posts: 5

PostPosted: Tue May 13, 2008 4:20 pm    Post subject: Reply with quote

So Hallo mal wieder.
ich hab mich mal schlau gemacht was das "kleine" Programm angeht und folgendes auf die Beine gestellt:

@bell: Meine C-Version hat den Vorteil dass sie theoretisch(noch nicht getestet) auch ohne X läuft!-> später kommt die GraKa raus.
Und ich denke das ganze wird etwas flotter und reagiert "Naturgetreuer".

Nehmt bissl Rücksicht, ich hab noch nicht viel Erfahrung mit c und es fehlen auch sämtliche Sicherheitsabfragen. Das ist quasi einfach mal zum testen. (ich übernehme natürlich keine Haftung für irgendwelche Schäden)

#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <sys/ioctl.h>
#include <fcntl.h>
#include <linux/soundcard.h>

int main()
{
int fd; /* file descriptor for mixer device */
int vol_master; /*variable für stereolautstärke*/
int left; /*variable für linkslautstärke*/
int right; /*variable für rechtslautstärke*/
char daten[4]; /*4 byte variable um das ps2 protokoll auszuwerten*/
int byte3; /*variable für das dritte byte des ps2 protokolls*/
int x=1; /*variable endlosschleife*/
FILE *datei; /*variable für /dev/input/mouse1*/

datei = fopen("/dev/input/mice", "r+b"); /*öffnen des maus dev files*/
fd = open("/dev/mixer", O_RDONLY); /*öffnen des mixer dev files*/
do{
fgets(daten, 4, datei); /*mausdaten aus dev/input/mouse1 holen (4 char/ 4 byte)*/

byte3=(int)daten[2]; /*drittes byte aus den eigelesenen mausdaten isolieren (y-achse)*/

// printf("%i", byte3);
// printf("\n");

ioctl(fd, MIXER_READ(SOUND_MIXER_VOLUME), &vol_master); /*abfrage der stereolautstärke*/
left = vol_master & 0xff; /*aufteilung in rechten und linken kanal*/
right = (vol_master & 0xff00) >> 8; /*aufteilung in rechten und linken kanal*/

if (byte3>0){ /*bei positiver mausbewegung (y-achse)*/
if( (left+byte3)<100 ){ /*wenn die mausbewegung die maximallautstärke*/
left=right=left+byte3; /*nicht überschreitet, mausstrecke zu lautstärke addieren*/
}//left+byte3)<100 ){
else{
left=right=100;
}//else
}//(byte3>0){

if (byte3<0){ /*entsprechendes für negative bewegung in y-richtung*/
if( (left+byte3)>0 ){
left=right=left+byte3;
}//left+byte3)>0 ){
else{
left=right=0;
}//else
}//(byte3<0){

vol_master = (right << 8) + left; /*linker und rechter kanal für übergabe zusammenfassen*/
ioctl(fd, MIXER_WRITE(SOUND_MIXER_VOLUME), &vol_master); /*setzen der neuen mixereinstellungen*/
}while(x!=2);

fclose (datei); /*maus dev-datei schließen*/
close(fd); /*mixer dev-datei schließen*/
return 0;
}



Wer Lust hat kann das gern mal durch den gcc lassen und sich freuen wenn die Lautstärke (Master) sich bei Bewegung ändert.

Zum ausführen werden rootrechte benötigt(wegen Zugriff auf die Gerätedateien in /dev/).

Ich denke ich werde in der Art weitermachen und mal schauen was das nächste größere Problem wird.
Empfindlichkeit?
Linearität?
mehrere Mäuse?

Was den Vorschlag mit dem Joystick betrifft: ich möchte optische Sensoren verwenden um den Verschleiß gering zu halten. Außerdem ist das Protokoll recht simpel und ich könnte evt. auch noch die Maustasten / Mausrad verwenden.

Schön mein Thema etwas Interesse geweckt hat.
Bis bald
Back to top
View user's profile Send private message
Max Steel
Advocate
Advocate


Joined: 12 Feb 2007
Posts: 2229
Location: My own world! I and Gentoo!

PostPosted: Wed May 14, 2008 12:31 am    Post subject: Reply with quote

würde es statt den root-rechten nicht reichen in den richtigen Gruppen (wie uucp,usb,etc.pp.) zu sein?

oder die rule für /dev/input/mouse so ändern das es zur Gruppe mouse gehört, und der User in der Gruppe mouse vorhanden ist. (muss ja nicht mouse sein, input als Gruppenname geht auch, passt sogar eher, wenn man alle /dev/input/* da rein schiebt.).


Edith:
Achja, das nächste mal soetwas bitte in [CODE]-Tags setzen, von wegen übersichtlichkeit und so, danke!
_________________
mfg
Steel
___________________

Heim-PC: AMD Ryzen 5950X, 64GB RAM, GTX 1080
Laptop: Intel Core i5-4300U, 16GB RAM, Intel Graphic
Arbeit-PC: Intel i5-1145G7, 16GB RAM, Intel Iris Xe Graphic (leider WSL2)
Back to top
View user's profile Send private message
docdoc
n00b
n00b


Joined: 08 May 2008
Posts: 5

PostPosted: Sat May 17, 2008 10:51 am    Post subject: Reply with quote

Ich kenn mich mit den Rechten noch nicht wirklich gut aus. Müsste aber gehen.

Ich bin auch noch etwas verwirrt da ich Beispielprogramme getestet hab, die praktischen den gleichen Code verwenden und ohne root-Rechte laufen.

Ich schau mir mal den Code nochmal genauer an.

Mittlerweile habe ich meinen Code erweitert und kann die Empfindlichkeit einstellen.

Was die Latenz angeht war ich positiv überrascht. Also durchaus akzeptabel. Da müsste aber bei mir auch am Kernel noch was gehen.

Problematisch und unschön ist momentan dass der Lautstärkeverlauf nicht linear und auch nur in 100 Schritten einstellbar ist(0-100%).
In der unteren Hälfte ist eine verhältnismäßig große Bewegung erforderlich um einen Lautstärkeunterschied zu hören.
Keine Ahnung ob das an meiner verwendeten Hardware liegt oder immer so ist.
Hierfür ist mir noch keine gute Lösung eingefallen.

Werd jetzt mal nach ner zweiten Soundkarte schauen um weitere Tests zu machen.
bis dann.
Back to top
View user's profile Send private message
rumpel
n00b
n00b


Joined: 05 Jul 2006
Posts: 2

PostPosted: Thu May 22, 2008 6:13 am    Post subject: Reply with quote

Das gnome-terminal reagiert auch auf das Scrollrad der Maus. (mal so nebenbei)
Back to top
View user's profile Send private message
artbody
Guru
Guru


Joined: 15 Sep 2006
Posts: 489
Location: LB

PostPosted: Wed Jun 11, 2008 10:59 am    Post subject: Reply with quote

also wenn du als normale Maus z.B. ne MSTECH ? nimmst wird diese per udev nach /dev/input/* eingebunden
wenn du dann
für die Reglermäuse eine bestimmte Logitech nimmst kannst du über die udevrules diese auf andere devices legen .....
x11 problem weg



:lol: touchscreen :lol:
_________________
Never give up
WM : E16 the true enlightenment
achim
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Deutsches Forum (German) Diskussionsforum All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum