Yamaha CS1X synthesizer

Discuss your workplace, instruments, amps, and any other gear.

Moderators: MattKingUSA, khz

Post Reply
vincent
Established Member
Posts: 17
Joined: Sun Apr 28, 2013 10:38 am

Yamaha CS1X synthesizer

Post by vincent »

Hi, this is my first post on LinuxMusicans. It is probably near 15 years since the last time I made some music with my synthesizer and my PC (Cubase under Windows 98 ?) and I would like to begin again. But I am using Linux for more than 8 years.

I have an old Yamaha CS1X synthesizer (1997 ?) which I tried without success to link to a PC with Ubuntu 13.04 and an old soundcard with a midi interface. I tried a lot of things with lmms, muse, jack, gmidimonitor. But from gmidimonitor I saw that nothing was received from the CS1X.

Anyway I plan to use another more recent PC without soundcard (and so without midi interface). On the following post (http://www.linuxmusicians.com/viewtopic.php?f=6&t=10561), I found interesting informations about M-Audio MidiSport Midi/USB interfaces. And Ubuntu 13.04 still have the midisport-firmware.

But before buying a MidiSport, I have some questions:
- Has anyone already tried to connect a Yamaha CS1X to Linux ? And to Ubuntu ? Using Midisport or another interface ?
- If I just want to use softwares like lmms or muse with my CS1X, is there something special to configure before ? (launch a Jack server for example ? I am a great beginner with all that stuff...)

Thank you for your help
Vincent

User avatar
khz
Established Member
Posts: 1260
Joined: Thu Apr 17, 2008 6:29 am
Location: German

Re: Yamaha CS1X synthesizer

Post by khz »

FZ - Does humor belongs in Music?
GNU/LINUX@AUDIO ~ /Wiki $ Howto.Info && GNU/Linux Debian installing >> Linux Audio Workstation LAW
  • I don't care about the freedom of speech because I have nothing to say.

Shadow_7
Established Member
Posts: 169
Joined: Tue Jun 08, 2010 3:35 pm

Re: Yamaha CS1X synthesizer

Post by Shadow_7 »

I have a midisport device. It doesn't seem to fall into the usual firmware setup (vender:device == 0x0763:0x0150), but it still seems to work. And seems to work the same in windows, the USB led just slowly blinks like a dying cylon. The edirol midi input device is probably a better option. As in less linux hassles and known to work out of the box. In qmidiroute my m-audio uno seems to output extraneous stuff. And when I tried to use it one rehearsal it had a high lantecy, which may have been the uno or the midi device connected to it.

It gets a little tricky in qjackctl in terms of audio routing. But it does work. Although for sanity reasons I was using qmidiroute to pass along desired events only to qmidiroute so I could monitor those events on the 2nd instance of qmidiroute. And from there to the software synth or recording application. Try setting it up with a virtual keyboard first and then change the connections from the virtual keyboard to the midi coming from the actual keyboard.

$ vkeybd --device alsa --channel 0 --drum 9 --octave 8 key /usr/share/vkeybd/vkeybd.list

In typical programmer fashion it counts from 0, so drum channel 10 is actually 9. But that's what I use for a virtual keyboard since it's slim enough on the screen realestate and big enough to provide the full spectrum. I do change the default key value from 24 to 12 after vkeybd launches with View->Key/Velocity and then the slider for key. This shifts it an octave so the virtual keyboard plays nicer with the soundfont(s) I tend to use.

Hope this helps.

vincent
Established Member
Posts: 17
Joined: Sun Apr 28, 2013 10:38 am

Re: Yamaha CS1X synthesizer

Post by vincent »

khz wrote: Have you connect audio && midi @ qjackctl?
Thank you for your post, khz. When i launch qjackctl on my old PC, there is nothing in the MIDI tab, although my CS1X is linked to the Ensoniq ES1371 soundcard. Except "MIDI Monitor" when I launch gmidimonitor to monitor the MIDI events.

I also have an ALSA tab:
jack.jpg
I tried to connect MIDI through and Ensoniq, but nothing happens.
You do not have the required permissions to view the files attached to this post.

vincent
Established Member
Posts: 17
Joined: Sun Apr 28, 2013 10:38 am

Re: Yamaha CS1X synthesizer

Post by vincent »

Shadow_7 wrote: Try setting it up with a virtual keyboard first and then change the connections from the virtual keyboard to the midi coming from the actual keyboard.

$ vkeybd --device alsa --channel 0 --drum 9 --octave 8 key /usr/share/vkeybd/vkeybd.list
I have installed and launched vkeybd, and I saw it in the ALSA tab of qjackctl (not in the MIDI tab). I tried to connect it to the other devices, but nothing happens. No midi events in the gmidimonitor.

Note that when I type the following command I saw my soundcard:

Code: Select all

$ amidi -l
Dir Device Name
IO hw:0,0 ES1371

But with the command:

Code: Select all

amidi -p hw:0,0 --dump
there is no event detected, as with gmidimonitor.

Thank you for your help Shadow_7. I think I will look for an USB/MIDI interface.

Shadow_7
Established Member
Posts: 169
Joined: Tue Jun 08, 2010 3:35 pm

Re: Yamaha CS1X synthesizer

Post by Shadow_7 »

My midi tab is generally empty. Mostly the audio tab to connect the applications to the speakers / audio out. And the alsa tab for connecting midi devices / applications. Probably because alsa is the midi sequencer driver support for cards that have no native midi capabilities. You might try using qmidiroute to monitor midi events. That's what I use when I want to monitor what's being sent. Although you have to configure qmidiroute after startup to get it going.

It could be that not all the modules for alsa are being loaded with regards to midi (snd-seq). Or your kernel / alsa version wasn't compiled for sequencer (midi) support. --with-sequencer=yes is not a default option if you compile alsa from sources (or at least wasn't last time I used sources). Via old school before alsa was actually included with kernel sources. Not all distros are that up on their audio support. It's not as bad as it used to be. I don't have to recompile alsa or jackd with sequencer support (most times) these days. And debian or ubuntu gets it mostly right.

vincent
Established Member
Posts: 17
Joined: Sun Apr 28, 2013 10:38 am

Re: Yamaha CS1X synthesizer

Post by vincent »

Shadow_7 wrote:It could be that not all the modules for alsa are being loaded with regards to midi (snd-seq). Or your kernel / alsa version wasn't compiled for sequencer (midi) support. --with-sequencer=yes is not a default option if you compile alsa from sources (or at least wasn't last time I used sources).
Thank you for your answer.
It seems the midi modules are loaded :

Code: Select all

pc2:~$ lsmod |grep snd
snd_hrtimer            12648  1 
snd_ens1371            24506  2 
snd_intel8x0           33096  2 
snd_ac97_codec        105692  2 snd_intel8x0,snd_ens1371
ac97_bus               12670  1 snd_ac97_codec
gameport               15016  1 snd_ens1371
snd_seq_midi           13132  0 
snd_seq_midi_event     14475  1 snd_seq_midi
snd_rawmidi            25114  2 snd_ens1371,snd_seq_midi
snd_seq                51280  3 snd_seq_midi_event,snd_seq_midi
snd_pcm                80890  3 snd_ac97_codec,snd_intel8x0,snd_ens1371
snd_seq_device         14137  3 snd_seq,snd_rawmidi,snd_seq_midi
snd_page_alloc         14230  2 snd_intel8x0,snd_pcm
snd_timer              24411  3 snd_hrtimer,snd_pcm,snd_seq
snd                    56485  17 snd_ac97_codec,snd_intel8x0,snd_timer,snd_pcm,snd_seq,snd_rawmidi,snd_ens1371,snd_seq_device
soundcore              12600  1 snd

Shadow_7
Established Member
Posts: 169
Joined: Tue Jun 08, 2010 3:35 pm

Re: Yamaha CS1X synthesizer

Post by Shadow_7 »

Your image of qjackctl for the alsa tab doesn't look quite right. The 14 port midi device for alsa AFAIK is a virtual device.

For my setup it looks like this:

Code: Select all

$ jackd -R -P60 -d alsa -d hw:0 -r 44100 -s -m -S

Code: Select all

$ fluidsynth -C no -R no -l -s -a jack -j -r 44100 -g 1 -o audio.periods=2 /usr/share/sounds/sf2/FluidR3_GM.sf2
> select 0 1 000 001
Image

How is the syntesizer connected? Does the ens1371 have a midi input and you have it connected with a midi cable? I have different hardware obviously.

vincent
Established Member
Posts: 17
Joined: Sun Apr 28, 2013 10:38 am

Re: Yamaha CS1X synthesizer

Post by vincent »

Shadow_7 wrote:How is the syntesizer connected? Does the ens1371 have a midi input and you have it connected with a midi cable? I have different hardware obviously.
There is two DIN (IN, OUT) connected on the midi ports of the synthesizer, and a kind of serial connector on the soundcard.

This is what I obtain when I try your commands:

Code: Select all

c2:~$ jackd -R -P60 -d alsa -d hw:0 -r 44100 -s -m -S
jackdmp 1.9.10
Copyright 2001-2005 Paul Davis and others.
Copyright 2004-2013 Grame.
jackdmp comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details
Cannot create thread 1 Operation not permitted
Cannot create thread 1 Operation not permitted
Cannot create thread 1 Operation not permitted
JACK server starting in realtime mode with priority 60
Cannot lock down 82274202 byte memory area (Cannot allocate memory)
audio_reservation_init
Acquire audio card Audio0
creating alsa driver ... hw:0|hw:0|1024|2|44100|0|0|nomon|swmeter|soft-mode|16bit
configuring for 44100Hz, period = 1024 frames (23.2 ms), buffer = 2 periods
ALSA: final selected sample format for capture: 16bit little-endian
ALSA: use 2 periods for capture
ALSA: final selected sample format for playback: 16bit little-endian
ALSA: use 2 periods for playback
Cannot use real-time scheduling (RR/60)(1: Operation not permitted)
AcquireSelfRealTime error

Code: Select all

c2:~$ fluidsynth -C no -R no -l -s -a jack -j -r 44100 -g 1 -o audio.periods=2 /usr/share/sounds/sf2/FluidR3_GM.sf2
FluidSynth version 1.1.6
Copyright (C) 2000-2012 Peter Hanappe and others.
Distributed under the LGPL license.
SoundFont(R) is a registered trademark of E-mu Systems, Inc.

fluidsynth: warning: Failed to pin the sample data to RAM; swapping is possible.
Cannot lock down 82274202 byte memory area (Cannot allocate memory)
Cannot use real-time scheduling (RR/55)(1: Operation not permitted)
JackClient::AcquireSelfRealTime error
Type 'help' for help topics.

> > select 0 1 000 001
I also tried qmidiroute, but it sees no events.

And I definitely do not see my CS1X in qjackctl...

Pablo
Established Member
Posts: 1269
Joined: Thu Apr 17, 2008 9:57 pm

Re: Yamaha CS1X synthesizer

Post by Pablo »

And I definitely do not see my CS1X in qjackctl...
However, you do see the Ensonic in the alsa (MIDI) tab, readable clients, and I assume you are physically connecting the CS1X MIDI OUT to Ensoniq MIDI IN. So far so good.

I suggest you try the following:

Install qmidiroute
Launch qjackctl. Don't start the jack server yet (qjackctl allows making alsa MIDI connections anyway)
Launch qmidiroute
In the connection window of qjackctl, connect (by selecting these ports and pressing "Connect") the Ensoniq port on the left panel to qmidiroute In on the right.
Play notes on the CS1X and observe the Event Log in qmidiroute.

Do you see some MIDI messages or something?

One other thing, you don't have realtime and memlock privileges for your user, which jack and friends need for reliable realtime work. This is important for making music in Linux. You don't want to see messages as "realtime operation not permitted", "cannot lock memory" and similar in qjackctl messages.

Shadow_7
Established Member
Posts: 169
Joined: Tue Jun 08, 2010 3:35 pm

Re: Yamaha CS1X synthesizer

Post by Shadow_7 »

vincent wrote:This is what I obtain when I try your commands:
I've re-indexed my cards so my Delta-44 is card 0. I doubt your intended card is card 0 if you haven't done something similar. So obviously some tweaking of the command line options is needed.

$ cat /proc/asound/cards

There's a number associated with each card. The hw:# parameter is alsa's naming convention for the hardware. You can assign more meaningful names in .asoundrc, but if you can't get it working with hw:#, that probably wont help. Running jack assumes that pulseaudio is not running, which is less likely the case these days.

$ pgrep pulseaudio

If that returns a number, that is the PID of pulseaudio. As in, it is running. For me I had to modify /etc/pulse/client.conf to include the "autospawn = no" option. This should allow you to start / stop pulseaudio manually. Otherwise it defaults to automagically restarting itself when stopped.

$ pulseaudio --kill
$ pulseaudio --start

One of those is to stop, the other to start pulseaudio. It is possible to run pulse over jack, but kind of a pain.

There's some realtime configurations needed for jack when using the -R option. You probably lack those as well. These are generally added to /etc/security/limits.conf, although debian puts them in a sub-folder of that as follows /etc/security/limits.d/audio.conf. To simplify things just drop the -R option and see if it works for you. And drop -P60 and so on and so on, until you get something that works for you. Hope this helps.

vincent
Established Member
Posts: 17
Joined: Sun Apr 28, 2013 10:38 am

Re: Yamaha CS1X synthesizer

Post by vincent »

Pablo wrote:However, you do see the Ensonic in the alsa (MIDI) tab, readable clients, and I assume you are physically connecting the CS1X MIDI OUT to Ensoniq MIDI IN. So far so good.
I suggest you try the following:
Install qmidiroute
Launch qjackctl. Don't start the jack server yet (qjackctl allows making alsa MIDI connections anyway)
Launch qmidiroute
In the connection window of qjackctl, connect (by selecting these ports and pressing "Connect") the Ensoniq port on the left panel to qmidiroute In on the right.
Play notes on the CS1X and observe the Event Log in qmidiroute.
Do you see some MIDI messages or something?
I followed your instructions, and I put the Out DIN of my cable in the IN port of my synthesizer, and the In in the OUT :oops: , and now it's ok, I see the events in qmidiroute ! And more, using the fluidsynth command line from Shadow_7, I connected the Ensoniq soundcard (to which is connected my synthesizer) to fluidsynth, and I hear the notes ! That's a great step and I thank you both ! There is a lot of unkown events ("Evênement inconnu") but it works.

But I have not yet succeeded to do the same thing with other softwares like lmms, muse, zynaddsubfx, and fluidsynth in GUI mode.
One other thing, you don't have realtime and memlock privileges for your user, which jack and friends need for reliable realtime work. This is important for making music in Linux. You don't want to see messages as "realtime operation not permitted", "cannot lock memory" and similar in qjackctl messages.
I should probably reinstall Jack. I remember I was asked for real time and I answered no.
You do not have the required permissions to view the files attached to this post.

vincent
Established Member
Posts: 17
Joined: Sun Apr 28, 2013 10:38 am

Re: Yamaha CS1X synthesizer

Post by vincent »

Now it is also OK with zynaddsubfx with the following option:

Code: Select all

zynaddsubfx -a

Post Reply